Hallo Forum,
ich kämpfe mich gerade ein bißchen mit der MS SQL Datenbank unseres ERP Anbieters herum. Vorab: Ich programmiere nur aus Hobby, würde aber gern zur Lösung unseres Problems beitragen.
Folgende Sachlage: In unserem ERP bleiben ungewollt Vorgänge im Status "Offen" und verfäschen Auswertungen.
Beispiel: Es wird ein Angebot für einen Interessenten geschrieben (Angebot 1), doch der Interessent hat Änderungswünsche. Nun muss das Angebot 1 zu Angebot 2 kopiert werden, dort finden die Anpassungen statt. Leider bleibt das Quellangebot im Status "offen". Es gibt nun zwei offene Angebote, obwohl das erste eigentlich nicht mehr gültig ist. Es müsste also einen anderen Status (abgelehnt) erhalten. Uns macht das bei der Ressourcenplanung unheimlich Schwierigkeiten.(unser ERP Anbieter will uns da wohlnicht helfen)
Nun mal mein gedanklicher Ansatz: Wenn ich einen Trigger hätte, der beim einfügen eines Datensatzes nachsieht ob es für die betroffen Projektnummer ein Altes Angebot gibt und dies im Status ändert, wäre mir ohne teure ERP Änderungen geholfen.
Die Tabelle hat dazu nur ein paar relevante Felder
Nummer - eindeutiger Datensatzschlüssel
Projekt - Textfeld mit unserer Projektbezeichnung
Vorgangsart - Textfeld (hier Relevant ANGEBOT)
Status -Integer, zu verändernder Wert.
Wir nun ein neues Angebot angelegt müsste es doch über einen Trigger möglich sein die "Alt-Angebote" upzudaten, oder. Mein Ansatz:
-- Höchste Nummer eines Angebots aus dem bearbeiteten Projekt holen
select max(nummer) from Projektzweige where projekt ='10824' And Vorgangsart ='Angebot'
die "irgendwie" merken
---alle anderen Angebote im Status ändern
Update Projektzweige Set Status = 1 where projekt ='10824' And Vorgangsart ='Angebot' and Nummer not in (select max(nummer) from Projektzweige where projekt ='10824' And Vorgangsart ='Angebot')
Wie bekommt man das in einen Trigger? Und ums insteressant zu machen: Es gibt schon einen insert Trigger auf der Tabelle. kann einfach ein weiterer eingefügt werden? Mein vorrangigstes gedankliches Problem ist es das Projekt zu greifen...
Jeder Tipp ist willkommen...