C1-UBLINVOICEEXTRACT Extract Template

The C1-UBLINVOICEEXTRACT extract template is used to extract invoice details in the Universal Business Language (UBL) 2.1 XML format. It uses the C1-InvoiceChargeExtract business service to fetch the person details, bill segments, adjustments, and tax details with respect to the bills attached to the respective bill route types associated with the C1-UBLBILEX algorithm.

The C1-UBLINVOICEEXTRACT extract template has the following three types of field mappings:
  • Fields Starting with IN - Indicates the initial fields which are used as an input to fetch details corresponding to the C1-InvoiceChargeExtract business service.

  • Fields Starting with OUT_​INV - Indicates the extracted fields which contains the invoice information.

  • Fields Starting with OUT_​INV_​LIN - Indicates the extracted fields which contains the invoice line information.

The C1-UBLINVOICEEXTRACT extract template is mapped in the system as shown in the below table:

Extract Template Field Name Source Xpath Target Xpath Parameters/Default Values
IN_​ACCOUNT_​ID - ubl:Invoice/accountId PARAM(accountId)
IN_​ACCT_​NBR - ubl:Invoice/acctNbr PARAM(acctNbr)
IN_​BILLID_​IC C1-InvoiceChargeExtract/billId Invoice/InvoiceCharge/billId2 PARAM(billId)
IN_​PERSON_​ID - ubl:Invoice/personId PARAM(personId)
IN_​PER_​ID_​NUM - ubl:Invoice/personIdNbr PARAM(personIdNbr)
OUT_​INV_​CURRENCYCD C1-InvoiceChargeExtract/billCurrency ubl:Invoice/cbc:DocumentCurrencyCode -
OUT_​INV_​CURRENCY_​PYBLAMT C1-InvoiceChargeExtract/billCurrency ubl:Invoice/cac:LegalMonetaryTotal/cbc:PayableAmount/currency -
OUT_​INV_​CUSTADDR1 C1-InvoiceChargeExtract/receiver/address1 ubl:Invoice/cbc:custAdd1 -
OUT_​INV_​CUSTADDR2 C1-InvoiceChargeExtract/receiver/address2 ubl:Invoice/cbc:custAdd2 -
OUT_​INV_​CUSTADDR3 C1-InvoiceChargeExtract/receiver/address3 ubl:Invoice/cbc:custAdd3 -
OUT_​INV_​CUSTCITY C1-InvoiceChargeExtract/receiver/city ubl:Invoice/cbc:custCity -
OUT_​INV_​CUSTCOUNTRY C1-InvoiceChargeExtract/receiver/country ubl:Invoice/cbc:custCountry -
OUT_​INV_​CUSTMORNAME C1-InvoiceChargeExtract/receiver/legalName ubl:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name -
OUT_​INV_​CUSTPOSTAL C1-InvoiceChargeExtract/receiver/postal ubl:Invoice/cbc:custPostal -
OUT_​INV_​CUSTSTATE C1-InvoiceChargeExtract/receiver/state ubl:Invoice/cbc:custState -
OUT_​INV_​ID - ubl:Invoice/cbc:ID SCRIPT([IN_​BILLID_​IC=='' || IN_​BILLID_​IC=='0'],{ERROR(90003,282,IN_​BILLID_​IC,:CHAR_​DATE,'Error');IN_​BILLID_​IC})
OUT_​INV_​INVOICETYPECODE - ubl:Invoice/cbc:InvoiceTypeCode STANDARD
OUT_​INV_​ISSUEDT C1-InvoiceChargeExtract/billDate ubl:Invoice/cbc:IssueDate -
OUT_​INV_​CURRENCY_​TAX C1-InvoiceChargeExtract/billCurrency ubl:Invoice/cac:TaxTotal/cbc:TaxAmount/currencyID -
OUT_​INV_​TAXTOTAL C1-InvoiceChargeExtract/totalInvTaxes ubl:Invoice/cac:TaxTotal/cbc:TaxAmount -
OUT_​INV_​LIN_​AMT C1-InvoiceChargeExtract/invoicelineDtls/amount ubl:Invoice/cac:InvoiceLine/cbc:LineExtensionAmount -
OUT_​INV_​LIN_​CURRENCY_​LINEOUTAMT C1-InvoiceChargeExtract/billCurrency ubl:Invoice/cac:InvoiceLine/cbc:LineExtensionAmount/currency -
OUT_​INV_​LIN_​CURRENCY_​PRICE C1-InvoiceChargeExtract/billCurrency ubl:Invoice/cac:InvoiceLine/cac:Price/cbc:PriceAmount/currency -
OUT_​INV_​LIN_​ID C1-InvoiceChargeExtract/invoicelineDtls/lineNumber ubl:Invoice/cac:InvoiceLine/cbc:ID -
OUT_​INV_​LIN_​NOTE C1-InvoiceChargeExtract/invoicelineDtls/descr ubl:Invoice/cac:InvoiceLine/cbc:Note -
OUT_​INV_​LIN_​QUANTITY C1-InvoiceChargeExtract/invoicelineDtls/invoiceQuantity ubl:Invoice/cac:InvoiceLine/cbc:InvoicedQuantity -
OUT_​INV_​LIN_​UNITPRICE C1-InvoiceChargeExtract/invoicelineDtls/unitPrice ubl:Invoice/cac:InvoiceLine/cac:Price/cbc:PriceAmount -
OUT_​INV_​NAMESPACE - ubl:Invoice/xmlns:ap http://www.oracle.com/ap/invoice" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2
OUT_​INV_​NETAMTDUE C1-InvoiceChargeExtract/netDueAmt ubl:Invoice/cac:LegalMonetaryTotal/cbc:PayableAmount
OUT_​INV_​NOTE C1-InvoiceChargeExtract/receiver/name ubl:Invoice/cbc:Note SCRIPT([OUT_​INV_​PAYERFULLNAME=='true'],{'CONCAT(OUT_​INV_​PAYERFULLNAME||' '||OUT_​INV_​CUSTADDR1||' '||OUT_​INV_​CUSTADDR2||' '||OUT_​INV_​CUSTADDR3||' '||OUT_​INV_​CUSTCITY||' '||OUT_​INV_​CUSTSTATE||' '||OUT_​INV_​CUSTPOSTAL||' '||OUT_​INV_​CUSTCOUNTRY) ';'CONCAT(OUT_​INV_​CUSTADDR1||' '||OUT_​INV_​CUSTADDR2||' '||OUT_​INV_​CUSTADDR3||' '||OUT_​INV_​CUSTCITY||' '||OUT_​INV_​CUSTSTATE||' '||OUT_​INV_​CUSTPOSTAL||' '||OUT_​INV_​CUSTCOUNTRY) '})
OUT_​INV_​PAYERFULLNAME C1-InvoiceChargeExtract/receiver/name ubl:Invoice/cbc:payerFullName -
OUT_​INV_​SUPPLIERNAME C1-InvoiceChargeExtract/sender/legalName ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name -
OUT_​INV_​VERSIONID - ubl:Invoice/cbc:UBLVersionID 2.1
Note:

You should always create a new template or copy the existing template for additional field mapping.

You can use predefined functions/scripts to manipulate and enrich extract fields.

Related Topics

For more information on... See...
How to map fields for the UBL format Field Mapping for UBL Format