idioma
Contacta Nos: 1-800-497-0151

Blog

USO DE @RETURN EN LAS REGLAS DE NEGOCIO

  • , Consultor

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.

  •  La @DEVOLVER solo se puede usar en un bloque de cálculo de miembros.
  •  La documentación dice que hay varios valores para el segundo parámetro, pero el único que funciona es ERROR sin comillas.
  •  El mensaje se devuelve al usuario y se registra en el registro de la aplicación Essbase.
  •  FIX a una sola intersección para que las ediciones solo se realicen una vez.
  •  Puede necesitar ESTABLECER CREATENOMISSINGBLK ON si la intersección que usa para la edición no existe. Asegúrate de apagarlo después de las ediciones.
  •  La @DEVOLVER finaliza la ejecución de la regla de negocio pero no puede detener el guardado de los datos en el formulario.
  •   Ejemplo 1 - corrige y devuelve el mensaje literal:
    • 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

  •  Ejemplo 2 - Usar @CONCATENATE:
    • 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.

Contact MindStream Analytics

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.