0% found this document useful (0 votes)
29 views

Updated Data Model

This document defines SQL queries and cursors to retrieve and process transaction data from various tables for the purpose of generating an XML file. It includes queries to get customer, billing, shipping and transaction data from different reference tables and then combines the results to populate fields for an XML output.

Uploaded by

adeel25.ch1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

Updated Data Model

This document defines SQL queries and cursors to retrieve and process transaction data from various tables for the purpose of generating an XML file. It includes queries to get customer, billing, shipping and transaction data from different reference tables and then combines the results to populate fields for an XML output.

Uploaded by

adeel25.ch1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 27

/* Formatted on 15/07/2020 19:28:07 (QP5 v5.215.12089.

38647) */
DECLARE
CURSOR trx_cursor
IS
(SELECT trx.customer_trx_id, trx.trx_number
FROM ar_document_transfers adt, ra_customer_trx_all trx
WHERE adt.source_id = trx.customer_trx_id
AND ( trx.ready_for_xml_delivery_flag IS NULL
OR trx.ready_for_xml_delivery_flag != 'Y')
AND adt.request_id = :request_id);

/*-- Changes by Mallik - Start -- */

CURSOR trx_cursor_update
IS
(SELECT trx.customer_trx_id, trx.trx_number
FROM ar_document_transfers adt, ra_customer_trx_all trx
WHERE adt.source_id = trx.customer_trx_id
AND adt.request_id = :request_id
AND EXISTS (SELECT 'Y' FROM AR_EXTENSION_ATTRIBUTES AEA
WHERE AEA.EXTN_ENTITY_ID = trx.customer_trx_id)
);
/*-- Changes by Mallik - End -- */

l_return_status VARCHAR2 (30);


l_msg_count NUMBER;
l_msg_data VARCHAR2 (2000);
msg_rec FND_MESSAGE.MSG_REC_TYPE;
err_count NUMBER := 0;

attr_count NUMBER := 0;
i NUMBER := 0;
ext_attr_err ARP_UTIL.EXT_ATTR_ERROR_RECORD;
ext_attr_err_tbl ARP_UTIL.EXT_ATTR_ERROR_TBL_TYPE;

lc_party_uq_name hz_parties.party_unique_name%TYPE;

TYPE refcursor IS REF CURSOR;

xdo_cursor refcursor;

CURSOR party_cursor (
p_customer_trx_id NUMBER)
IS
SELECT rct.trx_number XX_INVOICE_NUMBER,
TO_CHAR (rct.trx_date,
'dd-Mon-yyyy',
'NLS_DATE_LANGUAGE=ENGLISH')
xx_invoice_date,
DECODE (
(SELECT gcc.segment1
FROM ar_ref_accounts_all araa,
ra_cust_trx_types_all rctta,
gl_code_combinations gcc,
ra_cust_trx_types_all types
WHERE araa.source_ref_table = 'RA_CUST_TRX_TYPES_ALL'
AND araa.source_ref_account_id =
rctta.cust_trx_type_seq_id
AND rctta.cust_trx_type_seq_id =
types.cust_trx_type_seq_id
AND gcc.code_combination_id = araa.rev_ccid
AND rct.cust_trx_type_seq_id =
types.cust_trx_type_seq_id
AND ROWNUM = 1),
'1101', 'Archrock Services, L.P.',
'1219', 'Archrock Partners Operating LLC')
XX_remit_to,
'P.O. BOX 201160' XX_Remit_To_Address1,
'DALLAS' XX_remit_to_city,
'TX' xx_remit_to_state,
'75320-1160' xx_remit_to_postal_code,
'Dallas' xx_remit_to_county,
'United States' xx_remit_to_country,
DECODE (
(SELECT gcc.segment1
FROM ar_ref_accounts_all araa,
ra_cust_trx_types_all rctta,
gl_code_combinations gcc,
ra_cust_trx_types_all types
WHERE araa.source_ref_table = 'RA_CUST_TRX_TYPES_ALL'
AND araa.source_ref_account_id =
rctta.cust_trx_type_seq_id
AND rctta.cust_trx_type_seq_id =
types.cust_trx_type_seq_id
AND gcc.code_combination_id = araa.rev_ccid
AND rct.cust_trx_type_seq_id =
types.cust_trx_type_seq_id
AND ROWNUM = 1),
'1101', '079845172',
'1219', '806506437')
XX_DUNS,
DECODE (
(SELECT gcc.segment1
FROM ar_ref_accounts_all araa,
ra_cust_trx_types_all rctta,
gl_code_combinations gcc,
ra_cust_trx_types_all types
WHERE araa.source_ref_table = 'RA_CUST_TRX_TYPES_ALL'
AND araa.source_ref_account_id =
rctta.cust_trx_type_seq_id
AND rctta.cust_trx_type_seq_id =
types.cust_trx_type_seq_id
AND gcc.code_combination_id = araa.rev_ccid
AND rct.cust_trx_type_seq_id =
types.cust_trx_type_seq_id
AND ROWNUM = 1),
'1101', 'Archrock Services, L.P.',
'1219', 'Archrock Partners Operating LLC')
xx_legal_entity_name,
(SELECT loc.address1
FROM XLE_REGISTRATIONS reg, HZ_LOCATIONS loc
WHERE 1 = 1
AND reg.SOURCE_ID = xep.LEGAL_ENTITY_ID
AND loc.location_id = reg.LOCATION_ID)
xx_le_address_line_1,
(SELECT loc.address2
FROM XLE_REGISTRATIONS reg, HZ_LOCATIONS loc
WHERE 1 = 1
AND reg.SOURCE_ID = xep.LEGAL_ENTITY_ID
AND loc.location_id = reg.LOCATION_ID)
xx_le_address_line_2,
(SELECT loc.city
FROM XLE_REGISTRATIONS reg, HZ_LOCATIONS loc
WHERE 1 = 1
AND reg.SOURCE_ID = xep.LEGAL_ENTITY_ID
AND loc.location_id = reg.LOCATION_ID
AND ROWNUM = 1)
xx_le_city,
(SELECT loc.state
FROM XLE_REGISTRATIONS reg, HZ_LOCATIONS loc
WHERE 1 = 1
AND reg.SOURCE_ID = xep.LEGAL_ENTITY_ID
AND loc.location_id = reg.LOCATION_ID
AND ROWNUM = 1)
xx_le_state,
(SELECT loc.POSTAL_CODE
FROM XLE_REGISTRATIONS reg, HZ_LOCATIONS loc
WHERE 1 = 1
AND reg.SOURCE_ID = xep.LEGAL_ENTITY_ID
AND loc.location_id = reg.LOCATION_ID
AND ROWNUM = 1)
xx_le_POSTAL_CODE,
(SELECT loc.COUNTY
FROM XLE_REGISTRATIONS reg, HZ_LOCATIONS loc
WHERE 1 = 1
AND reg.SOURCE_ID = xep.LEGAL_ENTITY_ID
AND loc.location_id = reg.LOCATION_ID
AND ROWNUM = 1)
xx_le_COUNTY,
(SELECT loc.COUNTrY
FROM XLE_REGISTRATIONS reg, HZ_LOCATIONS loc
WHERE 1 = 1
AND reg.SOURCE_ID = xep.LEGAL_ENTITY_ID
AND loc.location_id = reg.LOCATION_ID
AND ROWNUM = 1)
XX_LE_COUNTRY,
(SELECT meaning
FROM fnd_lookup_values flv11
WHERE flv11.lookup_type = 'XX_CUST_BILLER_NUMBER'
AND flv11.lookup_code = BILL_HCA.attribute3)
XX_BILLER_Contact_Name,
(SELECT DESCRIPTION
FROM fnd_lookup_values flv11
WHERE flv11.lookup_type = 'XX_CUST_BILLER_NUMBER'
AND flv11.lookup_code = BILL_HCA.attribute3)
XX_Biller_Email_Address,
BILL_HP.PARTY_NAME xx_Bill_To_Customer_Name,
BILL_HCA.account_number xx_Bill_To_Cust_Acct_Number,
BILL_HP.DUNS_NUMBER_C XX_CUSTOMER_DUNS,
BILL_LOC.ADDRESS1 xx_BILL_TO_ADDRESS1, --
BILL_LOC.ADDRESS2 xx_BILL_TO_ADDRESS2, --
BILL_LOC.CITY xx_BILL_TO_CITY, --
BILL_LOC.STATE xx_BILL_TO_STATE, --
BILL_LOC.POSTAL_CODE xx_BILL_TO_POSTAL_CODE, --
BILL_LOC.COUNTY xx_BILL_TO_COUNTY, --
BILL_LOC.COUNTRY xx_BILL_TO_COUNTRY,
SHIP_HP.PARTY_NAME xx_SHIP_TO_CUSTOMER_NAME,
SHIP_HCA.account_number xx_SHIP_TO_CUST_acct_number,
SHIP_LOC.ADDRESS1 xx_SHIP_TO_ADDRESS1, --
SHIP_LOC.ADDRESS2 xx_SHIP_TO_ADDRESS2, --
SHIP_LOC.CITY xx_SHIP_TO_CITY, --
SHIP_LOC.POSTAL_CODE xx_SHIP_TO_POSTAL_CODE, --
SHIP_LOC.COUNTY xx_SHIP_TO_COUNTY, --
SHIP_LOC.COUNTRY xx_SHIP_TO_COUNTRY, --
SHIP_LOC.STATE XX_SHIP_TO_STATE, --
SHIP_LOC.PROVINCE XX_SHIP_TO_PROVINCE,
rct.TRX_CLASS xx_invoice_type,
rct.PURCHASE_ORDER xx_PURCHASE_ORDER,
(SELECT sales_order
FROM RA_CUSTOMER_TRX_LINES_ALL rctla
WHERE rctla.customer_trx_id = rct.customer_trx_id
AND ROWNUM = 1)
xx_sales_order,
rct.INVOICE_CURRENCY_CODE xx_INVOICE_CURRENCY_CODE,
--
DECODE (
(SELECT name
FROM RA_BATCH_SOURCES_ALL rbsa
WHERE rbsa.batch_source_seq_id =
rct.batch_source_seq_id
AND ROWNUM = 1),
'Distributed Order Orchestration', (SELECT ATTRIBUTE10
FROM
RA_CUSTOMER_TRX_LINES_ALL
WHERE CUSTOMER_TRX_ID =

rct.CUSTOMER_TRX_ID
AND LINE_TYPE =
'LINE'
AND ROWNUM = 1),
(SELECT ATTRIBUTE14
FROM RA_CUSTOMER_TRX_LINES_ALL
WHERE CUSTOMER_TRX_ID = rct.CUSTOMER_TRX_ID
AND LINE_TYPE = 'LINE'
AND ROWNUM = 1))
xx_Service_Period_Start_Date,
(SELECT ATTRIBUTE15
FROM RA_CUSTOMER_TRX_LINES_ALL
WHERE CUSTOMER_TRX_ID = rct.CUSTOMER_TRX_ID
AND LINE_TYPE = 'LINE'
AND ROWNUM = 1)
xx_Service_Period_End_Date,
rT.NAME xx_payment_term,
(SELECT TO_CHAR (due_date,
'dd-Mon-yyyy',
'NLS_DATE_LANGUAGE=ENGLISH')
FROM ar_payment_schedules_all aps
WHERE aps.CUSTOMER_TRX_ID = rct.CUSTOMER_TRX_ID AND ROWNUM = 1)
XX_TERM_DUE_DATE,
rct.ATTRIBUTE15 xx_security_text,
rct.SPECIAL_INSTRUCTIONS xx_SPECIAL_INSTRUCTIONS,
rct.TRX_CLASS xx_TRX_CLASS,
(SELECT name
FROM RA_BATCH_SOURCES_ALL rbsa
WHERE rbsa.batch_source_seq_id = rct.batch_source_seq_id
AND ROWNUM = 1)
xx_transaction_source,
(SELECT name
FROM RA_BATCH_SOURCES_ALL rbsa,
ra_customer_trx_all applied_trx
WHERE rbsa.BATCH_SOURCE_SEQ_ID =
applied_trx.batch_source_seq_id
AND applied_trx.customer_trx_id =
RCT.previous_customer_trx_id
AND ROWNUM = 1)
xx_Original_Transaction_Source,
(SELECT applied_trx.trx_number
FROM ra_customer_trx_all applied_trx
WHERE applied_trx.customer_trx_id =
RCT.previous_customer_trx_id
AND ROWNUM = 1)
XX_CM_ORIGINAL_INV_NUM,
(SELECT COUNT (*)
FROM ra_customer_trx_lines_all c
--ar_vat_tax_all_vl v
WHERE c.line_type IN ('LINE')
AND c.customer_trx_id = rct.customer_trx_id)
XX_SUMMARY_TOTAL_LINES,
NVL (
(SELECT SUM (C.EXTENDED_AMOUNT)
FROM ra_customer_trx_lines_all c
--ar_vat_tax_all_vl v
WHERE c.line_type IN ('LINE')
AND c.customer_trx_id = rct.customer_trx_id),
0)
XX_SUMMARY_TOTAL_LINES_AMT,
NVL (
(SELECT SUM (ra_tax.extended_amount)
FROM ra_customer_trx_lines_all ra_tax,
ra_customer_trx_lines_all c
WHERE ra_tax.LINK_TO_CUST_TRX_LINE_ID =
c.customer_trx_line_id
AND ra_tax.line_type = 'TAX'
AND c.line_type IN ('LINE')
AND c.customer_trx_id = rct.customer_trx_id),
0)
XX_SUMMARY_TOTAL_TAX,
( NVL (
(SELECT SUM (C.EXTENDED_AMOUNT)
FROM ra_customer_trx_lines_all c
--ar_vat_tax_all_vl v
WHERE c.line_type IN ('LINE')
AND c.customer_trx_id = rct.customer_trx_id),
0)
+ NVL (
(SELECT SUM (ra_tax.extended_amount)
FROM ra_customer_trx_lines_all ra_tax,
ra_customer_trx_lines_all c
WHERE ra_tax.LINK_TO_CUST_TRX_LINE_ID =
c.customer_trx_line_id
AND ra_tax.line_type = 'TAX'
AND c.line_type IN ('LINE')
AND c.customer_trx_id = rct.customer_trx_id),
0))
XX_INVOICE_TOTAL_AMOUNT
FROM ra_customer_trx_all rct,
xle_entity_profiles xep,
hz_parties hp_legal,
HZ_CUST_ACCOUNTS BILL_HCA,
HZ_PARTIES BILL_HP,
HZ_CUST_SITE_USES_ALL BILL_HCSUA,
HZ_CUST_ACCT_SITES_ALL BILL_HCASA,
HZ_PARTY_SITES BILL_HPS,
HZ_LOCATIONS BILL_LOC,
HZ_CUST_ACCOUNTS SHIP_HCA,
HZ_PARTIES SHIP_HP,
HZ_PARTY_SITE_USES SHIP_HPSU,
HZ_PARTY_SITES SHIP_HPS,
HZ_LOCATIONS SHIP_LOC,
RA_TERMS rT
WHERE rct.LEGAL_ENTITY_ID = xep.LEGAL_ENTITY_ID
AND xep.party_id = hp_legal.party_id
AND RCT.BILL_TO_CUSTOMER_ID = BILL_HCA.CUST_ACCOUNT_ID
AND BILL_HCA.PARTY_ID = BILL_HP.PARTY_ID
AND RCT.BILL_TO_SITE_USE_ID = BILL_HCSUA.SITE_USE_ID
AND BILL_HCASA.CUST_ACCT_SITE_ID = BILL_HCSUA.CUST_ACCT_SITE_ID
AND BILL_HPS.PARTY_SITE_ID = BILL_HCASA.PARTY_SITE_ID
AND BILL_LOC.LOCATION_ID = BILL_HPS.LOCATION_ID
AND RCT.ship_to_party_id = SHIP_HP.PARTY_ID
AND SHIP_HCA.PARTY_ID = SHIP_HP.PARTY_ID
AND SHIP_HPSU.party_site_use_id = RCT.SHIP_TO_PARTY_SITE_USE_ID
AND SHIP_HPSU.party_site_id = SHIP_HPS.party_site_id
AND ship_loc.location_id = ship_hps.location_id
AND rct.TERM_ID = rT.TERM_ID(+)
AND rct.customer_trx_id = p_customer_trx_id;

CURSOR line_cursor (
p_customer_trx_id NUMBER)
IS
SELECT c.customer_trx_line_id customer_trx_line_id,
c.line_number XX_INVOICE_LINE_NUMBER,
DECODE (c.line_type,
'TAX', NULL,
NVL (c.quantity_invoiced, c.quantity_credited))
XX_QUANTITY_INVOICED,
d.INVOICE_CURRENCY_CODE XX_INVOICE_LINE_CURRENCY,
(SELECT UNIT_OF_MEASURE
FROM INV_UNITS_OF_MEASURE_VL
WHERE uom_code = c.uom_code AND ROWNUM = 1)
XX_UOM_CODE,
(SELECT eitem.item_number
FROM egp_system_items_vl eitem
WHERE c.inventory_item_id = eitem.inventory_item_id
AND ROWNUM = 1)
XX_ITEM_NUMBER,
AR_BPA_UTILS_PKG.fn_get_line_description (
c.customer_trx_line_id)
XX_LINE_DESCRIPTION,
C.ATTRIBUTE12 XX_PO_LINE_NUMBER,
c.unit_selling_price XX_UNIT_PRICE,
c.extended_amount XX_EXTENDED_AMOUNT,
c.inventory_item_id XX_inventory_item_id,
d.INVOICE_CURRENCY_CODE XX_TAX_LINE_CURRENCY,
NULL xx_tax_type_code,
(SELECT SUM (tax_rate)
FROM ra_customer_trx_lines_all ra_tax
WHERE ra_tax.LINK_TO_CUST_TRX_LINE_ID =
c.customer_trx_line_id
AND ra_tax.line_type = 'TAX')
xx_tax_rate,
DECODE (
NVL (
(SELECT SUM (ra_tax.extended_amount)
FROM ra_customer_trx_lines_all ra_tax
WHERE ra_tax.LINK_TO_CUST_TRX_LINE_ID =
c.customer_trx_line_id
AND ra_tax.line_type = 'TAX'),
0),
0, 'Exempt',
'Non Exampt')
xx_tax_exampt_code,
(SELECT RA_TAX.TAX_JURISDICTION_NAME
FROM zx_lines_v ra_tax
WHERE ra_tax.trx_line_id = c.customer_trx_line_id
AND ra_tax.trx_id = C.CUSTOMER_TRX_ID
AND ra_tax.tax = 'STATE'
AND ROWNUM = 1)
xx_Tax_Jurisdiction,
(SELECT DISTINCT RA_TAX.TAX_CURRENCY_CODE
FROM zx_lines_v ra_tax
WHERE ra_tax.trx_line_id = c.customer_trx_line_id
AND ra_tax.trx_id = C.CUSTOMER_TRX_ID
AND ROWNUM = 1)
xx_Tax_Country_Code,
NVL (
(SELECT SUM (ra_tax.extended_amount)
FROM ra_customer_trx_lines_all ra_tax
WHERE ra_tax.LINK_TO_CUST_TRX_LINE_ID =
c.customer_trx_line_id
AND ra_tax.line_type = 'TAX'),
0)
xx_tax_amount,
c.extended_amount xx_TAXABLE_AMOUNT,
NVL (c.attribute1, d.attribute1) xx_edi_dff1,
NVL (c.attribute2, d.attribute2) xx_edi_dff2,
NVL (c.attribute3, d.attribute3) xx_edi_dff3,
NVL (c.attribute4, d.attribute4) xx_edi_dff4,
NVL (c.attribute5, d.attribute5) xx_edi_dff5,
NVL (c.attribute6, d.attribute6) xx_edi_dff6,
NVL (c.attribute7, d.attribute7) xx_edi_dff7,
d.attribute10 xx_unit_number
FROM ra_customer_trx_lines_all c, ra_customer_trx_all d
--ar_vat_tax_all_vl v
WHERE c.line_type IN ('LINE') -- AND c.customer_trx_line_id =
300000063787634
-- AND c.customer_trx_id = 300000063787633
AND c.customer_trx_id = d.customer_trx_id
AND c.customer_trx_id = p_customer_trx_id;

extension_attr_rec ARP_UTIL.EXTENSION_ATTRIBUTE_RECORD;
extension_attr_tbl ARP_UTIL.extension_attr_tbl_TYPE;
/*-- Changes by Mallik - Start -- */
extension_attr_upd_rec ARP_UTIL.EXT_ATTR_RECORD_FR_UPDATE;
extension_attr_upd_tbl ARP_UTIL.EXT_ATTR_TBL_FR_UPDATE;
/*-- Changes by Mallik - End -- */
BEGIN
ext_attr_err_tbl := ARP_UTIL.EXT_ATTR_ERROR_TBL_TYPE ();
extension_attr_tbl := ARP_UTIL.extension_attr_tbl_TYPE ();

/*-- Changes by Mallik - Start -- */


extension_attr_upd_tbl := ARP_UTIL.EXT_ATTR_TBL_FR_UPDATE();

-- Loop to update the attributes


FOR trx IN trx_cursor_update
LOOP
extension_attr_upd_tbl := ARP_UTIL.EXT_ATTR_TBL_FR_UPDATE(); -- Added this
here to reset the table type variable.
attr_count := 0;

FOR party_cursor_r IN party_cursor (trx.customer_trx_id)


LOOP
FOR i IN 1 .. 58
LOOP
attr_count := attr_count + 1;
extension_attr_upd_tbl.EXTEND (1);
extension_attr_upd_rec.EXTN_ENTITY_ID := trx.customer_trx_id;
extension_attr_upd_rec.ENTITY_TYPE_CODE := 'INVHEADER';
extension_attr_upd_rec.PROCESS_TYPE_CODE := 'XML';

IF i = 1
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_INVOICE_NUMBER';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_INVOICE_NUMBER';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.xx_invoice_number;
ELSIF i = 2
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_INVOICE_DATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_INVOICE_DATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_INVOICE_DATE;
ELSIF i = 3
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_REMIT_TO';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_REMIT_TO';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_REMIT_TO;
ELSIF i = 4
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_DUNS';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_DUNS';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_DUNS;
ELSIF i = 5
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_LEGAL_ENTITY_NAME';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_LEGAL_ENTITY_NAME';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_LEGAL_ENTITY_NAME;
ELSIF i = 6
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_LE_ADDRESS_LINE_1';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_LE_ADDRESS_LINE_1';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_LE_ADDRESS_LINE_1;
ELSIF i = 7
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_LE_ADDRESS_LINE_2';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_LE_ADDRESS_LINE_2';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_LE_ADDRESS_LINE_2;
ELSIF i = 8
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_LE_CITY';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_LE_CITY';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_LE_CITY;
ELSIF i = 9
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_LE_STATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_LE_STATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_LE_STATE;
ELSIF i = 10
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_LE_POSTAL_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_LE_POSTAL_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_LE_POSTAL_CODE;
ELSIF i = 11
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_LE_COUNTY';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_LE_COUNTY';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_LE_COUNTY;
ELSIF i = 12
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_BILLER_CONTACT_NAME';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_BILLER_CONTACT_NAME';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILLER_CONTACT_NAME;
ELSIF i = 13
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_BILLER_EMAIL_ADDRESS';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_BILLER_EMAIL_ADDRESS';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILLER_EMAIL_ADDRESS;
ELSIF i = 14
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_CUSTOMER_NAME';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_BILL_TO_CUSTOMER_NAME';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_CUSTOMER_NAME;
ELSIF i = 15
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_CUSTOMER_DUNS';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_CUSTOMER_DUNS';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_CUSTOMER_DUNS;
ELSIF i = 16
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_ADDRESS1';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_BILL_TO_ADDRESS1';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_ADDRESS1;
ELSIF i = 17
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_ADDRESS2';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_BILL_TO_ADDRESS2';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_ADDRESS2;
ELSIF i = 18
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_CITY';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_BILL_TO_CITY';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_CITY;
ELSIF i = 19
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_STATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_BILL_TO_STATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_STATE;
ELSIF i = 20
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_POSTAL_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_BILL_TO_POSTAL_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_POSTAL_CODE;
ELSIF i = 21
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_COUNTY';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_BILL_TO_COUNTY';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_COUNTY;
ELSIF i = 22
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_COUNTRY';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_BILL_TO_COUNTRY';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_COUNTRY;
ELSIF i = 23
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_CUSTOMER_NAME';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SHIP_TO_CUSTOMER_NAME';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_CUSTOMER_NAME;
ELSIF i = 24
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_ADDRESS1';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SHIP_TO_ADDRESS1';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_ADDRESS1;
ELSIF i = 25
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_ADDRESS2';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SHIP_TO_ADDRESS2';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_ADDRESS2;
ELSIF i = 26
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_CITY';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SHIP_TO_CITY';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_CITY;
ELSIF i = 27
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_POSTAL_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SHIP_TO_POSTAL_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_POSTAL_CODE;
ELSIF i = 28
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_COUNTY';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SHIP_TO_COUNTY';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_COUNTY;
ELSIF i = 29
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_COUNTRY';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SHIP_TO_COUNTRY';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_COUNTRY;
ELSIF i = 30
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_STATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SHIP_TO_STATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_STATE;
ELSIF i = 31
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_PROVINCE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_SHIP_TO_PROVINCE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_PROVINCE;
ELSIF i = 32
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_INVOICE_TYPE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_INVOICE_TYPE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_INVOICE_TYPE;
ELSIF i = 33
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_PURCHASE_ORDER';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_PURCHASE_ORDER';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_PURCHASE_ORDER;
ELSIF i = 34
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_SALES_ORDER';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_SALES_ORDER';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SALES_ORDER;
ELSIF i = 35
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_INVOICE_CURRENCY_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_INVOICE_CURRENCY_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_INVOICE_CURRENCY_CODE;
ELSIF i = 36
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME :=
'XX_SERVICE_PERIOD_START_DATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SERVICE_PERIOD_START_DATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SERVICE_PERIOD_START_DATE;
ELSIF i = 37
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME :=
'XX_SERVICE_PERIOD_END_DATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SERVICE_PERIOD_END_DATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SERVICE_PERIOD_END_DATE;
ELSIF i = 38
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_PAYMENT_TERM';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_PAYMENT_TERM';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_PAYMENT_TERM;
ELSIF i = 39
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_CM_ORIGINAL_INV_NUM';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_CM_ORIGINAL_INV_NUM';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_CM_ORIGINAL_INV_NUM;
ELSIF i = 40
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_SUMMARY_TOTAL_LINES';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SUMMARY_TOTAL_LINES';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SUMMARY_TOTAL_LINES;
ELSIF i = 41
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME :=
'XX_SUMMARY_TOTAL_LINES_AMT';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SUMMARY_TOTAL_LINES_AMT';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SUMMARY_TOTAL_LINES_AMT;
ELSIF i = 42
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_SUMMARY_TOTAL_TAX';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SUMMARY_TOTAL_TAX';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SUMMARY_TOTAL_TAX;
ELSIF i = 43
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_INVOICE_TOTAL_AMOUNT';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_INVOICE_TOTAL_AMOUNT';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_INVOICE_TOTAL_AMOUNT;
ELSIF i = 44
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_REMIT_TO_ADDRESS1';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_REMIT_TO_ADDRESS1';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_REMIT_TO_ADDRESS1;
ELSIF i = 45
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_REMIT_TO_CITY';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_REMIT_TO_CITY';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_REMIT_TO_CITY;
ELSIF i = 46
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_REMIT_TO_STATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_REMIT_TO_STATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_REMIT_TO_STATE;
ELSIF i = 47
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_REMIT_TO_POSTAL_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_REMIT_TO_POSTAL_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_REMIT_TO_POSTAL_CODE;
ELSIF i = 48
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_REMIT_TO_COUNTY';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_REMIT_TO_COUNTY';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_REMIT_TO_COUNTY;
ELSIF i = 49
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_REMIT_TO_COUNTRY';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_REMIT_TO_COUNTRY';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_REMIT_TO_COUNTRY;
ELSIF i = 50
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME :=
'XX_BILL_TO_CUST_ACCT_NUMBER';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_BILL_TO_CUST_ACCT_NUMBER';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_CUST_ACCT_NUMBER;
ELSIF i = 51
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME :=
'XX_SHIP_TO_CUST_ACCT_NUMBER';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SHIP_TO_CUST_ACCT_NUMBER';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_CUST_ACCT_NUMBER;
ELSIF i = 52
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_TERM_DUE_DATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_TERM_DUE_DATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_TERM_DUE_DATE;
ELSIF i = 53
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_SECURITY_TEXT';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SECURITY_TEXT';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SECURITY_TEXT;
ELSIF i = 54
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_SPECIAL_INSTRUCTIONS';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_SPECIAL_INSTRUCTIONS';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_SPECIAL_INSTRUCTIONS;
ELSIF i = 55
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_TRX_CLASS';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_TRX_CLASS';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_TRX_CLASS;
ELSIF i = 56
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_TRANSACTION_SOURCE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_TRANSACTION_SOURCE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_TRANSACTION_SOURCE;
ELSIF i = 57
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME :=
'XX_ORIGINAL_TRANSACTION_SOURCE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_ORIGINAL_TRANSACTION_SOURCE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_ORIGINAL_TRANSACTION_SOURCE;
ELSIF i = 58
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_LE_COUNTRY';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_LE_COUNTRY';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
party_cursor_r.XX_LE_COUNTRY;
END IF;

extension_attr_upd_tbl (attr_count) := extension_attr_upd_rec;


END LOOP;
END LOOP;

--Line level Attributes


FOR line_cursor_r IN line_cursor (trx.customer_trx_id)
LOOP
FOR ind_lines IN 1 .. 27
LOOP
attr_count := attr_count + 1;
extension_attr_upd_tbl.EXTEND (1);
extension_attr_upd_rec.EXTN_ENTITY_ID :=
line_cursor_r.CUSTOMER_TRX_LINE_ID;
extension_attr_upd_rec.ENTITY_TYPE_CODE := 'INVLINE';
extension_attr_upd_rec.PROCESS_TYPE_CODE := 'XML';

IF ind_lines = 1
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_INVOICE_LINE_NUMBER';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_INVOICE_LINE_NUMBER';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.xx_invoice_line_number;
ELSIF ind_lines = 2
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_QUANTITY_INVOICED';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_QUANTITY_INVOICED';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.xx_QUANTITY_INVOICED;
ELSIF ind_lines = 3
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_UOM_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_UOM_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_UOM_CODE;
ELSIF ind_lines = 4
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_ITEM_NUMBER';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_ITEM_NUMBER';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_ITEM_NUMBER;
ELSIF ind_lines = 5
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_LINE_DESCRIPTION';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_LINE_DESCRIPTION';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_LINE_DESCRIPTION;
ELSIF ind_lines = 6
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_PO_LINE_NUMBER';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_PO_LINE_NUMBER';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_PO_LINE_NUMBER;
ELSIF ind_lines = 7
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_UNIT_PRICE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_UNIT_PRICE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_UNIT_PRICE;
ELSIF ind_lines = 8
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_EXTENDED_AMOUNT';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_EXTENDED_AMOUNT';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_EXTENDED_AMOUNT;
ELSIF ind_lines = 9
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_TAX_TYPE_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_TAX_TYPE_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_TAX_TYPE_CODE;
ELSIF ind_lines = 10
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_TAX_RATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_TAX_RATE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_TAX_RATE;
ELSIF ind_lines = 11
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_TAX_EXAMPT_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_TAX_EXAMPT_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_TAX_EXAMPT_CODE;
ELSIF ind_lines = 12
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_TAX_JURISDICTION';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_TAX_JURISDICTION';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_TAX_JURISDICTION;
ELSIF ind_lines = 13
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_TAX_COUNTRY_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_TAX_COUNTRY_CODE';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_TAX_COUNTRY_CODE;
ELSIF ind_lines = 14
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_TAX_AMOUNT';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_TAX_AMOUNT';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_TAX_AMOUNT;
ELSIF ind_lines = 15
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_TAXABLE_AMOUNT';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_TAXABLE_AMOUNT';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_TAXABLE_AMOUNT;
ELSIF ind_lines = 16
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_EDI_DFF1';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_EDI_DFF1';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_EDI_DFF1;
ELSIF ind_lines = 17
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_EDI_DFF2';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_EDI_DFF2';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_EDI_DFF2;
ELSIF ind_lines = 18
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_EDI_DFF3';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_EDI_DFF3';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_EDI_DFF3;
ELSIF ind_lines = 19
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_EDI_DFF4';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_EDI_DFF4';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_EDI_DFF4;
ELSIF ind_lines = 20
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_EDI_DFF5';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_EDI_DFF5';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_EDI_DFF5;
ELSIF ind_lines = 21
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_EDI_DFF6';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_EDI_DFF6';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_EDI_DFF6;
ELSIF ind_lines = 22
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_EDI_DFF7';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_EDI_DFF7';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_EDI_DFF7;
ELSIF ind_lines = 23
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_UNIT_NUMBER';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_UNIT_NUMBER';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_UNIT_NUMBER;
ELSIF ind_lines = 24
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'CUSTOMER_TRX_LINE_ID';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'CUSTOMER_TRX_LINE_ID';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.CUSTOMER_TRX_LINE_ID;
ELSIF ind_lines = 25
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_INVOICE_LINE_CURRENCY';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME :=
'XX_INVOICE_LINE_CURRENCY';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_INVOICE_LINE_CURRENCY;
ELSIF ind_lines = 26
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_INVENTORY_ITEM_ID';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_INVENTORY_ITEM_ID';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_INVENTORY_ITEM_ID;
ELSIF ind_lines = 27
THEN
extension_attr_upd_rec.ATTRIBUTE_NAME := 'XX_TAX_LINE_CURRENCY';
extension_attr_upd_rec.NEW_ATTRIBUTE_NAME := 'XX_TAX_LINE_CURRENCY';
extension_attr_upd_rec.NEW_ATTRIBUTE_VALUE :=
line_cursor_r.XX_TAX_LINE_CURRENCY;
END IF;

extension_attr_upd_tbl (attr_count) := extension_attr_upd_rec;


END LOOP;
END LOOP;

ARP_UTIL.update_ar_extension_attributes (
extension_attr_upd_tbl,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
x_return_status => l_return_status);

IF l_return_status = fnd_api.g_ret_sts_error
OR l_return_status = fnd_api.g_ret_sts_unexp_error
THEN
FOR i IN 1 .. l_msg_count
LOOP
fnd_msg_pub.get (fnd_msg_pub.g_first,
fnd_api.g_true,
l_msg_data,
l_msg_count);

FND_MESSAGE.SET_ENCODED (l_msg_data);
msg_rec := FND_MESSAGE.GET_MESSAGE_RECORD;

ext_attr_err_tbl.EXTEND;
err_count := err_count + 1;
ext_attr_err.TRX_NUMBER := trx.trx_number;
ext_attr_err.ERROR_MESSAGE := msg_rec.user_message;
ext_attr_err_tbl (err_count) := ext_attr_err;

fnd_msg_pub.Delete_Msg (1);
END LOOP;

fnd_msg_pub.Delete_Msg;
END IF;
END LOOP;
/*-- Changes by Mallik - End -- */
FOR trx IN trx_cursor
LOOP
extension_attr_tbl := ARP_UTIL.extension_attr_tbl_TYPE (); -- Added this here
to reset the table type variable.
attr_count := 0;
arp_util.update_ready_for_xml_flag (trx.customer_trx_id,
'Y',
l_msg_count,
l_msg_data,
l_return_status);

FOR party_cursor_r IN party_cursor (trx.customer_trx_id)


LOOP
FOR i IN 1 .. 58
LOOP
attr_count := attr_count + 1;
extension_attr_tbl.EXTEND (1);

extension_attr_rec.EXTN_ENTITY_ID := trx.customer_trx_id;
extension_attr_rec.ASSOCIATED_EXTN_ENTITY_ID1 := NULL;
extension_attr_rec.ASSOCIATED_EXTN_ENTITY_ID2 := NULL;
extension_attr_rec.ENTITY_TYPE_CODE := 'INVHEADER';
extension_attr_rec.PROCESS_TYPE_CODE := 'XML';

IF i = 1
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_INVOICE_NUMBER';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.xx_invoice_number;
ELSIF i = 2
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_INVOICE_DATE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_INVOICE_DATE;
ELSIF i = 3
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_REMIT_TO';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_REMIT_TO;
ELSIF i = 4
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_DUNS';
extension_attr_rec.ATTRIBUTE_VALUE := party_cursor_r.XX_DUNS;
ELSIF i = 5
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_LEGAL_ENTITY_NAME';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_LEGAL_ENTITY_NAME;
ELSIF i = 6
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_LE_ADDRESS_LINE_1';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_LE_ADDRESS_LINE_1;
ELSIF i = 7
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_LE_ADDRESS_LINE_2';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_LE_ADDRESS_LINE_2;
ELSIF i = 8
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_LE_CITY';
extension_attr_rec.ATTRIBUTE_VALUE := party_cursor_r.XX_LE_CITY;
ELSIF i = 9
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_LE_STATE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_LE_STATE;
ELSIF i = 10
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_LE_POSTAL_CODE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_LE_POSTAL_CODE;
ELSIF i = 11
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_LE_COUNTY';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_LE_COUNTY;
ELSIF i = 12
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_BILLER_CONTACT_NAME';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILLER_CONTACT_NAME;
ELSIF i = 13
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_BILLER_EMAIL_ADDRESS';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILLER_EMAIL_ADDRESS;
ELSIF i = 14
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_CUSTOMER_NAME';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_CUSTOMER_NAME;
ELSIF i = 15
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_CUSTOMER_DUNS';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_CUSTOMER_DUNS;
ELSIF i = 16
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_ADDRESS1';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_ADDRESS1;
ELSIF i = 17
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_ADDRESS2';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_ADDRESS2;
ELSIF i = 18
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_CITY';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_CITY;
ELSIF i = 19
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_STATE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_STATE;
ELSIF i = 20
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_POSTAL_CODE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_POSTAL_CODE;
ELSIF i = 21
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_COUNTY';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_COUNTY;
ELSIF i = 22
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_BILL_TO_COUNTRY';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_COUNTRY;
ELSIF i = 23
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_CUSTOMER_NAME';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_CUSTOMER_NAME;
ELSIF i = 24
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_ADDRESS1';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_ADDRESS1;
ELSIF i = 25
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_ADDRESS2';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_ADDRESS2;
ELSIF i = 26
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_CITY';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_CITY;
ELSIF i = 27
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_POSTAL_CODE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_POSTAL_CODE;
ELSIF i = 28
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_COUNTY';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_COUNTY;
ELSIF i = 29
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_COUNTRY';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_COUNTRY;
ELSIF i = 30
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_STATE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_STATE;
ELSIF i = 31
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_SHIP_TO_PROVINCE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_PROVINCE;
ELSIF i = 32
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_INVOICE_TYPE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_INVOICE_TYPE;
ELSIF i = 33
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_PURCHASE_ORDER';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_PURCHASE_ORDER;
ELSIF i = 34
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_SALES_ORDER';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SALES_ORDER;
ELSIF i = 35
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_INVOICE_CURRENCY_CODE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_INVOICE_CURRENCY_CODE;
ELSIF i = 36
THEN
extension_attr_rec.ATTRIBUTE_NAME :=
'XX_SERVICE_PERIOD_START_DATE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SERVICE_PERIOD_START_DATE;
ELSIF i = 37
THEN
extension_attr_rec.ATTRIBUTE_NAME :=
'XX_SERVICE_PERIOD_END_DATE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SERVICE_PERIOD_END_DATE;
ELSIF i = 38
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_PAYMENT_TERM';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_PAYMENT_TERM;
ELSIF i = 39
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_CM_ORIGINAL_INV_NUM';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_CM_ORIGINAL_INV_NUM;
ELSIF i = 40
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_SUMMARY_TOTAL_LINES';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SUMMARY_TOTAL_LINES;
ELSIF i = 41
THEN
extension_attr_rec.ATTRIBUTE_NAME :=
'XX_SUMMARY_TOTAL_LINES_AMT';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SUMMARY_TOTAL_LINES_AMT;
ELSIF i = 42
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_SUMMARY_TOTAL_TAX';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SUMMARY_TOTAL_TAX;
ELSIF i = 43
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_INVOICE_TOTAL_AMOUNT';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_INVOICE_TOTAL_AMOUNT;
ELSIF i = 44
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_REMIT_TO_ADDRESS1';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_REMIT_TO_ADDRESS1;
ELSIF i = 45
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_REMIT_TO_CITY';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_REMIT_TO_CITY;
ELSIF i = 46
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_REMIT_TO_STATE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_REMIT_TO_STATE;
ELSIF i = 47
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_REMIT_TO_POSTAL_CODE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_REMIT_TO_POSTAL_CODE;
ELSIF i = 48
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_REMIT_TO_COUNTY';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_REMIT_TO_COUNTY;
ELSIF i = 49
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_REMIT_TO_COUNTRY';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_REMIT_TO_COUNTRY;
ELSIF i = 50
THEN
extension_attr_rec.ATTRIBUTE_NAME :=
'XX_BILL_TO_CUST_ACCT_NUMBER';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_BILL_TO_CUST_ACCT_NUMBER;
ELSIF i = 51
THEN
extension_attr_rec.ATTRIBUTE_NAME :=
'XX_SHIP_TO_CUST_ACCT_NUMBER';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SHIP_TO_CUST_ACCT_NUMBER;
ELSIF i = 52
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_TERM_DUE_DATE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_TERM_DUE_DATE;
ELSIF i = 53
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_SECURITY_TEXT';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SECURITY_TEXT;
ELSIF i = 54
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_SPECIAL_INSTRUCTIONS';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_SPECIAL_INSTRUCTIONS;
ELSIF i = 55
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_TRX_CLASS';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_TRX_CLASS;
ELSIF i = 56
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_TRANSACTION_SOURCE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_TRANSACTION_SOURCE;
ELSIF i = 57
THEN
extension_attr_rec.ATTRIBUTE_NAME :=
'XX_ORIGINAL_TRANSACTION_SOURCE';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_ORIGINAL_TRANSACTION_SOURCE;
ELSIF i = 58
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_LE_COUNTRY';
extension_attr_rec.ATTRIBUTE_VALUE :=
party_cursor_r.XX_LE_COUNTRY;
END IF;

extension_attr_tbl (attr_count) := extension_attr_rec;


END LOOP;
END LOOP;

--Line level Attributes


FOR line_cursor_r IN line_cursor (trx.customer_trx_id)
LOOP
FOR ind_lines IN 1 .. 27
LOOP
attr_count := attr_count + 1;
extension_attr_tbl.EXTEND (1);

extension_attr_rec.EXTN_ENTITY_ID :=
line_cursor_r.CUSTOMER_TRX_LINE_ID;
extension_attr_rec.ASSOCIATED_EXTN_ENTITY_ID1 :=
trx.customer_trx_id;
extension_attr_rec.ASSOCIATED_EXTN_ENTITY_ID2 := NULL;
extension_attr_rec.ENTITY_TYPE_CODE := 'INVLINE';
extension_attr_rec.PROCESS_TYPE_CODE := 'XML';

IF ind_lines = 1
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_INVOICE_LINE_NUMBER';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.xx_invoice_line_number;
ELSIF ind_lines = 2
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_QUANTITY_INVOICED';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.xx_QUANTITY_INVOICED;
ELSIF ind_lines = 3
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_UOM_CODE';
extension_attr_rec.ATTRIBUTE_VALUE := line_cursor_r.XX_UOM_CODE;
ELSIF ind_lines = 4
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_ITEM_NUMBER';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.XX_ITEM_NUMBER;
ELSIF ind_lines = 5
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_LINE_DESCRIPTION';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.XX_LINE_DESCRIPTION;
ELSIF ind_lines = 6
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_PO_LINE_NUMBER';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.XX_PO_LINE_NUMBER;
ELSIF ind_lines = 7
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_UNIT_PRICE';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.XX_UNIT_PRICE;
ELSIF ind_lines = 8
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_EXTENDED_AMOUNT';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.XX_EXTENDED_AMOUNT;
ELSIF ind_lines = 9
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_TAX_TYPE_CODE';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.XX_TAX_TYPE_CODE;
ELSIF ind_lines = 10
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_TAX_RATE';
extension_attr_rec.ATTRIBUTE_VALUE := line_cursor_r.XX_TAX_RATE;
ELSIF ind_lines = 11
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_TAX_EXAMPT_CODE';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.XX_TAX_EXAMPT_CODE;
ELSIF ind_lines = 12
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_TAX_JURISDICTION';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.XX_TAX_JURISDICTION;
ELSIF ind_lines = 13
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_TAX_COUNTRY_CODE';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.XX_TAX_COUNTRY_CODE;
ELSIF ind_lines = 14
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_TAX_AMOUNT';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.XX_TAX_AMOUNT;
ELSIF ind_lines = 15
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_TAXABLE_AMOUNT';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.XX_TAXABLE_AMOUNT;
ELSIF ind_lines = 16
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_EDI_DFF1';
extension_attr_rec.ATTRIBUTE_VALUE := line_cursor_r.XX_EDI_DFF1;
ELSIF ind_lines = 17
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_EDI_DFF2';
extension_attr_rec.ATTRIBUTE_VALUE := line_cursor_r.XX_EDI_DFF2;
ELSIF ind_lines = 18
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_EDI_DFF3';
extension_attr_rec.ATTRIBUTE_VALUE := line_cursor_r.XX_EDI_DFF3;
ELSIF ind_lines = 19
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_EDI_DFF4';
extension_attr_rec.ATTRIBUTE_VALUE := line_cursor_r.XX_EDI_DFF4;
ELSIF ind_lines = 20
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_EDI_DFF5';
extension_attr_rec.ATTRIBUTE_VALUE := line_cursor_r.XX_EDI_DFF5;
ELSIF ind_lines = 21
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_EDI_DFF6';
extension_attr_rec.ATTRIBUTE_VALUE := line_cursor_r.XX_EDI_DFF6;
ELSIF ind_lines = 22
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_EDI_DFF7';
extension_attr_rec.ATTRIBUTE_VALUE := line_cursor_r.XX_EDI_DFF7;
ELSIF ind_lines = 23
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_UNIT_NUMBER';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.XX_UNIT_NUMBER;
ELSIF ind_lines = 24
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'CUSTOMER_TRX_LINE_ID';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.CUSTOMER_TRX_LINE_ID;
ELSIF ind_lines = 25
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_INVOICE_LINE_CURRENCY';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.XX_INVOICE_LINE_CURRENCY;
ELSIF ind_lines = 26
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_INVENTORY_ITEM_ID';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.XX_INVENTORY_ITEM_ID;
ELSIF ind_lines = 27
THEN
extension_attr_rec.ATTRIBUTE_NAME := 'XX_TAX_LINE_CURRENCY';
extension_attr_rec.ATTRIBUTE_VALUE :=
line_cursor_r.XX_TAX_LINE_CURRENCY;
END IF;

extension_attr_tbl (attr_count) := extension_attr_rec;


END LOOP;
END LOOP;

ARP_UTIL.insert_ar_extension_attributes (
extension_attr_tbl,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
x_return_status => l_return_status);

IF l_return_status = fnd_api.g_ret_sts_error
OR l_return_status = fnd_api.g_ret_sts_unexp_error
THEN
FOR i IN 1 .. l_msg_count
LOOP
fnd_msg_pub.get (fnd_msg_pub.g_first,
fnd_api.g_true,
l_msg_data,
l_msg_count);

FND_MESSAGE.SET_ENCODED (l_msg_data);
msg_rec := FND_MESSAGE.GET_MESSAGE_RECORD;

ext_attr_err_tbl.EXTEND;
err_count := err_count + 1;
ext_attr_err.TRX_NUMBER := trx.trx_number;
ext_attr_err.ERROR_MESSAGE := msg_rec.user_message;
ext_attr_err_tbl (err_count) := ext_attr_err;

fnd_msg_pub.Delete_Msg (1);
END LOOP;

fnd_msg_pub.Delete_Msg;
END IF;
END LOOP;

OPEN :xdo_cursor FOR


SELECT t.TRX_NUMBER, t.ERROR_MESSAGE
FROM TABLE (ext_attr_err_tbl) t;

COMMIT;
END;

You might also like