Inbound Interface using BIP Report

  • Create BIP Report, which will generate TXT File and place the same in UCM Server using BIP Bursting. Let’s try to create Loop back interface to create Unpaid Leave Absence Entry for Employees
  • Create two data sets. As shown below

  • For first data set use below query and write second data set as per requirement

    select r.call_id

    from pay_flow_task_instances fti,

    pay_flow_tasks_vl ft,

    pay_requests r

    where ft.flow_task_name = ‘Run BI Publisher Report’

    and ft.base_flow_task_id = fti.base_flow_task_id

    and fti.flow_task_instance_id = r.flow_task_instance_id

    and r.call_type= ‘ESS’

    and  fti.flow_task_instance_id = :TASK_INSTANCE_ID

    union

    select 1234

    from dual

    where :TASK_INSTANCE_ID is null

  • Write bursting query as below ā€“

    select to_char(call_id) as “KEY”,

    ‘PersonAbsenceEntry’ TEMPLATE,

    ‘en-US’ LOCALE,

    ‘TEXT’ OUTPUT_FORMAT,

    ‘WCC’ DEL_CHANNEL,

    ‘FA_UCM_PROVISIONED’ PARAMETER1,  /* Server Name */

    ‘FAFusionImportExport’ PARAMETER2,  /* Security Group */

    :xdo_user_name PARAMETER3,  /* Author of the File */

    ‘PersonAbsenceEntry’||to_char(call_id) PARAMETER5,  /* Title */

    ‘PersonAbsenceEntry.dat’ PARAMETER6,  /* Output File Name */

    :TASK_INSTANCE_ID PARAMETER7,  /* Comments (Optional) */

    ‘PersonAbsenceEntry’||to_char(call_id) PARAMETER8,   /* Content ID (Optional) If you specify the ID, it must be unique. If you don’t specify the ID, the system generates a unique one. */

    ‘FALSE’ PARAMETER9  /* Custom metadata (true/false). Specify ‘false’. */

    from

    (

    select r.call_id

    from pay_flow_task_instances fti

    ,pay_flow_tasks_vl ft

    ,pay_requests r

    where ft.flow_task_name = ‘Run BI Publisher Report’

    and ft.base_flow_task_id = fti.base_flow_task_id

    and fti.flow_task_instance_id = r.flow_task_instance_id

    and r.call_type= ‘ESS’

    and  fti.flow_task_instance_id = :TASK_INSTANCE_ID

    union

    select 1234

    from dual

    where :TASK_INSTANCE_ID is null

    )

     

  • Use EText Template to generate data in HDL format

  • Sample Report Output

  • Enable Report bursting as below ā€“

  • Create a Fast Formula which will take the above file and convert it in into corresponding HDL File (GENERATE_PERSON_ABSENCE_ENTRY_HDL_FF)

    /**********************************************************************************
    * FORMULA NAME: GENERATE_PERSON_ABSENCE_ENTRY_HDL_FF
    * FORMULA TYPE: HCM Data Loader
    *
    * DESCRIPTION: This formula will create PersonAbsenceEntry HDL File from TXT File
    *
    * CHANGE HISTORY:
    **********************************************************************************
    Version Date Created By Comments
    ———————————————————————–
    1.0 23-Apr-2021 Puneet Rajkumar Initial Version
    **********************************************************************************/

    /* 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),
    POSITION10 (text),
    POSITION11 (text),
    POSITION12 (text)

    DEFAULT FOR POSITION1 IS ‘NO DATA’
    DEFAULT FOR POSITION2 IS ‘NO DATA’
    DEFAULT FOR POSITION3 IS ‘NO DATA’
    DEFAULT FOR POSITION4 IS ‘NO DATA’
    DEFAULT FOR POSITION5 IS ‘NO DATA’
    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 POSITION10 IS ‘NO DATA’
    DEFAULT FOR POSITION11 IS ‘NO DATA’
    DEFAULT FOR POSITION12 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 = ‘1’
    RETURN OUTPUTVALUE
    )
    ELSE IF OPERATION = ‘METADATALINEINFORMATION’
    THEN
    ( METADATA1[1] = ‘PersonAbsenceEntry’ /*FileName*/ /*Reserved*/
    METADATA1[2] = ‘PersonAbsenceEntry’ /*FileDiscriminator*/ /*Reserved*/

    METADATA1[3] = ‘Employer’
    METADATA1[4] = ‘PersonNumber’
    METADATA1[5] = ‘AbsenceTypeId’
    METADATA1[6] = ‘AbsenceStatus’
    METADATA1[7] = ‘ApprovalStatus’
    METADATA1[8] = ‘StartDate’
    METADATA1[9] = ‘StartTime’
    METADATA1[10] = ‘EndDate’
    METADATA1[11] = ‘EndTime’
    METADATA1[12] = ‘AbsenceType’
    METADATA1[13] = ‘StartDateDuration’
    METADATA1[14] = ‘EndDateDuration’
    RETURN METADATA1
    )

    ELSE IF OPERATION=’MAP’
    THEN
    (
    /*HDL Related Outputs*/
    IF LINEREPEATNO = 1
    THEN
    ( IF POSITION2 <> ‘PersonNumber’
    THEN
    ( LINEREPEAT = ‘Y’
    FileName = ‘PersonAbsenceEntry’
    BusinessOperation = ‘MERGE’
    FileDiscriminator = ‘PersonAbsenceEntry’

    Employer = trim(POSITION1)
    PersonNumber = trim(POSITION2)
    AbsenceTypeId = trim(POSITION3)
    AbsenceStatus = trim(POSITION4)
    ApprovalStatus = trim(POSITION5)
    StartDate = trim(POSITION6)
    StartTime = trim(POSITION7)
    EndDate = trim(POSITION8)
    EndTime = trim(POSITION9)
    AbsenceType = trim(POSITION10)
    StartDateDuration = trim(POSITION11)
    EndDateDuration = trim(POSITION12)

    RETURN BusinessOperation,FileName,FileDiscriminator,Employer,PersonNumber,AbsenceTypeId,AbsenceStatus,ApprovalStatus,StartDate,StartTime,EndDate,EndTime,
    AbsenceType,StartDateDuration,EndDateDuration,
    LINEREPEAT,LINEREPEATNO
    )
    )
    )
    ELSE
    OUTPUTVALUE=’NONE’
    RETURN OUTPUTVALUE
    /* End Formula Text */

  • Now we will start configuring the Custom Payroll Flow Pattern named “Generate and Load Loop Back Unpaid Data”

    Navigation-> My Client Groups -> Payroll ->(Administration) Payroll Flow Patterns -> Copy (Load Data from File)

    Once we copy the flow from “Load Data From File” we should give a new name to the custom flow (“Generate and Load Loop Back Unpaid Data”) and once done we should add a new task name “Run BI Publisher Report”

  • We will now need to set/edit the properties of “Run BI Publisher Report” Task (once you click on the “Go To Task” you would be taken to the parameters page. The details of the parameters are mentioned below
Name  Parameter Basis  Value 
First Argument Context Binding Payroll Task
Legislative Data Group Context Binding Legislative data group
Report Name Constant Bind PersonAbsenceEntry
Report Path Constant Bind /Custom/Practice Samples/ PersonAbsenceEntry.xdo
  • Now we would be required to change the Parameter properties of “Content ID” parameter of “Generate Data Loader File” Task
Name  Parameter Basis  Value 
Content Id Post SQL Bind select ‘PersonAbsenceEntry’||to_char(CALL_ID) from pay_flow_task_instances fti,pay_flow_tasks_vl ft,pay_requests r where ft.flow_task_name = ‘Run BI Publisher Report’ and ft.base_flow_task_id = fti.base_flow_task_id and fti.flow_task_instance_id = r.flow_task_instance_id and r.call_type= ‘ESS’ and fti.flow_instance_id = :pFlowInstanceId

  • Arrange the Task Sequence as show in below image

  • Change the properties of “Content Id” parameter of payroll flow
Name  Display Parameter Basis  Value 
Content Id No Post SQL Bind select ‘PersonAbsenceEntry’||to_char(CALL_ID) from pay_flow_task_instances fti,pay_flow_tasks_vl ft,pay_requests r where ft.flow_task_name = ‘Run BI Publisher Report’ and ft.base_flow_task_id = fti.base_flow_task_id and fti.flow_task_instance_id = r.flow_task_instance_id and r.call_type= ‘ESS’ and fti.flow_instance_id = :pFlowInstanceId

  • Ensure that the *LDG Required Attribute is set to optional. By default it is set to “Yes”. If it is so then the same should be changed as shown below::

  • As part of verification try to submit the newly created Custom Payroll Flow Pattern

Navigation: My Client Groups -> Payroll-> (Flow Submission and Results) Submit a Flow -> Generate and Load Data

Leave a Reply

Your email address will not be published. Required fields are marked *