Übergabe von Variablen statt Record

19. Juli 2021 12:13

Hallo,

ich habe ein Code-Unit, die beim Aufruf Daten vom Typ Record erwartet.
Diese Code-Unit möchte ich jetzt alternativ verwenden, habe an der Stelle jedoch nicht den Record "in der Hand", sondern kann nur Variablen übergeben.
Wie kann ich, wenn überhaupt möglich, der Code-Unit die Variablen übergeben?

Vielen Dank

Re: Übergabe von Variablen statt Record

19. Juli 2021 12:41

Man legt eine neue Funktion an, die die Parameter an globale Variablen im Codeunit übergibt, z.B. so:
Code:
SetExistingOrderNo(NewExistingOrderNo : Code[20];NewUseExistingOrderNo : Boolean)
ExistingOrderNo := NewExistingOrderNo;
UseExistingOrderNo := NewUseExistingOrderNo;


Zum Verwenden macht man vor dem Aufruf ein CLEAR auf das Codeunit, führt dann erst die neue Funktion aus und ruft danach das Codeunit mit derselben Codeunitvariable und einem leeren Dummyrecord auf. Im OnRun-Trigger muss dann der Code erweitert werden, für die Fälle, in denen die neuen Variablen gefüllt sind.

Klären muss man vorab, ob das ein normales oder Single Instance Codeunit ist. Beim letzteren funktioniert ein CLEAR nicht, um die globalen Variablen zu löschen. Da müssen dann noch Löschfunktionen dazu kommen.