Customizing Oracle Payments XML extract to include Custom XML Tags

Oracle has provided an extensible user hook “IBY_FD_EXTRACT_EXT_PUB” to add custom tags as part of seeded payment XML extract generated by Oracle Payment process.

This hook allows custom elements to be created at following levels.

  1. Instruction
  2. Payment
  3. Document Payable
  4. Document Payable Line
  5. Payment Process Request

You cannot customize the package specification, but package body contains stubbed functions that you can customize.

Function Name Usage Level
Get_Ins_Ext_Agg This function allows XML element to be introduced at instruction level and run only once for the instruction
Get_Pmt_Ext_Agg This function allows XML element to be introduced at payment level and run once for each payment in the instruction
Get_Doc_Ext_Agg This function allows XML element to be introduced at document payable level and run once for each document payable in the instruction.
Get_Docline_Ext_Agg This function allows XML element to be introduced at document payable line level and run once for each document payable line in the instruction
Get_Ppr_Ext_Agg This function allows XML element to be introduced at document payable level and run once for each payment process request

Custom tags should be created as SQLX XML Aggregate and return the aggregate, below is the sample code

Sample code to add custom tags to IBY_FD_EXTRACT_EXT_PUB

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
FUNCTION Get_Ins_Ext_Agg(
      p_payment_instruction_id IN NUMBER)
    RETURN XMLTYPE
IS
    l_return_xml XMLTYPE;
BEGIN
SELECT XMLCONCAT (XMLELEMENT ("XX_CUSTOM_TAGS",
                              XMLELEMENT ("TAG1", l_var1),
                              XMLELEMENT ("TAG2", l_var2),
                              XMLELEMENT ("TAG3", l_var2)
                             )
                 )
  INTO l_return_xml
  FROM DUAL; --add sql logic to derive values for custom variables l_var1..2..3
 
RETURN (l_return_xml);
END;

Sample Custom Tags Output:
CustomTags_Output

Drop a comment if you have any questions in extending this user hook.