Benutzerdefinierte Prozeduren
Die Gründe für das Erstellen benutzerdefinierter Prozeduren ist:
Das Programm organisieren.
Selbsterklärenden Code erstellen.
Den Entwicklungsprozess vereinfachen.
Code wiederverwendbar machen, was die Arbeit reduziert.
Fehler reduzieren.
Änderungen erleichtern
Die Größe der Objekte reduzieren.
Eine Prozedur ist ein benannter Teil eines Programms. Sie können viele Zeilen gruppieren, einen Namen vergeben und diesen Codeblock dann beim Namen nennen.
Verwenden Sie eine benutzerdefinierte Funktion, um den Ausschnitt tprocedure zu verwenden.
local procedure MyProcedure()
begin
// Some logic goes here.
end;
Eine benutzerdefinierte oder vorhandene Prozedur kann aus Ausdrücken oder aus Anweisungen heraus aufgerufen werden.
Prozeduraufruf in einem Ausdruck
Im folgenden Beispiel wird die benutzerdefinierte Prozedur CalculatePrice aus einem Ausdruck heraus aufgerufen, der den berechneten Preis mit einer bestimmten Menge multipliziert. Die Prozedur CalculatePrice führt eine Berechnungslogik durch und gibt das Ergebnis als Dezimalzahl zurück.
trigger OnRun()
begin
TotalCost := Quantity * CalculatePrice();
end;
procedure CalculatePrice() : Decimal
begin
// Some calculation logic goes here.
end;
Prozeduraufruf in einer Anweisung
Im nächsten Beispiel wird die benutzerdefinierte Funktion MyCustomFunction aus einer Anweisung heraus aufgerufen.
trigger OnRun()
begin
if Quantity > 5 then
MyCustomFunction();
end;
procedure MyCustomFunction()
begin
// Some logic goes here.
end;
GuiAllowed-Funktion
Wenn Sie benutzerdefinierte Prozeduren erstellen, sollten Sie die Funktion GuiAllowed berücksichtigen. Mit dieser Funktion können Sie festlegen, wann bestimmte Teile Ihres Codes ausgeführt werden sollen, je nachdem, ob eine grafische Benutzeroberfläche (GUI) verfügbar ist oder nicht.
Eine Benutzeroberfläche wird nicht verwendet, wenn Ihr Code von einem Webdienst ausgeführt wird. Wenn Ihr Code Benutzereingaben erwartet oder eine Meldung anzeigt, führt dies zu einem Fehler. Mit der Funktion GuiAllowed können Sie testen, ob eine GUI verfügbar ist oder nicht, bevor Sie Benutzereingaben anfordern.
if GuiAllowed then
Message('Hello');
Diese Funktion wird in Business Central verwendet, wenn Ihre Funktion über den API-Service aufgerufen werden kann.