Procedimientos personalizados
Los motivos por los que crear procedimientos personalizados son:
Organizar el programa.
Crear un código autoexplicativo.
Simplificar el proceso de desarrollo.
Hacer que el código sea reutilizable, lo que reduce el trabajo.
Reducir los errores.
Ayudar a realizar modificaciones de forma más sencilla.
Reducir el tamaño de los objetos.
Un procedimiento es una parte con nombre de un programa. Puede agrupar muchas líneas, asignarles un nombre y luego llamar a este bloque de código por su nombre.
Para crear una función personalizada nueva, use el fragmento tprocedure.
local procedure MyProcedure()
begin
// Some logic goes here.
end;
Se puede llamar a un procedimiento, ya sea personalizado o existente, desde las expresiones o desde las instrucciones.
Llamada a procedimiento en una expresión
En el siguiente ejemplo el procedimiento personalizado CalculatePrice se llama desde una expresión que multiplica el precio calculado por una determinada cantidad. El procedimiento CalculatePrice realiza cierta lógica de cálculo y devuelve el resultado como un decimal.
trigger OnRun()
begin
TotalCost := Quantity * CalculatePrice();
end;
procedure CalculatePrice() : Decimal
begin
// Some calculation logic goes here.
end;
Llamada a procedimiento en una instrucción
En el siguiente ejemplo la función personalizada MyCustomFunction se llama desde una instrucción.
trigger OnRun()
begin
if Quantity > 5 then
MyCustomFunction();
end;
procedure MyCustomFunction()
begin
// Some logic goes here.
end;
Función GuiAllowed
Al crear procedimientos personalizados, debe considerar la función GuiAllowed. Puede usar esta función para determinar cuándo deben ejecutarse determinadas partes del código, en función de si una interfaz gráfica de usuario (GUI) está disponible o no.
No se utiliza una interfaz de usuario cuando un servicio web ejecuta el código. Si el código espera la entrada del usuario o muestra un mensaje, se produce un error. Al usar la función GuiAllowed, puede probar si una GUI está disponible o no antes de solicitar la entrada del usuario.
if GuiAllowed then
Message('Hello');
Esta función se usa en Business Central cuando se puede llamar a la función a través del servicio de la API.