10. Juni 2013 16:58
Hallo zusammen,
ich habe folgendes Problem:
Wir haben mehrere Mandanten in Navision, welche jedoch teilweise die selben Kreditoren haben. Daher wurde der Wunsch geäußert, dass Änderungen in Mandant A nach einer Abfrage, ob dies auch gewollt ist, auch in Mandant B und C mit gezogen werden. Ich habe diese Funktion der Datenänderung in den anderen Mandanten in einer Codeunit hinterlegt.
In der Tabelle Kreditor habe ich zusätzlich ein Boolean Feld angelegt, welches in jedem OnValidate der Felder auf TRUE gesetzt wird. In der Kreditorenkarte beim wechseln in einen anderen Kreditor dann eine Abfrage:
- Code:
IF "Änderungen vorgenommen" THEN BEGIN
IF CONFIRM ('Sollen die Änderungen auf die anderen Mandanten übernommen werden?') THEN
EK.KreditorAktualisieren(Rec)
END;
Er springt mir dann aber in der Codeunit nach einem der Aktualisierung der Daten im "nachKreditor.MODIFY" heraus mit der Fehlermeldung "Sie können keine Änderungen an der Datenbank vornehmen, ehe eine Transaktion gestartet wurde".
In der Codeunit sieht das wie folgt aus:
- Code:
IF NachMandant[1] <> '' THEN BEGIN
IF NOT nachComment.CHANGECOMPANY(NachMandant[1]) THEN
EXIT;
IF NOT NachAnhang.CHANGECOMPANY(NachMandant[1]) THEN
EXIT;
IF NOT nachKreditor.CHANGECOMPANY(NachMandant[1]) THEN
EXIT;
END;
nachKreditor.RESET;
nachKreditor.SETRANGE("Common ID",vonKreditor."Common ID");
IF nachKreditor.FINDFIRST THEN BEGIN
CurrVendor := nachKreditor."No.";
nachKreditor.Name := vonKreditor.Name;
[... sämtliche andere Felder noch]
nachKreditor.MODIFY;
Hat vielleicht jemand - soweit man mein Geschreibsel nachvollziehen kann und versteht - eine Idee, was ich tun könnte?
Danke
Michael