Planning에서 비즈니스 규칙을 사용하여 시스템 날짜 채우기

Oracle EssbasePlanning의 날짜를 숫자 값으로 저장합니다(예: 시작일 2021년 5월 21일은 20210521로 저장됨).

Essbase 데이터베이스를 사용하는 Planning 이외의 비즈니스 프로세스는 1970년 1월 1일 자정(Planning에서 날짜를 저장하는 방식과 다른 비숫자 형식) 이후 경과된 초 수를 사용하는 날짜 기능을 활용하여 해당 날짜를 저장합니다.

Essbase 날짜 형식을 Planning 형식으로 변환하여 Planning 날짜 멤버의 시스템 날짜(오늘의 날짜)를 채우는 양식에 사용할 수 있습니다.

예를 들어 양식의 계산을 사용하여 시스템 생성 날짜(현재 시스템 날짜 기준)를 Planning 멤버에 "Start_Date"로 동적으로 추가해야 한다고 가정합니다. 이러한 필요성은 예를 들어 새 계약이나 고객이 추가된 시기를 확인하기 위해 레코드에 대한 읽기 전용 비사용자 날짜 입력을 동적으로 추가해야 하는 감사 요구사항에서 비롯될 수 있습니다.

Essbase 날짜 값 2021년 5월 21일을 이에 상응하는 Planning 숫자 값으로 변환하려면 월에 100을 곱하고 연도에 10,100을 곱한 다음 이러한 계산 결과를 아래와 같이 일수에 더합니다.

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

결과를 Planning 멤버에 쓸 때까지 변수에 Essbase 날짜 요소를 유지하여 비즈니스 규칙에서 이 작업을 수행할 수 있습니다. 이를 위해 Essbase는 오늘 날짜 (@TODAY)를 추출하고 해당 날짜(@DATEPART)로부터 일, 월 또는 연도를 추출하는 데 도움이 되는 기능을 제공합니다.

다음 예에서는 @TODAY@DATEPART를 사용하여 시스템 날짜의 날짜, 월, 연도를 Essbase 형식으로 저장하는 변수를 생성하고, 계산을 수행하여 이를 Planning 날짜 형식으로 변환하고, Planning 날짜 형식을 변수에 저장하여 필요에 따라 "Start_Date"를 채우는 방법을 보여줍니다.

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;

다음과 유사한 구문을 사용하는 수식을 사용하여 시스템 날짜를 "Start_Date"로 멤버에 동적으로 추가할 수 있습니다.

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