Procedure personalizzate
I motivi per creare procedure personalizzate sono:
Organizzare il programma.
Creare codice autoesplicativo.
Semplificare il processo di sviluppo.
Rendere il codice riutilizzabile e quindi diminuire la mole di lavoro.
Ridurre gli errori.
Facilitare le modifiche.
Ridurre le dimensioni degli oggetti.
Una procedura è una parte denominata di un programma. È possibile creare un gruppo di molte righe, assegnarvi un nome e quindi chiamare questo blocco di codice usando tale nome.
Per creare una nuova funzione personalizzata, usare il frammento tprocedure.
local procedure MyProcedure()
begin
// Some logic goes here.
end;
Una procedura, personalizzata o esistente, può essere chiamata dall'interno di espressioni o di istruzioni.
Chiamata di una procedura in un'espressione
Nell'esempio seguente la procedura personalizzata CalculatePrice viene chiamata dall'interno di un'espressione che moltiplica il prezzo calcolato per una determinata quantità. La procedura CalculatePrice esegue una logica di calcolo e restituisce il risultato come decimale.
trigger OnRun()
begin
TotalCost := Quantity * CalculatePrice();
end;
procedure CalculatePrice() : Decimal
begin
// Some calculation logic goes here.
end;
Chiamata di una procedura in un'istruzione
Nell'esempio successivo la funzione personalizzata MyCustomFunction viene chiamata dall'interno di un'istruzione.
trigger OnRun()
begin
if Quantity > 5 then
MyCustomFunction();
end;
procedure MyCustomFunction()
begin
// Some logic goes here.
end;
Funzione GuiAllowed
Quando si creano procedure personalizzate, è opportuno considerare la funzione GuiAllowed. Questa funzione consente di determinare quando eseguire specifiche parti del codice, a seconda della disponibilità o meno di un'interfaccia utente grafica (GUI).
Un'interfaccia utente non viene usata quando si esegue il codice tramite un servizio Web. Se il codice prevede l'input dell'utente o visualizza un messaggio, si verifica un errore. La funzione GuiAllowed permette di verificare se una GUI è disponibile o meno prima di richiedere l'input dell'utente.
if GuiAllowed then
Message('Hello');
Questa funzione si usa in Business Central quando è possibile chiamare la propria funzione tramite il servizio API.