Como Usar a Regra de Negócios para Preencher a Data do Sistema no Planning

O Oracle Essbase armazena datas do Planning como valores numéricos, por exemplo, a Data de Início 21 de maio de 2021 é armazenada como 20210521.

Os processos de negócios além do Planning que usam o bancos de dados do Essbase utilizam uma funcionalidade de data que usa o número de segundos decorridos desde a meia-noite de 1º de janeiro de 1970 (um formato não numérico diferente de como o Planning armazena datas) para armazenar tais datas.

É possível converter o formato de data do Essbase em formato do Planning para uso em formulários a fim de preencher a data do sistema (data de hoje) nos membros de data do Planning.

Por exemplo, suponha que você queira adicionar dinamicamente uma data gerada pelo sistema (com base na data do sistema atual) a um membro do Planning como "Start_Date" usando um cálculo em um formulário. Isso precisa resultar de um requisito de auditoria para adicionar dinamicamente uma entrada de data somente leitura de não usuário em um registro, por exemplo, para identificar quando um novo contrato ou cliente foi adicionado.

Para converter o valor de data de 21 de maio de 2021 do Essbase em valor numérico equivalente do Planning, multiplique o mês por 100 e o ano por 10.100; em seguida, adicione os produtos desses cálculos ao número de dias, como mostrado abaixo:

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

É possível fazer isso em uma regra de negócios mantendo os elementos de data do Essbase em variáveis até que você grave o resultado para um membro do Planning. Para isso, o Essbase fornece funções que ajudam a extrair a data de hoje (@TODAY) e a derivar o dia, mês ou ano dessa data (@DATEPART).

O exemplo a seguir mostra como usar @TODAY e @DATEPART para criar variáveis que armazenam a data, o mês e o ano da data do sistema no formato do Essbase, executar o cálculo para convertê-los em formato de data do Planning e armazenar o formato de data do Planning em uma variável para preencher "Start_Date" conforme a necessidade:

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;

Você poderia usar uma fórmula, usando sintaxe semelhante à que se segue, para adicionar dinamicamente a data do sistema como "Start_Date" a um membro:

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