26. Oktober 2016 16:46
Ich habe folgende Funktion programmiert:
ChangeLocation(VAR ParSalesLine : Record "Sales Line";ParNewLocationCode : Code[20])
LSalesHeader.GET(ParSalesLine."Document Type",ParSalesLine."Document No.");
// Öffnen
LReleaseSalesDoc.Reopen(LSalesHeader);
// Lagerort ändern
ParSalesLine.VALIDATE("Location Code",ParNewLocationCode);
ParSalesLine.MODIFY(TRUE);
// Freigeben
LReleaseSalesDoc.RUN(LSalesHeader);
Das funktioniert so nicht, weil der Reopen auch ein Modify auf die SalesLine macht und bei meinem Modify kommt dann die Meldung, dass ein anderer Benutzer schon den Datensatz geändert hat.
Bevor ich da jetzt ein oder zwei COMMITs reinhaue und bei einer Tabellensperre durch einen anderen Benutzer oder bei einem anderen Fehler einen unsauberen Rollback bekomme, der dann wieder manuelle Arbeit nach sich zieht - weiß jemand da evtl. die "Best Practice" - Lösung?
Zuletzt geändert von InfoWissler am 26. Oktober 2016 17:25, insgesamt 1-mal geändert.