MS Mary 2 Geschrieben 21. März 2014 Melden Teilen Geschrieben 21. März 2014 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 Projektzweigewhere projekt ='10824'And Vorgangsart ='Angebot' die "irgendwie" merken ---alle anderen Angebote im Status ändern Update ProjektzweigeSet Status = 1where projekt ='10824'And Vorgangsart ='Angebot'and Nummer not in (select max(nummer) from Projektzweigewhere 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... Zitieren Link zu diesem Kommentar
Sanches 22 Geschrieben 21. März 2014 Melden Teilen Geschrieben 21. März 2014 Hallo, 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, => wie kann der Trigger den entscheiden, ob ein Angebot "alt" ist und somit nicht mehr gültig sei? Es kann doch sein, das ein Interessent / Kunde auch mehr als ein paralleles / sep. Angebot erhält, oder? Was soll der Trigger dann machen? Ich denke, so "einfach mal" was reinprogrammieren macht dir / euch mehr Probleme als Nutzen. Fragt doch besser direkt beim Hersteller mal an oder auch einen Partner dazu. Oder besuch zumindest eine Programmierschulung des ERP-Systems, in der dir auch die Grundstrukturen beigebracht werden. Gruß Sanches PS: In den meisten Systemen nennt man den Vorgang "Versionierung von Angeboten", welche viele (wohl nicht alle) ERP-Systeme meistens in der Basis schon anbieten ... Zitieren Link zu diesem Kommentar
h-d.neuenfeldt 21 Geschrieben 21. März 2014 Melden Teilen Geschrieben 21. März 2014 Welches ERP setzt du denn ein ? "unser ERP-Anbieter will uns da wohl nicht weiterhelfen" .... :shock: :confused: :mad: Zitieren Link zu diesem Kommentar
MS Mary 2 Geschrieben 22. März 2014 Autor Melden Teilen Geschrieben 22. März 2014 => wie kann der Trigger den entscheiden, ob ein Angebot "alt" ist und somit nicht mehr gültig sei? Es kann immer nur ein gültiges Angebot existieren. Jedes Angebot das neu zu einem Projekt hinzukommt macht also das vorher erstellte Angebot ungültig. Dieses Angebot erhält dann den Status "abgelehnt". Was ja auch völlig korrekt ist, denn der Kunde möchte ja ein anderes Angebot erhalten bzw. erhält ein verändertes. Alle Angebote bleiben so erhalten und es gibt immer nur ein, nämlich das jüngste, gültiges Angebot. Soviel zum Prozess... Der Trigger kann also über das Feld NUMMER erkennen welche Angebote auf "abgelehnt" gestellt werden müssen, nämle alle Angebote in em Projekt mit kleinerer Nummer als das gerade eingefügte. Ich stehe vor der Aufgabe, oder besser denke an diesen Lösungsweg, dies mit einem Trigger zu tun. Welchen ERP Anbieter? Darüber schweige ich lieber mal. Zum einen würde ich dem Hersteller vielleicht etwas Unrecht tun, denn das System wird bei uns schon 14 Jahre eingesetzt und passt schon lange nicht mehr zur Unternehmensgröße. Der Supportpartner der uns betreuen sollte aber sollte eigentlich vom Markt genommen werden. Vielleicht erkennt ja einer am Tabellennamen das ERP System. ;) Zitieren Link zu diesem Kommentar
h-d.neuenfeldt 21 Geschrieben 22. März 2014 Melden Teilen Geschrieben 22. März 2014 (bearbeitet) vielleicht fehlt dir ja "nur" die Anleitung ... ??? --> http://help.sap.com/printdocu/core/print46c/de/data/pdf/COOMOPA/COOMOPA.pdf bearbeitet 22. März 2014 von h-d.neuenfeldt Zitieren Link zu diesem Kommentar
MS Mary 2 Geschrieben 22. März 2014 Autor Melden Teilen Geschrieben 22. März 2014 vielleicht fehlt dir ja "nur" die Anleitung ... ??? --> http://help.sap.com/printdocu/core/print46c/de/data/pdf/COOMOPA/COOMOPA.pdf Richtige Idee...nur leider falsch im Ziel. Können wir mal über einen Trigger reden? Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 22. März 2014 Melden Teilen Geschrieben 22. März 2014 Du darfst gerne auf das Doppelposting hinweisen: http://social.technet.microsoft.com/Forums/de-DE/0995d214-c890-4871-9dac-f094066ae7d5/trigger?forum=sqlserverde Zitieren Link zu diesem Kommentar
hh2000 10 Geschrieben 26. März 2014 Melden Teilen Geschrieben 26. März 2014 (bearbeitet) Moin, - ja, du kannst mehrere Insert Trigger in einer Tabelle installieren (Auswirkung, Nebenwirkung?). - ja, du kannst mittels Trigger alte Angebote updaten Aber, - du kannst ganz schnell (schneller als einem lieb ist) die Daten der Tabelle komplett schrotten! - bei einem Strukturupdate funktioniert das ganze nicht mehr Ich empfehle hier Lektüre oder Onlinehilfe bezüglich Trigger mit seinen Hilfstabellen INSERTED und DELETED, das lohnt sich wirklich. So schön Trigger auch sind (ich benutze sie auch), ist ein genaues Wissen inkl. Tests nötig, z.B. beim Insert-Trigger das testen von einfügen von keinem, einem und mehreren Datensätzen. Noch als Warnung, bei einem schlechten Test des Trigges fällt Dir evtl. ein Fehler erst später auf, weil dann eine Bedingung eintritt die du nicht bedacht hast und der Trigger mehr geändert hat, als er sollte. Ergebnis: Tabellendaten sind Schrott Gruß Kai bearbeitet 26. März 2014 von hh2000 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.