複数のビジネス・オブジェクトの給与変換Formulaのサンプル
この例では、Formulaでユーザー定義表および個人支払方法ビジネス・オブジェクトが使用されています。 フラット・ファイルの個人番号をアサイメント番号に変換し、METADATALINEINFORMATION
およびNUMBEROFBUSINESSOBJECTS
操作を使用します。
次に、未加工の入力ファイルのサンプルを示します。
PPM|2018/04/04|1|ZHRX_VS_US_TPPI_LDG_ONE|955160008191423|ZHRX_VS_US_TPPI_Check|PPM1|M|10
UDT|SM_UDT_4|Range|Number|Test UDT|USA LDG
そして、このコード・スニペットにはこの例のFormulaが含まれます。
/**********************************************************
FORMULA NAME: Load User Defined Table and Personal Payment Method
FORMULA TYPE: HCM Data Loader
*************************************************************/
/* Inputs */
INPUTS ARE OPERATION (text), LINENO (number), LINEREPEATNO (number),POSITION1 (text), POSITION2 (text), POSITION3 (text), POSITION4 (text), POSITION5 (text), POSITION6 (text), POSITION7 (text), POSITION8 (text),POSITION9 (text)
DEFAULT FOR POSITION1 IS 'NO DATA'
DEFAULT FOR POSITION2 IS 'NO DATA'
DEFAULT FOR POSITION3 IS 'NO DATA'
DEFAULT FOR POSITION4 IS '2'
DEFAULT FOR POSITION5 IS '100'
DEFAULT FOR POSITION6 IS 'NO DATA'
DEFAULT FOR POSITION7 IS 'NO DATA'
DEFAULT FOR POSITION8 IS 'NO DATA'
DEFAULT FOR POSITION9 IS 'NO DATA'
DEFAULT FOR LINEREPEATNO IS 1
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] = 'UserDefinedTable' /*FileName*/
METADATA1[2] = 'UserDefinedTable' /*FileDiscriminator*/
METADATA1[3] = 'UserTableCode'
METADATA1[4] = 'RangeOrMatch'
METADATA1[5] = 'UserKeyUnits'
METADATA1[6] = 'UserRowTitle'
METADATA1[7] = 'UserTableName'
METADATA1[8] = 'LegislativeDataGroupName'
METADATA2[1] = 'PersonalPaymentMethod' /*FileName*/
METADATA2[2] = 'PersonalPaymentMethod' /*FileDiscriminator*/
METADATA2[3] = 'EffectiveStartDate'
METADATA2[4] = 'PersonalPaymentMethodCode'
METADATA2[5] = 'AssignmentNumber'
METADATA2[6] = 'Amount'
METADATA2[7] = 'ProcessingOrder'
METADATA2[8] = 'OrganizationPaymentMethodCode'
METADATA2[9] = 'PaymentAmountType'
METADATA2[10] = 'LegislativeDataGroupName'
RETURN METADATA1, METADATA2
)
ELSE IF OPERATION='MAP' THEN
IF POSITION1='UDT' THEN
(
FileName = 'UserDefinedTable'
BusinessOperation = 'MERGE'
FileDiscriminator = 'UserDefinedTable'
UserTableCode = POSITION2
IF POSITION3='Range' THEN
(
RangeOrMatch = 'R'
)
IF POSITION4='Number' THEN
(
UserKeyUnits = 'N'
)
UserRowTitle = POSITION5
UserTableName = POSITION2
LegislativeDataGroupName = POSITION6
RETURN BusinessOperation,FileDiscriminator,FileName,UserTableCode,RangeOrMatch,UserKeyUnits,UserRowTitle,UserTableName,LegislativeDataGroupName
)
IF POSITION1='PPM' THEN
(
FileName = 'PersonalPaymentMethod'
BusinessOperation = 'MERGE'
FileDiscriminator = 'PersonalPaymentMethod'
EffectiveStartDate=POSITION2
ProcessingOrder=POSITION3
LegislativeDataGroupName=POSITION4
AssignmentNumber=GET_VALUE_SET('SAMPLE_GET_ASG_NUM','|=PERSON_NUMBER='''||POSITION5||'''')
OrganizationPaymentMethodCode=POSITION6
PersonalPaymentMethodCode=POSITION7
PaymentAmountType=POSITION8
Amount=POSITION9
RETURN BusinessOperation,FileName,FileDiscriminator,EffectiveStartDate,PersonalPaymentMethodCode,AssignmentNumber,Amount,ProcessingOrder,OrganizationPaymentMethodCode,PaymentAmountType,LegislativeDataGroupName
)
ELSE
OUTPUTVALUE='NONE'
RETURN OUTPUTVALUE
/* End Formula Text */
ノート: 値セットをデバッグするには、必要なデータを返すようにこの問合せを使用してBIレポートを作成します。
SELECT pay_ff_functions.gvs ('SAMPLE_GET_ASG_NUM','|=PERSON_ID=100000012092216') value FROM dual;