Uso de una regla de negocio para rellenar la fecha del sistema en Planning

Oracle Essbase almacena las fechas de Planning como valores numéricos; por ejemplo, la fecha de inicio del 21 de mayo de 2021 se almacena como 20210521.

Los procesos de negocio que no sean de Planning y que utilizan la base de datos de Essbase usan una funcionalidad de fecha que utiliza el número de segundos transcurridos desde la medianoche del 1 de enero de 1970 (un formato no numérico diferente a cómo se almacenan las fechas en Planning) para almacenar dichas fechas.

Es posible convertir el formato de fecha de Essbase al formato de Planning para usarlo en formularios para completar la fecha del sistema (fecha actual) en los miembros de fecha de Planning.

Por ejemplo, suponga que desea agregar dinámicamente una fecha generada por el sistema (basada en la fecha actual del sistema) a un miembro de Planning como "Start_Date" usando un cálculo en un formulario. Esta necesidad puede surgir de un requisito de auditoría para agregar dinámicamente una entrada de fecha de solo lectura que no es de usuario para compararla con un registro, por ejemplo, para identificar cuándo se agregó un nuevo contrato o cliente.

Para convertir el valor de fecha de Essbase 21 de mayo de 2021 al valor numérico equivalente de Planning, multiplique el mes por 100 y el año por 10 100 y, a continuación, sume el resultado de esos cálculos al número de días tal y como se muestra a continuación:

Year = 2021 * 10,000 = 2021000 
Month = 05 * 100 = 500
Day = 21
2021000 + 500 + 21 = 2021521

Puede hacer esto mediante una regla de negocio manteniendo los elementos de fecha de Essbase en las variables hasta que escriba el resultado en un miembro de Planning. Para lograr esto, Essbase proporciona funciones que le ayudan a extraer la fecha actual (@TODAY) y obtener el día, mes o año a partir de esa fecha (@DATEPART).

El siguiente ejemplo muestra cómo usar @TODAY y @DATEPART para crear variables que almacenen la fecha, el mes y el año de la fecha del sistema en formato de Essbase, realizar el cálculo para convertirla al formato de fecha de Planning y almacenar la fecha del formato de Planning en una variable para rellenar el campo "Start_Date" según sea necesario:

Var_Day = @DATEPART(@TODAY(),DP_DAY);
Var_Month ==@DATEPART(@TODAY(),DP_MONTH)*100;
Var_Year = @DATEPART(@TODAY(),DP_YEAR)*10000;
Var_TodayDate = @sum(Var_Day, Var_Month, Var_Year);

Start_Date = Var_TodayDate;

Puede utilizar una fórmula, con una sintaxis similar a la que se muestra a continuación, para agregar dinámicamente la fecha del sistema como "Start_Date" a un miembro:

@MEMBER(@HspNthMbr(@name(@descendants("AllMembers")),nextMember))->"Start_Date"=Var_TodayDate;