Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 7

/***********************************************************

FORMULA NAME : AZ_PY_WITHDRAW_FEEDBACK_FF


FORMULA TYPE : HCM Data Loader
Description : Fast Formula to transform and generate HDL file to create / update /
Element Entry.
Change History:
Name Date Comments
-----------------------------------------------------------------------------------
------
Tanweer Hasnain JAN 27, 2021 Initial Version
Salman Khan APR 19, 2023 HCMA-3271: Added logic to include refunds
by changing start date
***********************************************************************************
******/
/* Inputs */
INPUTS ARE OPERATION (text),
LINENO (number),
POSITION1 (text),
POSITION2 (text),
POSITION3 (text),
POSITION4 (text),
LINEREPEATNO (number)
DEFAULT FOR LINEREPEATNO IS 1
DEFAULT FOR LINENO IS 1
DEFAULT FOR POSITION1 IS 'NO DATA'
DEFAULT FOR POSITION2 IS 'NO DATA'
DEFAULT FOR POSITION3 IS 'NO DATA'
DEFAULT FOR POSITION4 IS '1900/01/01'
DEFAULT FOR GLOBAL_PAY_INTERFACE_EXTRACTION_DATE IS ' '

MESSAGE = 'LINE ERRORS: '


MESSAGELEVEL = 'S'
LINEREPEAT = 'N'
L_PRINT_LOG = 'Y'
l_sysdate = GLOBAL_PAY_INTERFACE_EXTRACTION_DATE

RET = ESS_LOG_WRITE('Salman Sysdate : '|| l_sysdate)

L_EE_DETAILS = 'X'
L_PAY_DETAILS = 'X'
L_ELEMENT_NAME = 'X'
L_CLD_ENTRY_COUNT = '1'
L_BUS_OP = 'MERGE'

L_CREATOR_TYPE = 'H'
L_REPLACE_ENDDATE = 'Y'
L_ENTRY_TYPE = 'E'

L_EFF_ST_DT = '1900/01/01'
L_EFF_END_DT = '1900/01/01'
L_ASG_NUMBER = 'XXXX'
L_ELEMENT_NAME = 'XXXX'
L_LDG = 'XXXX'
L_MEC = '1'
L_LMEC = 1

L_INP_VAL_NAME = 'XXXX'
L_INP_VAL = 'XXXX'
L_PAY_END_DATE_C = '1900/01/01'
L_PAY_END_DATE = '1900/01/01'
L_PAY_START_DATE = '1900/01/01'
L_PAY_START_DATE_C = '1900/01/01'
l_udt_value = 'NOT FOUND'
l_effective_date = '1900/01/01' (date)
l_current_date = '1900/01/01' (date)
l_start_date = '1900/01/01'
l_end_date = '1900/01/01'
l_period_date_char = 'N'
l_period_date = '0'

RET = ESS_LOG_WRITE('Enterning AZ_PY_WITHDRAW_FEEDBACK_FF ')


IF OPERATION='FILETYPE' THEN
OUTPUTVALUE='DELIMITED'
ELSE IF OPERATION='DELIMITER' THEN
OUTPUTVALUE='|'
ELSE IF OPERATION='READ' THEN
OUTPUTVALUE='NONE'
ELSE IF OPERATION = 'NUMBEROFBUSINESSOBJECTS' THEN
(
OUTPUTVALUE = '2'
RETURN OUTPUTVALUE
)
ELSE IF OPERATION = 'METADATALINEINFORMATION' THEN
(
METADATA1[1] = 'ElementEntry'
METADATA1[2] = 'ElementEntry'
METADATA1[3] = 'EffectiveStartDate'
METADATA1[4] = 'MultipleEntryCount'
METADATA1[5] = 'AssignmentNumber'
METADATA1[6] = 'CreatorType'
METADATA1[7] = 'ElementName'
METADATA1[8] = 'LegislativeDataGroupName'
METADATA1[9] = 'EntryType'
METADATA1[10] = 'ReplaceLastEffectiveEndDate'
METADATA1[11] = 'EffectiveEndDate'
METADATA2[1] = 'ElementEntry' /*FileName*/
METADATA2[2] = 'ElementEntryValue' /*FileDiscriminator*/
METADATA2[3] = 'LegislativeDataGroupName'
METADATA2[4] = 'EffectiveStartDate'
METADATA2[5] = 'EffectiveEndDate'
METADATA2[6] = 'ElementName'
METADATA2[7] = 'MultipleEntryCount'
METADATA2[8] = 'AssignmentNumber'
METADATA2[9] = 'InputValueName'
METADATA2[10] = 'ScreenEntryValue'
METADATA2[11] = 'EntryType'
METADATA2[12] = 'ReplaceLastEffectiveEndDate'
RETURN METADATA1,METADATA2
)
ELSE IF OPERATION = 'MAP' THEN
(
/*Batch Related Outputs*/
FileName = 'ElementEntry'
LegislativeDataGroupName = 'US Legislative Data Group'
l_effective_date = TO_DATE(POSITION4,'YYYY/MM/DD')
l_current_date = get_current_date()
l_start_date = POSITION4
/*EffectiveEndDate = '#NULL'*/
l_null='#NULL'
L_ASG_NBR
=GET_VALUE_SET('AZ_PY_CURRENT_ASG_NUMBER_AND_PAYROLL_ID','|=P_PERSON_NUMBER='''||
POSITION1||''''||'|P_EFFECTIVE_DATE='''||TO_CHAR(l_effective_date,'YYYY/MM/
DD')||'''')
IF IS_TEXT_NULL(L_ASG_NBR) = 'N' THEN
(
AssignmentNumber = POSITION1
)
ELSE
(
AssignmentNumber = substr( L_ASG_NBR, 1, instr(L_ASG_NBR,'|')-1)
l_payroll_id = substr( L_ASG_NBR, instr(L_ASG_NBR,'|')+1)

l_period_date_char = 'N'||GET_VALUE_SET('AZ_PY_PERIOD_START_DATE','|
=P_PAYROLL_ID='''||l_payroll_id||''''||'|P_EFFECTIVE_DATE='''||
TO_CHAR(l_current_date,'YYYY/MM/DD')||'''')
)
IF l_period_date_char <> 'N' THEN
(
l_period_date = substr(l_period_date_char,2)

l_start_date = substr( l_period_date, 1, instr(l_period_date,'|')-1)


l_end_date = substr( l_period_date, instr(l_period_date,'|')
+1)
)

InputValueName = 'Amount'
MultipleEntryCount = 1
EntryType = 'E'
change = SUBSTR(POSITION1,1,3)
BusinessOperation = 'MERGE'
l_value=POSITION2
IF POSITION2<>'STR' THEN
(
l_udt_value = GET_VALUE_SET('AZ_PY_GET_UDT_ELEMENT_VALUE','|
=P_ELEMENT_CODE='''||POSITION2||''''||'|P_EFFECTIVE_DATE='''||
TO_CHAR(l_effective_date,'YYYY/MM/DD')||'''')
)
ELSE
(
l_udt_value ='STR'
)
ElementName = l_udt_value
ScreenEntryValue = POSITION3
RET = ESS_LOG_WRITE('Enterning Element Name BLock Person Number'||
POSITION1)
IF IS_TEXT_NULL(ElementName) = 'Y' THEN
( /* Element available in Cloud */
RET = ESS_LOG_WRITE('Entered Element Name BLock
Person Number'||POSITION1)
L_EE_DETAILS =
GET_VALUE_SET('AZ_PAY_MULTIPLE_ENTRY_COUNT_VS','|=P_ASSIGNMENT_NUMBER='''||
L_ASG_NBR||''''||'|P_ELEMENT_NAME='''||ElementName||''''||'|P_EFFECTIVE_DATE='''||
TO_CHAR(l_current_date,'YYYY/MM/DD')||'''')
IF IS_TEXT_NULL(L_EE_DETAILS) = 'Y' and ElementName
<> 'STR' THEN
( /* Corresponding Element Entry exists in Cloud */
RET = ESS_LOG_WRITE('Entered EE Details BLock Person
Number'||POSITION1)
L_CLD_ENTRY_COUNT =
TRIM(SUBSTR(L_EE_DETAILS,1,INSTR(L_EE_DETAILS,'|',1,1)-1))
L_CLD_START_DATE_C=
TRIM(SUBSTR(SUBSTR(L_EE_DETAILS,INSTR(L_EE_DETAILS,'|',1,1)+1),1,INSTR(SUBSTR(L_EE_
DETAILS,INSTR(L_EE_DETAILS,'|',1,1)+1),'|',1,1)-1))
L_CLD_END_DATE_C =
TRIM(SUBSTR(L_EE_DETAILS,INSTR(L_EE_DETAILS,'|',1,2)+1))
L_CLD_START_DATE =
TO_DATE(L_CLD_START_DATE_C,'YYYY/MM/DD')
L_CLD_END_DATE =
TO_DATE(L_CLD_END_DATE_C,'YYYY/MM/DD')
IF NOT
WSA_EXISTS('MEC'||POSITION1||ElementName) and LINEREPEATNO=2 THEN
(

WSA_SET('MEC'||POSITION1||ElementName,1)
)
ELSE
(
IF
WSA_EXISTS('MEC'||POSITION1||ElementName)THEN
(

LINEREPEAT = 'N'
RETURN
LINEREPEAT,LINEREPEATNO
)
)

IF TO_DATE(l_end_date) <
L_CLD_START_DATE THEN
l_end_date =
L_CLD_END_DATE_C

IF L_PRINT_LOG =
'Y' THEN
(
RET =
ESS_LOG_WRITE('L_CLD_ENTRY_COUNT : ' || L_CLD_ENTRY_COUNT)
RET =
ESS_LOG_WRITE('L_CLD_START_DATE_C : ' || L_CLD_START_DATE_C)
RET =
ESS_LOG_WRITE('L_CLD_END_DATE_C : ' || L_CLD_END_DATE_C)
RET =
ESS_LOG_WRITE('ScreenEntryValue : ' || ScreenEntryValue)

IF ScreenEntryValue = '0' THEN


(

RET =
ESS_LOG_WRITE('Inside L_ACTION : ' || 'END')
L_ACTION ='END'
L_MEC =
L_CLD_ENTRY_COUNT
EffectiveStartDate =
L_CLD_START_DATE_C

EffectiveEndDate =
l_end_date
MultipleEntryCount =
TO_NUMBER(L_MEC)

ReplaceLastEffectiveEndDate ='Y'

)
ELSE IF l_effective_date >=
L_CLD_START_DATE AND l_effective_date <= L_CLD_END_DATE THEN
(
RET =
ESS_LOG_WRITE('Inside L_ACTION : ' || 'UPDATE')

L_ACTION
='UPDATE'
L_MEC =
L_CLD_ENTRY_COUNT

EffectiveStartDate = L_CLD_START_DATE_C

EffectiveEndDate = l_end_date

MultipleEntryCount = TO_NUMBER(L_MEC)

ReplaceLastEffectiveEndDate ='Y'
)
ELSE
(

IF L_PRINT_LOG = 'Y'
THEN
(
RET =
ESS_LOG_WRITE('Inside L_ACTION : ' || 'ELSE UPDATE')
)
MESSAGE = MESSAGE
|| 'No Valid transaction found in cloud.'
MESSAGELEVEL = 'W'
RETURN LINENO,
MESSAGELEVEL, MESSAGE
)
)/* END Corresponding Element Entry exists in Cloud
*/
ELSE IF ElementName = 'STR' THEN
/*IS_TEXT_NULL(L_EE_DETAILS) = 'N' */

(
IF ScreenEntryValue <> '0' and
ElementName = 'STR' THEN
(
IF( LINEREPEATNO=1 ) THEN

IF NOT WSA_EXISTS('MEC'||POSITION1) THEN

L_MEC =
GET_VALUE_SET('AZ_PAY_LATEST_MULTIPLE_ENTRY_COUNT_VS','|=P_ASSIGNMENT_NUMBER='''||
L_ASG_NBR||''''||'|P_ELEMENT_NAME='''||ElementName||'''')

L_LMEC = TO_NUMBER(L_MEC)

ELSE

L_LMEC = WSA_GET('MEC'||POSITION1, 1)

IF L_LMEC > 0 THEN

MultipleEntryCount = L_LMEC + 1

ELSE

MultipleEntryCount = 1

WSA_SET('MEC'||POSITION1,MultipleEntryCount)

)ELSE

MultipleEntryCount = WSA_GET('MEC'||POSITION1, 1)

)
L_ACTION ='CREATE'
EffectiveStartDate =
POSITION4

ReplaceLastEffectiveEndDate ='Y'
)
ELSE IF ScreenEntryValue = '0' THEN
(

MESSAGE = MESSAGE
|| 'Received end date txn, but no entry exists in cloud for '
MESSAGELEVEL = 'W'
RETURN LINENO,
MESSAGELEVEL, MESSAGE
)ELSE IF ElementName <> 'STR' THEN
(
LINEREPEAT = 'N'
RETURN
LINEREPEAT,LINEREPEATNO
)
)ELSE(
LINEREPEAT = 'N'
RETURN LINEREPEAT,LINEREPEATNO
)
)
IF( LINEREPEATNO=1 ) THEN
(
IF(change <>'UCM') THEN
(
FileDiscriminator = 'ElementEntry'
CreatorType = 'H'
ElementName = l_udt_value
LINEREPEAT = 'Y'
BusinessOperation = 'MERGE'
)
RETURN
BusinessOperation,FileName,FileDiscriminator,EffectiveStartDate,EffectiveEndDate,Mu
ltipleEntryCount,AssignmentNumber,CreatorType,ElementName,LegislativeDataGroupName,
EntryType,ReplaceLastEffectiveEndDate,LINEREPEAT,LINEREPEATNO
)
/*METADATA|ElementEntryValue|LegislativeDataGroupName|EffectiveStartDate|
EffectiveEndDate|ElementName|MultipleEntryCount|AssignmentNumber|InputValueName|
ScreenEntryValue|EntryType MERGE|ElementEntryValue|IN Legislative Data Group|
2019/12/08|4712/12/31|ABC Element Name|1|E509|test|Grade Change|E*/
IF( LINEREPEATNO=2 ) THEN
(
IF(change <>'UCM') THEN
(
FileDiscriminator =
'ElementEntryValue'
ElementName = l_udt_value
LINEREPEAT = 'N'
BusinessOperation = 'MERGE'
ReplaceLastEffectiveEndDate ='Y'
)
RETURN
BusinessOperation,FileDiscriminator,FileName,LegislativeDataGroupName,EffectiveStar
tDate,EffectiveEndDate,ElementName,MultipleEntryCount,AssignmentNumber,InputValueNa
me,ScreenEntryValue,EntryType,ReplaceLastEffectiveEndDate,LINEREPEAT,LINEREPEATNO
)
)
ELSE OUTPUTVALUE = 'NONE'
RET = ESS_LOG_WRITE('Leaving AZ_PY_WITHDRAW_FEEDBACK_FF ')

RETURN OUTPUTVALUE

You might also like