Hay una función muy útil disponible para los autores de reglas de negocio, @DEVOLVER . Esta función le permite devolver un mensaje al usuario que ejecuta la regla comercial y finalizar la regla comercial. Un uso muy valioso de esta función es cuando se verifica la entrada de valores en ejecución. indicaciones de tiempo. Lo uso ampliamente en la creación de reglas comerciales para la planificación de la mano de obra y el gasto de capital, donde puede haber múltiples entradas obtenidas utilizando variables de tiempo de ejecución.
El formato de la función es @RETURN(mensaje, ERROR). El msg puede ser un literal o, más interesante, puede ser el @CONCATENAR función que se puede utilizar para devolver valores de dimensiones o incluso la entrada de valor en la variable de tiempo de ejecución.FIX( "Presupuesto","Trabajando",{gv_1_Entity},{gv_1_CostCenter},{gv_1_Project},{gv_Exempt},"Sin empleado","Local_Input",&svBudYear,"BegBalance")
CONFIGURAR CREATENOMISSINGBLK EN;
"Estado"(
/* Debe estar en el nivel base de Entidad, Centro de Costo y Proyecto */
SI( NO @ISLEV("Entidad", 0) )
@RETURN( "Debe seleccionar un miembro de Entidad de nivel base.", ERROR);
ENDIF
SI( NO @ISLEV("Centros de Costo", 0) )
@RETURN( "Debe seleccionar un miembro del centro de costos de nivel base.", ERROR );
ENDIF
SI( NO @ISLEV("Proyectos", 0) )
@RETURN( "Debe seleccionar un miembro de Proyectos de nivel base.", ERROR);
ENDIF
/* El mes de finalización del reabastecimiento debe ser posterior al mes de alquiler si se ingresó */
SI( {gv_EndMonth} != #Falta )
SI( {gv_EndMonth} < {gv_HireMonth}->"NúmeroMes" )
@RETURN( "El mes de finalización del reabastecimiento debe ser posterior al mes de contratación.", ERROR );
ENDIF
ENDIF
/* AIP o Ventas o Producción no hay dos */
SI( {gv_AIP_Pct} > 0 )
SI( {gv_SalesIncentive_Pct} > 0 )
@RETURN( "Si se ingresa un % de AIP, entonces el % objetivo de incentivo de ventas no puede ser.", ERROR);
OTRO
SI ( {gv_ProdIncentive_Pct} > 0 )
@RETURN( "Si se ingresa un % de AIP, entonces el % objetivo de incentivo de producción no puede ser.", ERROR);
ENDIF
ENDIF
ENDIF
/* Ventas no Producción */
SI( {gv_AIP_Pct} == 0 )
SI( {gv_SalesIncentive_Pct} > 0 )
SI( {gv_ProdIncentive_Pct} > 0 )
@RETURN( "Si se ingresa un % objetivo de incentivo de ventas, entonces el % objetivo de incentivo de producción no puede ser.", ERROR);
ENDIF
ENDIF
ENDIF
)
SET CREATENONMISSINGBLK Desactivado;
FINALIZAR
IF( ( {lv_Promotion_Pct} / 100.0 ) < "Porcentaje de aumento mínimo de tipo de promoción 1"->"Sin empleado"-->"Sin unidad de negocio">"Sin unidad operativa"->"Sin departamento"->"Sin tipo de empleado"->" Sin Proyecto" ->"NoProduct"->"BegBalance" OR ( {lv_Promotion_Pct} / 100.0 ) > "Porcentaje de aumento máximo de tipo 1 de promoción"->"Sin empleado"->"Sin unidad comercial"->"Sin unidad operativa"->"Sin departamento"-> "Sin tipo de empleado"> "Sin proyecto" ->"SinProducto"->"BegBalance" )
@RETURN(@CONCATENATE( "El porcentaje de promoción debe estar entre ",
@CONCATENATE( @CalcMgrDoubleToString(@ROUND( "Porcentaje de aumento mínimo de tipo de promoción 1"->"Sin empleado"->"Sin unidad comercial"->"Sin unidad operativa"-->"Sin departamento"->"Sin tipo de empleado"->" SinProyecto"->"SinProducto"->"BegBalance" * 100, 2 ) ),
@CONCATENATE( " y ", @CalcMgrDoubleToString(@ROUND( "Porcentaje de aumento máximo de tipo 1 de promoción"->"Sin empleado"-->"Sin unidad comercial"->"Sin unidad operativa"->"Sin departamento"-->" NoEmployeeType"->"NoProject"->"NoProduct"->"BegBalance" * 100, 2 ) ) ) ) ),ERROR);
Le he mostrado ejemplos de cómo usar la función @RETURN para agregar funcionalidad a sus reglas comerciales para hacer cumplir las ediciones e informar al usuario de los errores. Espero que encuentres esto útil.
Los consultores de MindStream Analytics están aquí para ayudarlo a llevar su planificación, elaboración de presupuestos, pronósticos, consolidaciones e informes al siguiente nivel. Rellene el siguiente formulario para saber cómo.