<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-34646129</id><updated>2012-02-04T16:02:27.992-08:00</updated><title type='text'>Scripts For Oracle Applications</title><subtitle type='html'>Oracle Apps Scripts ( Copyright Protected )</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://scripts4oracle.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://scripts4oracle.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anil Passi</name><uri>http://www.blogger.com/profile/14859722075898946765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-34646129.post-157902160623352358</id><published>2007-09-01T09:43:00.000-07:00</published><updated>2007-09-01T09:44:26.743-07:00</updated><title type='text'>GL_IMPORT_REFERENCES</title><content type='html'>Please find a package that will provide you various transaction details when drilling down from GL&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;Anil Passi&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE PACKAGE BODY xx_gl_to_modue_trx_details_pkg&lt;br /&gt;AS&lt;br /&gt;   FUNCTION get_transaction_date (&lt;br /&gt;      p_source                   IN   VARCHAR2,&lt;br /&gt;      p_category                 IN   VARCHAR2,&lt;br /&gt;      p_actual_flag              IN   VARCHAR2,&lt;br /&gt;      p_je_header_id             IN   NUMBER,&lt;br /&gt;      p_je_line_num              IN   NUMBER,&lt;br /&gt;      p_reference_1              IN   VARCHAR2,&lt;br /&gt;      p_reference_2              IN   VARCHAR2,&lt;br /&gt;      p_reference_3              IN   VARCHAR2,&lt;br /&gt;      p_reference_4              IN   VARCHAR2,&lt;br /&gt;      p_reference_5              IN   VARCHAR2,&lt;br /&gt;      p_reference_6              IN   VARCHAR2,&lt;br /&gt;      p_reference_7              IN   VARCHAR2,&lt;br /&gt;      p_reference_10             IN   VARCHAR2,&lt;br /&gt;      p_gl_line_effective_date   IN   DATE    &lt;br /&gt;   )&lt;br /&gt;      RETURN DATE&lt;br /&gt;   IS&lt;br /&gt;      l_txn_date        DATE          := NULL;&lt;br /&gt;      l_txn_type_name   VARCHAR2 (30) := NULL;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ap_inv_date&lt;br /&gt;      IS&lt;br /&gt;         SELECT ai.invoice_date&lt;br /&gt;           FROM ap_invoices_all ai&lt;br /&gt;          WHERE ai.invoice_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ap_chk_date&lt;br /&gt;      IS&lt;br /&gt;         SELECT c.check_date&lt;br /&gt;           FROM ap_checks_all c&lt;br /&gt;          WHERE c.check_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ap_clr_date&lt;br /&gt;      IS&lt;br /&gt;         SELECT c.cleared_date&lt;br /&gt;           FROM ap_checks_all c&lt;br /&gt;          WHERE c.check_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_po_app_date&lt;br /&gt;      IS&lt;br /&gt;         SELECT poh.approved_date&lt;br /&gt;           FROM po_headers_all poh&lt;br /&gt;          WHERE poh.po_header_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_poreq_enc_date&lt;br /&gt;      IS&lt;br /&gt;         SELECT reqd.gl_encumbered_date&lt;br /&gt;           FROM po_req_distributions_all reqd&lt;br /&gt;          WHERE reqd.distribution_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_inv_tx_type&lt;br /&gt;      IS&lt;br /&gt;         SELECT mtt.transaction_type_name&lt;br /&gt;           FROM mtl_material_transactions mt, mtl_transaction_types mtt&lt;br /&gt;          WHERE mtt.transaction_type_id = mt.transaction_type_id&lt;br /&gt;            AND mt.transaction_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_inv_po_rcpt_date&lt;br /&gt;      IS&lt;br /&gt;         SELECT rsh.creation_date      /* this = rcv_vrc_hds_v.receipt_date */&lt;br /&gt;           FROM rcv_shipment_headers rsh,&lt;br /&gt;                rcv_transactions rt,&lt;br /&gt;                mtl_material_txns_val_v mt&lt;br /&gt;          WHERE rt.shipment_header_id = rsh.shipment_header_id&lt;br /&gt;            AND rt.transaction_id = mt.rcv_transaction_id&lt;br /&gt;            AND mt.transaction_source_type_name = 'Purchase order'&lt;br /&gt;            AND mt.transaction_type_name = 'Purchase order receipt'&lt;br /&gt;            AND mt.transaction_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_inv_misc_rcpt_date&lt;br /&gt;      IS&lt;br /&gt;         SELECT mt.creation_date&lt;br /&gt;           FROM mtl_material_txns_val_v mt&lt;br /&gt;          WHERE mt.transaction_source_type_name = 'Inventory'&lt;br /&gt;            AND mt.transaction_type_name = 'Miscellaneous receipt'&lt;br /&gt;            AND mt.transaction_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_inv_po_req_date&lt;br /&gt;      IS&lt;br /&gt;         SELECT MAX (reqd.gl_encumbered_date)&lt;br /&gt;           FROM po_req_distributions_all reqd,&lt;br /&gt;                po_requisition_lines_all reql,&lt;br /&gt;                po_requisition_headers_all reqh,&lt;br /&gt;                so_headers_all soh,&lt;br /&gt;                mtl_material_txns_val_v mt&lt;br /&gt;          WHERE reqd.requisition_line_id = reql.requisition_line_id&lt;br /&gt;            AND reql.requisition_header_id = reqh.requisition_header_id&lt;br /&gt;            AND reqh.segment1 = soh.original_system_reference&lt;br /&gt;            AND soh.header_id = mt.transaction_reference&lt;br /&gt;            AND mt.transaction_source_type_name = 'Internal order'&lt;br /&gt;            AND mt.transaction_type_name = 'Internal order issue'&lt;br /&gt;            AND mt.transaction_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ar_adj_date&lt;br /&gt;      IS&lt;br /&gt;         SELECT adj.apply_date&lt;br /&gt;           FROM ar_adjustments_all adj&lt;br /&gt;          WHERE adj.adjustment_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ar_misc_cash_rcpt_date&lt;br /&gt;      IS&lt;br /&gt;         SELECT cr.receipt_date&lt;br /&gt;           FROM ar_cash_receipts_all cr&lt;br /&gt;          WHERE cr.cash_receipt_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ar_rx_app_apply_date&lt;br /&gt;      IS&lt;br /&gt;         SELECT ra.apply_date&lt;br /&gt;           FROM ar_receivable_applications_all ra&lt;br /&gt;          WHERE ra.receivable_application_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ar_cash_rcpt_date&lt;br /&gt;      IS&lt;br /&gt;         SELECT cr.receipt_date&lt;br /&gt;           FROM ar_cash_receipts_all cr, ar_cash_receipt_history_all crh&lt;br /&gt;          WHERE cr.cash_receipt_id = crh.cash_receipt_id&lt;br /&gt;            AND crh.cash_receipt_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ar_cust_trx_date&lt;br /&gt;      IS&lt;br /&gt;         SELECT ct.trx_date&lt;br /&gt;           FROM ra_customer_trx_all ct&lt;br /&gt;          WHERE ct.customer_trx_id = TO_NUMBER (p_reference_2);&lt;br /&gt;   /*    CURSOR cu_gl_effective_date IS&lt;br /&gt;   SELECT gl.effective_date&lt;br /&gt;   FROM   gl_je_lines gl&lt;br /&gt;   WHERE  gl.je_header_id =&lt;br /&gt;          p_je_header_id&lt;br /&gt;   AND    gl.je_line_num =&lt;br /&gt;          p_je_line_num;*/&lt;br /&gt;&lt;br /&gt;       --Added by Khavi on 21-Aug-07  as part of fixed assets implementation&lt;br /&gt;       CURSOR cu_fa_trx_date&lt;br /&gt;       IS&lt;br /&gt;           SELECT th.transaction_date_entered&lt;br /&gt;             FROM fa_transaction_headers th&lt;br /&gt;            WHERE th.asset_id = TO_NUMBER (p_reference_2);&lt;br /&gt;   BEGIN&lt;br /&gt;      IF p_source = 'Payables'&lt;br /&gt;      THEN&lt;br /&gt;         IF (UPPER (p_reference_6) = 'AP INVOICES' AND p_actual_flag = 'A')&lt;br /&gt;         THEN&lt;br /&gt;            -- get invoice date&lt;br /&gt;            OPEN cu_ap_inv_date;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_inv_date&lt;br /&gt;             INTO l_txn_date;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_inv_date;&lt;br /&gt;         ELSIF p_reference_6 IN&lt;br /&gt;                    ('AP Reconciled Payments', 'AP PAYMENTS JUST RECONCILED')&lt;br /&gt;         THEN&lt;br /&gt;            -- get cleared date&lt;br /&gt;            OPEN cu_ap_clr_date;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_clr_date&lt;br /&gt;             INTO l_txn_date;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_clr_date;&lt;br /&gt;         ELSIF (    (   p_reference_6 IS NULL&lt;br /&gt;                     OR UPPER (p_reference_6) = 'AP INVOICES'&lt;br /&gt;                    )&lt;br /&gt;                AND p_category = 'Purchase Invoices'&lt;br /&gt;                AND p_actual_flag = 'E'&lt;br /&gt;               )&lt;br /&gt;         THEN&lt;br /&gt;            /* non PO invoice encumbrance */&lt;br /&gt;            -- get invoice date&lt;br /&gt;            OPEN cu_ap_inv_date;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_inv_date&lt;br /&gt;             INTO l_txn_date;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_inv_date;&lt;br /&gt;         ELSIF UPPER (p_reference_6) = 'AP PAYMENTS'&lt;br /&gt;         THEN&lt;br /&gt;            -- moved to bottom of if statement else all logic will not get processed&lt;br /&gt;            -- get check date&lt;br /&gt;            OPEN cu_ap_chk_date;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_chk_date&lt;br /&gt;             INTO l_txn_date;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_chk_date;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Purchasing'&lt;br /&gt;      THEN&lt;br /&gt;         IF p_reference_1 = 'PO'&lt;br /&gt;         THEN&lt;br /&gt;            -- get date PO approved&lt;br /&gt;            OPEN cu_po_app_date;&lt;br /&gt;&lt;br /&gt;            FETCH cu_po_app_date&lt;br /&gt;             INTO l_txn_date;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_po_app_date;&lt;br /&gt;         ELSIF p_reference_1 = 'REQ'&lt;br /&gt;         THEN&lt;br /&gt;            -- get date req line reserved (encumbered)&lt;br /&gt;            OPEN cu_poreq_enc_date;&lt;br /&gt;&lt;br /&gt;            FETCH cu_poreq_enc_date&lt;br /&gt;             INTO l_txn_date;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_poreq_enc_date;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Inventory'&lt;br /&gt;      THEN&lt;br /&gt;         -- get inventory transaction type name&lt;br /&gt;         OPEN cu_inv_tx_type;&lt;br /&gt;&lt;br /&gt;         FETCH cu_inv_tx_type&lt;br /&gt;          INTO l_txn_type_name;&lt;br /&gt;&lt;br /&gt;         CLOSE cu_inv_tx_type;&lt;br /&gt;&lt;br /&gt;         IF l_txn_type_name = 'Purchase order receipt'&lt;br /&gt;         THEN&lt;br /&gt;            -- get receipt date&lt;br /&gt;            OPEN cu_inv_po_rcpt_date;&lt;br /&gt;&lt;br /&gt;            FETCH cu_inv_po_rcpt_date&lt;br /&gt;             INTO l_txn_date;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_inv_po_rcpt_date;&lt;br /&gt;         ELSIF l_txn_type_name = 'Miscellaneous receipt'&lt;br /&gt;         THEN&lt;br /&gt;            -- get receipt date&lt;br /&gt;            OPEN cu_inv_misc_rcpt_date;&lt;br /&gt;&lt;br /&gt;            FETCH cu_inv_misc_rcpt_date&lt;br /&gt;             INTO l_txn_date;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_inv_misc_rcpt_date;&lt;br /&gt;         ELSIF l_txn_type_name = 'Internal order issue'&lt;br /&gt;         THEN&lt;br /&gt;            -- get requisition date&lt;br /&gt;            OPEN cu_inv_po_req_date;&lt;br /&gt;&lt;br /&gt;            FETCH cu_inv_po_req_date&lt;br /&gt;             INTO l_txn_date;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_inv_po_req_date;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Receivables'&lt;br /&gt;      THEN&lt;br /&gt;         IF p_reference_10 = 'AR_ADJUSTMENTS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get adjustment creation date&lt;br /&gt;            OPEN cu_ar_adj_date;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_adj_date&lt;br /&gt;             INTO l_txn_date;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_adj_date;&lt;br /&gt;         ELSIF p_reference_10 = 'AR_MISC_CASH_DISTRIBUTIONS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get receipt date&lt;br /&gt;            OPEN cu_ar_misc_cash_rcpt_date;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_misc_cash_rcpt_date&lt;br /&gt;             INTO l_txn_date;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_misc_cash_rcpt_date;&lt;br /&gt;         ELSIF p_reference_10 = 'AR_RECEIVABLE_APPLICATIONS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get application date&lt;br /&gt;            OPEN cu_ar_rx_app_apply_date;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_rx_app_apply_date&lt;br /&gt;             INTO l_txn_date;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_rx_app_apply_date;&lt;br /&gt;         ELSIF p_reference_10 = 'AR_CASH_RECEIPT_HISTORY'&lt;br /&gt;         THEN&lt;br /&gt;            -- get receipt date&lt;br /&gt;            OPEN cu_ar_cash_rcpt_date;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_cash_rcpt_date&lt;br /&gt;             INTO l_txn_date;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_cash_rcpt_date;&lt;br /&gt;         ELSIF p_reference_10 = 'RA_CUST_TRX_LINE_GL_DIST'&lt;br /&gt;         THEN&lt;br /&gt;            -- get invoice/credit memo etc. date&lt;br /&gt;            OPEN cu_ar_cust_trx_date;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_cust_trx_date&lt;br /&gt;             INTO l_txn_date;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_cust_trx_date;&lt;br /&gt;         END IF;&lt;br /&gt;&lt;br /&gt;      ELSIF p_source = 'Assets'&lt;br /&gt;      THEN&lt;br /&gt;            OPEN cu_fa_trx_date;&lt;br /&gt;          FETCH cu_fa_trx_date&lt;br /&gt;           INTO l_txn_date;&lt;br /&gt;          CLOSE cu_fa_trx_date;&lt;br /&gt;      END IF;&lt;br /&gt;&lt;br /&gt;      IF l_txn_date IS NULL&lt;br /&gt;      THEN&lt;br /&gt;         l_txn_date := p_gl_line_effective_date;&lt;br /&gt;      END IF;&lt;br /&gt;&lt;br /&gt;      RETURN l_txn_date;&lt;br /&gt;   EXCEPTION&lt;br /&gt;      WHEN INVALID_NUMBER&lt;br /&gt;      THEN&lt;br /&gt;         RETURN NULL;&lt;br /&gt;   END get_transaction_date;&lt;br /&gt;&lt;br /&gt;   FUNCTION fn_sel_txn_desc (&lt;br /&gt;      p_source           IN   VARCHAR2,&lt;br /&gt;      p_category         IN   VARCHAR2,&lt;br /&gt;      p_actual_flag      IN   VARCHAR2,&lt;br /&gt;      p_je_header_id     IN   NUMBER,&lt;br /&gt;      p_je_line_num      IN   NUMBER,&lt;br /&gt;      p_reference_1      IN   VARCHAR2,&lt;br /&gt;      p_reference_2      IN   VARCHAR2,&lt;br /&gt;      p_reference_3      IN   VARCHAR2,&lt;br /&gt;      p_reference_4      IN   VARCHAR2,&lt;br /&gt;      p_reference_5      IN   VARCHAR2,&lt;br /&gt;      p_reference_6      IN   VARCHAR2,&lt;br /&gt;      p_reference_7      IN   VARCHAR2,&lt;br /&gt;      p_reference_10     IN   VARCHAR2,&lt;br /&gt;      p_je_description   IN   VARCHAR2                          --DEFAULT NULL&lt;br /&gt;   )&lt;br /&gt;      RETURN VARCHAR2&lt;br /&gt;   IS&lt;br /&gt;      l_txn_desc        VARCHAR2 (240) := NULL;&lt;br /&gt;      l_txn_type_name   VARCHAR2 (30)  := NULL;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ap_inv_line_desc&lt;br /&gt;      IS&lt;br /&gt;         SELECT aid.description&lt;br /&gt;           FROM ap_invoice_distributions_all aid&lt;br /&gt;          WHERE aid.invoice_id = TO_NUMBER (p_reference_2)&lt;br /&gt;            AND aid.distribution_line_number = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_po_line_desc&lt;br /&gt;      IS&lt;br /&gt;         SELECT pol.item_description&lt;br /&gt;           FROM po_lines_all pol, po_distributions_all pod&lt;br /&gt;          WHERE pod.po_distribution_id = TO_NUMBER (p_reference_3)&lt;br /&gt;            AND pol.po_line_id = pod.po_line_id&lt;br /&gt;            AND pol.po_header_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_poreq_line_desc&lt;br /&gt;      IS&lt;br /&gt;         SELECT reql.item_description&lt;br /&gt;           FROM po_requisition_lines_all reql, po_req_distributions_all reqd&lt;br /&gt;          WHERE reqd.distribution_id = TO_NUMBER (p_reference_3)&lt;br /&gt;            AND reql.requisition_line_id = reqd.requisition_line_id&lt;br /&gt;            AND reql.requisition_header_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_inv_tx_type&lt;br /&gt;      IS&lt;br /&gt;         SELECT mtt.transaction_type_name&lt;br /&gt;           FROM mtl_material_transactions mt, mtl_transaction_types mtt&lt;br /&gt;          WHERE mtt.transaction_type_id = mt.transaction_type_id&lt;br /&gt;            AND mt.transaction_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_inv_misc_rcpt_desc&lt;br /&gt;      IS&lt;br /&gt;         SELECT    NVL (m.reason_name, '-')&lt;br /&gt;                || '-'&lt;br /&gt;                || NVL (m.transaction_reference, '-')&lt;br /&gt;           FROM mtl_material_txns_val_v m&lt;br /&gt;          WHERE m.transaction_source_type_name = 'Inventory'&lt;br /&gt;            AND m.transaction_type_name = 'Miscellaneous receipt'&lt;br /&gt;            AND m.transaction_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ar_adj_cmmt&lt;br /&gt;      IS&lt;br /&gt;         SELECT adj.comments&lt;br /&gt;           FROM ar_adjustments_all adj&lt;br /&gt;          WHERE adj.adjustment_id = TO_NUMBER (p_reference_3);&lt;br /&gt;      CURSOR cu_ar_misc_cash_act_type&lt;br /&gt;      IS&lt;br /&gt;         SELECT comments&lt;br /&gt;           FROM ar_misc_cash_distributions_all&lt;br /&gt;          WHERE cash_receipt_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ar_rx_app_applied_to_trx&lt;br /&gt;      IS&lt;br /&gt;         SELECT ct_app.trx_number&lt;br /&gt;           FROM ra_customer_trx_all ct_app, ar_receivable_applications_all ra&lt;br /&gt;          WHERE ra.receivable_application_id = TO_NUMBER (p_reference_3)&lt;br /&gt;            AND ct_app.customer_trx_id = ra.applied_customer_trx_id;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ar_cash_rcpt_type&lt;br /&gt;      IS&lt;br /&gt;         SELECT DECODE (cr.TYPE,&lt;br /&gt;                        'MISC', 'Miscellaneous',&lt;br /&gt;                        'CASH', 'Cash',&lt;br /&gt;                        NULL&lt;br /&gt;                       )&lt;br /&gt;           FROM ar_cash_receipts_all cr, ar_cash_receipt_history_all crh&lt;br /&gt;          WHERE cr.cash_receipt_id = crh.cash_receipt_id&lt;br /&gt;            AND crh.cash_receipt_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ar_cust_trx_line_desc&lt;br /&gt;      IS&lt;br /&gt;         SELECT NVL (ctl.description, INITCAP (ctl.line_type))&lt;br /&gt;           FROM ra_customer_trx_lines_all ctl,&lt;br /&gt;                ra_cust_trx_line_gl_dist_all ctlgd&lt;br /&gt;          WHERE ctl.customer_trx_line_id = ctlgd.customer_trx_line_id&lt;br /&gt;            AND ctlgd.cust_trx_line_gl_dist_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR misc_receipts_comments&lt;br /&gt;      IS&lt;br /&gt;         SELECT mcd.comments&lt;br /&gt;           FROM ar_gl_misc_cash_distributions mcd&lt;br /&gt;          WHERE mcd.je_header_id = p_je_header_id&lt;br /&gt;            AND mcd.je_line_num = p_je_line_num;&lt;br /&gt;&lt;br /&gt;       --Added by Khavi on 21-Aug-07  as part of fixed assets implementation&lt;br /&gt;       CURSOR cu_fa_asset_desc&lt;br /&gt;       IS&lt;br /&gt;           SELECT fa.description&lt;br /&gt;             FROM fa_additions_tl fa&lt;br /&gt;            WHERE fa.asset_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;   BEGIN&lt;br /&gt;      IF p_source = 'Payables'&lt;br /&gt;      THEN&lt;br /&gt;         IF (UPPER (p_reference_6) = 'AP INVOICES' AND p_actual_flag = 'A')&lt;br /&gt;         THEN&lt;br /&gt;            -- get invoice line desc&lt;br /&gt;            OPEN cu_ap_inv_line_desc;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_inv_line_desc&lt;br /&gt;             INTO l_txn_desc;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_inv_line_desc;&lt;br /&gt;         ELSIF UPPER (p_reference_6) = 'AP PAYMENTS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get check number&lt;br /&gt;            l_txn_desc := p_reference_4;&lt;br /&gt;         ELSIF p_reference_6 IN&lt;br /&gt;                    ('AP Reconciled Payments', 'AP PAYMENTS JUST RECONCILED')&lt;br /&gt;         THEN&lt;br /&gt;            l_txn_desc := NULL;&lt;br /&gt;         ELSIF (    (   p_reference_6 IS NULL&lt;br /&gt;                     OR UPPER (p_reference_6) = 'AP INVOICES'&lt;br /&gt;                    )&lt;br /&gt;                AND p_category = 'Purchase Invoices'&lt;br /&gt;                AND p_actual_flag = 'E'&lt;br /&gt;               )&lt;br /&gt;         THEN&lt;br /&gt;            /* non PO invoice encumbrance */&lt;br /&gt;            -- get invoice line desc&lt;br /&gt;            OPEN cu_ap_inv_line_desc;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_inv_line_desc&lt;br /&gt;             INTO l_txn_desc;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_inv_line_desc;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Purchasing'&lt;br /&gt;      THEN&lt;br /&gt;         IF p_reference_1 = 'PO'&lt;br /&gt;         THEN&lt;br /&gt;            -- get po line desc&lt;br /&gt;            OPEN cu_po_line_desc;&lt;br /&gt;&lt;br /&gt;            FETCH cu_po_line_desc&lt;br /&gt;             INTO l_txn_desc;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_po_line_desc;&lt;br /&gt;         ELSIF p_reference_1 = 'REQ'&lt;br /&gt;         THEN&lt;br /&gt;            -- get po req line desc&lt;br /&gt;            OPEN cu_poreq_line_desc;&lt;br /&gt;&lt;br /&gt;            FETCH cu_poreq_line_desc&lt;br /&gt;             INTO l_txn_desc;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_poreq_line_desc;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Inventory'&lt;br /&gt;      THEN&lt;br /&gt;         -- get inventory transaction type name&lt;br /&gt;         OPEN cu_inv_tx_type;&lt;br /&gt;&lt;br /&gt;         FETCH cu_inv_tx_type&lt;br /&gt;          INTO l_txn_type_name;&lt;br /&gt;&lt;br /&gt;         CLOSE cu_inv_tx_type;&lt;br /&gt;&lt;br /&gt;         IF l_txn_type_name = 'Purchase order receipt'&lt;br /&gt;         THEN&lt;br /&gt;            l_txn_desc := NULL;&lt;br /&gt;         ELSIF l_txn_type_name = 'Miscellaneous receipt'&lt;br /&gt;         THEN&lt;br /&gt;            -- get rcpt reason and referencce&lt;br /&gt;            OPEN cu_inv_misc_rcpt_desc;&lt;br /&gt;&lt;br /&gt;            FETCH cu_inv_misc_rcpt_desc&lt;br /&gt;             INTO l_txn_desc;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_inv_misc_rcpt_desc;&lt;br /&gt;         ELSIF l_txn_type_name = 'Internal order issue'&lt;br /&gt;         THEN&lt;br /&gt;            l_txn_desc := NULL;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Receivables'&lt;br /&gt;      THEN&lt;br /&gt;         IF p_category = 'Misc Receipts'&lt;br /&gt;         THEN&lt;br /&gt;            -- (JJS:11/09/00) get misc receipts comments column (SUP-00309)&lt;br /&gt;            OPEN misc_receipts_comments;&lt;br /&gt;&lt;br /&gt;            FETCH misc_receipts_comments&lt;br /&gt;             INTO l_txn_desc;&lt;br /&gt;&lt;br /&gt;            CLOSE misc_receipts_comments;&lt;br /&gt;         ELSIF p_reference_10 = 'AR_ADJUSTMENTS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get adjustment comments&lt;br /&gt;            OPEN cu_ar_adj_cmmt;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_adj_cmmt&lt;br /&gt;             INTO l_txn_desc;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_adj_cmmt;&lt;br /&gt;         ELSIF p_reference_10 = 'AR_MISC_CASH_DISTRIBUTIONS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get activity type&lt;br /&gt;            OPEN cu_ar_misc_cash_act_type;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_misc_cash_act_type&lt;br /&gt;             INTO l_txn_desc;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_misc_cash_act_type;&lt;br /&gt;         ELSIF p_reference_10 = 'AR_RECEIVABLE_APPLICATIONS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get trx number to which application was made&lt;br /&gt;            OPEN cu_ar_rx_app_applied_to_trx;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_rx_app_applied_to_trx&lt;br /&gt;             INTO l_txn_desc;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_rx_app_applied_to_trx;&lt;br /&gt;         ELSIF p_reference_10 = 'AR_CASH_RECEIPT_HISTORY'&lt;br /&gt;         THEN&lt;br /&gt;            -- get receipt type&lt;br /&gt;            OPEN cu_ar_cash_rcpt_type;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_cash_rcpt_type&lt;br /&gt;             INTO l_txn_desc;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_cash_rcpt_type;&lt;br /&gt;         ELSIF p_reference_10 = 'RA_CUST_TRX_LINE_GL_DIST'&lt;br /&gt;         THEN&lt;br /&gt;            -- get invoice/credit memo etc. line desc&lt;br /&gt;            OPEN cu_ar_cust_trx_line_desc;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_cust_trx_line_desc&lt;br /&gt;             INTO l_txn_desc;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_cust_trx_line_desc;&lt;br /&gt;         END IF;&lt;br /&gt;&lt;br /&gt;      --Added by Khavi on 21-Aug-07  as part of fixed assets implementation&lt;br /&gt;      ELSIF p_source = 'Assets'&lt;br /&gt;      THEN&lt;br /&gt;            OPEN cu_fa_asset_desc;&lt;br /&gt;          FETCH cu_fa_asset_desc&lt;br /&gt;           INTO l_txn_desc;&lt;br /&gt;          CLOSE cu_fa_asset_desc;&lt;br /&gt;&lt;br /&gt;      END IF;&lt;br /&gt;&lt;br /&gt;      -- if the txn isnt covered by above (l_txn_desc is null)&lt;br /&gt;      -- then get gl journal line description&lt;br /&gt;      IF     l_txn_desc IS NULL&lt;br /&gt;         AND (    NVL (p_reference_6, 'aa') NOT IN&lt;br /&gt;                     ('AP Reconciled Payments', 'AP PAYMENTS JUST RECONCILED')&lt;br /&gt;              AND NVL (l_txn_type_name, 'aa') != 'Purchase order receipt'&lt;br /&gt;              AND NVL (l_txn_type_name, 'aa') != 'Internal order issue'&lt;br /&gt;             )&lt;br /&gt;      THEN&lt;br /&gt;         /*      OPEN cu_gl_line_desc;&lt;br /&gt;         FETCH cu_gl_line_desc&lt;br /&gt;           INTO l_txn_desc;&lt;br /&gt;         CLOSE cu_gl_line_desc;*/&lt;br /&gt;         --Sep06, apassi returning description as is&lt;br /&gt;         l_txn_desc := p_je_description;&lt;br /&gt;      END IF;&lt;br /&gt;&lt;br /&gt;      RETURN l_txn_desc;&lt;br /&gt;   EXCEPTION&lt;br /&gt;      WHEN INVALID_NUMBER&lt;br /&gt;      THEN&lt;br /&gt;         RETURN NULL;&lt;br /&gt;   END fn_sel_txn_desc;&lt;br /&gt;&lt;br /&gt;/*--------------------------------------------------------------------*/&lt;br /&gt;   FUNCTION fn_sel_txn_no (&lt;br /&gt;      p_source         IN   VARCHAR2,&lt;br /&gt;      p_category       IN   VARCHAR2,&lt;br /&gt;      p_actual_flag    IN   VARCHAR2,&lt;br /&gt;      p_je_header_id   IN   NUMBER,&lt;br /&gt;      p_je_line_num    IN   NUMBER,&lt;br /&gt;      p_reference_1    IN   VARCHAR2,&lt;br /&gt;      p_reference_2    IN   VARCHAR2,&lt;br /&gt;      p_reference_3    IN   VARCHAR2,&lt;br /&gt;      p_reference_4    IN   VARCHAR2,&lt;br /&gt;      p_reference_5    IN   VARCHAR2,&lt;br /&gt;      p_reference_6    IN   VARCHAR2,&lt;br /&gt;      p_reference_7    IN   VARCHAR2,&lt;br /&gt;      p_reference_10   IN   VARCHAR2&lt;br /&gt;   )&lt;br /&gt;      RETURN VARCHAR2&lt;br /&gt;   IS&lt;br /&gt;      l_txn_no          VARCHAR2 (240) := NULL;&lt;br /&gt;      l_txn_type_name   VARCHAR2 (30)  := NULL;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ap_inv_voucher_no&lt;br /&gt;      IS&lt;br /&gt;         SELECT ai.doc_sequence_value&lt;br /&gt;           FROM ap_invoices_all ai&lt;br /&gt;          WHERE ai.invoice_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ap_chk_voucher_no&lt;br /&gt;      IS&lt;br /&gt;         SELECT ai.doc_sequence_value&lt;br /&gt;           FROM ap_invoices_all ai&lt;br /&gt;          WHERE ai.invoice_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_inv_tx_type&lt;br /&gt;      IS&lt;br /&gt;         SELECT mtt.transaction_type_name&lt;br /&gt;           FROM mtl_material_transactions mt, mtl_transaction_types mtt&lt;br /&gt;          WHERE mtt.transaction_type_id = mt.transaction_type_id&lt;br /&gt;            AND mt.transaction_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_inv_po_rcpt_no&lt;br /&gt;      IS&lt;br /&gt;         SELECT rsh.receipt_num&lt;br /&gt;           FROM rcv_shipment_headers rsh,&lt;br /&gt;                rcv_transactions rt,&lt;br /&gt;                mtl_material_txns_val_v mt&lt;br /&gt;          WHERE mt.transaction_id = TO_NUMBER (p_reference_3)&lt;br /&gt;            AND mt.transaction_source_type_name = 'Purchase order'&lt;br /&gt;            AND mt.transaction_type_name = 'Purchase order receipt'&lt;br /&gt;            AND rt.transaction_id = mt.rcv_transaction_id&lt;br /&gt;            AND rt.shipment_header_id = rsh.shipment_header_id;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_inv_poreq_no&lt;br /&gt;      IS&lt;br /&gt;         SELECT reqh.segment1&lt;br /&gt;           FROM po_requisition_headers_all reqh,&lt;br /&gt;                so_headers_all soh,&lt;br /&gt;                mtl_material_txns_val_v mt&lt;br /&gt;          WHERE reqh.segment1 = soh.original_system_reference&lt;br /&gt;            AND soh.header_id = mt.transaction_reference&lt;br /&gt;            AND mt.transaction_source_type_name = 'Internal order'&lt;br /&gt;            AND mt.transaction_type_name = 'Internal order issue'&lt;br /&gt;            AND mt.transaction_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      /* Note that whilst some of the AR cursors are the same&lt;br /&gt;      they have been declared separately to make code easier&lt;br /&gt;      to maintain in case the data to be retrieved changes&lt;br /&gt;      for certain tx's */&lt;br /&gt;      CURSOR cu_ar_adj_no&lt;br /&gt;      IS&lt;br /&gt;         SELECT adj.adjustment_number&lt;br /&gt;           FROM ar_adjustments_all adj&lt;br /&gt;          WHERE adj.adjustment_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ar_misc_cash_rcpt_no&lt;br /&gt;      IS&lt;br /&gt;         SELECT cr.receipt_number&lt;br /&gt;           FROM ar_cash_receipts_all cr&lt;br /&gt;          WHERE cr.cash_receipt_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ar_cust_trx_no&lt;br /&gt;      IS&lt;br /&gt;         SELECT ct.trx_number&lt;br /&gt;           FROM ra_customer_trx_all ct, ra_cust_trx_line_gl_dist_all ctlgd&lt;br /&gt;          WHERE ct.customer_trx_id = ctlgd.customer_trx_id&lt;br /&gt;            AND ctlgd.cust_trx_line_gl_dist_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_po_number&lt;br /&gt;      IS&lt;br /&gt;         SELECT NVL (segment1, NULL)&lt;br /&gt;           FROM po_headers_all poh&lt;br /&gt;          WHERE poh.po_header_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;      --Added by Khavi on 21-Aug-07  as part of fixed assets implementation&lt;br /&gt;       CURSOR cu_fa_asset_number&lt;br /&gt;       IS&lt;br /&gt;           SELECT fa.asset_number&lt;br /&gt;             FROM fa_additions_b fa&lt;br /&gt;            WHERE fa.asset_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;   BEGIN&lt;br /&gt;      IF p_source = 'Payables'&lt;br /&gt;      THEN&lt;br /&gt;         IF (UPPER (p_reference_6) = 'AP INVOICES' AND p_actual_flag = 'A')&lt;br /&gt;         THEN&lt;br /&gt;            -- get invoice voucher no&lt;br /&gt;            OPEN cu_ap_inv_voucher_no;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_inv_voucher_no&lt;br /&gt;             INTO l_txn_no;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_inv_voucher_no;&lt;br /&gt;         ELSIF UPPER (p_reference_6) = 'AP PAYMENTS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get invoice voucher no of paid invoice&lt;br /&gt;            OPEN cu_ap_chk_voucher_no;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_chk_voucher_no&lt;br /&gt;             INTO l_txn_no;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_chk_voucher_no;&lt;br /&gt;         ELSIF p_reference_6 IN&lt;br /&gt;                    ('AP Reconciled Payments', 'AP PAYMENTS JUST RECONCILED')&lt;br /&gt;         THEN&lt;br /&gt;            -- get check no for rec'd pmt&lt;br /&gt;            l_txn_no := p_reference_4;&lt;br /&gt;         ELSIF (    (   p_reference_6 IS NULL&lt;br /&gt;                     OR UPPER (p_reference_6) = 'AP INVOICES'&lt;br /&gt;                    )&lt;br /&gt;                AND p_category = 'Purchase Invoices'&lt;br /&gt;                AND p_actual_flag = 'E'&lt;br /&gt;               )&lt;br /&gt;         THEN&lt;br /&gt;            /* non PO invoice encumbrance */&lt;br /&gt;            -- get invoice voucher no&lt;br /&gt;            OPEN cu_ap_inv_voucher_no;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_inv_voucher_no&lt;br /&gt;             INTO l_txn_no;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_inv_voucher_no;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Purchasing'&lt;br /&gt;      THEN&lt;br /&gt;         -- get po number&lt;br /&gt;         IF p_reference_1 = 'PO' AND p_reference_2 IS NOT NULL&lt;br /&gt;         THEN&lt;br /&gt;            OPEN cu_po_number;&lt;br /&gt;&lt;br /&gt;            FETCH cu_po_number&lt;br /&gt;             INTO l_txn_no;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_po_number;&lt;br /&gt;&lt;br /&gt;            IF l_txn_no IS NULL&lt;br /&gt;            THEN&lt;br /&gt;               l_txn_no := p_reference_4;&lt;br /&gt;            END IF;&lt;br /&gt;         ELSIF p_reference_1 = 'PO'&lt;br /&gt;         THEN&lt;br /&gt;            ----Changed Amars SUP-447&lt;br /&gt;            l_txn_no := p_reference_4;              ----Changed Amars SUP-447&lt;br /&gt;         ELSIF p_reference_1 = 'REQ'&lt;br /&gt;         THEN&lt;br /&gt;            -- get po req no&lt;br /&gt;            l_txn_no := p_reference_4;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Inventory'&lt;br /&gt;      THEN&lt;br /&gt;         -- get inventory transaction type name&lt;br /&gt;         OPEN cu_inv_tx_type;&lt;br /&gt;&lt;br /&gt;         FETCH cu_inv_tx_type&lt;br /&gt;          INTO l_txn_type_name;&lt;br /&gt;&lt;br /&gt;         CLOSE cu_inv_tx_type;&lt;br /&gt;&lt;br /&gt;         IF l_txn_type_name = 'Purchase order receipt'&lt;br /&gt;         THEN&lt;br /&gt;            -- get receipt no&lt;br /&gt;            OPEN cu_inv_po_rcpt_no;&lt;br /&gt;&lt;br /&gt;            FETCH cu_inv_po_rcpt_no&lt;br /&gt;             INTO l_txn_no;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_inv_po_rcpt_no;&lt;br /&gt;         ELSIF l_txn_type_name = 'Miscellaneous receipt'&lt;br /&gt;         THEN&lt;br /&gt;            -- get inventory transaction id&lt;br /&gt;            l_txn_no := p_reference_3;&lt;br /&gt;         ELSIF l_txn_type_name = 'Internal order issue'&lt;br /&gt;         THEN&lt;br /&gt;            -- get original PO requisition no&lt;br /&gt;            OPEN cu_inv_poreq_no;&lt;br /&gt;&lt;br /&gt;            FETCH cu_inv_poreq_no&lt;br /&gt;             INTO l_txn_no;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_inv_poreq_no;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Receivables'&lt;br /&gt;      THEN&lt;br /&gt;         IF p_reference_10 = 'AR_ADJUSTMENTS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get adjustment no&lt;br /&gt;            OPEN cu_ar_adj_no;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_adj_no&lt;br /&gt;             INTO l_txn_no;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_adj_no;&lt;br /&gt;         ELSIF p_reference_10 = 'AR_MISC_CASH_DISTRIBUTIONS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get receipt no&lt;br /&gt;            OPEN cu_ar_misc_cash_rcpt_no;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_misc_cash_rcpt_no&lt;br /&gt;             INTO l_txn_no;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_misc_cash_rcpt_no;&lt;br /&gt;         ELSIF p_reference_10 = 'AR_RECEIVABLE_APPLICATIONS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get receipt or cm (etc) no from which application was made&lt;br /&gt;            -- use ref_4 as receivable appln. maybe for a cash receipt or a&lt;br /&gt;            -- trx item being applied&lt;br /&gt;            l_txn_no := p_reference_4;&lt;br /&gt;         ELSIF p_reference_10 = 'AR_CASH_RECEIPT_HISTORY'&lt;br /&gt;         THEN&lt;br /&gt;            -- get misc rcpt or trade receipt no&lt;br /&gt;            l_txn_no := p_reference_4;&lt;br /&gt;         ELSIF p_reference_10 = 'RA_CUST_TRX_LINE_GL_DIST'&lt;br /&gt;         THEN&lt;br /&gt;            -- get invoice/credit memo etc. number&lt;br /&gt;            OPEN cu_ar_cust_trx_no;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_cust_trx_no&lt;br /&gt;             INTO l_txn_no;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_cust_trx_no;&lt;br /&gt;         END IF;&lt;br /&gt;&lt;br /&gt;      --Added by Khavi on 21-Aug-07  as part of fixed assets implementation&lt;br /&gt;      ELSIF p_source = 'Assets'&lt;br /&gt;      THEN&lt;br /&gt;            OPEN cu_fa_asset_number;&lt;br /&gt;          FETCH cu_fa_asset_number&lt;br /&gt;           INTO l_txn_no;&lt;br /&gt;          CLOSE cu_fa_asset_number;&lt;br /&gt;&lt;br /&gt;      END IF;&lt;br /&gt;&lt;br /&gt;      -- if the txn isnt covered by above (l_txn_no is null)&lt;br /&gt;      -- then get gl journal line number&lt;br /&gt;      IF l_txn_no IS NULL&lt;br /&gt;      THEN&lt;br /&gt;         l_txn_no := p_je_line_num;&lt;br /&gt;      END IF;&lt;br /&gt;&lt;br /&gt;      RETURN l_txn_no;&lt;br /&gt;   EXCEPTION&lt;br /&gt;      WHEN INVALID_NUMBER&lt;br /&gt;      THEN&lt;br /&gt;         RETURN NULL;&lt;br /&gt;   END fn_sel_txn_no;&lt;br /&gt;&lt;br /&gt;/*----------------------------------------------------------------------*/&lt;br /&gt;   FUNCTION fn_sel_txn_cust_or_vendor (&lt;br /&gt;      p_source         IN   VARCHAR2,&lt;br /&gt;      p_category       IN   VARCHAR2,&lt;br /&gt;      p_actual_flag    IN   VARCHAR2,&lt;br /&gt;      p_je_header_id   IN   NUMBER,&lt;br /&gt;      p_je_line_num    IN   NUMBER,&lt;br /&gt;      p_reference_1    IN   VARCHAR2,&lt;br /&gt;      p_reference_2    IN   VARCHAR2,&lt;br /&gt;      p_reference_3    IN   VARCHAR2,&lt;br /&gt;      p_reference_4    IN   VARCHAR2,&lt;br /&gt;      p_reference_5    IN   VARCHAR2,&lt;br /&gt;      p_reference_6    IN   VARCHAR2,&lt;br /&gt;      p_reference_7    IN   VARCHAR2,&lt;br /&gt;      p_reference_10   IN   VARCHAR2&lt;br /&gt;   )&lt;br /&gt;      RETURN VARCHAR2&lt;br /&gt;   IS&lt;br /&gt;      l_txn_cust_or_vendor   VARCHAR2 (240) := NULL;&lt;br /&gt;      l_txn_type_name        VARCHAR2 (30)  := NULL;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ap_recon_vendor&lt;br /&gt;      IS&lt;br /&gt;         SELECT pov.vendor_name&lt;br /&gt;           FROM po_vendors pov, ap_checks_all apc&lt;br /&gt;          WHERE apc.check_id = TO_NUMBER (p_reference_3)&lt;br /&gt;            AND apc.vendor_id = pov.vendor_id;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_po_vendor&lt;br /&gt;      IS&lt;br /&gt;         SELECT pov.vendor_name&lt;br /&gt;           FROM po_vendors pov, po_headers_all poh&lt;br /&gt;          WHERE poh.po_header_id = TO_NUMBER (p_reference_2)&lt;br /&gt;            AND poh.vendor_id = pov.vendor_id;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_poreq_vendor&lt;br /&gt;      IS&lt;br /&gt;         SELECT pov.vendor_name&lt;br /&gt;           FROM po_vendors pov,&lt;br /&gt;                po_requisition_lines_all reql,&lt;br /&gt;                po_req_distributions_all reqd&lt;br /&gt;          WHERE reqd.distribution_id = TO_NUMBER (p_reference_3)&lt;br /&gt;            AND reqd.requisition_line_id = reql.requisition_line_id&lt;br /&gt;            AND reql.vendor_id = pov.vendor_id;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_inv_tx_type&lt;br /&gt;      IS&lt;br /&gt;         SELECT mtt.transaction_type_name&lt;br /&gt;           FROM mtl_material_transactions mt, mtl_transaction_types mtt&lt;br /&gt;          WHERE mtt.transaction_type_id = mt.transaction_type_id&lt;br /&gt;            AND mt.transaction_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_inv_po_rcpt_vendor&lt;br /&gt;      IS&lt;br /&gt;         SELECT pov.vendor_name&lt;br /&gt;           FROM po_vendors pov, po_headers poh, mtl_material_txns_val_v mt&lt;br /&gt;          WHERE mt.transaction_source_type_name = 'Purchase order'&lt;br /&gt;            AND mt.transaction_type_name = 'Purchase order receipt'&lt;br /&gt;            AND mt.transaction_id = TO_NUMBER (p_reference_3)&lt;br /&gt;            AND mt.transaction_source_id = poh.po_header_id&lt;br /&gt;            AND poh.vendor_id = pov.vendor_id;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_inv_misc_rcpt_source&lt;br /&gt;      IS&lt;br /&gt;         SELECT m.transaction_source_name_db&lt;br /&gt;           FROM mtl_material_txns_val_v m&lt;br /&gt;          WHERE m.transaction_source_type_name = 'Inventory'&lt;br /&gt;            AND m.transaction_type_name = 'Miscellaneous receipt'&lt;br /&gt;            AND m.transaction_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_inv_poreq_approver&lt;br /&gt;      IS&lt;br /&gt;         SELECT u.user_name&lt;br /&gt;           FROM fnd_user u,&lt;br /&gt;                po_requisition_headers_all reqh,&lt;br /&gt;                so_headers_all soh,&lt;br /&gt;                mtl_material_txns_val_v mt&lt;br /&gt;          WHERE u.user_id = reqh.last_updated_by&lt;br /&gt;            AND reqh.segment1 = soh.original_system_reference&lt;br /&gt;            AND soh.header_id = mt.transaction_reference&lt;br /&gt;            AND mt.transaction_source_type_name = 'Internal order'&lt;br /&gt;            AND mt.transaction_type_name = 'Internal order issue'&lt;br /&gt;            AND mt.transaction_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      /* Note that whilst some of the AR cursors are the same&lt;br /&gt;      they have been declared separately to make code easier&lt;br /&gt;      to maintain in case the data to be retrieved changes&lt;br /&gt;      for certain tx's */&lt;br /&gt;      CURSOR cu_ar_cust_name&lt;br /&gt;      IS&lt;br /&gt;         SELECT c.customer_name&lt;br /&gt;           FROM ra_customers c&lt;br /&gt;          WHERE c.customer_id = TO_NUMBER (p_reference_7);&lt;br /&gt;   BEGIN&lt;br /&gt;      IF p_source = 'Payables'&lt;br /&gt;      THEN&lt;br /&gt;         IF (UPPER (p_reference_6) = 'AP INVOICES' AND p_actual_flag = 'A')&lt;br /&gt;         THEN&lt;br /&gt;            -- get vendor for invoice&lt;br /&gt;            l_txn_cust_or_vendor := p_reference_1;&lt;br /&gt;         ELSIF UPPER (p_reference_6) = 'AP PAYMENTS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get check number&lt;br /&gt;            l_txn_cust_or_vendor := p_reference_1;&lt;br /&gt;         ELSIF p_reference_6 IN&lt;br /&gt;                    ('AP Reconciled Payments', 'AP PAYMENTS JUST RECONCILED')&lt;br /&gt;         THEN&lt;br /&gt;            OPEN cu_ap_recon_vendor;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_recon_vendor&lt;br /&gt;             INTO l_txn_cust_or_vendor;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_recon_vendor;&lt;br /&gt;         ELSIF (    (   p_reference_6 IS NULL&lt;br /&gt;                     OR UPPER (p_reference_6) = 'AP INVOICES'&lt;br /&gt;                    )&lt;br /&gt;                AND p_category = 'Purchase Invoices'&lt;br /&gt;                AND p_actual_flag = 'E'&lt;br /&gt;               )&lt;br /&gt;         THEN&lt;br /&gt;            /* non PO invoice encumbrance */&lt;br /&gt;            -- get vendor for invoice&lt;br /&gt;            l_txn_cust_or_vendor := p_reference_1;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Purchasing'&lt;br /&gt;      THEN&lt;br /&gt;         IF p_reference_1 = 'PO'&lt;br /&gt;         THEN&lt;br /&gt;            -- get po vendor&lt;br /&gt;            OPEN cu_po_vendor;&lt;br /&gt;&lt;br /&gt;            FETCH cu_po_vendor&lt;br /&gt;             INTO l_txn_cust_or_vendor;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_po_vendor;&lt;br /&gt;         ELSIF p_reference_1 = 'REQ'&lt;br /&gt;         THEN&lt;br /&gt;            -- get po req vendor&lt;br /&gt;            OPEN cu_poreq_vendor;&lt;br /&gt;&lt;br /&gt;            FETCH cu_poreq_vendor&lt;br /&gt;             INTO l_txn_cust_or_vendor;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_poreq_vendor;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Inventory'&lt;br /&gt;      THEN&lt;br /&gt;         -- get inventory transaction type name&lt;br /&gt;         OPEN cu_inv_tx_type;&lt;br /&gt;&lt;br /&gt;         FETCH cu_inv_tx_type&lt;br /&gt;          INTO l_txn_type_name;&lt;br /&gt;&lt;br /&gt;         CLOSE cu_inv_tx_type;&lt;br /&gt;&lt;br /&gt;         IF l_txn_type_name = 'Purchase order receipt'&lt;br /&gt;         THEN&lt;br /&gt;            -- get vendor for po which is received against&lt;br /&gt;            OPEN cu_inv_po_rcpt_vendor;&lt;br /&gt;&lt;br /&gt;            FETCH cu_inv_po_rcpt_vendor&lt;br /&gt;             INTO l_txn_cust_or_vendor;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_inv_po_rcpt_vendor;&lt;br /&gt;         ELSIF l_txn_type_name = 'Miscellaneous receipt'&lt;br /&gt;         THEN&lt;br /&gt;            -- get rcpt source&lt;br /&gt;            OPEN cu_inv_misc_rcpt_source;&lt;br /&gt;&lt;br /&gt;            FETCH cu_inv_misc_rcpt_source&lt;br /&gt;             INTO l_txn_cust_or_vendor;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_inv_misc_rcpt_source;&lt;br /&gt;         ELSIF l_txn_type_name = 'Internal order issue'&lt;br /&gt;         THEN&lt;br /&gt;            -- get internal requisition approver&lt;br /&gt;            OPEN cu_inv_poreq_approver;&lt;br /&gt;&lt;br /&gt;            FETCH cu_inv_poreq_approver&lt;br /&gt;             INTO l_txn_cust_or_vendor;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_inv_poreq_approver;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Receivables'&lt;br /&gt;      THEN&lt;br /&gt;         -- get customer&lt;br /&gt;         OPEN cu_ar_cust_name;&lt;br /&gt;&lt;br /&gt;         FETCH cu_ar_cust_name&lt;br /&gt;          INTO l_txn_cust_or_vendor;&lt;br /&gt;&lt;br /&gt;         CLOSE cu_ar_cust_name;&lt;br /&gt;      END IF;&lt;br /&gt;&lt;br /&gt;      RETURN l_txn_cust_or_vendor;&lt;br /&gt;   EXCEPTION&lt;br /&gt;      WHEN INVALID_NUMBER&lt;br /&gt;      THEN&lt;br /&gt;         RETURN NULL;&lt;br /&gt;   END fn_sel_txn_cust_or_vendor;&lt;br /&gt;&lt;br /&gt;/*------------------------------------------------------------------------*/&lt;br /&gt;   FUNCTION fn_sel_txn_cid (&lt;br /&gt;      p_source         IN   VARCHAR2,&lt;br /&gt;      p_category       IN   VARCHAR2,&lt;br /&gt;      p_actual_flag    IN   VARCHAR2,&lt;br /&gt;      p_je_header_id   IN   NUMBER,&lt;br /&gt;      p_je_line_num    IN   NUMBER,&lt;br /&gt;      p_reference_1    IN   VARCHAR2,&lt;br /&gt;      p_reference_2    IN   VARCHAR2,&lt;br /&gt;      p_reference_3    IN   VARCHAR2,&lt;br /&gt;      p_reference_4    IN   VARCHAR2,&lt;br /&gt;      p_reference_5    IN   VARCHAR2,&lt;br /&gt;      p_reference_6    IN   VARCHAR2,&lt;br /&gt;      p_reference_7    IN   VARCHAR2,&lt;br /&gt;      p_reference_10   IN   VARCHAR2&lt;br /&gt;   )&lt;br /&gt;      RETURN VARCHAR2&lt;br /&gt;   IS&lt;br /&gt;      l_txn_cid         VARCHAR2 (240) := NULL;&lt;br /&gt;      l_txn_type_name   VARCHAR2 (30)  := NULL;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ap_inv_vendor&lt;br /&gt;      IS&lt;br /&gt;         SELECT pov.segment1&lt;br /&gt;           FROM po_vendors pov, ap_invoices_all api&lt;br /&gt;          WHERE api.vendor_id = pov.vendor_id&lt;br /&gt;            AND api.invoice_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ap_chk_vendor&lt;br /&gt;      IS&lt;br /&gt;         SELECT pov.segment1&lt;br /&gt;           FROM po_vendors pov, ap_checks_all apc&lt;br /&gt;          WHERE apc.check_id = TO_NUMBER (p_reference_3)&lt;br /&gt;            AND apc.vendor_id = pov.vendor_id;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ap_recon_vendor&lt;br /&gt;      IS&lt;br /&gt;         SELECT pov.segment1&lt;br /&gt;           FROM po_vendors pov, ap_checks_all apc&lt;br /&gt;          WHERE apc.check_id = TO_NUMBER (p_reference_3)&lt;br /&gt;            AND apc.vendor_id = pov.vendor_id;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_po_vendor&lt;br /&gt;      IS&lt;br /&gt;         SELECT pov.segment1&lt;br /&gt;           FROM po_vendors pov, po_headers_all poh&lt;br /&gt;          WHERE poh.po_header_id = TO_NUMBER (p_reference_2)&lt;br /&gt;            AND poh.vendor_id = pov.vendor_id;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_poreq_vendor&lt;br /&gt;      IS&lt;br /&gt;         SELECT pov.segment1&lt;br /&gt;           FROM po_vendors pov,&lt;br /&gt;                po_requisition_lines_all reql,&lt;br /&gt;                po_req_distributions_all reqd&lt;br /&gt;          WHERE reqd.distribution_id = TO_NUMBER (p_reference_3)&lt;br /&gt;            AND reqd.requisition_line_id = reql.requisition_line_id&lt;br /&gt;            AND reql.vendor_id = pov.vendor_id;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_inv_tx_type&lt;br /&gt;      IS&lt;br /&gt;         SELECT mtt.transaction_type_name&lt;br /&gt;           FROM mtl_material_transactions mt, mtl_transaction_types mtt&lt;br /&gt;          WHERE mtt.transaction_type_id = mt.transaction_type_id&lt;br /&gt;            AND mt.transaction_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_inv_po_rcpt_vendor&lt;br /&gt;      IS&lt;br /&gt;         SELECT pov.segment1&lt;br /&gt;           FROM po_vendors pov, po_headers poh, mtl_material_txns_val_v mt&lt;br /&gt;          WHERE mt.transaction_source_type_name = 'Purchase order'&lt;br /&gt;            AND mt.transaction_type_name = 'Purchase order receipt'&lt;br /&gt;            AND mt.transaction_id = TO_NUMBER (p_reference_3)&lt;br /&gt;            AND mt.transaction_source_id = poh.po_header_id&lt;br /&gt;            AND poh.vendor_id = pov.vendor_id;&lt;br /&gt;&lt;br /&gt;      /* Note that whilst some of the AR cursors are the same&lt;br /&gt;      they have been declared separately to make code easier&lt;br /&gt;      to maintain in case the data to be retrieved changes&lt;br /&gt;      for certain tx's */&lt;br /&gt;      CURSOR cu_ar_cust_cid&lt;br /&gt;      IS&lt;br /&gt;         SELECT c.customer_number&lt;br /&gt;           FROM ra_customers c&lt;br /&gt;          WHERE c.customer_id = TO_NUMBER (p_reference_7);&lt;br /&gt;   BEGIN&lt;br /&gt;      IF p_source = 'Payables'&lt;br /&gt;      THEN&lt;br /&gt;         IF (UPPER (p_reference_6) = 'AP INVOICES' AND p_actual_flag = 'A')&lt;br /&gt;         THEN&lt;br /&gt;            -- get vendor cid for invoice&lt;br /&gt;            OPEN cu_ap_inv_vendor;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_inv_vendor&lt;br /&gt;             INTO l_txn_cid;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_inv_vendor;&lt;br /&gt;         ELSIF UPPER (p_reference_6) = 'AP PAYMENTS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get vendor cid for check&lt;br /&gt;            OPEN cu_ap_chk_vendor;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_chk_vendor&lt;br /&gt;             INTO l_txn_cid;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_chk_vendor;&lt;br /&gt;         ELSIF p_reference_6 IN&lt;br /&gt;                    ('AP Reconciled Payments', 'AP PAYMENTS JUST RECONCILED')&lt;br /&gt;         THEN&lt;br /&gt;            OPEN cu_ap_recon_vendor;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_recon_vendor&lt;br /&gt;             INTO l_txn_cid;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_recon_vendor;&lt;br /&gt;         ELSIF (    (   p_reference_6 IS NULL&lt;br /&gt;                     OR UPPER (p_reference_6) = 'AP INVOICES'&lt;br /&gt;                    )&lt;br /&gt;                AND p_category = 'Purchase Invoices'&lt;br /&gt;                AND p_actual_flag = 'E'&lt;br /&gt;               )&lt;br /&gt;         THEN&lt;br /&gt;            /* non PO invoice encumbrance */&lt;br /&gt;            -- get vendor cid for invoice&lt;br /&gt;            OPEN cu_ap_inv_vendor;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_inv_vendor&lt;br /&gt;             INTO l_txn_cid;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_inv_vendor;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Purchasing'&lt;br /&gt;      THEN&lt;br /&gt;         IF p_reference_1 = 'PO'&lt;br /&gt;         THEN&lt;br /&gt;            -- get po vendor&lt;br /&gt;            OPEN cu_po_vendor;&lt;br /&gt;&lt;br /&gt;            FETCH cu_po_vendor&lt;br /&gt;             INTO l_txn_cid;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_po_vendor;&lt;br /&gt;         ELSIF p_reference_1 = 'REQ'&lt;br /&gt;         THEN&lt;br /&gt;            -- get po req vendor&lt;br /&gt;            OPEN cu_poreq_vendor;&lt;br /&gt;&lt;br /&gt;            FETCH cu_poreq_vendor&lt;br /&gt;             INTO l_txn_cid;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_poreq_vendor;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Inventory'&lt;br /&gt;      THEN&lt;br /&gt;         -- get inventory transaction type name&lt;br /&gt;         OPEN cu_inv_tx_type;&lt;br /&gt;&lt;br /&gt;         FETCH cu_inv_tx_type&lt;br /&gt;          INTO l_txn_type_name;&lt;br /&gt;&lt;br /&gt;         CLOSE cu_inv_tx_type;&lt;br /&gt;&lt;br /&gt;         IF l_txn_type_name = 'Purchase order receipt'&lt;br /&gt;         THEN&lt;br /&gt;            -- get vendor for po which is received against&lt;br /&gt;            OPEN cu_inv_po_rcpt_vendor;&lt;br /&gt;&lt;br /&gt;            FETCH cu_inv_po_rcpt_vendor&lt;br /&gt;             INTO l_txn_cid;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_inv_po_rcpt_vendor;&lt;br /&gt;         ELSIF l_txn_type_name = 'Miscellaneous receipt'&lt;br /&gt;         THEN&lt;br /&gt;            l_txn_cid := NULL;&lt;br /&gt;         ELSIF l_txn_type_name = 'Internal order issue'&lt;br /&gt;         THEN&lt;br /&gt;            l_txn_cid := NULL;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Receivables'&lt;br /&gt;      THEN&lt;br /&gt;         -- get customer cid&lt;br /&gt;         OPEN cu_ar_cust_cid;&lt;br /&gt;&lt;br /&gt;         FETCH cu_ar_cust_cid&lt;br /&gt;          INTO l_txn_cid;&lt;br /&gt;&lt;br /&gt;         CLOSE cu_ar_cust_cid;&lt;br /&gt;      END IF;&lt;br /&gt;&lt;br /&gt;      RETURN l_txn_cid;&lt;br /&gt;   EXCEPTION&lt;br /&gt;      WHEN INVALID_NUMBER&lt;br /&gt;      THEN&lt;br /&gt;         RETURN NULL;&lt;br /&gt;   END fn_sel_txn_cid;&lt;br /&gt;&lt;br /&gt;/*------------------------------------------------------------------------------*/&lt;br /&gt;   FUNCTION fn_sel_po_num (&lt;br /&gt;      p_source         IN   VARCHAR2,&lt;br /&gt;      p_category       IN   VARCHAR2,&lt;br /&gt;      p_actual_flag    IN   VARCHAR2,&lt;br /&gt;      p_je_header_id   IN   NUMBER,&lt;br /&gt;      p_je_line_num    IN   NUMBER,&lt;br /&gt;      p_reference_1    IN   VARCHAR2,&lt;br /&gt;      p_reference_2    IN   VARCHAR2,&lt;br /&gt;      p_reference_3    IN   VARCHAR2,&lt;br /&gt;      p_reference_4    IN   VARCHAR2,&lt;br /&gt;      p_reference_5    IN   VARCHAR2,&lt;br /&gt;      p_reference_6    IN   VARCHAR2,&lt;br /&gt;      p_reference_7    IN   VARCHAR2,&lt;br /&gt;      p_reference_10   IN   VARCHAR2&lt;br /&gt;   )&lt;br /&gt;      RETURN VARCHAR2&lt;br /&gt;   IS&lt;br /&gt;      l_txn_po_num    VARCHAR2 (50) := NULL;&lt;br /&gt;      l_txn_dist_id   NUMBER (15)   := NULL;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ap_podist_id&lt;br /&gt;      IS&lt;br /&gt;         SELECT   aid.po_distribution_id&lt;br /&gt;             FROM ap_invoice_distributions_all aid&lt;br /&gt;            WHERE aid.invoice_id = TO_NUMBER (p_reference_2)&lt;br /&gt;         ORDER BY aid.distribution_line_number;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_get_po_num&lt;br /&gt;      IS&lt;br /&gt;         SELECT poh.segment1&lt;br /&gt;           FROM po_headers_all poh, po_distributions_all pod&lt;br /&gt;          WHERE poh.po_header_id = pod.po_header_id&lt;br /&gt;            AND pod.po_distribution_id = l_txn_dist_id;&lt;br /&gt;   BEGIN&lt;br /&gt;      IF p_source = 'Payables' AND p_reference_2 IS NOT NULL&lt;br /&gt;      THEN&lt;br /&gt;         OPEN cu_ap_podist_id;&lt;br /&gt;&lt;br /&gt;         FETCH cu_ap_podist_id&lt;br /&gt;          INTO l_txn_dist_id;&lt;br /&gt;&lt;br /&gt;         CLOSE cu_ap_podist_id;&lt;br /&gt;&lt;br /&gt;         IF l_txn_dist_id IS NOT NULL&lt;br /&gt;         THEN&lt;br /&gt;            OPEN cu_get_po_num;&lt;br /&gt;&lt;br /&gt;            FETCH cu_get_po_num&lt;br /&gt;             INTO l_txn_po_num;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_get_po_num;&lt;br /&gt;         ELSE&lt;br /&gt;            l_txn_po_num := NULL;&lt;br /&gt;         END IF;&lt;br /&gt;      END IF;&lt;br /&gt;&lt;br /&gt;      RETURN l_txn_po_num;&lt;br /&gt;   EXCEPTION&lt;br /&gt;      WHEN INVALID_NUMBER&lt;br /&gt;      THEN&lt;br /&gt;         RETURN NULL;&lt;br /&gt;   END fn_sel_po_num;&lt;br /&gt;&lt;br /&gt;/*--------------------------------------------------------------------*/&lt;br /&gt;   FUNCTION fn_sel_txn_amt (&lt;br /&gt;      p_source                IN   VARCHAR2,&lt;br /&gt;      p_category              IN   VARCHAR2,&lt;br /&gt;      p_actual_flag           IN   VARCHAR2,&lt;br /&gt;      p_je_header_id          IN   NUMBER,&lt;br /&gt;      p_je_line_num           IN   NUMBER,&lt;br /&gt;      p_reference_1           IN   VARCHAR2,&lt;br /&gt;      p_reference_2           IN   VARCHAR2,&lt;br /&gt;      p_reference_3           IN   VARCHAR2,&lt;br /&gt;      p_reference_4           IN   VARCHAR2,&lt;br /&gt;      p_reference_5           IN   VARCHAR2,&lt;br /&gt;      p_reference_6           IN   VARCHAR2,&lt;br /&gt;      p_reference_7           IN   VARCHAR2,&lt;br /&gt;      p_reference_8           IN   VARCHAR2,&lt;br /&gt;      p_reference_9           IN   VARCHAR2,&lt;br /&gt;      p_reference_10          IN   VARCHAR2,&lt;br /&gt;      p_gl_sl_link_id         IN   NUMBER,&lt;br /&gt;      p_accounted_dr          IN   NUMBER,&lt;br /&gt;      p_accounted_cr          IN   NUMBER,&lt;br /&gt;      p_batch_name            IN   VARCHAR2,&lt;br /&gt;      p_encumbrance_type_id   IN   NUMBER&lt;br /&gt;   )&lt;br /&gt;      RETURN NUMBER&lt;br /&gt;   IS&lt;br /&gt;      l_txn_amt            NUMBER         := NULL;&lt;br /&gt;      l_txn_type_name      VARCHAR2 (30)  := NULL;&lt;br /&gt;      l_batch_name         VARCHAR2 (100) := NULL;&lt;br /&gt;      l_encumbrance_type   VARCHAR2 (30)  := NULL;&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ap_inv_dist_amt&lt;br /&gt;      IS&lt;br /&gt;         SELECT NVL (accounted_dr, -1 * accounted_cr)&lt;br /&gt;           FROM ap_ae_lines_all&lt;br /&gt;          WHERE gl_sl_link_id = p_gl_sl_link_id;&lt;br /&gt;&lt;br /&gt;      -- SUP 473/472+ 30-Oct-2000&lt;br /&gt;      CURSOR cu_ap_inv_dist_amt2&lt;br /&gt;      IS&lt;br /&gt;         SELECT SUM (DECODE (aid.invoice_price_variance,&lt;br /&gt;                             NULL, DECODE (ai.invoice_currency_code,&lt;br /&gt;                                           'GBP', -aid.amount,&lt;br /&gt;                                           -aid.base_amount&lt;br /&gt;                                          ),&lt;br /&gt;                             NULL&lt;br /&gt;                            )&lt;br /&gt;                    )&lt;br /&gt;           FROM ap_invoices_all ai, ap_invoice_distributions_all aid&lt;br /&gt;          WHERE ai.invoice_id = aid.invoice_id&lt;br /&gt;            AND aid.invoice_id = TO_NUMBER (p_reference_2)&lt;br /&gt;            AND NVL (aid.je_uk_vat_reclaim_type, 'N') = 'N'&lt;br /&gt;            AND NVL (aid.je_uk_vat_link_to_line_num,&lt;br /&gt;                     aid.distribution_line_number&lt;br /&gt;                    ) = TO_NUMBER (p_reference_3)&lt;br /&gt;            AND EXISTS (&lt;br /&gt;                   SELECT 'x'&lt;br /&gt;                     FROM ap_invoice_distributions_all aid2&lt;br /&gt;                    WHERE aid2.je_uk_vat_link_to_line_num IS NULL&lt;br /&gt;                      AND aid2.invoice_price_variance IS NULL&lt;br /&gt;                      AND aid.invoice_id = aid2.invoice_id&lt;br /&gt;                      AND NVL (aid2.je_uk_vat_link_to_line_num,&lt;br /&gt;                               aid2.distribution_line_number&lt;br /&gt;                              ) =&lt;br /&gt;                             NVL (aid.je_uk_vat_link_to_line_num,&lt;br /&gt;                                  aid.distribution_line_number&lt;br /&gt;                                 ));&lt;br /&gt;&lt;br /&gt;      /* Code prior to SUP-472+  30-Oct-2000  SELECT DECODE(aid.invoice_price_variance,&lt;br /&gt;      NULL, DECODE(ai.invoice_currency_code,'GBP',aid.amount,aid.base_amount),&lt;br /&gt;      NULL&lt;br /&gt;            )&lt;br /&gt;      FROM   ap_invoices_all ai,&lt;br /&gt;             ap_invoice_distributions_all aid&lt;br /&gt;      WHERE  ai.invoice_id = aid.invoice_id&lt;br /&gt;      AND    aid.invoice_id = TO_NUMBER(p_reference_2)&lt;br /&gt;      AND    aid.distribution_line_number = TO_NUMBER(p_reference_3) */&lt;br /&gt;      /*---12-Jun-2000 Change---*/&lt;br /&gt;      -- CURSOR cu_ap_inv_dist_amt2 IS&lt;br /&gt;      --  SELECT DECODE(p_reference_10, 'IPV',&lt;br /&gt;      --    DECODE(ai.invoice_currency_code,'GBP',&lt;br /&gt;      --           aid.invoice_price_variance,aid.base_invoice_price_variance&lt;br /&gt;      --   ),&lt;br /&gt;      --    DECODE(ai.invoice_currency_code,'GBP',aid.amount,aid.base_amount)&lt;br /&gt;      --    )&lt;br /&gt;      --  FROM   ap_invoices_all ai,&lt;br /&gt;      --         ap_invoice_distributions_all aid&lt;br /&gt;      --  WHERE  ai.invoice_id = aid.invoice_id&lt;br /&gt;      --  AND    aid.invoice_id = TO_NUMBER(p_reference_2)&lt;br /&gt;      --  AND    aid.distribution_line_number = TO_NUMBER(p_reference_3);&lt;br /&gt;      CURSOR cu_ap_chk_inv_dist_amt&lt;br /&gt;      IS&lt;br /&gt;         SELECT pd.base_amount&lt;br /&gt;           FROM ap_payment_distributions pd, ap_invoice_payments aip&lt;br /&gt;          WHERE aip.invoice_id = TO_NUMBER (p_reference_2)&lt;br /&gt;            AND aip.check_id = TO_NUMBER (p_reference_3)&lt;br /&gt;            AND aip.invoice_payment_id = TO_NUMBER (p_reference_9)&lt;br /&gt;            AND pd.invoice_payment_id = aip.invoice_payment_id&lt;br /&gt;            AND pd.invoice_distr_line_number = TO_NUMBER (p_reference_8);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ap_recon_amt&lt;br /&gt;      IS&lt;br /&gt;         /*SELECT ard.recon_distribution_amount&lt;br /&gt;                                   FROM   ap_gl_recon_distributions_v ard&lt;br /&gt;                                   WHERE  ard.check_id = TO_NUMBER(p_reference_3);*/&lt;br /&gt;         SELECT rd.amount&lt;br /&gt;           FROM ap_lookup_codes l,&lt;br /&gt;                ap_recon_distributions rd,&lt;br /&gt;                ap_checks c,&lt;br /&gt;                ap_bank_accounts bc,&lt;br /&gt;                ce_statement_lines sl,&lt;br /&gt;                ce_statement_reconciliations sr,&lt;br /&gt;                ce_lookups cl,&lt;br /&gt;                ce_statement_headers sh,&lt;br /&gt;                po_vendors v&lt;br /&gt;          --,gl_import_references r&lt;br /&gt;         WHERE  l.lookup_code = rd.line_type_lookup_code&lt;br /&gt;            AND l.lookup_type = 'RECON_DIST_TYPES'&lt;br /&gt;            AND rd.check_id = c.check_id&lt;br /&gt;            AND rd.posted_flag || '' = 'Y'&lt;br /&gt;            AND sl.trx_type = 'DEBIT'&lt;br /&gt;            AND sl.statement_header_id = sh.statement_header_id&lt;br /&gt;            AND sr.statement_line_id = sl.statement_line_id&lt;br /&gt;            AND cl.lookup_type(+) = 'TRX_TYPE'&lt;br /&gt;            AND cl.lookup_code(+) = sr.reference_type&lt;br /&gt;            AND sr.reference_id = p_reference_3&lt;br /&gt;            AND v.vendor_id = c.vendor_id&lt;br /&gt;            AND bc.bank_account_id = c.bank_account_id&lt;br /&gt;            AND c.check_id = TO_NUMBER (p_reference_3)&lt;br /&gt;            AND c.check_number = TO_NUMBER (p_reference_4)&lt;br /&gt;            AND p_reference_10 = rd.line_type_lookup_code;&lt;br /&gt;&lt;br /&gt;      /* SUP-522 fix to exclude distributions relating to Closed lines */&lt;br /&gt;      CURSOR cu_po_dist_amt&lt;br /&gt;      IS&lt;br /&gt;         SELECT pod.encumbered_amount&lt;br /&gt;           FROM po_distributions_all pod, po_lines_all pol&lt;br /&gt;          WHERE pod.po_line_id = pol.po_line_id&lt;br /&gt;            AND pol.closed_date IS NULL&lt;br /&gt;            AND pod.po_distribution_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_poreq_dist_amt&lt;br /&gt;      IS&lt;br /&gt;         SELECT reqd.encumbered_amount&lt;br /&gt;           FROM po_req_distributions_all reqd&lt;br /&gt;          WHERE reqd.distribution_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      --apassi Commenting this code on Sep06, as max date in mtl_transaction_types is 24Jan04&lt;br /&gt;      /*    CURSOR cu_inv_tx_type IS&lt;br /&gt;      SELECT mtt.transaction_type_name&lt;br /&gt;      FROM   mtl_material_transactions mt&lt;br /&gt;            ,mtl_transaction_types     mtt&lt;br /&gt;      WHERE  mtt.transaction_type_id =&lt;br /&gt;             mt.transaction_type_id&lt;br /&gt;      AND    mt.transaction_id =&lt;br /&gt;             to_number(p_reference_3);*/&lt;br /&gt;      /* Note that there is a problem in trying to report the&lt;br /&gt;      inventory amounts. The reason for this is that only&lt;br /&gt;      the transaction id is passed to GL_IMPORT_REFERENCES&lt;br /&gt;      not the distribution (held in MTL_TRANSACTION_ACCOUNTS).&lt;br /&gt;      This means that if more than one line within a transaction id&lt;br /&gt;      has the same acount code the amount reported will be wrong. I&lt;br /&gt;      dont know if this situation will ever arise - it hasnt during&lt;br /&gt;      test even when we receive 2 diferent orders, same item, same account&lt;br /&gt;      on the same receipt */&lt;br /&gt;      --apassi Mta now redundant for ICIS, hence commenting below&lt;br /&gt;      --select max(creation_date) from mtl_transaction_accounts ; returns 29-JAN-04&lt;br /&gt;      /*    CURSOR cu_inv_po_rcpt_amt IS&lt;br /&gt;      SELECT SUM(ta.base_transaction_value)&lt;br /&gt;      FROM   gl_je_headers            jeh&lt;br /&gt;            ,gl_je_lines              jel&lt;br /&gt;            ,mtl_transaction_accounts ta&lt;br /&gt;            ,gl_import_references     gir&lt;br /&gt;            ,mtl_material_txns_val_v  mt&lt;br /&gt;      WHERE  mt.transaction_id =&lt;br /&gt;             to_number(p_reference_3)&lt;br /&gt;      AND    mt.transaction_source_type_name =&lt;br /&gt;             'Purchase order'&lt;br /&gt;      AND    mt.transaction_type_name =&lt;br /&gt;             'Purchase order receipt'&lt;br /&gt;      AND    mt.transaction_id =&lt;br /&gt;             ta.transaction_id&lt;br /&gt;      AND    ta.reference_account =&lt;br /&gt;             jel.code_combination_id&lt;br /&gt;      AND    gir.reference_3 =&lt;br /&gt;             mt.transaction_id&lt;br /&gt;      AND    gir.je_line_num =&lt;br /&gt;             to_number(p_je_line_num)&lt;br /&gt;      AND    gir.je_header_id =&lt;br /&gt;             to_number(p_je_header_id)&lt;br /&gt;      AND    jel.je_line_num =&lt;br /&gt;             gir.je_line_num&lt;br /&gt;      AND    jel.je_header_id =&lt;br /&gt;             gir.je_header_id&lt;br /&gt;      AND    jeh.je_header_id =&lt;br /&gt;             jel.je_header_id&lt;br /&gt;      AND    nvl(ta.encumbrance_type_id, -987) =&lt;br /&gt;             nvl(jeh.encumbrance_type_id, -987);*/&lt;br /&gt;      /*    CURSOR cu_inv_misc_rcpt_amt IS&lt;br /&gt;      SELECT SUM(ta.base_transaction_value)&lt;br /&gt;      FROM   gl_je_headers            jeh&lt;br /&gt;            ,gl_je_lines              jel&lt;br /&gt;            ,mtl_transaction_accounts ta&lt;br /&gt;            ,gl_import_references     gir&lt;br /&gt;            ,mtl_material_txns_val_v  mt&lt;br /&gt;      WHERE  mt.transaction_id =&lt;br /&gt;             to_number(p_reference_3)&lt;br /&gt;      AND    mt.transaction_source_type_name =&lt;br /&gt;             'Inventory'&lt;br /&gt;      AND    mt.transaction_type_name =&lt;br /&gt;             'Miscellaneous receipt'&lt;br /&gt;      AND    mt.transaction_id =&lt;br /&gt;             ta.transaction_id&lt;br /&gt;      AND    ta.reference_account =&lt;br /&gt;             jel.code_combination_id&lt;br /&gt;      AND    gir.reference_3 =&lt;br /&gt;             mt.transaction_id&lt;br /&gt;      AND    gir.je_line_num =&lt;br /&gt;             to_number(p_je_line_num)&lt;br /&gt;      AND    gir.je_header_id =&lt;br /&gt;             to_number(p_je_header_id)&lt;br /&gt;      AND    jel.je_line_num =&lt;br /&gt;             gir.je_line_num&lt;br /&gt;      AND    jel.je_header_id =&lt;br /&gt;             gir.je_header_id&lt;br /&gt;      AND    jeh.je_header_id =&lt;br /&gt;             jel.je_header_id&lt;br /&gt;      AND    nvl(ta.encumbrance_type_id, -987) =&lt;br /&gt;             nvl(jeh.encumbrance_type_id, -987);*/&lt;br /&gt;      /*    CURSOR cu_inv_poreq_issue_amt IS&lt;br /&gt;      SELECT SUM(ta.base_transaction_value)&lt;br /&gt;      FROM   gl_je_headers            jeh&lt;br /&gt;            ,gl_je_lines              jel&lt;br /&gt;            ,mtl_transaction_accounts ta&lt;br /&gt;            ,gl_import_references     gir&lt;br /&gt;            ,mtl_material_txns_val_v  mt&lt;br /&gt;      WHERE  mt.transaction_id =&lt;br /&gt;             to_number(p_reference_3)&lt;br /&gt;      AND    mt.transaction_source_type_name =&lt;br /&gt;             'Internal order'&lt;br /&gt;      AND    mt.transaction_type_name =&lt;br /&gt;             'Internal order issue'&lt;br /&gt;      AND    mt.transaction_id =&lt;br /&gt;             ta.transaction_id&lt;br /&gt;      AND    ta.reference_account =&lt;br /&gt;             jel.code_combination_id&lt;br /&gt;      AND    gir.reference_3 =&lt;br /&gt;             mt.transaction_id&lt;br /&gt;      AND    gir.je_line_num =&lt;br /&gt;             to_number(p_je_line_num)&lt;br /&gt;      AND    gir.je_header_id =&lt;br /&gt;             to_number(p_je_header_id)&lt;br /&gt;      AND    jel.je_line_num =&lt;br /&gt;             gir.je_line_num&lt;br /&gt;      AND    jel.je_header_id =&lt;br /&gt;             gir.je_header_id&lt;br /&gt;      AND    jeh.je_header_id =&lt;br /&gt;             jel.je_header_id&lt;br /&gt;      AND    nvl(ta.encumbrance_type_id, -987) =&lt;br /&gt;             nvl(jeh.encumbrance_type_id, -987);*/&lt;br /&gt;      /*    CURSOR cu_inv_other_tx_amt IS&lt;br /&gt;      SELECT SUM(ta.base_transaction_value)&lt;br /&gt;      FROM   gl_je_headers            jeh&lt;br /&gt;            ,gl_je_lines              jel&lt;br /&gt;            ,mtl_transaction_accounts ta&lt;br /&gt;            ,gl_import_references     gir&lt;br /&gt;            ,mtl_material_txns_val_v  mt&lt;br /&gt;      WHERE  mt.transaction_id =&lt;br /&gt;             to_number(p_reference_3)&lt;br /&gt;      AND    ltrim(rtrim(mt.transaction_source_type_name)) || '-' ||&lt;br /&gt;             ltrim(rtrim(mt.transaction_type_name)) NOT IN&lt;br /&gt;             ('Internal order-Internal order issue',&lt;br /&gt;              'Purchase order-Purchase order receipt',&lt;br /&gt;              'Inventory-Miscellaneous receipt')&lt;br /&gt;      AND    mt.transaction_id =&lt;br /&gt;             ta.transaction_id&lt;br /&gt;      AND    ta.reference_account =&lt;br /&gt;             jel.code_combination_id&lt;br /&gt;      AND    gir.reference_3 =&lt;br /&gt;             mt.transaction_id&lt;br /&gt;      AND    gir.je_line_num =&lt;br /&gt;             to_number(p_je_line_num)&lt;br /&gt;      AND    gir.je_header_id =&lt;br /&gt;             to_number(p_je_header_id)&lt;br /&gt;      AND    jel.je_line_num =&lt;br /&gt;             gir.je_line_num&lt;br /&gt;      AND    jel.je_header_id =&lt;br /&gt;             gir.je_header_id&lt;br /&gt;      AND    jeh.je_header_id =&lt;br /&gt;             jel.je_header_id&lt;br /&gt;      AND    nvl(ta.encumbrance_type_id, -987) =&lt;br /&gt;             nvl(jeh.encumbrance_type_id, -987)&lt;br /&gt;      UNION \* non material transactions *\&lt;br /&gt;      SELECT SUM(d.base_transaction_value)&lt;br /&gt;      FROM   gl_je_lines            jel&lt;br /&gt;            ,gl_import_references   gir&lt;br /&gt;            ,cst_inv_distribution_v d&lt;br /&gt;      WHERE  d.transaction_id =&lt;br /&gt;             to_number(p_reference_3)&lt;br /&gt;      AND    ltrim(rtrim(d.transaction_source_type_name)) || '-' ||&lt;br /&gt;             ltrim(rtrim(d.transaction_type_name)) NOT IN&lt;br /&gt;             ('Internal order-Internal order issue',&lt;br /&gt;              'Purchase order-Purchase order receipt',&lt;br /&gt;              'Inventory-Miscellaneous receipt')&lt;br /&gt;      AND    d.reference_account =&lt;br /&gt;             jel.code_combination_id&lt;br /&gt;      AND    gir.reference_3 =&lt;br /&gt;             d.transaction_id&lt;br /&gt;      AND    gir.je_line_num =&lt;br /&gt;             to_number(p_je_line_num)&lt;br /&gt;      AND    gir.je_header_id =&lt;br /&gt;             to_number(p_je_header_id)&lt;br /&gt;      AND    jel.je_line_num =&lt;br /&gt;             gir.je_line_num&lt;br /&gt;      AND    jel.je_header_id =&lt;br /&gt;             gir.je_header_id; */&lt;br /&gt;      /* Note that whilst some of the AR cursors are the same&lt;br /&gt;      they have been declared separately to make code easier&lt;br /&gt;      to maintain in case the data to be retrieved changes&lt;br /&gt;      for certain tx's */&lt;br /&gt;      CURSOR cu_ar_adj_amt&lt;br /&gt;      IS&lt;br /&gt;         SELECT adj.acctd_amount                 -- T.Percival 15/5/03 272.212&lt;br /&gt;           FROM ar_adjustments_all adj&lt;br /&gt;          --  WHERE  adj.adjustment_id = TO_NUMBER(p_reference_3);   -- R.Pattni, 14-Jun-2002, Reference column changed in 11i&lt;br /&gt;          -- Reference 2 is now used to store the adjustment id , see below.&lt;br /&gt;         WHERE  adj.adjustment_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;      /*CURSOR cu_ar_misc_cash_rcpt_amt IS&lt;br /&gt;        SELECT cr.amount&lt;br /&gt;        FROM   ar_cash_receipts_all cr&lt;br /&gt;        WHERE  cr.cash_receipt_id = TO_NUMBER(p_reference_2);&lt;br /&gt;      */&lt;br /&gt;      -- New report J code (29/02/01) to show miscellaneous receipt amounts at distribution level&lt;br /&gt;      CURSOR cu_ar_misc_cash_rcpt_amt&lt;br /&gt;      IS&lt;br /&gt;         SELECT acctd_amount                     -- T.Percival 15/5/03 272.212&lt;br /&gt;           FROM ar_misc_cash_distributions_all&lt;br /&gt;          WHERE misc_cash_distribution_id = TO_NUMBER (p_reference_5);&lt;br /&gt;                -- R.Pattni, 19-Jun-2002, Reference column changed from 3 to 5&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ar_rx_app_applied_amt&lt;br /&gt;      IS&lt;br /&gt;         SELECT ra.acctd_amount_applied_from     -- T.Percival 15/5/03 272.212&lt;br /&gt;           FROM ar_receivable_applications_all ra&lt;br /&gt;          WHERE ra.receivable_application_id = TO_NUMBER (p_reference_2);&lt;br /&gt;-- R.Pattni, 19-Jun-2002, Reference column changed from 3                                                                   -- to 2&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ar_cash_rcpt_amt&lt;br /&gt;      IS&lt;br /&gt;         SELECT cr.amount&lt;br /&gt;           FROM ar_cash_receipts_all cr&lt;br /&gt;          WHERE cr.cash_receipt_id = TO_NUMBER (p_reference_2);&lt;br /&gt;&lt;br /&gt;      CURSOR cu_ar_cust_trx_amt&lt;br /&gt;      IS&lt;br /&gt;         SELECT ctlgd.acctd_amount&lt;br /&gt;           FROM ra_cust_trx_line_gl_dist_all ctlgd&lt;br /&gt;          WHERE ctlgd.cust_trx_line_gl_dist_id = TO_NUMBER (p_reference_3);&lt;br /&gt;&lt;br /&gt;      /*    CURSOR cu_gl_line_amt IS&lt;br /&gt;      SELECT nvl(gl.accounted_dr, 0) -&lt;br /&gt;             nvl(gl.accounted_cr, 0)&lt;br /&gt;      FROM   gl_je_lines gl&lt;br /&gt;      WHERE  gl.je_header_id =&lt;br /&gt;             p_je_header_id&lt;br /&gt;      AND    gl.je_line_num =&lt;br /&gt;             p_je_line_num;*/&lt;br /&gt;      CURSOR cu_gl_batch_name&lt;br /&gt;      IS&lt;br /&gt;         /*SELECT b.name, e.encumbrance_type&lt;br /&gt;                                   FROM   gl_encumbrance_types e,&lt;br /&gt;                                          gl_je_batches b,&lt;br /&gt;                                          gl_je_headers h&lt;br /&gt;                                   WHERE  b.je_batch_id = h.je_batch_id&lt;br /&gt;                                   AND    h.je_header_id =  p_je_header_id&lt;br /&gt;                                   AND    h.encumbrance_type_id = e.encumbrance_type_id;&lt;br /&gt;                                   */&lt;br /&gt;         SELECT e.encumbrance_type&lt;br /&gt;           FROM gl_encumbrance_types e&lt;br /&gt;          WHERE e.encumbrance_type_id = p_encumbrance_type_id;&lt;br /&gt;   BEGIN&lt;br /&gt;      l_batch_name := p_batch_name;&lt;br /&gt;&lt;br /&gt;      IF p_source = 'Payables'&lt;br /&gt;      THEN&lt;br /&gt;         IF (UPPER (p_reference_6) = 'AP INVOICES' AND p_actual_flag = 'A')&lt;br /&gt;         THEN&lt;br /&gt;            -- get invoice dist amt&lt;br /&gt;            OPEN cu_ap_inv_dist_amt;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_inv_dist_amt&lt;br /&gt;             INTO l_txn_amt;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_inv_dist_amt;&lt;br /&gt;         -- nb. ref10=LIABILITY would be -1*amt&lt;br /&gt;         --     other ref10 = ok&lt;br /&gt;         ELSIF UPPER (p_reference_6) = 'AP PAYMENTS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get amt paid against this invoice dist&lt;br /&gt;            OPEN cu_ap_chk_inv_dist_amt;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ap_chk_inv_dist_amt&lt;br /&gt;             INTO l_txn_amt;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ap_chk_inv_dist_amt;&lt;br /&gt;         ELSIF p_reference_6 IN&lt;br /&gt;                    ('AP Reconciled Payments', 'AP PAYMENTS JUST RECONCILED')&lt;br /&gt;         THEN&lt;br /&gt;            -- get amt reconciled&lt;br /&gt;            --&lt;br /&gt;            /*&lt;br /&gt;            * J.Pallot:&lt;br /&gt;            * This fetch has had to be blocked in order to handle the  errors&lt;br /&gt;            * that arise when the reference_4 column in the gl_import_references table has&lt;br /&gt;            * been populated with characters which cannot implicitly be converted to numbers&lt;br /&gt;            * e.g.: 'K JLD 991129-29.07' cannot be converted to a number whereas '139527' can.&lt;br /&gt;            *&lt;br /&gt;            * The ap_gl_recon_distributions_v view (see cursor definition) joins the reference_4&lt;br /&gt;            * column - which is varchar2 - to the to the ap_checks.check_number_id column - which&lt;br /&gt;            * is number.&lt;br /&gt;            *&lt;br /&gt;            * It is possible that this error arises from the employee to vendor interface but&lt;br /&gt;            * this is not yet confirmed.&lt;br /&gt;            *&lt;br /&gt;            */&lt;br /&gt;            BEGIN&lt;br /&gt;               OPEN cu_ap_recon_amt;&lt;br /&gt;&lt;br /&gt;               FETCH cu_ap_recon_amt&lt;br /&gt;                INTO l_txn_amt;&lt;br /&gt;&lt;br /&gt;               CLOSE cu_ap_recon_amt;&lt;br /&gt;            EXCEPTION&lt;br /&gt;               WHEN OTHERS&lt;br /&gt;               THEN&lt;br /&gt;                  l_txn_amt := NULL;&lt;br /&gt;            END;&lt;br /&gt;         ELSIF (    (   p_reference_6 IS NULL&lt;br /&gt;                     OR UPPER (p_reference_6) = 'AP INVOICES'&lt;br /&gt;                    )&lt;br /&gt;                AND p_category = 'Purchase Invoices'&lt;br /&gt;                AND p_actual_flag = 'E'&lt;br /&gt;               )&lt;br /&gt;         THEN&lt;br /&gt;            /* AP invoice related encumbrance */&lt;br /&gt;            -- get invoice dist amt&lt;br /&gt;            --Commented by Khavi, satyam on 22-Jan-04 to fix the encumbrance bug : 13493&lt;br /&gt;            /*OPEN  cu_ap_inv_dist_amt2;&lt;br /&gt;            FETCH cu_ap_inv_dist_amt2 INTO l_txn_amt;&lt;br /&gt;            CLOSE cu_ap_inv_dist_amt2;*/&lt;br /&gt;            --Added by Khavi, satyam on 22-Jan-04 to fix the encumbrance bug : 13493&lt;br /&gt;            --OPEN  cu_gl_line_amt;&lt;br /&gt;            --FETCH cu_gl_line_amt INTO l_txn_amt;&lt;br /&gt;            --CLOSE cu_gl_line_amt;&lt;br /&gt;            l_txn_amt := NVL (p_accounted_dr, 0) - NVL (p_accounted_cr, 0);&lt;br /&gt;&lt;br /&gt;            /* If batch is as a result of the GL program&lt;br /&gt;            "Program - Create Journals" which creates the PO encumbrances&lt;br /&gt;            get gl batch name and encumbrance type.&lt;br /&gt;            The program creates batches where the name starts with CJE.&lt;br /&gt;            The encumbrances are the either debit encumbrance for the AP&lt;br /&gt;            invoice or credits for the PO encumbrance being reversed&lt;br /&gt;            as the result of a match to an invoice in AP.&lt;br /&gt;            Commitment types are as per PO set up for Purchase Orders&lt;br /&gt;            - for us the CJE encumbrances are&lt;br /&gt;                 PO requisitions = Commitment (no longer used)&lt;br /&gt;                 PO encumbrances = Obligation&lt;br /&gt;                 Invoice encumbrance = Invoice&lt;br /&gt;            Any other entries from are credits (reducing the encumbrance)&lt;br /&gt;            as a result of approved and posted invoices (these credits are&lt;br /&gt;            created during the AP to GL transfer) */&lt;br /&gt;            -- get gl batch name and encumbrance type&lt;br /&gt;            OPEN cu_gl_batch_name;&lt;br /&gt;&lt;br /&gt;            --FETCH cu_gl_batch_name INTO l_batch_name, l_encumbrance_type;&lt;br /&gt;            FETCH cu_gl_batch_name&lt;br /&gt;             INTO l_encumbrance_type;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_gl_batch_name;&lt;br /&gt;&lt;br /&gt;            IF l_batch_name NOT LIKE 'CJE%'&lt;br /&gt;            THEN&lt;br /&gt;               l_txn_amt := -1 * l_txn_amt;&lt;br /&gt;            END IF;&lt;br /&gt;&lt;br /&gt;            IF     (    (   l_batch_name LIKE 'CJE%'&lt;br /&gt;                         OR l_batch_name LIKE 'Payables%E%'&lt;br /&gt;                        )&lt;br /&gt;                    AND l_encumbrance_type IN&lt;br /&gt;                                      ('Obligation', 'Commitment', 'Invoice')&lt;br /&gt;                   )&lt;br /&gt;               AND l_txn_amt IS NULL&lt;br /&gt;            THEN&lt;br /&gt;               /* get gl journal line amount as this ensures that any&lt;br /&gt;               reclaimed VAT (OPSF Gross Based VAT localisation) is included&lt;br /&gt;               to ensure s-ledger amounts = gl amounts`&lt;br /&gt;               The reason for this is that GBV encumbrances are grossed up in GL lines,&lt;br /&gt;               ie. they include the reclaimable amount. However the gl_import_refs&lt;br /&gt;               table only includes the audit trail to the invoice item distribution&lt;br /&gt;               which doesnt include the reclaimable VAT amount.&lt;br /&gt;               Using the gl_line amount ensures correct results and is safe as OPSF&lt;br /&gt;               posts from AP to GL at detail level.&lt;br /&gt;               Note that it is only for this case that a problem with the audit trail&lt;br /&gt;               was found. If you want to check select the invoice distribution amount&lt;br /&gt;               using the view (ICGL_0213_SUB_LEDGER_DETAIL_V) and also display the&lt;br /&gt;               gl line amount,... then things may/should become clear */&lt;br /&gt;               --OPEN  cu_gl_line_amt;&lt;br /&gt;               --FETCH cu_gl_line_amt INTO l_txn_amt;&lt;br /&gt;               --CLOSE cu_gl_line_amt;&lt;br /&gt;               l_txn_amt := NVL (p_accounted_dr, 0) - NVL (p_accounted_cr, 0);&lt;br /&gt;            END IF;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Purchasing'&lt;br /&gt;      THEN&lt;br /&gt;         /* All purchasing entries are encumbrances except for receipts */&lt;br /&gt;         IF (p_category = 'Receiving' AND p_actual_flag = 'A')&lt;br /&gt;         THEN&lt;br /&gt;            -- get receipt amounts (use the amount on GL line&lt;br /&gt;            -- as we dont know which receipt this is!!!)&lt;br /&gt;            --OPEN  cu_gl_line_amt;&lt;br /&gt;            --FETCH cu_gl_line_amt INTO l_txn_amt;&lt;br /&gt;            --CLOSE cu_gl_line_amt;&lt;br /&gt;            l_txn_amt := NVL (p_accounted_dr, 0) - NVL (p_accounted_cr, 0);&lt;br /&gt;         ELSIF p_reference_1 = 'PO'&lt;br /&gt;         THEN&lt;br /&gt;            -- get distribution amt -- Commented by Ankush Shinde against marval log 6773 to fetch the value from GL instead of PO distributions&lt;br /&gt;            --     OPEN  cu_po_dist_amt;&lt;br /&gt;            --     FETCH cu_po_dist_amt INTO l_txn_amt;&lt;br /&gt;            --     CLOSE cu_po_dist_amt;&lt;br /&gt;            --OPEN  cu_gl_line_amt;&lt;br /&gt;            --FETCH cu_gl_line_amt INTO l_txn_amt;&lt;br /&gt;            --CLOSE cu_gl_line_amt;&lt;br /&gt;            l_txn_amt := NVL (p_accounted_dr, 0) - NVL (p_accounted_cr, 0);&lt;br /&gt;&lt;br /&gt;            -- get gl batch name&lt;br /&gt;            OPEN cu_gl_batch_name;&lt;br /&gt;&lt;br /&gt;            --FETCH cu_gl_batch_name INTO l_batch_name, l_encumbrance_type;&lt;br /&gt;            FETCH cu_gl_batch_name&lt;br /&gt;             INTO l_encumbrance_type;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_gl_batch_name;&lt;br /&gt;&lt;br /&gt;            /* If batch is as a result of the GL program&lt;br /&gt;            "Program - Create Journals" which creates the PO encumbrances&lt;br /&gt;            get gl batch name and encumbrance type.&lt;br /&gt;            The program creates batches where the name starts with CJE.&lt;br /&gt;            The encumbrances are the debit encumbrance entries for the PO&lt;br /&gt;            or requisition, the commitment type is as per PO set up for&lt;br /&gt;            Purchase Orders (for us Obligation). Any other entries from purchasing&lt;br /&gt;            are credits so multiply amount by -1 */&lt;br /&gt;            IF (    l_batch_name LIKE 'CJE%'&lt;br /&gt;                AND l_encumbrance_type NOT IN ('Obligation', 'Commitment')&lt;br /&gt;               )&lt;br /&gt;            THEN&lt;br /&gt;               l_txn_amt := -1 * l_txn_amt;&lt;br /&gt;            END IF;&lt;br /&gt;         /*-----AmarS: If PO txn_amount is NULL after above then retrieve from GL.*/&lt;br /&gt;         -- Commented by ankush as we are directly fetching the value from GL , there is no point in calling the same twice&lt;br /&gt;         --     IF (l_txn_amt IS NULL ) THEN&lt;br /&gt;         --        OPEN  cu_gl_line_amt;&lt;br /&gt;         --        FETCH cu_gl_line_amt INTO l_txn_amt;&lt;br /&gt;         --        CLOSE cu_gl_line_amt;&lt;br /&gt;         --     END IF;&lt;br /&gt;         ELSIF p_reference_1 = 'REQ'&lt;br /&gt;         THEN&lt;br /&gt;            -- Added By Ankush Shinde to display the requisition values from JE lines instead of po distribution&lt;br /&gt;            -- Marval Log 141720&lt;br /&gt;            -- get distribution amt&lt;br /&gt;            --OPEN  cu_gl_line_amt;&lt;br /&gt;            --FETCH cu_gl_line_amt INTO l_txn_amt;&lt;br /&gt;            --CLOSE cu_gl_line_amt;&lt;br /&gt;            l_txn_amt := NVL (p_accounted_dr, 0) - NVL (p_accounted_cr, 0);&lt;br /&gt;&lt;br /&gt;            --     OPEN  cu_poreq_dist_amt;&lt;br /&gt;            --     FETCH cu_poreq_dist_amt INTO l_txn_amt;&lt;br /&gt;            --     CLOSE cu_poreq_dist_amt;&lt;br /&gt;            -- get gl batch name&lt;br /&gt;            OPEN cu_gl_batch_name;&lt;br /&gt;&lt;br /&gt;            --FETCH cu_gl_batch_name INTO l_batch_name, l_encumbrance_type;&lt;br /&gt;            FETCH cu_gl_batch_name&lt;br /&gt;             INTO l_encumbrance_type;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_gl_batch_name;&lt;br /&gt;&lt;br /&gt;            -- See note for PO's above&lt;br /&gt;            IF (    l_batch_name LIKE 'CJE%'&lt;br /&gt;                AND l_encumbrance_type NOT IN&lt;br /&gt;                                 ('Obligation', 'Commitment', 'Requisitions')&lt;br /&gt;               )&lt;br /&gt;            THEN&lt;br /&gt;               l_txn_amt := -1 * l_txn_amt;&lt;br /&gt;            END IF;&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Inventory'&lt;br /&gt;      THEN&lt;br /&gt;         RETURN 0;&lt;br /&gt;&lt;br /&gt;         -- get inventory transaction type name&lt;br /&gt;         /*      OPEN cu_inv_tx_type;&lt;br /&gt;         FETCH cu_inv_tx_type&lt;br /&gt;           INTO l_txn_type_name;&lt;br /&gt;         CLOSE cu_inv_tx_type;*/&lt;br /&gt;         IF l_txn_type_name = 'Purchase order receipt'&lt;br /&gt;         THEN&lt;br /&gt;            -- get tx amt&lt;br /&gt;            /*        OPEN cu_inv_po_rcpt_amt;&lt;br /&gt;            FETCH cu_inv_po_rcpt_amt&lt;br /&gt;              INTO l_txn_amt;&lt;br /&gt;            CLOSE cu_inv_po_rcpt_amt;*/&lt;br /&gt;            NULL;&lt;br /&gt;         ELSIF l_txn_type_name = 'Miscellaneous receipt'&lt;br /&gt;         THEN&lt;br /&gt;            -- get tx amt&lt;br /&gt;            /*        OPEN cu_inv_misc_rcpt_amt;&lt;br /&gt;            FETCH cu_inv_misc_rcpt_amt&lt;br /&gt;              INTO l_txn_amt;&lt;br /&gt;            CLOSE cu_inv_misc_rcpt_amt;*/&lt;br /&gt;            NULL;&lt;br /&gt;         ELSIF l_txn_type_name = 'Internal order issue'&lt;br /&gt;         THEN&lt;br /&gt;            -- get tx amt&lt;br /&gt;            /*        OPEN cu_inv_poreq_issue_amt;&lt;br /&gt;            FETCH cu_inv_poreq_issue_amt&lt;br /&gt;              INTO l_txn_amt;&lt;br /&gt;            CLOSE cu_inv_poreq_issue_amt;*/&lt;br /&gt;            NULL;&lt;br /&gt;         ELSE&lt;br /&gt;            /* other inventory transaction */&lt;br /&gt;            NULL;&lt;br /&gt;         /*        OPEN cu_inv_other_tx_amt;&lt;br /&gt;         FETCH cu_inv_other_tx_amt&lt;br /&gt;           INTO l_txn_amt;&lt;br /&gt;         CLOSE cu_inv_other_tx_amt;*/&lt;br /&gt;         END IF;&lt;br /&gt;      ELSIF p_source = 'Receivables'&lt;br /&gt;      THEN&lt;br /&gt;         IF p_reference_10 = 'AR_ADJUSTMENTS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get adjustment amt&lt;br /&gt;            OPEN cu_ar_adj_amt;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_adj_amt&lt;br /&gt;             INTO l_txn_amt;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_adj_amt;&lt;br /&gt;&lt;br /&gt;            l_txn_amt := l_txn_amt;&lt;br /&gt;       -- +10000;  removed by J.K.Pallot to obtain correct transaction amount&lt;br /&gt;&lt;br /&gt;            IF p_reference_9 = 'ADJ_ADJ'&lt;br /&gt;            THEN&lt;br /&gt;               l_txn_amt := -1 * l_txn_amt;&lt;br /&gt;            END IF;&lt;br /&gt;         ELSIF p_reference_10 = 'AR_MISC_CASH_DISTRIBUTIONS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get receipt no&lt;br /&gt;            OPEN cu_ar_misc_cash_rcpt_amt;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_misc_cash_rcpt_amt&lt;br /&gt;             INTO l_txn_amt;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_misc_cash_rcpt_amt;&lt;br /&gt;&lt;br /&gt;            l_txn_amt := -1 * l_txn_amt;&lt;br /&gt;         ELSIF p_reference_10 = 'AR_RECEIVABLE_APPLICATIONS'&lt;br /&gt;         THEN&lt;br /&gt;            -- get receipt or cm (etc) no from which application was made&lt;br /&gt;            OPEN cu_ar_rx_app_applied_amt;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_rx_app_applied_amt&lt;br /&gt;             INTO l_txn_amt;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_rx_app_applied_amt;&lt;br /&gt;&lt;br /&gt;            IF p_reference_9 IN&lt;br /&gt;                  ('TRADE_APP',&lt;br /&gt;                   'TRADE_DISCAPP',&lt;br /&gt;                   'TRADE_GL',&lt;br /&gt;                   'CMAPP_APP',&lt;br /&gt;                   'CMAPP_GL'&lt;br /&gt;                  )&lt;br /&gt;            THEN&lt;br /&gt;               l_txn_amt := -1 * l_txn_amt;&lt;br /&gt;            END IF;&lt;br /&gt;         ELSIF p_reference_10 = 'AR_CASH_RECEIPT_HISTORY'&lt;br /&gt;         THEN&lt;br /&gt;            -- get receipt no&lt;br /&gt;            OPEN cu_ar_cash_rcpt_amt;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_cash_rcpt_amt&lt;br /&gt;             INTO l_txn_amt;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_cash_rcpt_amt;&lt;br /&gt;&lt;br /&gt;            IF p_reference_9 IN&lt;br /&gt;                              ('TRADE_REV', 'TRADE_BANKREV', 'MISC_BANKREV')&lt;br /&gt;            THEN&lt;br /&gt;               l_txn_amt := -1 * l_txn_amt;&lt;br /&gt;            END IF;&lt;br /&gt;         ELSIF p_reference_10 = 'RA_CUST_TRX_LINE_GL_DIST'&lt;br /&gt;         THEN&lt;br /&gt;            -- get invoice/credit memo etc. number&lt;br /&gt;            OPEN cu_ar_cust_trx_amt;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_cust_trx_amt&lt;br /&gt;             INTO l_txn_amt;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_cust_trx_amt;&lt;br /&gt;&lt;br /&gt;            IF p_reference_9 NOT IN&lt;br /&gt;                                   ('CM_REC', 'DM_REC', 'CB_REC', 'INV_REC')&lt;br /&gt;            THEN&lt;br /&gt;               l_txn_amt := -1 * l_txn_amt;&lt;br /&gt;            END IF;&lt;br /&gt;         END IF;&lt;br /&gt;      END IF;&lt;br /&gt;&lt;br /&gt;      -- if the txn isnt covered by above (l_txn_amt is null)&lt;br /&gt;      -- then get gl journal line amount&lt;br /&gt;      IF l_txn_amt IS NULL&lt;br /&gt;      THEN&lt;br /&gt;         --OPEN  cu_gl_line_amt;&lt;br /&gt;         --FETCH cu_gl_line_amt INTO l_txn_amt;&lt;br /&gt;         --CLOSE cu_gl_line_amt;&lt;br /&gt;         l_txn_amt := NVL (p_accounted_dr, 0) - NVL (p_accounted_cr, 0);&lt;br /&gt;      /*    OPEN  cu_gl_line_amt;&lt;br /&gt;         FETCH cu_gl_line_amt INTO l_txn_amt;&lt;br /&gt;         CLOSE cu_gl_line_amt;&lt;br /&gt;      /*IF (l_batch_name LIKE 'CJE%'&lt;br /&gt;             AND l_encumbrance_type NOT IN ('Obligation','Commitment')) THEN&lt;br /&gt;           l_txn_amt := -1*l_txn_amt;&lt;br /&gt;         END IF;*/&lt;br /&gt;      END IF;&lt;br /&gt;&lt;br /&gt;      RETURN l_txn_amt;&lt;br /&gt;   --&lt;br /&gt;   -- Code added by Ayyappan to trap the error INVALID_NUMBER for Management Reports,&lt;br /&gt;   -- reported by Brian McVeigh.&lt;br /&gt;   --&lt;br /&gt;   EXCEPTION&lt;br /&gt;      WHEN INVALID_NUMBER&lt;br /&gt;      THEN&lt;br /&gt;         RETURN (0);&lt;br /&gt;     --&lt;br /&gt;   -- End of code&lt;br /&gt;   --&lt;br /&gt;   END fn_sel_txn_amt;&lt;br /&gt;&lt;br /&gt;   FUNCTION fn_sel_spec_instructions (&lt;br /&gt;      p_source         IN   VARCHAR2,&lt;br /&gt;      p_category       IN   VARCHAR2,&lt;br /&gt;      p_actual_flag    IN   VARCHAR2,&lt;br /&gt;      p_je_header_id   IN   NUMBER,&lt;br /&gt;      p_je_line_num    IN   NUMBER,&lt;br /&gt;      p_reference_1    IN   VARCHAR2,&lt;br /&gt;      p_reference_2    IN   VARCHAR2,&lt;br /&gt;      p_reference_3    IN   VARCHAR2,&lt;br /&gt;      p_reference_4    IN   VARCHAR2,&lt;br /&gt;      p_reference_5    IN   VARCHAR2,&lt;br /&gt;      p_reference_6    IN   VARCHAR2,&lt;br /&gt;      p_reference_7    IN   VARCHAR2,&lt;br /&gt;      p_reference_10   IN   VARCHAR2&lt;br /&gt;   )&lt;br /&gt;      RETURN VARCHAR2&lt;br /&gt;   IS&lt;br /&gt;      l_text   VARCHAR2 (2000) := NULL;&lt;br /&gt;&lt;br /&gt;      /* Note that whilst some of the AR cursors are the same&lt;br /&gt;      they have been declared separately to make code easier&lt;br /&gt;      to maintain in case the data to be retrieved changes&lt;br /&gt;      for certain tx's */&lt;br /&gt;      CURSOR cu_ar_cust_trx_no&lt;br /&gt;      IS&lt;br /&gt;         SELECT ct.internal_notes&lt;br /&gt;           FROM ra_customer_trx_all ct, ra_cust_trx_line_gl_dist_all ctlgd&lt;br /&gt;          WHERE ct.customer_trx_id = ctlgd.customer_trx_id&lt;br /&gt;            AND ctlgd.cust_trx_line_gl_dist_id = TO_NUMBER (p_reference_3);&lt;br /&gt;   BEGIN&lt;br /&gt;      IF p_source = 'Receivables'&lt;br /&gt;      THEN&lt;br /&gt;         IF p_reference_10 = 'RA_CUST_TRX_LINE_GL_DIST'&lt;br /&gt;         THEN&lt;br /&gt;            -- get invoice/credit memo etc. number&lt;br /&gt;            OPEN cu_ar_cust_trx_no;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_cust_trx_no&lt;br /&gt;             INTO l_text;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_cust_trx_no;&lt;br /&gt;         END IF;&lt;br /&gt;      END IF;&lt;br /&gt;&lt;br /&gt;      RETURN l_text;&lt;br /&gt;   EXCEPTION&lt;br /&gt;      WHEN INVALID_NUMBER&lt;br /&gt;      THEN&lt;br /&gt;         RETURN NULL;&lt;br /&gt;   END fn_sel_spec_instructions;&lt;br /&gt;&lt;br /&gt;   FUNCTION fn_sel_comments (&lt;br /&gt;      p_source         IN   VARCHAR2,&lt;br /&gt;      p_category       IN   VARCHAR2,&lt;br /&gt;      p_actual_flag    IN   VARCHAR2,&lt;br /&gt;      p_je_header_id   IN   NUMBER,&lt;br /&gt;      p_je_line_num    IN   NUMBER,&lt;br /&gt;      p_reference_1    IN   VARCHAR2,&lt;br /&gt;      p_reference_2    IN   VARCHAR2,&lt;br /&gt;      p_reference_3    IN   VARCHAR2,&lt;br /&gt;      p_reference_4    IN   VARCHAR2,&lt;br /&gt;      p_reference_5    IN   VARCHAR2,&lt;br /&gt;      p_reference_6    IN   VARCHAR2,&lt;br /&gt;      p_reference_7    IN   VARCHAR2,&lt;br /&gt;      p_reference_10   IN   VARCHAR2&lt;br /&gt;   )&lt;br /&gt;      RETURN VARCHAR2&lt;br /&gt;   IS&lt;br /&gt;      l_text   VARCHAR2 (2000) := NULL;&lt;br /&gt;&lt;br /&gt;      /* Note that whilst some of the AR cursors are the same&lt;br /&gt;      they have been declared separately to make code easier&lt;br /&gt;      to maintain in case the data to be retrieved changes&lt;br /&gt;      for certain tx's */&lt;br /&gt;      CURSOR cu_ar_cust_trx_no&lt;br /&gt;      IS&lt;br /&gt;         SELECT ct.comments&lt;br /&gt;           FROM ra_customer_trx_all ct, ra_cust_trx_line_gl_dist_all ctlgd&lt;br /&gt;          WHERE ct.customer_trx_id = ctlgd.customer_trx_id&lt;br /&gt;            AND ctlgd.cust_trx_line_gl_dist_id = TO_NUMBER (p_reference_3);&lt;br /&gt;   BEGIN&lt;br /&gt;      IF p_source = 'Receivables'&lt;br /&gt;      THEN&lt;br /&gt;         IF p_reference_10 = 'RA_CUST_TRX_LINE_GL_DIST'&lt;br /&gt;         THEN&lt;br /&gt;            -- get invoice/credit memo etc. number&lt;br /&gt;            OPEN cu_ar_cust_trx_no;&lt;br /&gt;&lt;br /&gt;            FETCH cu_ar_cust_trx_no&lt;br /&gt;             INTO l_text;&lt;br /&gt;&lt;br /&gt;            CLOSE cu_ar_cust_trx_no;&lt;br /&gt;         END IF;&lt;br /&gt;      END IF;&lt;br /&gt;&lt;br /&gt;      RETURN l_text;&lt;br /&gt;   EXCEPTION&lt;br /&gt;      WHEN INVALID_NUMBER&lt;br /&gt;      THEN&lt;br /&gt;         RETURN NULL;&lt;br /&gt;   END fn_sel_comments;&lt;br /&gt;END xx_gl_to_modue_trx_details_pkg;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34646129-157902160623352358?l=scripts4oracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scripts4oracle.blogspot.com/feeds/157902160623352358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34646129&amp;postID=157902160623352358' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/157902160623352358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/157902160623352358'/><link rel='alternate' type='text/html' href='http://scripts4oracle.blogspot.com/2007/09/glimportreferences.html' title='GL_IMPORT_REFERENCES'/><author><name>Anil Passi</name><uri>http://www.blogger.com/profile/14859722075898946765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34646129.post-116686312172961883</id><published>2006-12-23T00:36:00.000-08:00</published><updated>2007-02-24T05:36:04.933-08:00</updated><title type='text'>testing workflow</title><content type='html'>in response to a query raised on below URL&lt;br /&gt;&lt;br /&gt;&lt;a href="http://oracle.anilpassi.com/index.php?option=content&amp;task=view&amp;amp;id=27"&gt;http://oracle.anilpassi.com/index.php?option=content&amp;task=view&amp;amp;id=27&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger/2204/1007/1600/688452/ravi.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/x/blogger/2204/1007/400/134826/ravi.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34646129-116686312172961883?l=scripts4oracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scripts4oracle.blogspot.com/feeds/116686312172961883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34646129&amp;postID=116686312172961883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/116686312172961883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/116686312172961883'/><link rel='alternate' type='text/html' href='http://scripts4oracle.blogspot.com/2006/12/testing-workflow.html' title='testing workflow'/><author><name>Anil Passi</name><uri>http://www.blogger.com/profile/14859722075898946765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34646129.post-116572253146604425</id><published>2006-12-09T19:47:00.000-08:00</published><updated>2007-03-23T06:03:44.026-07:00</updated><title type='text'>Self Service HR Script 3 to allocate responsibilities and create users</title><content type='html'>&lt;p&gt;set scan on ;&lt;br /&gt;set scan off ;&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE PACKAGE BODY xx_sshr_allocate_resp_pkg IS&lt;br /&gt;--DO NOT RUN THIS WITHOUT CHANGING XXPRD&lt;br /&gt;--REPLACE XXPRD BY RESULT OF BELOW SQL FROM PRODUCTION&lt;br /&gt;--select instance_name from v$instance ;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; --Created in Nov 06 by Anil Passi&lt;br /&gt;&amp;nbsp; /*&lt;br /&gt;&amp;nbsp; When&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; By&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Why&lt;br /&gt;&amp;nbsp; -----------------------------------------------&lt;br /&gt;&amp;nbsp; 29Nov06&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AnilPassi&amp;nbsp; To allocate responsibilities&lt;br /&gt;&amp;nbsp; 01Dec06&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Anil Passi To create new users too&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Send emails to new users with their password etc&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Send emails to existing users that they now have sshr&lt;br /&gt;&amp;nbsp; */&lt;br /&gt;&amp;nbsp; g_instance_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VARCHAR2(100) := &amp;#39;JUNK&amp;#39;;&lt;br /&gt;&amp;nbsp; g_debug_procedure_context VARCHAR2(50);&lt;br /&gt;&amp;nbsp; g_debug_header_context CONSTANT VARCHAR2(80) := &amp;#39;xxxx_sshr_allocate_resp_pkg.&amp;#39;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; PROCEDURE debug_begin_procedure IS&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_log.STRING(log_level =&amp;gt; fnd_log.level_statement&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,module&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; g_debug_header_context ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_debug_procedure_context&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,message&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#39;Begin &amp;#39; || g_debug_procedure_context);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF fnd_global.conc_request_id &amp;gt; 0 AND&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_profile.VALUE(&amp;#39;AFLOG_ENABLED&amp;#39;) = &amp;#39;Y&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_file.put_line(which =&amp;gt; fnd_file.log&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,buff&amp;nbsp; =&amp;gt; &amp;#39;Begin &amp;#39; || g_debug_procedure_context);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; END debug_begin_procedure;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; PROCEDURE debug_stmt(p_msg IN VARCHAR2) IS&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_log.STRING(log_level =&amp;gt; fnd_log.level_statement&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,module&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; g_debug_header_context ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_debug_procedure_context&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,message&amp;nbsp;&amp;nbsp; =&amp;gt; p_msg);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF fnd_global.conc_request_id &amp;gt; 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_file.put_line(which =&amp;gt; fnd_file.log&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,buff&amp;nbsp; =&amp;gt; p_msg);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;br /&gt;&amp;nbsp; END debug_stmt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; PROCEDURE debug_end_procedure IS&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_log.STRING(log_level =&amp;gt; fnd_log.level_statement&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,module&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; g_debug_header_context ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_debug_procedure_context&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,message&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#39;End &amp;#39; || g_debug_procedure_context);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF fnd_global.conc_request_id &amp;gt; 0 AND&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_profile.VALUE(&amp;#39;AFLOG_ENABLED&amp;#39;) = &amp;#39;Y&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_file.put_line(which =&amp;gt; fnd_file.log&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,buff&amp;nbsp; =&amp;gt; &amp;#39;End &amp;#39; || g_debug_procedure_context);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; END debug_end_procedure;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; PROCEDURE set_debug_context(p_procedure_name IN VARCHAR2) IS&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_debug_procedure_context := p_procedure_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug_begin_procedure;&lt;br /&gt;&amp;nbsp; END set_debug_context;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION is_user_creation_possible(p_person_id IN INTEGER&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_xxdp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OUT xx_windows_logon_table%ROWTYPE)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN VARCHAR2 IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CURSOR c_check IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT xxdp.*&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM per_people_x ppx, xx_windows_logon_table xxdp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE ltrim(ppx.employee_number&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;0&amp;#39;) = ltrim(xxdp.emp_no&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;0&amp;#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ppx.person_id = p_person_id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_check c_check%ROWTYPE;&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPEN c_check;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH c_check&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO p_check;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE c_check;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_xxdp := p_check;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF p_check.emp_no IS NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN &amp;#39;No emp_no record in Network Login Table&amp;#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSIF p_check.nt_login IS NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN &amp;#39;No NT Login Available for this Person in Network Login Table&amp;#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSIF p_check.college_email_address IS NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN &amp;#39;No Email Address for this Person in Network Login Table&amp;#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN NULL;&lt;br /&gt;&amp;nbsp; END is_user_creation_possible;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION get_email_from_emp_no(p_emp_no_email&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_test_email IN VARCHAR2) RETURN VARCHAR2 IS&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF g_instance_name = &amp;#39;XXPRD&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN p_emp_no_email;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN p_test_email;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;br /&gt;&amp;nbsp; END get_email_from_emp_no;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION does_fu_exist(p_fu_name IN VARCHAR2) RETURN BOOLEAN IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CURSOR c_check IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT &amp;#39;x&amp;#39; FROM fnd_user fu WHERE fu.user_name = upper(p_fu_name);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_check c_check%ROWTYPE;&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPEN c_check;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH c_check&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO p_check;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF c_check%FOUND&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE c_check;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN TRUE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE c_check;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN FALSE;&lt;br /&gt;&amp;nbsp; END does_fu_exist;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; PROCEDURE send_email_to_new_user(p_xxdp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN xx_windows_logon_table%ROWTYPE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_user_name&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_password&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_test_email IN VARCHAR2) IS&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DECLARE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; send_html_email(p_to&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; get_email_from_emp_no(p_xxdp.college_email_address&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_test_email)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_from&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; nvl(p_test_email&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;xxmail@gmail.com&amp;#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_subject&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#39;Welcome to Self Service HR&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_text&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#39;Welcome to Self Service HR&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_html&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#39;&amp;lt;b&amp;gt;Your User Name&amp;lt;/b&amp;gt; : &amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_user_name ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Your Password&amp;lt;/b&amp;gt; : &amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_password || &amp;#39;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;This user name and password gives you access the new Self Service HR.&amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Self Service HR enables Company staff to view and update their own personal data. The &amp;lt;br/&amp;gt;information is current and any changes made will be implemented immediately.&amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Please go to Spectrum following this link &amp;lt;br/&amp;gt;&amp;lt;a href=&amp;quot;http://anilpassi.com&amp;quot;&amp;gt;http://anilpassi.com&amp;lt;/a&amp;gt;&amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;&amp;lt;br/&amp;gt;where you can log into Self Service HR, find out more and read the FAQs.&amp;#39; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_smtp_hostname =&amp;gt; &amp;#39;localhost&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_smtp_portnum&amp;nbsp; =&amp;gt; &amp;#39;25&amp;#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END;&lt;br /&gt;&amp;nbsp; END send_email_to_new_user;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; PROCEDURE send_email_to_existing_user(p_xxdp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN xx_windows_logon_table%ROWTYPE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_test_email IN VARCHAR2) IS&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DECLARE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; send_html_email(p_to&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; get_email_from_emp_no(p_xxdp.college_email_address&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_test_email)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_from&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; nvl(p_test_email&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;xxmail@gmail.com&amp;#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_subject&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#39;Welcome to Self Service HR&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_text&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#39;Welcome to Self Service HR&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_html&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#39;We are writing to let you know that the next time you log into Oracle Apps you will see a new&amp;lt;br/&amp;gt; responsibility, &amp;lt;b&amp;gt;XX HR Employee Self Service&amp;lt;/b&amp;gt;. This responsibility gives you access the new&amp;lt;br/&amp;gt; Self Service HR feature in Oracle Apps.&amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;Self Service HR enables staff to view and update their own personal data.&amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;Please go to this link&amp;lt;br/&amp;gt;&amp;lt;a href=&amp;quot;http://anilpassi.com&amp;quot;&amp;gt;http://anilpassi.com&amp;lt;/a&amp;gt;&amp;lt;br/&amp;gt;to find out more and read the FAQs.&amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;#39; || &amp;#39;Regards&amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;SSHR Rollout Team&amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;&amp;lt;br/&amp;gt;&amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;HR Dept&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_smtp_hostname =&amp;gt; &amp;#39;localhost&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_smtp_portnum&amp;nbsp; =&amp;gt; &amp;#39;25&amp;#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END;&lt;br /&gt;&amp;nbsp; END send_email_to_existing_user;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION get_latest_fu(p_proposed_fu_name IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_proposed_offset&amp;nbsp; IN INTEGER) RETURN VARCHAR2 IS&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF does_fu_exist(p_proposed_fu_name || p_proposed_offset)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN get_latest_fu(p_proposed_fu_name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_proposed_offset + 1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN upper(p_proposed_fu_name || p_proposed_offset);&lt;br /&gt;&amp;nbsp; END get_latest_fu;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION get_fu_name(p_nt_login IN VARCHAR2) RETURN VARCHAR2 IS&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF NOT does_fu_exist(p_nt_login)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN upper(p_nt_login);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF NOT does_fu_exist(p_nt_login)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN upper(p_nt_login);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN get_latest_fu(p_nt_login&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,1);&lt;br /&gt;&amp;nbsp; END get_fu_name;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION get_user_name_from_fu_per_id(p_person_id IN VARCHAR2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN VARCHAR2 IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CURSOR c_get IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT fu.user_name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM fnd_user fu&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE fu.employee_id = p_person_id;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_get c_get%ROWTYPE;&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPEN c_get;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH c_get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO p_get;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE c_get;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN p_get.user_name;&lt;br /&gt;&amp;nbsp; END get_user_name_from_fu_per_id;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION get_random_password RETURN VARCHAR2 IS&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN lower(dbms_random.STRING(&amp;#39;X&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,8));&lt;br /&gt;&amp;nbsp; END get_random_password;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION get_person_name(p_person_id IN INTEGER) RETURN VARCHAR2 IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CURSOR c_get IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT full_name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM per_all_people_f&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE person_id = p_person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORDER BY effective_start_date DESC;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_get c_get%ROWTYPE;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPEN c_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH c_get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO p_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE c_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN p_get.full_name;&lt;br /&gt;&amp;nbsp; END get_person_name;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; PROCEDURE create_fnd_user_for_emp_no(p_user_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_person_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN INTEGER&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_email_address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_person_description IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_password&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OUT VARCHAR2) IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_session_id VARCHAR2(200);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_password&amp;nbsp;&amp;nbsp; VARCHAR2(100) := get_random_password;&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_password := v_password;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_user_pkg.createuser(x_user_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; p_user_name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,x_owner&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#39;&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,x_unencrypted_password&amp;nbsp;&amp;nbsp; =&amp;gt; v_password&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,x_description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; p_person_description&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,x_password_lifespan_days =&amp;gt; 180&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,x_employee_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; p_person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,x_email_address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; p_email_address);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; END create_fnd_user_for_emp_no;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION get_fu_id(p_fu_name IN VARCHAR2) RETURN VARCHAR2 IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CURSOR c_get IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT user_id FROM fnd_user WHERE user_name = p_fu_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_get c_get%ROWTYPE;&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPEN c_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH c_get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO p_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE c_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN p_get.user_id;&lt;br /&gt;&amp;nbsp; END get_fu_id;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION create_fnd_user(p_person_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN INTEGER&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_xxdp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN xx_windows_logon_table%ROWTYPE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_new_fnd_user_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OUT VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_new_fnd_user_password OUT VARCHAR2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN INTEGER IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_user_name fnd_user.user_name%TYPE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_password&amp;nbsp; VARCHAR2(200);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_err&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VARCHAR2(2000);&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_user_name := get_fu_name(p_nt_login =&amp;gt; p_xxdp.nt_login);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug_stmt(&amp;#39;For p_xxdp.nt_login=&amp;gt;&amp;#39; || p_xxdp.nt_login ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; the username is &amp;#39; || v_user_name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create_fnd_user_for_emp_no(p_user_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; p_xxdp.nt_login&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_person_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; p_person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_email_address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; p_xxdp.college_email_address&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_person_description =&amp;gt; p_xxdp.title || &amp;#39; &amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_xxdp.first_name || &amp;#39; &amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_xxdp.last_name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_password&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; v_password);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_new_fnd_user_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; := v_user_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_new_fnd_user_password := v_password;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN get_fu_id(p_fu_name =&amp;gt; v_user_name);&lt;br /&gt;&amp;nbsp; EXCEPTION&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN OTHERS THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_err := substr(SQLERRM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,2000);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug_stmt(v_err);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN NULL;&lt;br /&gt;&amp;nbsp; END create_fnd_user;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; PROCEDURE send_html_email(p_to&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_from&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_subject&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_text&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2 DEFAULT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_html&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2 DEFAULT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_smtp_hostname IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_smtp_portnum&amp;nbsp; IN VARCHAR2) IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_boundary&amp;nbsp;&amp;nbsp; VARCHAR2(255) DEFAULT &amp;#39;a1b2c3d4e3f2g1&amp;#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_connection utl_smtp.connection;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_body_html&amp;nbsp; CLOB := empty_clob; --This LOB will be the email message&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_offset&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NUMBER;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_ammount&amp;nbsp;&amp;nbsp;&amp;nbsp; NUMBER;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_temp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VARCHAR2(32767) DEFAULT NULL;&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Usage......&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; html_email(p_to&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#39;a.passi@Company.ac.uk&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_from&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#39;anilpassi@gmail.com&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_subject&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#39;Testing from anil&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_text&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#39;ABCD&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_html&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#39;&amp;lt;b&amp;gt;IJKLM&amp;lt;/b&amp;gt; Testing for the HTML Format of the email&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_smtp_hostname =&amp;gt; &amp;#39;localhost&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_smtp_portnum&amp;nbsp; =&amp;gt; &amp;#39;25&amp;#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_connection := utl_smtp.open_connection(p_smtp_hostname&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_smtp_portnum);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_smtp.helo(l_connection&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_smtp_hostname);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_smtp.mail(l_connection&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_from);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_smtp.rcpt(l_connection&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_to);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_temp := l_temp || &amp;#39;MIME-Version: 1.0&amp;#39; || chr(13) || chr(10);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_temp := l_temp || &amp;#39;To: &amp;#39; || p_to || chr(13) || chr(10);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_temp := l_temp || &amp;#39;From: &amp;#39; || p_from || chr(13) || chr(10);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_temp := l_temp || &amp;#39;Subject: &amp;#39; || p_subject || chr(13) || chr(10);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_temp := l_temp || &amp;#39;Reply-To: &amp;#39; || p_from || chr(13) || chr(10);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_temp := l_temp || &amp;#39;Content-Type: multipart/alternative; boundary=&amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chr(34) || l_boundary || chr(34) || chr(13) || chr(10);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------------------------------------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- Write the headers&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_lob.createtemporary(l_body_html&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,FALSE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,10);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_lob.WRITE(l_body_html&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,length(l_temp)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,l_temp);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------------------------------------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- Write the text boundary&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_offset := dbms_lob.getlength(l_body_html) + 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_temp&amp;nbsp;&amp;nbsp; := &amp;#39;--&amp;#39; || l_boundary || chr(13) || chr(10);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_temp&amp;nbsp;&amp;nbsp; := l_temp || &amp;#39;content-type: text/plain; charset=us-ascii&amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chr(13) || chr(10) || chr(13) || chr(10);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_lob.WRITE(l_body_html&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,length(l_temp)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,l_offset&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,l_temp);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------------------------------------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- Write the plain text portion of the email&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_offset := dbms_lob.getlength(l_body_html) + 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_lob.WRITE(l_body_html&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,length(p_text)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,l_offset&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_text);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------------------------------------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- Write the HTML boundary&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_temp&amp;nbsp;&amp;nbsp; := chr(13) || chr(10) || chr(13) || chr(10) || &amp;#39;--&amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_boundary || chr(13) || chr(10);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_temp&amp;nbsp;&amp;nbsp; := l_temp || &amp;#39;content-type: text/html;&amp;#39; || chr(13) || chr(10) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chr(13) || chr(10);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_offset := dbms_lob.getlength(l_body_html) + 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_lob.WRITE(l_body_html&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,length(l_temp)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,l_offset&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,l_temp);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------------------------------------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- Write the HTML portion of the message&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_offset := dbms_lob.getlength(l_body_html) + 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_lob.WRITE(l_body_html&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,length(p_html)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,l_offset&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_html);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------------------------------------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- Write the final html boundary&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_temp&amp;nbsp;&amp;nbsp; := chr(13) || chr(10) || &amp;#39;--&amp;#39; || l_boundary || &amp;#39;--&amp;#39; || chr(13);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_offset := dbms_lob.getlength(l_body_html) + 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_lob.WRITE(l_body_html&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,length(l_temp)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,l_offset&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,l_temp);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------------------------------------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- Send the email in 1900 byte chunks to UTL_SMTP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_offset&amp;nbsp; := 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_ammount := 1900;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_smtp.open_data(l_connection);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHILE l_offset &amp;lt; dbms_lob.getlength(l_body_html)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOOP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_smtp.write_data(l_connection&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,dbms_lob.substr(l_body_html&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,l_ammount&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,l_offset));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_offset&amp;nbsp; := l_offset + l_ammount;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_ammount := least(1900&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,dbms_lob.getlength(l_body_html) - l_ammount);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END LOOP;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_smtp.close_data(l_connection);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_smtp.quit(l_connection);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_lob.freetemporary(l_body_html);&lt;br /&gt;&amp;nbsp; END send_html_email;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; PROCEDURE excel_output(p_msg IN VARCHAR2) IS&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_file.put_line(fnd_file.output&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_msg);&lt;br /&gt;&amp;nbsp; END excel_output;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION get_user_name(p_user_id IN INTEGER) RETURN VARCHAR2 IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CURSOR c_get IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT user_name FROM fnd_user WHERE user_id = p_user_id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_get c_get%ROWTYPE;&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPEN c_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH c_get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO p_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE c_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN p_get.user_name;&lt;br /&gt;&amp;nbsp; END get_user_name;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION get_emp_no(p_person_id IN INTEGER) RETURN VARCHAR2 IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CURSOR c_get IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT employee_number&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM xx_per_all_people_x&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE person_id = p_person_id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_get c_get%ROWTYPE;&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPEN c_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH c_get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO p_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE c_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN p_get.employee_number;&lt;br /&gt;&amp;nbsp; END get_emp_no;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION get_cost_centre_group(p_person_id IN INTEGER) RETURN VARCHAR2 IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CURSOR c_get IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT hrou1.attribute5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM hr_all_organization_units hrou1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,hr_all_organization_units hrou&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,xx_per_all_asg_x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ass&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,xx_per_all_people_x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ppx&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE ppx.person_id = p_person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ass.person_id = ppx.person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ass.assignment_number IS NOT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ass.primary_flag = &amp;#39;Y&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND hrou.organization_id = ass.organization_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND hrou1.NAME = primaryhro_pkg.fn_get_primaryhro(ass.organization_id);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_get c_get%ROWTYPE;&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPEN c_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH c_get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO p_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE c_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN p_get.attribute5;&lt;br /&gt;&amp;nbsp; END get_cost_centre_group;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION get_parent_org(p_person_id IN INTEGER) RETURN VARCHAR2 IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CURSOR c_get IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT primaryhro_pkg.fn_get_primaryhro(ass.organization_id) parent_org&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM hr_all_organization_units hrou&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,xx_per_all_asg_x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ass&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,xx_per_all_people_x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ppx&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE ppx.person_id = p_person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ass.person_id = ppx.person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ass.assignment_number IS NOT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ass.primary_flag = &amp;#39;Y&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND hrou.organization_id = ass.organization_id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_get c_get%ROWTYPE;&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPEN c_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH c_get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO p_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE c_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN p_get.parent_org;&lt;br /&gt;&amp;nbsp; END get_parent_org;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION get_grade(p_person_id IN INTEGER) RETURN VARCHAR2 IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CURSOR c_get IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT pg.NAME&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM per_grade_definitions pgd&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,per_grades&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pg&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,xx_per_all_asg_x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ass&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,xx_per_all_people_x&amp;nbsp;&amp;nbsp; ppx&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE ppx.person_id = p_person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ass.person_id = ppx.person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ass.assignment_number IS NOT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ass.primary_flag = &amp;#39;Y&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND pg.grade_id = ass.grade_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND pgd.grade_definition_id = pg.grade_definition_id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_get c_get%ROWTYPE;&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPEN c_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH c_get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO p_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE c_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN p_get.NAME;&lt;br /&gt;&amp;nbsp; END get_grade;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; PROCEDURE run(errbuf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OUT VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,retcode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OUT VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_responsibility_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_person_type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_cost_centre_group_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_cost_centre_group_2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_parent_org_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_parent_org_2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_emp_no&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_read_only_flag&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_test_ceration_email_address IN VARCHAR2) IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n_count&amp;nbsp;&amp;nbsp; INTEGER;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_sqlerrm VARCHAR2(2000);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_not_fnd_create_user EXCEPTION;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; error_in_fnd_user_pkg EXCEPTION;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_fnd_user_name VARCHAR2(100);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CURSOR c_get IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT *&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM fnd_responsibility_vl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE responsibility_name =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nvl(&amp;#39;XX HR Employee Self Service&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_responsibility_name);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_get c_get%ROWTYPE;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; duplicate_responsibility EXCEPTION;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRAGMA EXCEPTION_INIT(duplicate_responsibility&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,-20001);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_hard_password&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VARCHAR2(1) := fnd_profile.VALUE(&amp;#39;SIGNON_PASSWORD_HARD_TO_GUESS&amp;#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_xxdp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xx_windows_logon_table%ROWTYPE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b_new_user_created&amp;nbsp; BOOLEAN;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_fnd_user_password VARCHAR2(100);&lt;br /&gt;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set_debug_context(&amp;#39;run&amp;#39;);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT instance_name INTO g_instance_name FROM v$instance;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug_stmt(&amp;#39;g_instance_name=&amp;gt;&amp;#39; || g_instance_name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_profile.put(NAME =&amp;gt; &amp;#39;SIGNON_PASSWORD_HARD_TO_GUESS&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,val&amp;nbsp; =&amp;gt; &amp;#39;N&amp;#39;);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPEN c_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH c_get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO p_get;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE c_get;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --lets dump the records first into the temp table, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --this will be followed by&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --a. see which people do not have Sign On&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --b. Which people already have Responsibility&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO xx_sshr_allocate_resp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (sshr_allocate_resp_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,future_dated_employee_flag&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,responsibillity_name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,error_during_resp_allocation&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,fnd_user_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,fnd_request_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,email_address)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SELECT xx_sshr_allocate_resp_s.NEXTVAL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,ppx.person_id --PERSON_ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;N&amp;#39; --FUTURE_DATED_EMPLOYEE_FLAG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_responsibility_name --responsibillity_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,NULL --ERROR_DURING_RESP_ALLOCATION&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,NULL --FND_USER_ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,fnd_global.conc_request_id --FND_REQUEST_ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,ppx.email_address&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM per_person_types&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ppt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,per_person_type_usages_x pptux&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,xx_per_all_people_x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ppx&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE ppx.person_id = pptux.person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ppt.person_type_id = pptux.person_type_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ppx.employee_number = nvl(p_emp_no&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,ppx.employee_number)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ppt.system_person_type = &amp;#39;EMP&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ppt.user_person_type = p_person_type&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ppt.business_group_id =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_profile.VALUE(&amp;#39;PER_BUSINESS_GROUP_ID&amp;#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND EXISTS (SELECT &amp;#39;x&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM hr_all_organization_units hrou1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,hr_all_organization_units hrou&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,xx_per_all_asg_x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pax&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE p_cost_centre_group_1 IS NOT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND pax.person_id = ppx.person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND pax.primary_flag = &amp;#39;Y&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND pax.assignment_number IS NOT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND hrou.organization_id = pax.organization_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND hrou1.NAME =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; primaryhro_pkg.fn_get_primaryhro(pax.organization_id)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND hrou1.attribute5 IN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (nvl(p_cost_centre_group_1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;XXXX&amp;#39;), nvl(p_cost_centre_group_2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;XXXX&amp;#39;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UNION ALL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT &amp;#39;x&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM dual&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE (p_cost_centre_group_1 IS NULL AND p_cost_centre_group_2 IS NULL))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND EXISTS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SELECT &amp;#39;x&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM hr_all_organization_units hrou, xx_per_all_asg_x pax&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE p_parent_org_1 IS NOT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND pax.person_id = ppx.person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND pax.primary_flag = &amp;#39;Y&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND pax.assignment_number IS NOT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND hrou.organization_id = pax.organization_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND primaryhro_pkg.fn_get_primaryhro(pax.organization_id) IN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (nvl(p_parent_org_1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;XXXX&amp;#39;), nvl(p_parent_org_2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;XXXX&amp;#39;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UNION ALL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT &amp;#39;x&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM dual&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE (p_parent_org_1 IS NULL AND p_parent_org_2 IS NULL)));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n_count := SQL%ROWCOUNT;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug_stmt(n_count ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Records inserted into Temp Table based on Eligibility Criteria&amp;#39;);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO xx_sshr_allocate_resp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (sshr_allocate_resp_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,future_dated_employee_flag&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,responsibillity_name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,error_during_resp_allocation&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,fnd_user_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,fnd_request_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,email_address)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SELECT xx_sshr_allocate_resp_s.NEXTVAL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,ppx.person_id --PERSON_ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;Y&amp;#39; --FUTURE_DATED_EMPLOYEE_FLAG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_responsibility_name --responsibillity_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;Employee Is a Future Starter&amp;#39; --ERROR_DURING_RESP_ALLOCATION&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,NULL --FND_USER_ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,fnd_global.conc_request_id --FND_REQUEST_ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,ppx.email_address&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM per_person_types&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ppt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,xx_per_person_type_usages_eot pptux&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,xx_per_all_people_eot&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ppx&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE NOT EXISTS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SELECT &amp;#39;x&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM xx_sshr_allocate_resp iar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE iar.person_id = ppx.person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND fnd_request_id = fnd_global.conc_request_id)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ppx.person_id = pptux.person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ppt.person_type_id = pptux.person_type_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ppx.employee_number = nvl(p_emp_no&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,ppx.employee_number)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ppt.system_person_type = &amp;#39;EMP&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ppt.user_person_type = p_person_type&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND ppt.business_group_id =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_profile.VALUE(&amp;#39;PER_BUSINESS_GROUP_ID&amp;#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND EXISTS (SELECT &amp;#39;x&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM hr_all_organization_units hrou1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,hr_all_organization_units hrou&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,xx_per_all_asg_x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pax&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE p_cost_centre_group_1 IS NOT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND pax.person_id = ppx.person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND pax.primary_flag = &amp;#39;Y&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND pax.assignment_number IS NOT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND hrou.organization_id = pax.organization_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND hrou1.NAME =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; primaryhro_pkg.fn_get_primaryhro(pax.organization_id)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND hrou1.attribute5 IN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (nvl(p_cost_centre_group_1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;XXXX&amp;#39;), nvl(p_cost_centre_group_2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;XXXX&amp;#39;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UNION ALL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT &amp;#39;x&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM dual&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE (p_cost_centre_group_1 IS NULL AND p_cost_centre_group_2 IS NULL))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND EXISTS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SELECT &amp;#39;x&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM hr_all_organization_units hrou, xx_per_all_asg_x pax&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE p_parent_org_1 IS NOT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND pax.person_id = ppx.person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND pax.primary_flag = &amp;#39;Y&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND pax.assignment_number IS NOT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND hrou.organization_id = pax.organization_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND primaryhro_pkg.fn_get_primaryhro(pax.organization_id) IN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (nvl(p_parent_org_1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;XXXX&amp;#39;), nvl(p_parent_org_2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;XXXX&amp;#39;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UNION ALL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT &amp;#39;x&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM dual&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE (p_parent_org_1 IS NULL AND p_parent_org_2 IS NULL)));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n_count := SQL%ROWCOUNT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug_stmt(n_count ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Records inserted into Temp Table that aer eligible but Future Dated&amp;#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --Commenting the below, as we need to create User Accounts for these folks&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; UPDATE xx_sshr_allocate_resp isar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET error_during_resp_allocation = &amp;#39;Employee Is Not a User&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE isar.fnd_request_id = fnd_global.conc_request_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND error_during_resp_allocation IS NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND NOT EXISTS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SELECT &amp;#39;x&amp;#39; FROM fnd_user fu WHERE fu.employee_id = isar.person_id);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n_count := SQL%ROWCOUNT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put_log(n_count || &amp;#39; Records errored due to them not being Employee&amp;#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UPDATE xx_sshr_allocate_resp isar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET fnd_user_id = (SELECT user_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM fnd_user&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE employee_id = isar.person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND rownum &amp;lt; 2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE isar.fnd_request_id = fnd_global.conc_request_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND error_during_resp_allocation IS NULL;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UPDATE xx_sshr_allocate_resp isar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET responsibility_alloc_date = (SELECT start_date&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM fnd_user_resp_groups_direct&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE user_id = isar.fnd_user_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND responsibility_id =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_get.responsibility_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND rownum &amp;lt; 2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE isar.fnd_request_id = fnd_global.conc_request_id;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n_count := SQL%ROWCOUNT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug_stmt(n_count ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Records were attempted to be assigned existing responsibility_alloc_date&amp;#39;);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UPDATE xx_sshr_allocate_resp isar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET error_during_resp_allocation = &amp;#39;Responsibility Already Allocated on &amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to_char(responsibility_alloc_date&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;DD-MON-YYYY&amp;#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE isar.fnd_request_id = fnd_global.conc_request_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND responsibility_alloc_date IS NOT NULL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n_count := SQL%ROWCOUNT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug_stmt(n_count ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Records errored as they already have the responsibility&amp;#39;);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp;&amp;nbsp;&amp;nbsp; UPDATE xx_sshr_allocate_resp isar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET error_during_resp_allocation = &amp;#39;Employees User Record is Terminated&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE isar.fnd_request_id = fnd_global.conc_request_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND error_during_resp_allocation IS NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND EXISTS (SELECT &amp;#39;x&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM fnd_user fu&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE fu.employee_id = isar.person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND NOT (trunc(SYSDATE) BETWEEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nvl(fu.start_date&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,trunc(SYSDATE)) AND&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nvl(fu.start_date&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,trunc(SYSDATE))));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n_count := SQL%ROWCOUNT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put_log(n_count || &amp;#39; Records errored as their FND_USER is end dated&amp;#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UPDATE xx_sshr_allocate_resp isar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET error_during_resp_allocation = &amp;#39;No Email Address&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE isar.fnd_request_id = fnd_global.conc_request_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND isar.email_address IS NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND error_during_resp_allocation IS NULL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n_count := SQL%ROWCOUNT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug_stmt(n_count ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Records errored as they have no email address in HRMS&amp;#39;);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UPDATE xx_sshr_allocate_resp isar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET fnd_user_id = (SELECT user_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM fnd_user&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE employee_id = isar.person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND rownum &amp;lt; 2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE isar.fnd_request_id = fnd_global.conc_request_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND error_during_resp_allocation IS NULL;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n_count := SQL%ROWCOUNT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug_stmt(n_count ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Records aer unerrored, and hence will be processed further&amp;#39;);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; excel_output(&amp;#39;Action&amp;#39; || chr(9) || &amp;#39;UserName&amp;#39; || chr(9) || &amp;#39;emp_no&amp;#39; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chr(9) || &amp;#39;Person Full Name&amp;#39; || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Allocation Date&amp;#39; || chr(9) || &amp;#39;Error&amp;#39; || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;cost_centre_group&amp;#39; || chr(9) || &amp;#39;parent_org&amp;#39; || chr(9) || &amp;#39;Grade&amp;#39;);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FOR p_rec IN (SELECT *&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM xx_sshr_allocate_resp isar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE isar.fnd_request_id = fnd_global.conc_request_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND error_during_resp_allocation IS NULL)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOOP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_xxdp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; := NULL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_fnd_user_password := NULL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b_new_user_created&amp;nbsp; := FALSE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_fnd_user_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; := NULL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_sqlerrm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; := is_user_creation_possible(p_person_id =&amp;gt; p_rec.person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_xxdp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; l_xxdp);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug_stmt(&amp;#39;p_rec.fnd_user_id =&amp;gt;&amp;#39; || p_rec.fnd_user_id);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug_stmt(&amp;#39;Is user creation possible returned =&amp;gt; &amp;#39; || v_sqlerrm);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF p_rec.fnd_user_id IS NULL AND v_sqlerrm IS NOT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE can_not_fnd_create_user;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF NOT (p_read_only_flag = &amp;#39;Y&amp;#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug_stmt(&amp;#39;Not read only&amp;#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF p_rec.fnd_user_id IS NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug_stmt(&amp;#39;Looks like new user is needed&amp;#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_rec.fnd_user_id := create_fnd_user(p_person_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; p_rec.person_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_xxdp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; l_xxdp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_new_fnd_user_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; v_fnd_user_name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_new_fnd_user_password =&amp;gt; v_fnd_user_password);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF p_rec.fnd_user_id IS NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE error_in_fnd_user_pkg;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UPDATE xx_sshr_allocate_resp ir&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET ir.fnd_user_id&amp;nbsp;&amp;nbsp;&amp;nbsp; = p_rec.fnd_user_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,new_fnd_user_flag = &amp;#39;Y&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,messsage_code&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = v_fnd_user_password&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE ir.sshr_allocate_resp_id = p_rec.sshr_allocate_resp_id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b_new_user_created := TRUE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_user_resp_groups_api.insert_assignment(user_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; p_rec.fnd_user_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,responsibility_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; p_get.responsibility_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,responsibility_application_id =&amp;gt; p_get.application_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,security_group_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,start_date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; trunc(SYSDATE)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,end_date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#39;Auto Allocation for SSHR&amp;#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UPDATE xx_sshr_allocate_resp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET responsibility_alloc_date = SYSDATE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE sshr_allocate_resp_id = p_rec.sshr_allocate_resp_id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF b_new_user_created&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; excel_output(&amp;#39;Allocated[With New User]&amp;#39; || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_user_name(p_rec.fnd_user_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_emp_no(p_rec.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_person_name(p_rec.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to_char(trunc(SYSDATE)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;DD-MON-YYYY&amp;#39;) || chr(9) || &amp;#39;&amp;#39; || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_cost_centre_group(p_rec.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_parent_org(p_rec.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_grade(p_rec.person_id));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; send_email_to_new_user(p_xxdp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; l_xxdp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_user_name&amp;nbsp; =&amp;gt; v_fnd_user_name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_password&amp;nbsp;&amp;nbsp; =&amp;gt; v_fnd_user_password&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_test_email =&amp;gt; p_test_ceration_email_address);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; excel_output(&amp;#39;Allocated&amp;#39; || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_user_name(p_rec.fnd_user_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_emp_no(p_rec.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_person_name(p_rec.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to_char(trunc(SYSDATE)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;DD-MON-YYYY&amp;#39;) || chr(9) || &amp;#39;&amp;#39; || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_cost_centre_group(p_rec.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_parent_org(p_rec.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_grade(p_rec.person_id));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; send_email_to_existing_user(p_xxdp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; l_xxdp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_test_email =&amp;gt; p_test_ceration_email_address);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COMMIT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF p_rec.fnd_user_id IS NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; excel_output(&amp;#39;Eligible [New User Will Be Created]&amp;#39; || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nvl(get_user_name(p_rec.fnd_user_id)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,get_fu_name(l_xxdp.nt_login)) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_emp_no(p_rec.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_person_name(p_rec.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chr(9) || chr(9) || get_cost_centre_group(p_rec.person_id) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chr(9) || get_parent_org(p_rec.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_grade(p_rec.person_id));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; excel_output(&amp;#39;Eligible&amp;#39; || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_user_name(p_rec.fnd_user_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_emp_no(p_rec.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_person_name(p_rec.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chr(9) || chr(9) || get_cost_centre_group(p_rec.person_id) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chr(9) || get_parent_org(p_rec.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_grade(p_rec.person_id));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXCEPTION&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN can_not_fnd_create_user THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UPDATE xx_sshr_allocate_resp ir&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET ir.error_during_resp_allocation = v_sqlerrm&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE sshr_allocate_resp_id = p_rec.sshr_allocate_resp_id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN error_in_fnd_user_pkg THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UPDATE xx_sshr_allocate_resp ir&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET ir.error_during_resp_allocation = &amp;#39;Error while creating FND User. Please see Concurrent Log file for details&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE sshr_allocate_resp_id = p_rec.sshr_allocate_resp_id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN OTHERS THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_sqlerrm := SQLERRM;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UPDATE xx_sshr_allocate_resp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET error_during_resp_allocation = substr(v_sqlerrm&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,2000)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE sshr_allocate_resp_id = p_rec.sshr_allocate_resp_id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END LOOP;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FOR p_recx IN (SELECT *&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM xx_sshr_allocate_resp isar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE isar.fnd_request_id = fnd_global.conc_request_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND error_during_resp_allocation IS NOT NULL)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOOP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; excel_output(&amp;#39;Error&amp;#39; || chr(9) || get_user_name(p_recx.fnd_user_id) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chr(9) || get_emp_no(p_recx.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_person_name(p_recx.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to_char(p_recx.responsibility_alloc_date&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;#39;DD-MON-YYYY&amp;#39;) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p_recx.error_during_resp_allocation || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_cost_centre_group(p_recx.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_parent_org(p_recx.person_id) || chr(9) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_grade(p_recx.person_id));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END LOOP;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_profile.put(NAME =&amp;gt; &amp;#39;SIGNON_PASSWORD_HARD_TO_GUESS&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,val&amp;nbsp; =&amp;gt; v_hard_password);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug_end_procedure;&lt;br /&gt;&amp;nbsp; EXCEPTION&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN OTHERS THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnd_profile.put(NAME =&amp;gt; &amp;#39;SIGNON_PASSWORD_HARD_TO_GUESS&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,val&amp;nbsp; =&amp;gt; v_hard_password);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE;&lt;br /&gt;&amp;nbsp; END run;&lt;br /&gt;&lt;br /&gt;END xx_sshr_allocate_resp_pkg;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34646129-116572253146604425?l=scripts4oracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scripts4oracle.blogspot.com/feeds/116572253146604425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34646129&amp;postID=116572253146604425' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/116572253146604425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/116572253146604425'/><link rel='alternate' type='text/html' href='http://scripts4oracle.blogspot.com/2006/12/self-service-hr-script-3-to-allocate.html' title='Self Service HR Script 3 to allocate responsibilities and create users'/><author><name>Anil Passi</name><uri>http://www.blogger.com/profile/14859722075898946765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34646129.post-116572244661667461</id><published>2006-12-09T19:46:00.000-08:00</published><updated>2006-12-10T05:31:40.300-08:00</updated><title type='text'>Self Service HR rollout Script 2 to create users</title><content type='html'>CREATE OR REPLACE PACKAGE xx_sshr_allocate_resp_pkg IS&lt;br /&gt;&amp;nbsp; PROCEDURE run(errbuf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OUT VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,retcode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OUT VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_responsibility_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_person_type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_cost_centre_group_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_cost_centre_group_2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_parent_org_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_parent_org_2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_cid&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_read_only_flag&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_test_ceration_email_address IN VARCHAR2);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; PROCEDURE send_html_email(p_to&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_from&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_subject&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_text&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2 DEFAULT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_html&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2 DEFAULT NULL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_smtp_hostname IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_smtp_portnum&amp;nbsp; IN VARCHAR2);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; PROCEDURE create_fnd_user_for_cid(p_user_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_person_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN INTEGER&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_email_address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_person_description IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_password&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OUT VARCHAR2);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FUNCTION get_fu_name(p_nt_login IN VARCHAR2) RETURN VARCHAR2;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; PROCEDURE send_email_to_new_user(p_icdp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IN ic_coll_dir_pull%ROWTYPE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_user_name&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_password&amp;nbsp;&amp;nbsp; IN VARCHAR2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,p_test_email IN VARCHAR2);&lt;br /&gt;END xx_sshr_allocate_resp_pkg;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34646129-116572244661667461?l=scripts4oracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scripts4oracle.blogspot.com/feeds/116572244661667461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34646129&amp;postID=116572244661667461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/116572244661667461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/116572244661667461'/><link rel='alternate' type='text/html' href='http://scripts4oracle.blogspot.com/2006/12/self-service-hr-rollout-script-2-to.html' title='Self Service HR rollout Script 2 to create users'/><author><name>Anil Passi</name><uri>http://www.blogger.com/profile/14859722075898946765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34646129.post-116572240320157490</id><published>2006-12-09T19:45:00.000-08:00</published><updated>2006-12-09T19:46:43.326-08:00</updated><title type='text'>SSHR Rollout Script 1 to Create Users</title><content type='html'>YOU HAVE REACHED HERE FROM &lt;a href="http://oracle.anilpassi.com"&gt;ORACLE.ANILPASSI.COM&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;set scan on ;&lt;br /&gt;conn xxschema/&amp;2 ;&lt;br /&gt;--drop table   xx_sshr_allocate_resp ;&lt;br /&gt;create table xx_sshr_allocate_resp&lt;br /&gt;(&lt;br /&gt; sshr_allocate_resp_id           INTEGER&lt;br /&gt;,person_id                       INTEGER&lt;br /&gt;,future_dated_employee_flag      VARCHAR2(1)&lt;br /&gt;,responsibillity_name            VARCHAR2(500)&lt;br /&gt;,error_during_resp_allocation    VARCHAR2(4000)&lt;br /&gt;,fnd_user_id                     VARCHAR2(100)&lt;br /&gt;,fnd_request_id                  INTEGER&lt;br /&gt;,email_address                   VARCHAR2(500)&lt;br /&gt;,responsibility_alloc_date       DATE&lt;br /&gt;,new_fnd_user_flag               VARCHAR2(1)&lt;br /&gt;,messsage_code                   VARCHAR2(500)&lt;br /&gt;) ;&lt;br /&gt;&lt;br /&gt;--DROP sequence xx_sshr_allocate_resp_s  ;&lt;br /&gt;create sequence xx_sshr_allocate_resp_s start with 1000 ;&lt;br /&gt;&lt;br /&gt;grant all on xx_sshr_allocate_resp to apps;&lt;br /&gt;grant all on xx_sshr_allocate_resp to discover ;&lt;br /&gt;&lt;br /&gt;conn apps/&amp;1 ;&lt;br /&gt;&lt;br /&gt;create or replace synonym xx_sshr_allocate_resp for xxschema.xx_sshr_allocate_resp ;&lt;br /&gt;create or replace synonym xx_sshr_allocate_resp_s for xxschema.xx_sshr_allocate_resp_s ;&lt;br /&gt;&lt;br /&gt;create or replace view xx_per_all_people_x AS&lt;br /&gt;SELECT *&lt;br /&gt;FROM per_all_people_f&lt;br /&gt;WHERE&lt;br /&gt; trunc(SYSDATE) BETWEEN effective_start_date AND effective_end_date;&lt;br /&gt;&lt;br /&gt;create or replace view xx_per_all_asg_x AS&lt;br /&gt;SELECT *&lt;br /&gt;FROM per_all_assignments_f&lt;br /&gt;WHERE&lt;br /&gt; trunc(SYSDATE) BETWEEN effective_start_date AND effective_end_date;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;create or replace view xx_sshr_allocate_resp_v AS&lt;br /&gt;SELECT isar.*, frv.responsibility_name, frv.start_date, fu.user_name&lt;br /&gt;FROM fnd_responsibility_vl frv&lt;br /&gt;    ,fnd_user              fu&lt;br /&gt;    ,xx_per_all_people_x   ppx&lt;br /&gt;    ,xx_sshr_allocate_resp isar&lt;br /&gt;WHERE&lt;br /&gt;    isar.person_id = ppx.person_id&lt;br /&gt;AND fu.user_id(+) = isar.fnd_user_id&lt;br /&gt;AND frv.responsibility_name(+) = isar.responsibillity_name&lt;br /&gt;;&lt;br /&gt;&lt;br /&gt;create or replace view xx_per_all_people_eot AS&lt;br /&gt;SELECT person_id, email_address, employee_number&lt;br /&gt;FROM per_all_people_f&lt;br /&gt;WHERE to_date('31-12-4712'&lt;br /&gt;             ,'DD-MM-YYYY') BETWEEN effective_start_date AND&lt;br /&gt;      effective_end_date&lt;br /&gt;GROUP BY person_id, email_address,employee_number;&lt;br /&gt;&lt;br /&gt;create or replace view xx_PER_PERSON_TYPE_USAGES_EOT AS&lt;br /&gt;SELECT person_type_usage_id, person_id, person_type_id&lt;br /&gt;FROM per_person_type_usages_f&lt;br /&gt;WHERE to_date('31-12-4712'&lt;br /&gt;             ,'DD-MM-YYYY') BETWEEN effective_start_date AND&lt;br /&gt;      effective_end_date&lt;br /&gt;GROUP BY person_type_usage_id, person_id, person_type_id;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT *&lt;br /&gt;FROM xx_sshr_allocate_resp_v&lt;br /&gt;WHERE fnd_request_id = fnd_global.conc_request_id;&lt;br /&gt;&lt;br /&gt;create index  xx_sshr_allocate_resp_U1 ON xx_sshr_allocate_resp ( sshr_allocate_resp_id ) ;&lt;br /&gt;create index  xx_sshr_allocate_resp_N1 ON xx_sshr_allocate_resp ( person_id, fnd_request_id ) ;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34646129-116572240320157490?l=scripts4oracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scripts4oracle.blogspot.com/feeds/116572240320157490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34646129&amp;postID=116572240320157490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/116572240320157490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/116572240320157490'/><link rel='alternate' type='text/html' href='http://scripts4oracle.blogspot.com/2006/12/sshr-rollout-script-1-to-create-users.html' title='SSHR Rollout Script 1 to Create Users'/><author><name>Anil Passi</name><uri>http://www.blogger.com/profile/14859722075898946765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34646129.post-116017874033902375</id><published>2006-10-06T16:49:00.000-07:00</published><updated>2006-10-06T17:19:26.403-07:00</updated><title type='text'></title><content type='html'>&lt;h3&gt;Fast Refresh Materialized View GL_CODE_COMBINATIONS with Description&lt;/h3&gt;This was my third attempt to get the Fast Refresh Materialized views to work on GL_CODE_COMBINATIONS by tricking Oracle 10g. The descriptions are being fetched by using a function. This function is blanked out to return null just prior to the creation of snapshot.&lt;br /&gt;&lt;br /&gt;Surely, the function being used to fetch the description ain't complicated. The comments are below with code. So Finally with this, you can make your GL Queries run very quickly even if you desire to list the Description of GL Codes.&lt;br /&gt;&lt;br /&gt;conn apps/&amp;1 ;&lt;br /&gt;PROMPT materialized view log on GL.GL_CODE_COMBINATIONS&lt;br /&gt;create materialized view log on GL.GL_CODE_COMBINATIONS&lt;br /&gt;including new values&lt;br /&gt;;&lt;br /&gt;&lt;br /&gt;conn gl/&amp;4;&lt;br /&gt;GRANT ALL ON GL.GL_CODE_COMBINATIONS TO xxschema WITH GRANT OPTION;&lt;br /&gt;GRANT ALL ON GL.MLOG$_GL_CODE_COMBINATIONS TO xxschema ;&lt;br /&gt;&lt;br /&gt;conn apps/&amp;1 ;&lt;br /&gt;--First create the proper function such that we can Pre-Build Table&lt;br /&gt;PROMPT FUNCTION xx_valueset_code_description&lt;br /&gt;CREATE OR REPLACE FUNCTION xx_valueset_code_description(&lt;br /&gt;      p_code  IN VARCHAR2&lt;br /&gt;     ,p_vs_id IN INTEGER) RETURN VARCHAR2 IS&lt;br /&gt;CURSOR c_get IS&lt;br /&gt;  SELECT ffv.description&lt;br /&gt;  FROM fnd_flex_values_vl ffv&lt;br /&gt;  WHERE flex_value_set_id = p_vs_id&lt;br /&gt;  AND flex_value = p_code;&lt;br /&gt;p_get c_get%ROWTYPE;&lt;br /&gt;BEGIN&lt;br /&gt;OPEN c_get;&lt;br /&gt;FETCH c_get&lt;br /&gt;  INTO p_get;&lt;br /&gt;CLOSE c_get;&lt;br /&gt;RETURN p_get.description;&lt;br /&gt;END xx_valueset_code_description;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;GRANT ALL ON xx_valueset_code_description TO xxschema ;&lt;br /&gt;GRANT EXECUTE ON xx_valueset_code_description TO xxschema ;&lt;br /&gt;&lt;br /&gt;--Create the Pre-Build table&lt;br /&gt;PROMPT table xxschema.IC_GL_CODE_COMBINATIONS_MV&lt;br /&gt;create table xxschema.IC_GL_CODE_COMBINATIONS_MV AS&lt;br /&gt;SELECT cc.segment2 costcentre&lt;br /&gt;  ,apps.xx_valueset_code_description(cc.segment2, 1002651) AS costcentre_desc&lt;br /&gt;  ,cc.segment3 project&lt;br /&gt;  ,apps.xx_valueset_code_description(cc.segment3,1002652) project_desc&lt;br /&gt;  ,cc.segment4 expensetype&lt;br /&gt;  ,apps.xx_valueset_code_description(cc.segment4,1002653) AS expensetype_desc&lt;br /&gt;  ,cc.code_combination_id&lt;br /&gt;FROM gl.gl_code_combinations cc&lt;br /&gt;/*WHERE LAST_UPDATE_DATE &gt; SYSDATE - 100*/;&lt;br /&gt;&lt;br /&gt;--Here is the trick of fooling Oracle. We make the function to be used in MV look simple&lt;br /&gt;PROMPT FUNCTION xx_valueset_code_description&lt;br /&gt;CREATE OR REPLACE FUNCTION xx_valueset_code_description(&lt;br /&gt;      p_code  IN VARCHAR2&lt;br /&gt;     ,p_vs_id IN INTEGER) RETURN VARCHAR2 IS&lt;br /&gt;BEGIN&lt;br /&gt;RETURN NULL ;&lt;br /&gt;END xx_valueset_code_description;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;create or replace synonym IC_GL_CODE_COMBINATIONS_MV for xxschema.IC_GL_CODE_COMBINATIONS_MV ;&lt;br /&gt;&lt;br /&gt;--Now create the snapshot of MV, poor Oracle thinks its going to use a simple Function&lt;br /&gt;PROMPT materialized view xxschema.IC_GL_CODE_COMBINATIONS_MV&lt;br /&gt;create materialized view xxschema.IC_GL_CODE_COMBINATIONS_MV&lt;br /&gt;on prebuilt table&lt;br /&gt;refresh fast&lt;br /&gt;on commit&lt;br /&gt;as&lt;br /&gt;SELECT&lt;br /&gt;  cc.segment2 costcentre&lt;br /&gt;  --replace 10001/2/3 by your respective value set id's for GL Segments&lt;br /&gt;  ,apps.xx_valueset_code_description(cc.segment2, 10001) AS costcentre_desc&lt;br /&gt;  ,cc.segment3 project&lt;br /&gt;  ,apps.xx_valueset_code_description(cc.segment3,10002) project_desc&lt;br /&gt;  ,cc.segment4 expensetype&lt;br /&gt;  ,apps.xx_valueset_code_description(cc.segment4,10003) AS expensetype_desc&lt;br /&gt;  ,cc.code_combination_id&lt;br /&gt;FROM gl.gl_code_combinations cc ;&lt;br /&gt;&lt;br /&gt;--Now put the proper function back to where it was&lt;br /&gt;PROMPT FUNCTION xx_valueset_code_description&lt;br /&gt;CREATE OR REPLACE FUNCTION xx_valueset_code_description(&lt;br /&gt;      p_code  IN VARCHAR2&lt;br /&gt;     ,p_vs_id IN INTEGER) RETURN VARCHAR2 IS&lt;br /&gt;CURSOR c_get IS&lt;br /&gt;  SELECT ffv.description&lt;br /&gt;  FROM fnd_flex_values_vl ffv&lt;br /&gt;  WHERE flex_value_set_id = p_vs_id&lt;br /&gt;  AND flex_value = p_code;&lt;br /&gt;p_get c_get%ROWTYPE;&lt;br /&gt;BEGIN&lt;br /&gt;OPEN c_get;&lt;br /&gt;FETCH c_get&lt;br /&gt;  INTO p_get;&lt;br /&gt;CLOSE c_get;&lt;br /&gt;RETURN p_get.description;&lt;br /&gt;END xx_valueset_code_description;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;--Ensure that the MV is compiled&lt;br /&gt;ALTER materialized view xxschema.IC_GL_CODE_COMBINATIONS_MV COMPILE ;&lt;br /&gt;&lt;br /&gt;Make sure that you create all the required indexes on the Materialized view, depending upon the structure of your GL Accounting Flexfield.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34646129-116017874033902375?l=scripts4oracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scripts4oracle.blogspot.com/feeds/116017874033902375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34646129&amp;postID=116017874033902375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/116017874033902375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/116017874033902375'/><link rel='alternate' type='text/html' href='http://scripts4oracle.blogspot.com/2006/10/fast-refresh-materialized-view.html' title=''/><author><name>Anil Passi</name><uri>http://www.blogger.com/profile/14859722075898946765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34646129.post-116013387875405945</id><published>2006-10-06T04:22:00.000-07:00</published><updated>2006-10-06T16:24:18.750-07:00</updated><title type='text'></title><content type='html'>&lt;h3&gt;ORA-12054 for Materialized View on GL_CODE_COMBINATIONS&lt;/h3&gt;The below script was my second attempt to create a fast refresh Materialized View in Oracle. The last step in the scipt failed because Oracle is unable to create a Fast Materialized view referencing a package function because it deems this to be complicated.&lt;br /&gt;&lt;br /&gt;Anyway, in the third attempt, we will do a trickery to fool Oracle...&lt;br /&gt;&lt;br /&gt;conn apps/&amp;1 ;&lt;br /&gt;create materialized view log on GL.GL_CODE_COMBINATIONS&lt;br /&gt;with rowid (&lt;br /&gt;CODE_COMBINATION_ID        &lt;br /&gt;,CHART_OF_ACCOUNTS_ID       &lt;br /&gt;,DETAIL_POSTING_ALLOWED_FLAG&lt;br /&gt;,DETAIL_BUDGETING_ALLOWED_FLAG&lt;br /&gt;,ACCOUNT_TYPE               &lt;br /&gt;,ENABLED_FLAG               &lt;br /&gt;,SUMMARY_FLAG               &lt;br /&gt;,SEGMENT1                   &lt;br /&gt;,SEGMENT2                   &lt;br /&gt;,SEGMENT3                   &lt;br /&gt;,SEGMENT4                   &lt;br /&gt;,TEMPLATE_ID                &lt;br /&gt;,START_DATE_ACTIVE          &lt;br /&gt;,END_DATE_ACTIVE            &lt;br /&gt;)&lt;br /&gt;including new values&lt;br /&gt;;&lt;br /&gt;&lt;br /&gt;conn gl/&amp;4;&lt;br /&gt;GRANT SELECT ON GL.GL_CODE_COMBINATIONS TO xxschema WITH GRANT OPTION;&lt;br /&gt;GRANT ALL ON GL.MLOG$_GL_CODE_COMBINATIONS TO xxschema ;&lt;br /&gt;&lt;br /&gt;conn apps/&amp;1 ;&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE PACKAGE xx_mv_util AS&lt;br /&gt;FUNCTION get_vs_code_description(p_code  IN VARCHAR2&lt;br /&gt;                              ,p_vs_id IN INTEGER) RETURN VARCHAR2;&lt;br /&gt;PRAGMA RESTRICT_REFERENCES(get_vs_code_description&lt;br /&gt;                        ,WNDS&lt;br /&gt;                        ,WNPS&lt;br /&gt;                        ,RNPS);&lt;br /&gt;END xx_mv_util;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;GRANT ALL ON xx_mv_util TO xxschema ;&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE PACKAGE BODY xx_mv_util AS&lt;br /&gt;FUNCTION get_vs_code_description(p_code  IN VARCHAR2&lt;br /&gt;                              ,p_vs_id IN INTEGER) RETURN VARCHAR2 IS&lt;br /&gt;CURSOR c_get IS&lt;br /&gt;  SELECT ffv.description&lt;br /&gt;  FROM fnd_flex_values_vl ffv&lt;br /&gt;  WHERE flex_value_set_id = p_vs_id&lt;br /&gt;  AND flex_value = p_code;&lt;br /&gt;p_get c_get%ROWTYPE;&lt;br /&gt;BEGIN&lt;br /&gt;OPEN c_get;&lt;br /&gt;FETCH c_get&lt;br /&gt;  INTO p_get;&lt;br /&gt;CLOSE c_get;&lt;br /&gt;RETURN p_get.description;&lt;br /&gt;END get_vs_code_description;&lt;br /&gt;END xx_mv_util;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;create table xxschema.IC_GL_CODE_COMBINATIONS_MV AS&lt;br /&gt;SELECT cc.segment2 costcentre&lt;br /&gt;  ,xx_mv_util.get_vs_code_description(cc.segment2, 1002651) AS costcentre_desc&lt;br /&gt;  ,cc.segment3 activity&lt;br /&gt;  ,xx_mv_util.get_vs_code_description(cc.segment3,1002652) activity_desc&lt;br /&gt;  ,cc.segment4 analysis&lt;br /&gt;  ,cc.segment4 new_analysis&lt;br /&gt;  ,xx_mv_util.get_vs_code_description(cc.segment4,1002653) AS analysis_desc&lt;br /&gt;  ,cc.code_combination_id&lt;br /&gt;FROM gl.gl_code_combinations cc ;&lt;br /&gt;&lt;br /&gt;create materialized view IC_GL_CODE_COMBINATIONS_MV&lt;br /&gt;on prebuilt table&lt;br /&gt;refresh fast&lt;br /&gt;on commit&lt;br /&gt;as&lt;br /&gt;SELECT&lt;br /&gt;  cc.segment2 costcentre&lt;br /&gt;  ,xx_mv_util.get_vs_code_description(cc.segment2, 1002651) AS costcentre_desc&lt;br /&gt;  ,cc.segment3 activity&lt;br /&gt;  ,xx_mv_util.get_vs_code_description(cc.segment3,1002652) activity_desc&lt;br /&gt;  ,cc.segment4 analysis&lt;br /&gt;  ,cc.segment4 new_analysis&lt;br /&gt;  ,xx_mv_util.get_vs_code_description(cc.segment4,1002653) AS analysis_desc&lt;br /&gt;  ,cc.code_combination_id&lt;br /&gt;FROM gl.gl_code_combinations cc ;&lt;br /&gt;&lt;br /&gt;This errors with&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ERROR at line 13:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ORA-12054: cannot set the ON COMMIT refresh attribute for the materialized view&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34646129-116013387875405945?l=scripts4oracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scripts4oracle.blogspot.com/feeds/116013387875405945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34646129&amp;postID=116013387875405945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/116013387875405945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/116013387875405945'/><link rel='alternate' type='text/html' href='http://scripts4oracle.blogspot.com/2006/10/ora-12054-for-materialized-view-on.html' title=''/><author><name>Anil Passi</name><uri>http://www.blogger.com/profile/14859722075898946765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34646129.post-115965634509657353</id><published>2006-09-30T15:37:00.000-07:00</published><updated>2007-04-01T02:08:42.756-07:00</updated><title type='text'></title><content type='html'>&lt;h3&gt;Scripts for Oracle Workflow Training Lesson 3&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;The wft file for Oracle Workflow Training Lesson 3 can be downloaded by &lt;a href="http://www.anilpassi.com/apps/demo/wf/training_lesson_3/L3_XXXTRAINWF_LESSON_1.wft"&gt;right clicking here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is assumed that you have already worked upon the scripts from Training lesson 2.&lt;br /&gt;&lt;br /&gt;--Create the table in which transaction progress will be tracked&lt;br /&gt;create table xx_po_wf_progress&lt;br /&gt;(&lt;br /&gt; po_id INTEGER&lt;br /&gt;,p_wf_action_stage VARCHAR2(200)&lt;br /&gt;,p_wf_action_name VARCHAR2(200)&lt;br /&gt;) ;&lt;br /&gt;&lt;br /&gt;--Create the pl/sql package&lt;br /&gt;CREATE OR REPLACE PACKAGE xxxx_po_wf_training_pkg IS&lt;br /&gt;  PROCEDURE is_po_valid(itemtype IN VARCHAR2&lt;br /&gt;                       ,itemkey  IN VARCHAR2&lt;br /&gt;                       ,actid    IN NUMBER&lt;br /&gt;                       ,funcmode IN VARCHAR2&lt;br /&gt;                       ,RESULT   IN OUT VARCHAR2);&lt;br /&gt;&lt;br /&gt;  PROCEDURE set_wf_approver_role(itemtype IN VARCHAR2&lt;br /&gt;                                ,itemkey  IN VARCHAR2&lt;br /&gt;                                ,actid    IN NUMBER&lt;br /&gt;                                ,funcmode IN VARCHAR2&lt;br /&gt;                                ,RESULT   IN OUT VARCHAR2);&lt;br /&gt;&lt;br /&gt;  PROCEDURE set_wf_status_to_validated(itemtype IN VARCHAR2&lt;br /&gt;                                      ,itemkey  IN VARCHAR2&lt;br /&gt;                                      ,actid    IN NUMBER&lt;br /&gt;                                      ,funcmode IN VARCHAR2&lt;br /&gt;                                      ,RESULT   IN OUT VARCHAR2);&lt;br /&gt;&lt;br /&gt;  PROCEDURE start_training_wf(p_po_id IN INTEGER);&lt;br /&gt;&lt;br /&gt;  PROCEDURE xx_validate_response(itemtype IN VARCHAR2&lt;br /&gt;                                ,itemkey  IN VARCHAR2&lt;br /&gt;                                ,actid    IN NUMBER&lt;br /&gt;                                ,funcmode IN VARCHAR2&lt;br /&gt;                                ,RESULT   IN OUT VARCHAR2);&lt;br /&gt;&lt;br /&gt;  PROCEDURE log_status_of_action(itemtype IN VARCHAR2&lt;br /&gt;                                ,itemkey  IN VARCHAR2&lt;br /&gt;                                ,actid    IN NUMBER&lt;br /&gt;                                ,funcmode IN VARCHAR2&lt;br /&gt;                                ,RESULT   IN OUT VARCHAR2);&lt;br /&gt;&lt;br /&gt;END xxxx_po_wf_training_pkg;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;--create the package body&lt;br /&gt;CREATE OR REPLACE PACKAGE BODY xxxx_po_wf_training_pkg IS&lt;br /&gt;&lt;br /&gt;  PROCEDURE debug(p_text IN VARCHAR2) IS&lt;br /&gt;  BEGIN&lt;br /&gt;    --    apassi1(p_text);&lt;br /&gt;    NULL;&lt;br /&gt;  END debug;&lt;br /&gt;&lt;br /&gt;  FUNCTION is_po_validated(p_po_id IN INTEGER) RETURN BOOLEAN IS&lt;br /&gt;  BEGIN&lt;br /&gt;    IF p_po_id &gt; 0&lt;br /&gt;    THEN&lt;br /&gt;      RETURN TRUE;&lt;br /&gt;    END IF;&lt;br /&gt;    RETURN FALSE;&lt;br /&gt;  END is_po_validated;&lt;br /&gt;&lt;br /&gt;  PROCEDURE is_po_valid(itemtype IN VARCHAR2&lt;br /&gt;                       ,itemkey  IN VARCHAR2&lt;br /&gt;                       ,actid    IN NUMBER&lt;br /&gt;                       ,funcmode IN VARCHAR2&lt;br /&gt;                       ,RESULT   IN OUT VARCHAR2) IS&lt;br /&gt;  BEGIN&lt;br /&gt;    IF (funcmode != 'RUN')&lt;br /&gt;    THEN&lt;br /&gt;      RETURN;&lt;br /&gt;    END IF;&lt;br /&gt;    --Just a pseudo validation&lt;br /&gt;    --call a function here, and either assign COMPLETE:Y or COMPLETE:N&lt;br /&gt; &lt;br /&gt;    IF is_po_validated(p_po_id =&gt; wf_engine.getitemattrnumber(itemtype =&gt; itemtype&lt;br /&gt;                                                             ,itemkey  =&gt; itemkey&lt;br /&gt;                                                             ,aname    =&gt; 'PO_ID'))&lt;br /&gt;    THEN&lt;br /&gt;      RESULT := 'COMPLETE:Y';&lt;br /&gt;    ELSE&lt;br /&gt;      RESULT := 'COMPLETE:N';&lt;br /&gt;    END IF;&lt;br /&gt;  END is_po_valid;&lt;br /&gt;&lt;br /&gt;  PROCEDURE set_wf_approver_role(itemtype IN VARCHAR2&lt;br /&gt;                                ,itemkey  IN VARCHAR2&lt;br /&gt;                                ,actid    IN NUMBER&lt;br /&gt;                                ,funcmode IN VARCHAR2&lt;br /&gt;                                ,RESULT   IN OUT VARCHAR2) IS&lt;br /&gt;    v_role_email xxxx_po_headers.send_email_to%TYPE;&lt;br /&gt;    n_ctr        INTEGER := 0;&lt;br /&gt;  BEGIN&lt;br /&gt;    v_role_email := upper(wf_engine.getitemattrtext(itemtype =&gt; itemtype&lt;br /&gt;                                                   ,itemkey  =&gt; itemkey&lt;br /&gt;                                                   ,aname    =&gt; 'SEND_TO_EMAIL'));&lt;br /&gt;    SELECT COUNT(*)&lt;br /&gt;    INTO n_ctr&lt;br /&gt;    FROM wf_local_roles&lt;br /&gt;    WHERE NAME = v_role_email;&lt;br /&gt; &lt;br /&gt;    IF n_ctr = 0&lt;br /&gt;    THEN&lt;br /&gt;      wf_directory.createadhocrole(role_name               =&gt; v_role_email&lt;br /&gt;                                  ,role_display_name       =&gt; v_role_email&lt;br /&gt;                                  ,role_description        =&gt; v_role_email&lt;br /&gt;                                  ,notification_preference =&gt; 'MAILHTML'&lt;br /&gt;                                  ,email_address           =&gt; v_role_email&lt;br /&gt;                                  ,status                  =&gt; 'ACTIVE'&lt;br /&gt;                                  ,expiration_date         =&gt; NULL);&lt;br /&gt;    END IF;&lt;br /&gt;    wf_engine.setitemattrtext(itemtype =&gt; itemtype&lt;br /&gt;                             ,itemkey  =&gt; itemkey&lt;br /&gt;                             ,aname    =&gt; 'SEND_TO_ROLE'&lt;br /&gt;                             ,avalue   =&gt; v_role_email);&lt;br /&gt;    RESULT := 'COMPLETE:Y';&lt;br /&gt; &lt;br /&gt;    RESULT := 'COMPLETE:Y';&lt;br /&gt;  END set_wf_approver_role;&lt;br /&gt;&lt;br /&gt;  PROCEDURE set_wf_status_to_validated(itemtype IN VARCHAR2&lt;br /&gt;                                      ,itemkey  IN VARCHAR2&lt;br /&gt;                                      ,actid    IN NUMBER&lt;br /&gt;                                      ,funcmode IN VARCHAR2&lt;br /&gt;                                      ,RESULT   IN OUT VARCHAR2) IS&lt;br /&gt;  BEGIN&lt;br /&gt;    UPDATE xxxx_po_headers&lt;br /&gt;    SET po_status = 'VALIDATED'&lt;br /&gt;    WHERE po_id = wf_engine.getitemattrnumber(itemtype&lt;br /&gt;                                             ,itemkey&lt;br /&gt;                                             ,'PO_ID');&lt;br /&gt;    RESULT := 'COMPLETE:Y';&lt;br /&gt;  END set_wf_status_to_validated;&lt;br /&gt;&lt;br /&gt;  PROCEDURE start_training_wf(p_po_id IN INTEGER) IS&lt;br /&gt;    l_itemtype VARCHAR2(30) := 'XXXXPTR';&lt;br /&gt;    l_itemkey  VARCHAR2(300) := 'TRAINING-' || p_po_id;&lt;br /&gt;    CURSOR c_get IS&lt;br /&gt;      SELECT * FROM xxxx_po_headers WHERE po_id = p_po_id;&lt;br /&gt;    p_get c_get%ROWTYPE;&lt;br /&gt;  BEGIN&lt;br /&gt;    OPEN c_get;&lt;br /&gt;    FETCH c_get&lt;br /&gt;      INTO p_get;&lt;br /&gt;    CLOSE c_get;&lt;br /&gt; &lt;br /&gt;    wf_engine.createprocess(l_itemtype&lt;br /&gt;                           ,l_itemkey&lt;br /&gt;                           ,'MAIN_TRAINING_PROCESS');&lt;br /&gt; &lt;br /&gt;    wf_engine.setitemuserkey(itemtype =&gt; l_itemtype&lt;br /&gt;                            ,itemkey  =&gt; l_itemkey&lt;br /&gt;                            ,userkey  =&gt; 'USERKEY: ' || l_itemkey);&lt;br /&gt;    wf_engine.setitemowner(itemtype =&gt; l_itemtype&lt;br /&gt;                          ,itemkey  =&gt; l_itemkey&lt;br /&gt;                          ,owner    =&gt; 'SYSADMIN');&lt;br /&gt; &lt;br /&gt;    wf_engine.setitemattrnumber(itemtype =&gt; l_itemtype&lt;br /&gt;                               ,itemkey  =&gt; l_itemkey&lt;br /&gt;                               ,aname    =&gt; 'PO_ID'&lt;br /&gt;                               ,avalue   =&gt; p_po_id);&lt;br /&gt; &lt;br /&gt;    wf_engine.setitemattrtext(itemtype =&gt; l_itemtype&lt;br /&gt;                             ,itemkey  =&gt; l_itemkey&lt;br /&gt;                             ,aname    =&gt; 'SEND_TO_EMAIL'&lt;br /&gt;                             ,avalue   =&gt; p_get.send_email_to);&lt;br /&gt;    wf_engine.setitemattrtext(itemtype =&gt; l_itemtype&lt;br /&gt;                             ,itemkey  =&gt; l_itemkey&lt;br /&gt;                             ,aname    =&gt; 'PO_DESCRIPTION'&lt;br /&gt;                             ,avalue   =&gt; p_get.po_description);&lt;br /&gt;    wf_engine.startprocess(l_itemtype&lt;br /&gt;                          ,l_itemkey);&lt;br /&gt; &lt;br /&gt;  END start_training_wf;&lt;br /&gt;&lt;br /&gt;  PROCEDURE xx_validate_response(itemtype IN VARCHAR2&lt;br /&gt;                                ,itemkey  IN VARCHAR2&lt;br /&gt;                                ,actid    IN NUMBER&lt;br /&gt;                                ,funcmode IN VARCHAR2&lt;br /&gt;                                ,RESULT   IN OUT VARCHAR2) IS&lt;br /&gt;    l_nid                  NUMBER;&lt;br /&gt;    l_activity_result_code VARCHAR2(200);&lt;br /&gt;    v_response_reason      VARCHAR2(50);&lt;br /&gt;  BEGIN&lt;br /&gt;    IF (funcmode IN ('RESPOND'))&lt;br /&gt;    THEN&lt;br /&gt;      l_nid                  := wf_engine.context_nid;&lt;br /&gt;      l_activity_result_code := wf_notification.getattrtext(l_nid&lt;br /&gt;                                                           ,'XX_RESPONSE_ACTION');&lt;br /&gt;      v_response_reason      := wf_notification.getattrtext(l_nid&lt;br /&gt;                                                           ,'XX_RESPONSE_REASON');&lt;br /&gt;      IF l_activity_result_code = 'XX_REJECTED' AND&lt;br /&gt;         v_response_reason IS NULL&lt;br /&gt;      THEN&lt;br /&gt;        RESULT := 'ERROR: You must enter rejection reason if rejecting.';&lt;br /&gt;        RETURN;&lt;br /&gt;      END IF;&lt;br /&gt;    END IF;&lt;br /&gt;  EXCEPTION&lt;br /&gt;    WHEN OTHERS THEN&lt;br /&gt;      RESULT := SQLERRM;&lt;br /&gt;  END xx_validate_response;&lt;br /&gt;&lt;br /&gt;  FUNCTION get_request_id_from_item_key(p_item_key IN VARCHAR2)&lt;br /&gt;    RETURN VARCHAR2 IS&lt;br /&gt;  BEGIN&lt;br /&gt;    RETURN substr(p_item_key&lt;br /&gt;                 ,instr(p_item_key&lt;br /&gt;                       ,'-') + 1);&lt;br /&gt;  END get_request_id_from_item_key;&lt;br /&gt;&lt;br /&gt;  PROCEDURE log_status_of_action(itemtype IN VARCHAR2&lt;br /&gt;                                ,itemkey  IN VARCHAR2&lt;br /&gt;                                ,actid    IN NUMBER&lt;br /&gt;                                ,funcmode IN VARCHAR2&lt;br /&gt;                                ,RESULT   IN OUT VARCHAR2) IS&lt;br /&gt;    n_po_id        INTEGER;&lt;br /&gt;    v_action_name  VARCHAR2(200);&lt;br /&gt;    v_action_stage VARCHAR2(200);&lt;br /&gt;  BEGIN&lt;br /&gt;    IF funcmode = 'RUN'&lt;br /&gt;    THEN&lt;br /&gt;      n_po_id := get_request_id_from_item_key(itemkey);&lt;br /&gt;   &lt;br /&gt;      v_action_stage := wf_engine.getactivityattrtext(itemtype =&gt; itemtype&lt;br /&gt;                                                     ,itemkey  =&gt; itemkey&lt;br /&gt;                                                     ,actid    =&gt; actid&lt;br /&gt;                                                     ,aname    =&gt; 'ACTION_STAGE');&lt;br /&gt;   &lt;br /&gt;      v_action_name := wf_engine.getactivityattrtext(itemtype =&gt; itemtype&lt;br /&gt;                                                    ,itemkey  =&gt; itemkey&lt;br /&gt;                                                    ,actid    =&gt; actid&lt;br /&gt;                                                    ,aname    =&gt; 'ACTION_NAME');&lt;br /&gt;      INSERT INTO xx_po_wf_progress&lt;br /&gt;        (po_id&lt;br /&gt;        ,p_wf_action_stage&lt;br /&gt;        ,p_wf_action_name)&lt;br /&gt;      VALUES&lt;br /&gt;        (n_po_id&lt;br /&gt;        ,v_action_stage&lt;br /&gt;        ,v_action_name);&lt;br /&gt;    END IF;&lt;br /&gt;    RESULT := 'COMPLETE:Y';&lt;br /&gt;  END log_status_of_action;&lt;br /&gt;&lt;br /&gt;END xxxx_po_wf_training_pkg;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;--initiate the workflow now&lt;br /&gt;DECLARE&lt;br /&gt;  n_new_po_id INTEGER;&lt;br /&gt;BEGIN&lt;br /&gt;  SELECT oe_order_headers_s.NEXTVAL INTO n_new_po_id FROM dual;&lt;br /&gt;  INSERT INTO xxxx_po_headers&lt;br /&gt;    (po_id&lt;br /&gt;    ,vendor_id&lt;br /&gt;    ,suggested_vendor_id&lt;br /&gt;    ,po_description&lt;br /&gt;    ,po_status&lt;br /&gt;    ,comments_from_approver&lt;br /&gt;    ,send_email_to)&lt;br /&gt;  VALUES&lt;br /&gt;    (n_new_po_id --po_id&lt;br /&gt;    ,10000 --vendor_id&lt;br /&gt;    ,NULL --suggested_vendor_id&lt;br /&gt;    ,'This is PO Training Description' --po_description&lt;br /&gt;    ,'INITIAL' --po_status&lt;br /&gt;    ,NULL --comments_from_approver&lt;br /&gt;    ,'ANILPASSI@GMAIL.com' --send_email_to&lt;br /&gt;     );&lt;br /&gt;  xxxx_po_wf_training_pkg.start_training_wf(p_po_id =&gt; n_new_po_id);&lt;br /&gt;  COMMIT;&lt;br /&gt;END;&lt;br /&gt;/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34646129-115965634509657353?l=scripts4oracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scripts4oracle.blogspot.com/feeds/115965634509657353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34646129&amp;postID=115965634509657353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/115965634509657353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/115965634509657353'/><link rel='alternate' type='text/html' href='http://scripts4oracle.blogspot.com/2006/09/scripts-for-oracle-workflow-training.html' title=''/><author><name>Anil Passi</name><uri>http://www.blogger.com/profile/14859722075898946765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34646129.post-115962784014809999</id><published>2006-09-30T07:48:00.000-07:00</published><updated>2006-09-30T07:58:13.373-07:00</updated><title type='text'></title><content type='html'>&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;Scripts for Workflow Training Lesson 2&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This page contains all the required Scripts and Workflow files prepared for Workflow Training Lesson 2. &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;a href="http://oracle.anilpassi.com/oracle-workflows-training-lesson-2.html"&gt;Click here if you wish to return to Oracle Workflow Training Lesson 2&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.anilpassi.com/apps/demo/wf/training_lesson_2/L2_XXXTRAINWF_LESSON_1.wft"&gt;Workflow .wft File For Training Lesson 2&lt;/a&gt;&lt;br /&gt;Rightclick to download the above file and save this to database.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--create the table &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Create table xxxx_po_headers&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; po_id INTEGER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;,vendor_id INTEGER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;,suggested_vendor_id INTEGER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;,po_description VARCHAR2(250)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;,po_status    VARCHAR2(30)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;,comments_from_approver VARCHAR2(2000)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;,send_email_to VARCHAR2(300)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;) ;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;-----------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;--Create the package&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;-----------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;CREATE OR REPLACE PACKAGE xxxx_po_wf_training_pkg IS&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  PROCEDURE is_po_valid&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  (&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    itemtype IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,itemkey  IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,actid    IN NUMBER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,funcmode IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,RESULT   IN OUT VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  PROCEDURE set_wf_approver_role&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  (&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    itemtype IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,itemkey  IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,actid    IN NUMBER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,funcmode IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,RESULT   IN OUT VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  PROCEDURE set_wf_status_to_validated&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  (&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    itemtype IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,itemkey  IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,actid    IN NUMBER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,funcmode IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,RESULT   IN OUT VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  PROCEDURE start_training_wf(p_po_id IN INTEGER);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  PROCEDURE xx_validate_response  (&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    itemtype IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,itemkey  IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,actid    IN NUMBER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,funcmode IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   ,RESULT   IN OUT VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;END xxxx_po_wf_training_pkg;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;--------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;--Create the package body&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;--------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;CREATE OR REPLACE PACKAGE BODY xxxx_po_wf_training_pkg IS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  PROCEDURE debug(p_text IN VARCHAR2) IS&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    --    apassi1(p_text);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    NULL;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  END debug;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  FUNCTION is_po_validated(p_po_id IN INTEGER) RETURN BOOLEAN IS&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    IF p_po_id &gt; 0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    THEN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      RETURN TRUE;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    END IF;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    RETURN FALSE;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  END is_po_validated;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  PROCEDURE is_po_valid(itemtype IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                       ,itemkey  IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                       ,actid    IN NUMBER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                       ,funcmode IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                       ,RESULT   IN OUT VARCHAR2) IS&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    IF (funcmode != 'RUN')&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    THEN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      RETURN;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    END IF;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    --Just a pseudo validation&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    --call a function here, and either assign COMPLETE:Y or COMPLETE:N &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    IF is_po_validated(p_po_id =&gt; wf_engine.getitemattrnumber(itemtype =&gt; itemtype&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                                             ,itemkey  =&gt; itemkey&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                                             ,aname    =&gt; 'PO_ID'))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    THEN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      RESULT := 'COMPLETE:Y';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    ELSE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      RESULT := 'COMPLETE:N';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    END IF;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  END is_po_valid;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  PROCEDURE set_wf_approver_role(itemtype IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                ,itemkey  IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                ,actid    IN NUMBER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                ,funcmode IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                ,RESULT   IN OUT VARCHAR2) IS&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    v_role_email xxxx_po_headers.send_email_to%TYPE;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    n_ctr        INTEGER := 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    v_role_email := upper(wf_engine.getitemattrtext(itemtype =&gt; itemtype&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                                   ,itemkey  =&gt; itemkey&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                                   ,aname    =&gt; 'SEND_TO_EMAIL'));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    SELECT COUNT(*)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    INTO n_ctr&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    FROM wf_local_roles&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    WHERE NAME = v_role_email;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    IF n_ctr = 0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    THEN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      wf_directory.createadhocrole(role_name               =&gt; v_role_email&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                  ,role_display_name       =&gt; v_role_email&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                  ,role_description        =&gt; v_role_email&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                  ,notification_preference =&gt; 'MAILHTML'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                  ,email_address           =&gt; v_role_email&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                  ,status                  =&gt; 'ACTIVE'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                  ,expiration_date         =&gt; NULL);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    END IF;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    wf_engine.setitemattrtext(itemtype =&gt; itemtype&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                             ,itemkey  =&gt; itemkey&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                             ,aname    =&gt; 'SEND_TO_ROLE'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                             ,avalue   =&gt; v_role_email);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    RESULT := 'COMPLETE:Y';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    RESULT := 'COMPLETE:Y';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  END set_wf_approver_role;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  PROCEDURE set_wf_status_to_validated(itemtype IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                      ,itemkey  IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                      ,actid    IN NUMBER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                      ,funcmode IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                      ,RESULT   IN OUT VARCHAR2) IS&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    UPDATE xxxx_po_headers&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    SET po_status = 'VALIDATED'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    WHERE po_id = wf_engine.getitemattrnumber(itemtype&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                             ,itemkey&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                             ,'PO_ID');&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    RESULT := 'COMPLETE:Y';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  END set_wf_status_to_validated;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  PROCEDURE start_training_wf(p_po_id IN INTEGER) IS&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    l_itemtype VARCHAR2(30) := 'XXXXPTR';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    l_itemkey  VARCHAR2(300) := 'TRAINING-' || p_po_id;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    CURSOR c_get IS&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      SELECT * FROM xxxx_po_headers WHERE po_id = p_po_id;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    p_get c_get%ROWTYPE;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    OPEN c_get;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    FETCH c_get&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      INTO p_get;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    CLOSE c_get;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    wf_engine.createprocess(l_itemtype&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                           ,l_itemkey&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                           ,'MAIN_TRAINING_PROCESS');&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    wf_engine.setitemuserkey(itemtype =&gt; l_itemtype&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                            ,itemkey  =&gt; l_itemkey&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                            ,userkey  =&gt; 'USERKEY: ' || l_itemkey);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    wf_engine.setitemowner(itemtype =&gt; l_itemtype&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                          ,itemkey  =&gt; l_itemkey&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                          ,owner    =&gt; 'SYSADMIN');&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    wf_engine.setitemattrnumber(itemtype =&gt; l_itemtype&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                               ,itemkey  =&gt; l_itemkey&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                               ,aname    =&gt; 'PO_ID'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                               ,avalue   =&gt; p_po_id);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    wf_engine.setitemattrtext(itemtype =&gt; l_itemtype&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                             ,itemkey  =&gt; l_itemkey&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                             ,aname    =&gt; 'SEND_TO_EMAIL'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                             ,avalue   =&gt; p_get.send_email_to);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    wf_engine.setitemattrtext(itemtype =&gt; l_itemtype&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                             ,itemkey  =&gt; l_itemkey&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                             ,aname    =&gt; 'PO_DESCRIPTION'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                             ,avalue   =&gt; p_get.po_description);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    wf_engine.startprocess(l_itemtype&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                          ,l_itemkey);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  END start_training_wf;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  PROCEDURE xx_validate_response(itemtype IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                ,itemkey  IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                ,actid    IN NUMBER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                ,funcmode IN VARCHAR2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                ,RESULT   IN OUT VARCHAR2) IS&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    l_nid                  NUMBER;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    l_activity_result_code VARCHAR2(200);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    v_response_reason      VARCHAR2(50);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    debug('funcmode is ' || funcmode);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    IF (funcmode IN ('RESPOND'))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    THEN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      l_nid := wf_engine.context_nid;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      l_activity_result_code := wf_notification.getattrtext(l_nid&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                                           ,'XX_RESPONSE_ACTION');&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      debug('l_activity_result_code is ' || l_activity_result_code);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      v_response_reason := wf_notification.getattrtext(l_nid&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                                                      ,'XX_RESPONSE_REASON');&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      debug('v_response_reason is ' || v_response_reason);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      IF l_activity_result_code = 'XX_REJECTED' AND&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;         v_response_reason IS NULL&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      THEN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        RESULT := 'ERROR: You must enter rejection reason if rejecting.';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        RETURN;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      END IF;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    END IF;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  EXCEPTION&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    WHEN OTHERS THEN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      RESULT := SQLERRM;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  END xx_validate_response;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;END xxxx_po_wf_training_pkg;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;--Now Run the Workflow&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;--Ensure that wft file has been loaded&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;DECLARE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  n_new_po_id INTEGER;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  SELECT oe_order_headers_s.NEXTVAL INTO n_new_po_id FROM dual;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  INSERT INTO xxxx_po_headers&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    (po_id&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    ,vendor_id&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    ,suggested_vendor_id&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    ,po_description&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    ,po_status&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    ,comments_from_approver&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    ,send_email_to)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  VALUES&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    (n_new_po_id --po_id&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    ,10000 --vendor_id&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    ,NULL --suggested_vendor_id&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    ,'This is PO Training Description' --po_description&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    ,'INITIAL' --po_status&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    ,NULL --comments_from_approver&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    ,'ANILPASSI@GMAIL.com' --send_email_to&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;     );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  xxxx_po_wf_training_pkg.start_training_wf(p_po_id =&gt; n_new_po_id);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  COMMIT;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;END;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;/&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34646129-115962784014809999?l=scripts4oracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scripts4oracle.blogspot.com/feeds/115962784014809999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34646129&amp;postID=115962784014809999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/115962784014809999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/115962784014809999'/><link rel='alternate' type='text/html' href='http://scripts4oracle.blogspot.com/2006/09/scripts-for-workflow-training-lesson-2.html' title=''/><author><name>Anil Passi</name><uri>http://www.blogger.com/profile/14859722075898946765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34646129.post-115928223101100972</id><published>2006-09-26T07:44:00.000-07:00</published><updated>2007-03-27T22:35:35.553-07:00</updated><title type='text'></title><content type='html'>&lt;h3&gt;Oracle Apps FND User name Locks Record&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;Ever wondered how to find the person in Oracle Apps that locks a specific record?&lt;br /&gt;Its simple, I find this SQL quite useful. Blaah, you will know the user that is sleeping over the record by locking it. This SQL joins the locking session to FND_USER, so as to display the APPS User Name of the person that locks the record.&lt;br /&gt;&lt;br /&gt;In the example below, lets say we need to find the list of people that are locking tables in Purchasing. Aslo, lets assume we need to find the screen/conc process that locks the record.&lt;br /&gt;&lt;br /&gt;SELECT c.owner&lt;br /&gt;,c.object_name&lt;br /&gt;,c.object_type&lt;br /&gt;,fu.user_name locking_user_name&lt;br /&gt;,fl.start_time&lt;br /&gt;,vs.module&lt;br /&gt;,vs.machine&lt;br /&gt;,vs.osuser&lt;br /&gt;,vs.sid&lt;br /&gt;,vp.pid&lt;br /&gt;,vp.spid AS os_process_to_kill&lt;br /&gt;,vs.serial#&lt;br /&gt;,vs.status&lt;br /&gt;,vs.saddr&lt;br /&gt;,vs.audsid&lt;br /&gt;,vs.process&lt;br /&gt;FROM fnd_logins fl&lt;br /&gt;,fnd_user fu&lt;br /&gt;,v$locked_object vlocked&lt;br /&gt;,v$process vp&lt;br /&gt;,v$session vs&lt;br /&gt;,dba_objects c&lt;br /&gt;WHERE vs.sid = vlocked.session_id&lt;br /&gt;AND vlocked.object_id = c.object_id&lt;br /&gt;AND vs.paddr = vp.addr&lt;br /&gt;AND vp.spid = fl.process_spid(+)&lt;br /&gt;AND vp.pid = fl.pid(+)&lt;br /&gt;AND fl.user_id = fu.user_id(+)&lt;br /&gt;AND c.object_name LIKE 'PO%';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OWNER            PO&lt;br /&gt;OBJECT_NAME                        PO_HEADERS_ALL&lt;br /&gt;OBJECT_TYPE                          TABLE&lt;br /&gt;LOCKING_USER_NAME        PASSIANIL&lt;br /&gt;START_TIME                            26-SEP-2006&lt;br /&gt;MODULE                                     POXPOEPO&lt;br /&gt;MACHINE                                   xxappsserver01&lt;br /&gt;OSUSER                                       Xxtstuser&lt;br /&gt;SID                                                2785&lt;br /&gt;PID                                                661&lt;br /&gt;OS_PROCESS_TO_KILL         27975&lt;br /&gt;SERIAL#                                     5518&lt;br /&gt;STATUS                                       INACTIVE&lt;br /&gt;SADDR                                         000000077DD814F0&lt;br /&gt;AUDSID                                       13482253&lt;br /&gt;PROCESS                                     3563&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34646129-115928223101100972?l=scripts4oracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scripts4oracle.blogspot.com/feeds/115928223101100972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34646129&amp;postID=115928223101100972' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/115928223101100972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/115928223101100972'/><link rel='alternate' type='text/html' href='http://scripts4oracle.blogspot.com/2006/09/oracle-apps-fnd-user-name-locks-record.html' title=''/><author><name>Anil Passi</name><uri>http://www.blogger.com/profile/14859722075898946765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34646129.post-115928134712259229</id><published>2006-09-26T07:30:00.000-07:00</published><updated>2006-09-30T08:48:34.200-07:00</updated><title type='text'></title><content type='html'>&lt;h3&gt;Oracle APPS Warn Bounce of Environment to Recent Users&lt;/h3&gt;Very often, we find ourselves in a need to bounce the development or test environment. This takes some developers/testers etc by surprise.&lt;br /&gt;Hence I developed a simple script to list the list of recent users that use the Oracle Apps instance. We can then email the people returned by this list, to inform them of the system unavailability.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT ppx.full_name&lt;br /&gt;      ,fu.user_name&lt;br /&gt;      ,nvl(ppx.email_address&lt;br /&gt;          ,fu.email_address) AS email_address&lt;br /&gt;FROM per_people_x ppx, fnd_user fu, fnd_logins fl&lt;br /&gt;WHERE fl.start_time &gt; SYSDATE - 2&lt;br /&gt;AND fu.user_id = fl.user_id&lt;br /&gt;AND ppx.person_id(+) = fu.employee_id&lt;br /&gt;AND fu.user_name NOT IN ('INTERFACE', 'SYSADMIN', 'GUEST')&lt;br /&gt;AND fu.user_name != 'PASSIA' --exclude anil&lt;br /&gt;GROUP BY ppx.full_name&lt;br /&gt;        ,fu.user_name&lt;br /&gt;        ,nvl(ppx.email_address&lt;br /&gt;            ,fu.email_address)&lt;br /&gt;ORDER BY 2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34646129-115928134712259229?l=scripts4oracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scripts4oracle.blogspot.com/feeds/115928134712259229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34646129&amp;postID=115928134712259229' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/115928134712259229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/115928134712259229'/><link rel='alternate' type='text/html' href='http://scripts4oracle.blogspot.com/2006/09/oracle-apps-warn-bounce-of-environment.html' title=''/><author><name>Anil Passi</name><uri>http://www.blogger.com/profile/14859722075898946765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34646129.post-115926926937475572</id><published>2006-09-26T04:14:00.000-07:00</published><updated>2006-09-30T08:59:43.080-07:00</updated><title type='text'></title><content type='html'>Oracle Activity on FND LOGINS FND USER&lt;br /&gt;My client asked me to write a quick SQL to find out the load on the Production system, in terms of User activity. This was required for be broken down by External Logins(iSourcing, Students etc) and Internal Employees.&lt;br /&gt;&lt;br /&gt;Use the SQL below&lt;br /&gt;===============&lt;br /&gt;SELECT COUNT(fl.login_id) count_of_logins&lt;br /&gt;,trunc(fl.start_time) start_date&lt;br /&gt;,COUNT(DISTINCT fl.user_id) count_users&lt;br /&gt;,decode(fu.employee_id&lt;br /&gt;,NULL&lt;br /&gt;,'EXTERNAL'&lt;br /&gt;,'INTERNAL') AS emp_type&lt;br /&gt;FROM fnd_user fu, fnd_logins fl&lt;br /&gt;WHERE fl.start_time &gt; SYSDATE - 10&lt;br /&gt;AND fl.user_id NOT IN (6, 0, -1)&lt;br /&gt;AND fu.user_id = fl.user_id&lt;br /&gt;GROUP BY trunc(start_time)&lt;br /&gt;,decode(fu.employee_id&lt;br /&gt;,NULL&lt;br /&gt;,'EXTERNAL'&lt;br /&gt;,'INTERNAL')&lt;br /&gt;ORDER BY 2&lt;br /&gt;&lt;br /&gt;In fact after running this, I discovered that OAM gives a better breakdown, i.e. it will list the breakdown at Module level.&lt;br /&gt;That list will be available from Sitemap Tab, after having logged into OAM ( Oracle Applications Manager ).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34646129-115926926937475572?l=scripts4oracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scripts4oracle.blogspot.com/feeds/115926926937475572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34646129&amp;postID=115926926937475572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/115926926937475572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/115926926937475572'/><link rel='alternate' type='text/html' href='http://scripts4oracle.blogspot.com/2006/09/oracle-activity-on-fnd-logins-fnd-user.html' title=''/><author><name>Anil Passi</name><uri>http://www.blogger.com/profile/14859722075898946765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34646129.post-115873189425353430</id><published>2006-09-19T22:57:00.000-07:00</published><updated>2007-04-02T17:56:51.436-07:00</updated><title type='text'></title><content type='html'>&lt;h3&gt;Oracle API for GL Interface Package Body&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE PACKAGE BODY xx_import_xfer_gl_iface_api IS&lt;br /&gt;  /* $Header: XXXXXXXX.pkh, Version 1.0, 07-FEB-2003 UKEXPI $&lt;br /&gt;  ***********************************************************************&lt;br /&gt;  * *&lt;br /&gt;  * History Log *&lt;br /&gt;  * *&lt;br /&gt;  ***********************************************************************&lt;br /&gt;  * *&lt;br /&gt;  * App/Release : Oracle e-Business Suite RXXX *&lt;br /&gt;  * Oracle App : SHORTNAME - FULL_NAME *&lt;br /&gt;  * Module : SHORTNAME - DESCRIPTION *&lt;br /&gt;  * Author : Anil Passi(Go 4 Gold), *&lt;br /&gt;  * Version : 1.0 *&lt;br /&gt;  * Revised : 11-SEP-2005 *&lt;br /&gt;  * Description : This package delivers GL interface API *&lt;br /&gt;  * *&lt;br /&gt;  * Change History Log *&lt;br /&gt;  * ================== *&lt;br /&gt;  * *&lt;br /&gt;  * Version Date Author Change *&lt;br /&gt;  * ======= =========== ============ ================================*&lt;br /&gt;  *&lt;br /&gt;  * 1.0 10-OCT-2002 A. Passi Initial Version&lt;br /&gt;  * 1.2 12-OCT-2002 A. Passi Added ability to "transfer_to_gl" such that&lt;br /&gt;  both the credit and debit can either happen&lt;br /&gt;  in single API call, or multiple calls(when an&lt;br /&gt;  amount is distributed).&lt;br /&gt;  * 1.3 24-Jan-2006 A. Passi Add the trx_number to the batch details.&lt;br /&gt;  This is so because the recurring journal will&lt;br /&gt;  have incremental trx_number for each period,&lt;br /&gt;  with the batch number remaining the same.&lt;br /&gt;  * 1.4 08-Sep-2005 A. Passi Move the journal to next&lt;br /&gt;  period if current period is closed&lt;br /&gt;  **********************************************************************/&lt;br /&gt;&lt;br /&gt;  g_sob_id      INTEGER := fnd_profile.VALUE('GL_SET_OF_BKS_ID');&lt;br /&gt;  g_source_name gl_je_headers.je_source%TYPE;&lt;br /&gt;  g_error_flag  VARCHAR2(1) := NULL;&lt;br /&gt;&lt;br /&gt;  g_xx_transaction_source CONSTANT VARCHAR2(80) := 'XX_COST_XFER';&lt;br /&gt;&lt;br /&gt;  --move these three into the config screen.&lt;br /&gt;  --$?$&lt;br /&gt;  g_gl_user_je_source_name CONSTANT VARCHAR2(30) := nvl(fnd_profile.VALUE('XX_OVERRIDE_GL_JE_SOURCE_NAME')&lt;br /&gt;                                                       ,'Manual');&lt;br /&gt;  --$?$&lt;br /&gt;  g_gl_user_je_category_name CONSTANT VARCHAR2(30) := nvl(fnd_profile.VALUE('XX_OVERRIDE_JE_CATEGORY_NAME')&lt;br /&gt;                                                         ,'Miscellaneous Transaction');&lt;br /&gt;  --$?$&lt;br /&gt;  g_conversion_type VARCHAR2(30) := nvl(fnd_profile.VALUE('XX_OVERRIDE_GL_RATE_CONVERSION_TYPE')&lt;br /&gt;                                       ,'Corporate');&lt;br /&gt;&lt;br /&gt;  g_gl_batch_prefix VARCHAR2(30) := nvl(fnd_profile.VALUE('XX_OVERRIDE_GL_BATCH_PREFIX')&lt;br /&gt;                                       ,'XX_GL_FEED_NAME:');&lt;br /&gt;&lt;br /&gt;  g_gl_appl_name CONSTANT VARCHAR2(30) := 'SQLGL';&lt;br /&gt;  g_conversion_type_code VARCHAR2(30);&lt;br /&gt;&lt;br /&gt;  g_debug_procedure_context VARCHAR2(30);&lt;br /&gt;  g_debug_header_context CONSTANT VARCHAR2(80) := 'xx_gl_feed.plsql.xx_import_xfer_gl_iface_api.';&lt;br /&gt;&lt;br /&gt;  --Programming variables&lt;br /&gt;  --g_group_id and g_interface_run_id will be set each time separately for a batch&lt;br /&gt;  g_group_id         NUMBER;&lt;br /&gt;  g_interface_run_id NUMBER;&lt;br /&gt;&lt;br /&gt;  PROCEDURE new_gl_interface_batch IS&lt;br /&gt;  BEGIN&lt;br /&gt;    g_group_id         := NULL;&lt;br /&gt;    g_interface_run_id := NULL;&lt;br /&gt;  END new_gl_interface_batch;&lt;br /&gt;&lt;br /&gt;  PROCEDURE debug_stmt(p_msg IN VARCHAR2) IS&lt;br /&gt;  BEGIN&lt;br /&gt;    fnd_log.STRING(log_level =&gt; fnd_log.level_statement&lt;br /&gt;                  ,module    =&gt; g_debug_header_context ||&lt;br /&gt;                                g_debug_procedure_context&lt;br /&gt;                  ,message   =&gt; p_msg);&lt;br /&gt;    IF fnd_global.conc_request_id &gt; 0 AND&lt;br /&gt;       fnd_profile.VALUE('AFLOG_ENABLED') = 'Y'&lt;br /&gt;    THEN&lt;br /&gt;      fnd_file.put_line(which =&gt; fnd_file.log&lt;br /&gt;                       ,buff  =&gt; p_msg);&lt;br /&gt;    END IF;&lt;br /&gt; &lt;br /&gt;  END debug_stmt;&lt;br /&gt;&lt;br /&gt;  PROCEDURE debug_begin_procedure IS&lt;br /&gt;  BEGIN&lt;br /&gt;    fnd_log.STRING(log_level =&gt; fnd_log.level_statement&lt;br /&gt;                  ,module    =&gt; g_debug_header_context ||&lt;br /&gt;                                g_debug_procedure_context&lt;br /&gt;                  ,message   =&gt; 'Begin ' || g_debug_procedure_context);&lt;br /&gt;  END debug_begin_procedure;&lt;br /&gt;&lt;br /&gt;  PROCEDURE debug_end_procedure IS&lt;br /&gt;  BEGIN&lt;br /&gt;    fnd_log.STRING(log_level =&gt; fnd_log.level_statement&lt;br /&gt;                  ,module    =&gt; g_debug_header_context ||&lt;br /&gt;                                g_debug_procedure_context&lt;br /&gt;                  ,message   =&gt; 'End ' || g_debug_procedure_context);&lt;br /&gt;  END debug_end_procedure;&lt;br /&gt;&lt;br /&gt;  PROCEDURE set_debug_context(p_procedure_name IN VARCHAR2) IS&lt;br /&gt;  BEGIN&lt;br /&gt;    g_debug_procedure_context := p_procedure_name;&lt;br /&gt;    debug_begin_procedure;&lt;br /&gt;  END set_debug_context;&lt;br /&gt;&lt;br /&gt;  PROCEDURE log_error(p_batch_header_id IN INTEGER&lt;br /&gt;                     ,p_trx_header_id   IN INTEGER&lt;br /&gt;                     ,p_error_message   IN VARCHAR2) IS&lt;br /&gt;    PRAGMA AUTONOMOUS_TRANSACTION;&lt;br /&gt;  BEGIN&lt;br /&gt;    IF fnd_global.conc_request_id &gt; 0&lt;br /&gt;    THEN&lt;br /&gt;      fnd_file.put_line(fnd_file.output&lt;br /&gt;                       ,'ERROR::' || p_error_message);&lt;br /&gt;      g_error_flag := 'Y';&lt;br /&gt;    END IF;&lt;br /&gt;    --log error into your error logging table&lt;br /&gt;    /* INSERT INTO xx_gl_api_error_logs&lt;br /&gt;    (error_log_id&lt;br /&gt;    ,batch_header_id&lt;br /&gt;    ,trx_header_id&lt;br /&gt;    ,error_message&lt;br /&gt;    ,creation_date&lt;br /&gt;    ,fnd_request_id)&lt;br /&gt;    VALUES&lt;br /&gt;    (xx_error_log_s.NEXTVAL -- x_error_log_id&lt;br /&gt;    ,p_batch_header_id&lt;br /&gt;    ,p_trx_header_id&lt;br /&gt;    ,substr(p_error_message, 1, 2000)&lt;br /&gt;    ,SYSDATE --creation_date&lt;br /&gt;    ,fnd_global.conc_request_id --fnd_request_id&lt;br /&gt;    );&lt;br /&gt;    */&lt;br /&gt;    debug_stmt('ERROR: ' || p_error_message);&lt;br /&gt;    COMMIT;&lt;br /&gt;  EXCEPTION&lt;br /&gt;    WHEN OTHERS THEN&lt;br /&gt;      debug_stmt('ERROR: in Log_error');&lt;br /&gt;      ROLLBACK;&lt;br /&gt;  END log_error;&lt;br /&gt;&lt;br /&gt;  FUNCTION get_sob_id RETURN INTEGER IS&lt;br /&gt;  BEGIN&lt;br /&gt;    set_debug_context('get_sob_id');&lt;br /&gt;    debug_stmt('get_sob_id() Returning g_sob_id=&gt;' || g_sob_id);&lt;br /&gt;    RETURN g_sob_id;&lt;br /&gt;    debug_end_procedure;&lt;br /&gt;  END get_sob_id;&lt;br /&gt;&lt;br /&gt;  PROCEDURE set_sob_id(p_sob_id IN INTEGER) IS&lt;br /&gt;  BEGIN&lt;br /&gt;    set_debug_context('set_sob_id');&lt;br /&gt; &lt;br /&gt;    g_sob_id := p_sob_id;&lt;br /&gt;    debug_stmt('set_sob_id() Setting g_sob_id=&gt;' || g_sob_id);&lt;br /&gt;    debug_end_procedure;&lt;br /&gt;  END set_sob_id;&lt;br /&gt;&lt;br /&gt;  PROCEDURE set_source_name(p_source_name IN VARCHAR2) IS&lt;br /&gt;  BEGIN&lt;br /&gt;    set_debug_context('set_source_name');&lt;br /&gt; &lt;br /&gt;    g_source_name := p_source_name;&lt;br /&gt;    debug_stmt('set_source_name() Setting g_source_name=&gt;' ||&lt;br /&gt;               g_source_name);&lt;br /&gt;    debug_end_procedure;&lt;br /&gt;  END set_source_name;&lt;br /&gt;&lt;br /&gt;  FUNCTION get_source_name RETURN VARCHAR2 IS&lt;br /&gt;  BEGIN&lt;br /&gt;    RETURN g_source_name;&lt;br /&gt;  END get_source_name;&lt;br /&gt;&lt;br /&gt;  FUNCTION get_xx_transaction_source RETURN VARCHAR2 IS&lt;br /&gt;  BEGIN&lt;br /&gt;    RETURN g_xx_transaction_source;&lt;br /&gt;  END get_xx_transaction_source;&lt;br /&gt;&lt;br /&gt;  PROCEDURE populate_interface_control(p_user_je_source_name IN VARCHAR2&lt;br /&gt;                                      ,p_group_id            IN OUT NUMBER&lt;br /&gt;                                      ,p_set_of_books_id     NUMBER&lt;br /&gt;                                      ,p_interface_run_id    IN OUT NUMBER) IS&lt;br /&gt;    re_use_gl_interface_control EXCEPTION;&lt;br /&gt;  BEGIN&lt;br /&gt;    set_debug_context('populate_interface_control');&lt;br /&gt; &lt;br /&gt;    IF g_group_id IS NOT NULL AND g_interface_run_id IS NOT NULL&lt;br /&gt;    THEN&lt;br /&gt;      p_group_id         := g_group_id;&lt;br /&gt;      p_interface_run_id := g_interface_run_id;&lt;br /&gt;      RAISE re_use_gl_interface_control;&lt;br /&gt;    END IF;&lt;br /&gt;    gl_journal_import_pkg.populate_interface_control(user_je_source_name =&gt; p_user_je_source_name&lt;br /&gt;                                                    ,group_id            =&gt; p_group_id&lt;br /&gt;                                                    ,set_of_books_id     =&gt; p_set_of_books_id&lt;br /&gt;                                                    ,interface_run_id    =&gt; p_interface_run_id);&lt;br /&gt; &lt;br /&gt;    g_group_id         := p_group_id;&lt;br /&gt;    g_interface_run_id := p_interface_run_id;&lt;br /&gt; &lt;br /&gt;    debug_stmt('Returning New Group p_group_id=&gt;' || p_group_id ||&lt;br /&gt;               ' p_interface_run_id=&gt;' || p_interface_run_id);&lt;br /&gt; &lt;br /&gt;    debug_end_procedure;&lt;br /&gt;  EXCEPTION&lt;br /&gt;    WHEN re_use_gl_interface_control THEN&lt;br /&gt;      debug_stmt('Returning Global Group g_group_id=&gt;' || g_group_id ||&lt;br /&gt;                 ' g_interface_run_id=&gt;' || g_interface_run_id);&lt;br /&gt;      debug_end_procedure;&lt;br /&gt;  END populate_interface_control;&lt;br /&gt;&lt;br /&gt;  PROCEDURE interface_record IS&lt;br /&gt;    n_group_id         INTEGER;&lt;br /&gt;    n_sob_id           INTEGER;&lt;br /&gt;    n_interface_run_id INTEGER;&lt;br /&gt;  BEGIN&lt;br /&gt;    set_debug_context('interface_record');&lt;br /&gt; &lt;br /&gt;    n_sob_id := get_sob_id;&lt;br /&gt;    populate_interface_control(p_user_je_source_name =&gt; g_source_name&lt;br /&gt;                              ,p_group_id            =&gt; n_group_id&lt;br /&gt;                              ,p_set_of_books_id     =&gt; n_sob_id&lt;br /&gt;                              ,p_interface_run_id    =&gt; n_interface_run_id);&lt;br /&gt;    debug_end_procedure;&lt;br /&gt;  END interface_record;&lt;br /&gt;&lt;br /&gt;  PROCEDURE insert_statement(p_gl_int_rec IN OUT NOCOPY g_gl_int_type_rec) IS&lt;br /&gt;  BEGIN&lt;br /&gt;    set_debug_context('insert_statement');&lt;br /&gt; &lt;br /&gt;    INSERT INTO gl_interface&lt;br /&gt;      (reference_date&lt;br /&gt;      ,attribute20&lt;br /&gt;      ,CONTEXT&lt;br /&gt;      ,context2&lt;br /&gt;      ,invoice_date&lt;br /&gt;      ,tax_code&lt;br /&gt;      ,invoice_identifier&lt;br /&gt;      ,invoice_amount&lt;br /&gt;      ,context3&lt;br /&gt;      ,ussgl_transaction_code&lt;br /&gt;      ,descr_flex_error_message&lt;br /&gt;      ,jgzz_recon_ref&lt;br /&gt;      ,segment23&lt;br /&gt;      ,segment24&lt;br /&gt;      ,segment25&lt;br /&gt;      ,segment26&lt;br /&gt;      ,segment27&lt;br /&gt;      ,segment28&lt;br /&gt;      ,segment29&lt;br /&gt;      ,segment30&lt;br /&gt;      ,entered_dr&lt;br /&gt;      ,entered_cr&lt;br /&gt;      ,accounted_dr&lt;br /&gt;      ,accounted_cr&lt;br /&gt;      ,transaction_date&lt;br /&gt;      ,reference1&lt;br /&gt;      ,reference2&lt;br /&gt;      ,reference3&lt;br /&gt;      ,reference4&lt;br /&gt;      ,reference5&lt;br /&gt;      ,reference6&lt;br /&gt;      ,reference7&lt;br /&gt;      ,reference8&lt;br /&gt;      ,reference9&lt;br /&gt;      ,reference10&lt;br /&gt;      ,reference11&lt;br /&gt;      ,reference12&lt;br /&gt;      ,reference13&lt;br /&gt;      ,reference14&lt;br /&gt;      ,reference15&lt;br /&gt;      ,reference16&lt;br /&gt;      ,reference17&lt;br /&gt;      ,reference18&lt;br /&gt;      ,reference19&lt;br /&gt;      ,reference20&lt;br /&gt;      ,reference21&lt;br /&gt;      ,reference22&lt;br /&gt;      ,reference23&lt;br /&gt;      ,reference24&lt;br /&gt;      ,reference25&lt;br /&gt;      ,reference26&lt;br /&gt;      ,reference27&lt;br /&gt;      ,reference28&lt;br /&gt;      ,reference29&lt;br /&gt;      ,reference30&lt;br /&gt;      ,je_batch_id&lt;br /&gt;      ,period_name&lt;br /&gt;      ,je_header_id&lt;br /&gt;      ,je_line_num&lt;br /&gt;      ,chart_of_accounts_id&lt;br /&gt;      ,functional_currency_code&lt;br /&gt;      ,code_combination_id&lt;br /&gt;      ,date_created_in_gl&lt;br /&gt;      ,warning_code&lt;br /&gt;      ,status_description&lt;br /&gt;      ,stat_amount&lt;br /&gt;      ,group_id&lt;br /&gt;      ,request_id&lt;br /&gt;      ,subledger_doc_sequence_id&lt;br /&gt;      ,subledger_doc_sequence_value&lt;br /&gt;      ,attribute1&lt;br /&gt;      ,attribute2&lt;br /&gt;      ,gl_sl_link_id&lt;br /&gt;      ,gl_sl_link_table&lt;br /&gt;      ,attribute3&lt;br /&gt;      ,attribute4&lt;br /&gt;      ,attribute5&lt;br /&gt;      ,attribute6&lt;br /&gt;      ,attribute7&lt;br /&gt;      ,attribute8&lt;br /&gt;      ,attribute9&lt;br /&gt;      ,attribute10&lt;br /&gt;      ,attribute11&lt;br /&gt;      ,attribute12&lt;br /&gt;      ,attribute13&lt;br /&gt;      ,attribute14&lt;br /&gt;      ,attribute15&lt;br /&gt;      ,attribute16&lt;br /&gt;      ,attribute17&lt;br /&gt;      ,attribute18&lt;br /&gt;      ,attribute19&lt;br /&gt;      ,status&lt;br /&gt;      ,set_of_books_id&lt;br /&gt;      ,accounting_date&lt;br /&gt;      ,currency_code&lt;br /&gt;      ,date_created&lt;br /&gt;      ,created_by&lt;br /&gt;      ,actual_flag&lt;br /&gt;      ,user_je_category_name&lt;br /&gt;      ,user_je_source_name&lt;br /&gt;      ,currency_conversion_date&lt;br /&gt;      ,encumbrance_type_id&lt;br /&gt;      ,budget_version_id&lt;br /&gt;      ,user_currency_conversion_type&lt;br /&gt;      ,currency_conversion_rate&lt;br /&gt;      ,average_journal_flag&lt;br /&gt;      ,originating_bal_seg_value&lt;br /&gt;      ,segment1&lt;br /&gt;      ,segment2&lt;br /&gt;      ,segment3&lt;br /&gt;      ,segment4&lt;br /&gt;      ,segment5&lt;br /&gt;      ,segment6&lt;br /&gt;      ,segment7&lt;br /&gt;      ,segment8&lt;br /&gt;      ,segment9&lt;br /&gt;      ,segment10&lt;br /&gt;      ,segment11&lt;br /&gt;      ,segment12&lt;br /&gt;      ,segment13&lt;br /&gt;      ,segment14&lt;br /&gt;      ,segment15&lt;br /&gt;      ,segment16&lt;br /&gt;      ,segment17&lt;br /&gt;      ,segment18&lt;br /&gt;      ,segment19&lt;br /&gt;      ,segment20&lt;br /&gt;      ,segment21&lt;br /&gt;      ,segment22)&lt;br /&gt;    VALUES&lt;br /&gt;      (p_gl_int_rec.reference_date -- reference_date&lt;br /&gt;      ,p_gl_int_rec.attribute20 -- attribute20&lt;br /&gt;      ,p_gl_int_rec.CONTEXT -- context&lt;br /&gt;      ,p_gl_int_rec.context2 -- context2&lt;br /&gt;      ,p_gl_int_rec.invoice_date -- invoice_date&lt;br /&gt;      ,p_gl_int_rec.tax_code -- tax_code&lt;br /&gt;      ,p_gl_int_rec.invoice_identifier -- invoice_identifier&lt;br /&gt;      ,p_gl_int_rec.invoice_amount -- invoice_amount&lt;br /&gt;      ,p_gl_int_rec.context3 -- context3&lt;br /&gt;      ,p_gl_int_rec.ussgl_transaction_code -- ussgl_transaction_code&lt;br /&gt;      ,p_gl_int_rec.descr_flex_error_message -- descr_flex_error_message&lt;br /&gt;      ,p_gl_int_rec.jgzz_recon_ref -- jgzz_recon_ref&lt;br /&gt;      ,p_gl_int_rec.segment23 -- segment23&lt;br /&gt;      ,p_gl_int_rec.segment24 -- segment24&lt;br /&gt;      ,p_gl_int_rec.segment25 -- segment25&lt;br /&gt;      ,p_gl_int_rec.segment26 -- segment26&lt;br /&gt;      ,p_gl_int_rec.segment27 -- segment27&lt;br /&gt;      ,p_gl_int_rec.segment28 -- segment28&lt;br /&gt;      ,p_gl_int_rec.segment29 -- segment29&lt;br /&gt;      ,p_gl_int_rec.segment30 -- segment30&lt;br /&gt;      ,p_gl_int_rec.entered_dr -- entered_dr&lt;br /&gt;      ,p_gl_int_rec.entered_cr -- entered_cr&lt;br /&gt;      ,p_gl_int_rec.accounted_dr -- accounted_dr&lt;br /&gt;      ,p_gl_int_rec.accounted_cr -- accounted_cr&lt;br /&gt;      ,p_gl_int_rec.transaction_date -- transaction_date&lt;br /&gt;      ,p_gl_int_rec.reference1 -- reference1&lt;br /&gt;      ,p_gl_int_rec.reference2 -- reference2&lt;br /&gt;      ,p_gl_int_rec.reference3 -- reference3&lt;br /&gt;      ,p_gl_int_rec.reference4 -- reference4&lt;br /&gt;      ,p_gl_int_rec.reference5 -- reference5&lt;br /&gt;      ,p_gl_int_rec.reference6 -- reference6&lt;br /&gt;      ,p_gl_int_rec.reference7 -- reference7&lt;br /&gt;      ,p_gl_int_rec.reference8 -- reference8&lt;br /&gt;      ,p_gl_int_rec.reference9 -- reference9&lt;br /&gt;      ,p_gl_int_rec.reference10 -- reference10&lt;br /&gt;      ,p_gl_int_rec.reference11 -- reference11&lt;br /&gt;      ,p_gl_int_rec.reference12 -- reference12&lt;br /&gt;      ,p_gl_int_rec.reference13 -- reference13&lt;br /&gt;      ,p_gl_int_rec.reference14 -- reference14&lt;br /&gt;      ,p_gl_int_rec.reference15 -- reference15&lt;br /&gt;      ,p_gl_int_rec.reference16 -- reference16&lt;br /&gt;      ,p_gl_int_rec.reference17 -- reference17&lt;br /&gt;      ,p_gl_int_rec.reference18 -- reference18&lt;br /&gt;      ,p_gl_int_rec.reference19 -- reference19&lt;br /&gt;      ,p_gl_int_rec.reference20 -- reference20&lt;br /&gt;      ,p_gl_int_rec.reference21 -- reference21&lt;br /&gt;      ,p_gl_int_rec.reference22 -- reference22&lt;br /&gt;      ,p_gl_int_rec.reference23 -- reference23&lt;br /&gt;      ,p_gl_int_rec.reference24 -- reference24&lt;br /&gt;      ,p_gl_int_rec.reference25 -- reference25&lt;br /&gt;      ,p_gl_int_rec.reference26 -- reference26&lt;br /&gt;      ,p_gl_int_rec.reference27 -- reference27&lt;br /&gt;      ,p_gl_int_rec.reference28 -- reference28&lt;br /&gt;      ,p_gl_int_rec.reference29 -- reference29&lt;br /&gt;      ,p_gl_int_rec.reference30 -- reference30&lt;br /&gt;      ,p_gl_int_rec.je_batch_id -- je_batch_id&lt;br /&gt;      ,p_gl_int_rec.period_name -- period_name&lt;br /&gt;      ,p_gl_int_rec.je_header_id -- je_header_id&lt;br /&gt;      ,p_gl_int_rec.je_line_num -- je_line_num&lt;br /&gt;      ,p_gl_int_rec.chart_of_accounts_id -- chart_of_accounts_id&lt;br /&gt;      ,p_gl_int_rec.functional_currency_code -- functional_currency_code&lt;br /&gt;      ,p_gl_int_rec.code_combination_id -- code_combination_id&lt;br /&gt;      ,p_gl_int_rec.date_created_in_gl -- date_created_in_gl&lt;br /&gt;      ,p_gl_int_rec.warning_code -- warning_code&lt;br /&gt;      ,p_gl_int_rec.status_description -- status_description&lt;br /&gt;      ,p_gl_int_rec.stat_amount -- stat_amount&lt;br /&gt;      ,p_gl_int_rec.group_id -- group_id&lt;br /&gt;      ,p_gl_int_rec.request_id -- request_id&lt;br /&gt;      ,p_gl_int_rec.subledger_doc_sequence_id&lt;br /&gt;       -- subledger_doc_sequence_id&lt;br /&gt;      ,p_gl_int_rec.subledger_doc_sequence_value&lt;br /&gt;       -- subledger_doc_sequence_value&lt;br /&gt;      ,p_gl_int_rec.attribute1 -- attribute1&lt;br /&gt;      ,p_gl_int_rec.attribute2 -- attribute2&lt;br /&gt;      ,p_gl_int_rec.gl_sl_link_id -- gl_sl_link_id&lt;br /&gt;      ,p_gl_int_rec.gl_sl_link_table -- gl_sl_link_table&lt;br /&gt;      ,p_gl_int_rec.attribute3 -- attribute3&lt;br /&gt;      ,p_gl_int_rec.attribute4 -- attribute4&lt;br /&gt;      ,p_gl_int_rec.attribute5 -- attribute5&lt;br /&gt;      ,p_gl_int_rec.attribute6 -- attribute6&lt;br /&gt;      ,p_gl_int_rec.attribute7 -- attribute7&lt;br /&gt;      ,p_gl_int_rec.attribute8 -- attribute8&lt;br /&gt;      ,p_gl_int_rec.attribute9 -- attribute9&lt;br /&gt;      ,p_gl_int_rec.attribute10 -- attribute10&lt;br /&gt;      ,p_gl_int_rec.attribute11 -- attribute11&lt;br /&gt;      ,p_gl_int_rec.attribute12 -- attribute12&lt;br /&gt;      ,p_gl_int_rec.attribute13 -- attribute13&lt;br /&gt;      ,p_gl_int_rec.attribute14 -- attribute14&lt;br /&gt;      ,p_gl_int_rec.attribute15 -- attribute15&lt;br /&gt;      ,p_gl_int_rec.attribute16 -- attribute16&lt;br /&gt;      ,p_gl_int_rec.attribute17 -- attribute17&lt;br /&gt;      ,p_gl_int_rec.attribute18 -- attribute18&lt;br /&gt;      ,p_gl_int_rec.attribute19 -- attribute19&lt;br /&gt;      ,p_gl_int_rec.status -- status&lt;br /&gt;      ,p_gl_int_rec.set_of_books_id -- set_of_books_id&lt;br /&gt;      ,p_gl_int_rec.accounting_date -- accounting_date&lt;br /&gt;      ,p_gl_int_rec.currency_code -- currency_code&lt;br /&gt;      ,p_gl_int_rec.date_created -- date_created&lt;br /&gt;      ,p_gl_int_rec.created_by -- created_by&lt;br /&gt;      ,p_gl_int_rec.actual_flag -- actual_flag&lt;br /&gt;      ,p_gl_int_rec.user_je_category_name -- user_je_category_name&lt;br /&gt;      ,p_gl_int_rec.user_je_source_name -- user_je_source_name&lt;br /&gt;      ,p_gl_int_rec.currency_conversion_date -- currency_conversion_date&lt;br /&gt;      ,p_gl_int_rec.encumbrance_type_id -- encumbrance_type_id&lt;br /&gt;      ,p_gl_int_rec.budget_version_id -- budget_version_id&lt;br /&gt;      ,p_gl_int_rec.user_currency_conversion_type&lt;br /&gt;       -- user_currency_conversion_type&lt;br /&gt;      ,p_gl_int_rec.currency_conversion_rate -- currency_conversion_rate&lt;br /&gt;      ,p_gl_int_rec.average_journal_flag -- average_journal_flag&lt;br /&gt;      ,p_gl_int_rec.originating_bal_seg_value&lt;br /&gt;       -- originating_bal_seg_value&lt;br /&gt;      ,p_gl_int_rec.segment1 -- segment1&lt;br /&gt;      ,p_gl_int_rec.segment2 -- segment2&lt;br /&gt;      ,p_gl_int_rec.segment3 -- segment3&lt;br /&gt;      ,p_gl_int_rec.segment4 -- segment4&lt;br /&gt;      ,p_gl_int_rec.segment5 -- segment5&lt;br /&gt;      ,p_gl_int_rec.segment6 -- segment6&lt;br /&gt;      ,p_gl_int_rec.segment7 -- segment7&lt;br /&gt;      ,p_gl_int_rec.segment8 -- segment8&lt;br /&gt;      ,p_gl_int_rec.segment9 -- segment9&lt;br /&gt;      ,p_gl_int_rec.segment10 -- segment10&lt;br /&gt;      ,p_gl_int_rec.segment11 -- segment11&lt;br /&gt;      ,p_gl_int_rec.segment12 -- segment12&lt;br /&gt;      ,p_gl_int_rec.segment13 -- segment13&lt;br /&gt;      ,p_gl_int_rec.segment14 -- segment14&lt;br /&gt;      ,p_gl_int_rec.segment15 -- segment15&lt;br /&gt;      ,p_gl_int_rec.segment16 -- segment16&lt;br /&gt;      ,p_gl_int_rec.segment17 -- segment17&lt;br /&gt;      ,p_gl_int_rec.segment18 -- segment18&lt;br /&gt;      ,p_gl_int_rec.segment19 -- segment19&lt;br /&gt;      ,p_gl_int_rec.segment20 -- segment20&lt;br /&gt;      ,p_gl_int_rec.segment21 -- segment21&lt;br /&gt;      ,p_gl_int_rec.segment22 -- segment22&lt;br /&gt;       );&lt;br /&gt;    debug_stmt(SQL%ROWCOUNT || ' records inserted into GL_INTERFACE');&lt;br /&gt;    debug_end_procedure;&lt;br /&gt;  END insert_statement;&lt;br /&gt;&lt;br /&gt;  FUNCTION check_ccid(p_sob_id IN INTEGER&lt;br /&gt;                     ,p_ccid   IN INTEGER) RETURN BOOLEAN IS&lt;br /&gt;    CURSOR c_check IS&lt;br /&gt;      SELECT 'x'&lt;br /&gt;      FROM gl_code_combinations gcc, gl_sets_of_books gsob&lt;br /&gt;      WHERE gsob.set_of_books_id = p_sob_id&lt;br /&gt;      AND gcc.code_combination_id = p_ccid&lt;br /&gt;      AND gcc.chart_of_accounts_id = gsob.chart_of_accounts_id&lt;br /&gt;      AND gcc.enabled_flag = 'Y';&lt;br /&gt; &lt;br /&gt;    p_check c_check%ROWTYPE;&lt;br /&gt;  BEGIN&lt;br /&gt;    set_debug_context('check_ccid');&lt;br /&gt;    debug_stmt('p_sob_id=&gt;' || p_sob_id || ' p_ccid=&gt;' || p_ccid);&lt;br /&gt;    OPEN c_check;&lt;br /&gt;    FETCH c_check&lt;br /&gt;      INTO p_check;&lt;br /&gt; &lt;br /&gt;    IF c_check%NOTFOUND&lt;br /&gt;    THEN&lt;br /&gt;      CLOSE c_check;&lt;br /&gt;      debug_stmt('check_ccid() RETURNED FALSE;');&lt;br /&gt;      RETURN FALSE;&lt;br /&gt;    END IF;&lt;br /&gt; &lt;br /&gt;    CLOSE c_check;&lt;br /&gt;    debug_stmt('check_ccid() RETURNED TRUE;');&lt;br /&gt;    RETURN TRUE;&lt;br /&gt;    debug_end_procedure;&lt;br /&gt;  END check_ccid;&lt;br /&gt;&lt;br /&gt;  FUNCTION get_gl_application_id(p_appl_name IN VARCHAR2) RETURN INTEGER IS&lt;br /&gt;    CURSOR c_check IS&lt;br /&gt;      SELECT application_id&lt;br /&gt;      FROM fnd_application_vl&lt;br /&gt;      WHERE application_short_name = p_appl_name;&lt;br /&gt; &lt;br /&gt;    p_check c_check%ROWTYPE;&lt;br /&gt;  BEGIN&lt;br /&gt;    OPEN c_check;&lt;br /&gt;    FETCH c_check&lt;br /&gt;      INTO p_check;&lt;br /&gt;    CLOSE c_check;&lt;br /&gt;    RETURN p_check.application_id;&lt;br /&gt;  END get_gl_application_id;&lt;br /&gt;&lt;br /&gt;  FUNCTION check_conversion_type RETURN BOOLEAN IS&lt;br /&gt;    CURSOR c_check IS&lt;br /&gt;      SELECT 'x'&lt;br /&gt;      FROM gl_daily_conversion_types&lt;br /&gt;      WHERE user_conversion_type = g_conversion_type;&lt;br /&gt; &lt;br /&gt;    p_check c_check%ROWTYPE;&lt;br /&gt;  BEGIN&lt;br /&gt;    set_debug_context('check_conversion_type');&lt;br /&gt; &lt;br /&gt;    debug_stmt('g_conversion_type=&gt;' || g_conversion_type);&lt;br /&gt;    OPEN c_check;&lt;br /&gt;    FETCH c_check&lt;br /&gt;      INTO p_check;&lt;br /&gt; &lt;br /&gt;    IF c_check%NOTFOUND&lt;br /&gt;    THEN&lt;br /&gt;      CLOSE c_check;&lt;br /&gt;      debug_stmt('check_conversion_type() RETURNED FALSE;');&lt;br /&gt;      RETURN FALSE;&lt;br /&gt;    END IF;&lt;br /&gt; &lt;br /&gt;    CLOSE c_check;&lt;br /&gt;    debug_stmt('check_conversion_type() RETURNED TRUE;');&lt;br /&gt;    RETURN TRUE;&lt;br /&gt;  END check_conversion_type;&lt;br /&gt;&lt;br /&gt;  FUNCTION check_gl_source(p_gl_user_je_source_name IN VARCHAR2)&lt;br /&gt;    RETURN BOOLEAN IS&lt;br /&gt;    CURSOR c_check IS&lt;br /&gt;      SELECT 'x'&lt;br /&gt;      FROM gl_je_sources&lt;br /&gt;      WHERE user_je_source_name =&lt;br /&gt;            nvl(p_gl_user_je_source_name&lt;br /&gt;               ,g_gl_user_je_source_name);&lt;br /&gt; &lt;br /&gt;    p_check c_check%ROWTYPE;&lt;br /&gt;  BEGIN&lt;br /&gt;    set_debug_context('check_gl_source');&lt;br /&gt;    debug_stmt('g_gms_cost_xfer_source=&gt;' || g_gl_user_je_source_name);&lt;br /&gt;    OPEN c_check;&lt;br /&gt;    FETCH c_check&lt;br /&gt;      INTO p_check;&lt;br /&gt; &lt;br /&gt;    IF c_check%NOTFOUND&lt;br /&gt;    THEN&lt;br /&gt;      CLOSE c_check;&lt;br /&gt;      debug_stmt('check_gl_source() RETURNED FALSE;');&lt;br /&gt;      RETURN FALSE;&lt;br /&gt;    END IF;&lt;br /&gt; &lt;br /&gt;    CLOSE c_check;&lt;br /&gt;    debug_stmt('check_gl_source() RETURNED TRUE;');&lt;br /&gt;    RETURN TRUE;&lt;br /&gt;  END check_gl_source;&lt;br /&gt;&lt;br /&gt;  FUNCTION get_next_available_open_date(p_accounting_date IN DATE&lt;br /&gt;                                       ,p_gl_appl_id      IN NUMBER&lt;br /&gt;                                       ,p_sob_id          IN NUMBER)&lt;br /&gt;    RETURN DATE IS&lt;br /&gt;    CURSOR c_get IS&lt;br /&gt;      SELECT gps.start_date&lt;br /&gt;      FROM gl_period_statuses gps&lt;br /&gt;      WHERE gps.application_id = p_gl_appl_id&lt;br /&gt;      AND gps.set_of_books_id = p_sob_id&lt;br /&gt;      AND gps.closing_status IN ('O', 'F')&lt;br /&gt;      AND trunc(gps.start_date) &gt; p_accounting_date&lt;br /&gt;      ORDER BY trunc(gps.start_date);&lt;br /&gt;    p_get c_get%ROWTYPE;&lt;br /&gt;  BEGIN&lt;br /&gt;    OPEN c_get;&lt;br /&gt;    FETCH c_get&lt;br /&gt;      INTO p_get;&lt;br /&gt;    CLOSE c_get;&lt;br /&gt;    RETURN p_get.start_date;&lt;br /&gt;  END get_next_available_open_date;&lt;br /&gt;&lt;br /&gt;  FUNCTION validate_accounting_date(p_accounting_date IN OUT DATE&lt;br /&gt;                                   ,p_gl_appl_id      IN NUMBER&lt;br /&gt;                                   ,p_sob_id          IN NUMBER&lt;br /&gt;                                   ,p_batch_header_id IN NUMBER&lt;br /&gt;                                   ,p_trx_header_id   IN NUMBER)&lt;br /&gt;    RETURN BOOLEAN IS&lt;br /&gt;    v_count           NUMBER := 0;&lt;br /&gt;    v_accounting_date DATE;&lt;br /&gt;  BEGIN&lt;br /&gt;    set_debug_context('validate_accounting_date');&lt;br /&gt;    v_accounting_date := p_accounting_date;&lt;br /&gt;    debug_stmt('p_accounting_date=&gt;' || p_accounting_date ||&lt;br /&gt;               ' p_gl_appl_id=&gt;' || p_gl_appl_id || ' p_sob_id=&gt;' ||&lt;br /&gt;               p_sob_id);&lt;br /&gt;    SELECT COUNT(*)&lt;br /&gt;    INTO v_count&lt;br /&gt;    FROM gl_period_statuses gps&lt;br /&gt;    WHERE gps.application_id = p_gl_appl_id&lt;br /&gt;    AND gps.set_of_books_id = p_sob_id&lt;br /&gt;    AND gps.closing_status IN ('O', 'F')&lt;br /&gt;    AND trunc(p_accounting_date) BETWEEN&lt;br /&gt;          nvl(trunc(gps.start_date)&lt;br /&gt;          ,trunc(p_accounting_date)) AND&lt;br /&gt;          nvl(trunc(gps.end_date)&lt;br /&gt;             ,trunc(p_accounting_date));&lt;br /&gt; &lt;br /&gt;    IF v_count &gt; 0&lt;br /&gt;    THEN&lt;br /&gt;      debug_stmt('validate_accounting_date() RETURNED TRUE');&lt;br /&gt;      RETURN TRUE;&lt;br /&gt;    ELSE&lt;br /&gt;      debug_stmt('validate_accounting_date() Cant find open Period for ' ||&lt;br /&gt;                 p_accounting_date);&lt;br /&gt;      --try to find next available date now&lt;br /&gt;      p_accounting_date := get_next_available_open_date(p_accounting_date =&gt; v_accounting_date&lt;br /&gt;                                                       ,p_gl_appl_id      =&gt; p_gl_appl_id&lt;br /&gt;                                                       ,p_sob_id          =&gt; p_sob_id);&lt;br /&gt;      IF p_accounting_date IS NULL&lt;br /&gt;      THEN&lt;br /&gt;        log_error(p_batch_header_id =&gt; p_batch_header_id&lt;br /&gt;                 ,p_trx_header_id   =&gt; p_trx_header_id&lt;br /&gt;                 ,p_error_message   =&gt; 'Accounting Date ' ||&lt;br /&gt;                                       to_char(v_accounting_date&lt;br /&gt;                                              ,'DD-MON-YYYY') ||&lt;br /&gt;                                       ' does not belong to a Open Period');&lt;br /&gt;     &lt;br /&gt;        /* --!!!!!Abort the process here&lt;br /&gt;        raise_application_error(-20001&lt;br /&gt;        ,v_accounting_date ||&lt;br /&gt;        ' Can not find open/future period for this date. Batch Number ' ||&lt;br /&gt;        p_batch_header_id&lt;br /&gt;        ||&lt;br /&gt;        ' . There must be at least one future/open period for this process to run'&lt;br /&gt;        );&lt;br /&gt;        */&lt;br /&gt;        RETURN FALSE;&lt;br /&gt;      ELSE&lt;br /&gt;        debug_stmt('validate_accounting_date() Using next available open date ' ||&lt;br /&gt;                   p_accounting_date);&lt;br /&gt;        RETURN TRUE;&lt;br /&gt;      END IF;&lt;br /&gt;    END IF;&lt;br /&gt; &lt;br /&gt;  END validate_accounting_date;&lt;br /&gt;&lt;br /&gt;  -- Function to validate currency code&lt;br /&gt;  FUNCTION validate_currency(p_currency_code   IN VARCHAR2&lt;br /&gt;                            ,p_accounting_date IN DATE) RETURN BOOLEAN IS&lt;br /&gt;    v_count NUMBER := 0;&lt;br /&gt;  BEGIN&lt;br /&gt;    set_debug_context('validate_currency');&lt;br /&gt;    SELECT COUNT(*)&lt;br /&gt;    INTO v_count&lt;br /&gt;    FROM fnd_currencies fc&lt;br /&gt;    WHERE fc.currency_code = p_currency_code&lt;br /&gt;    AND enabled_flag = 'Y'&lt;br /&gt;    AND p_accounting_date BETWEEN&lt;br /&gt;          nvl(start_date_active&lt;br /&gt;          ,p_accounting_date) AND&lt;br /&gt;          nvl(end_date_active&lt;br /&gt;             ,p_accounting_date);&lt;br /&gt; &lt;br /&gt;    IF v_count &gt; 0&lt;br /&gt;    THEN&lt;br /&gt;      debug_stmt('validate_currency() RETURNED TRUE');&lt;br /&gt;      RETURN TRUE;&lt;br /&gt;    ELSE&lt;br /&gt;      debug_stmt('validate_currency() RETURNED FLASE');&lt;br /&gt;      RETURN FALSE;&lt;br /&gt;    END IF;&lt;br /&gt;  END validate_currency;&lt;br /&gt;&lt;br /&gt;  PROCEDURE set_conversion_type_code IS&lt;br /&gt;    CURSOR c_get IS&lt;br /&gt;      SELECT conversion_type&lt;br /&gt;      FROM gl_daily_conversion_types&lt;br /&gt;      WHERE user_conversion_type = g_conversion_type;&lt;br /&gt;  BEGIN&lt;br /&gt;    set_debug_context('set_conversion_type_code');&lt;br /&gt;    debug_stmt('g_conversion_type=&gt;' || g_conversion_type);&lt;br /&gt;    OPEN c_get;&lt;br /&gt;    FETCH c_get&lt;br /&gt;      INTO g_conversion_type_code;&lt;br /&gt;    CLOSE c_get;&lt;br /&gt;    debug_stmt('g_conversion_type_code=&gt;' || g_conversion_type_code);&lt;br /&gt;    debug_end_procedure;&lt;br /&gt;  END set_conversion_type_code;&lt;br /&gt;&lt;br /&gt;  FUNCTION get_batch_employee_number(p_batch_header_id IN INTEGER)&lt;br /&gt;    RETURN VARCHAR2 IS&lt;br /&gt;    CURSOR c_get IS&lt;br /&gt;      SELECT ppx.employee_number&lt;br /&gt;      FROM per_people_x ppx&lt;br /&gt;      --,"your own table here for the feed " bhdr&lt;br /&gt;      --WHERE ppx.person_id = bhdr.employee_id&lt;br /&gt;      ;&lt;br /&gt;    p_get c_get%ROWTYPE;&lt;br /&gt;  BEGIN&lt;br /&gt;    --change this function as per your need&lt;br /&gt;    --i am returning a constant value&lt;br /&gt;    RETURN '101010';&lt;br /&gt;    OPEN c_get;&lt;br /&gt;    FETCH c_get&lt;br /&gt;      INTO p_get;&lt;br /&gt;    CLOSE c_get;&lt;br /&gt;    RETURN p_get.employee_number;&lt;br /&gt;  END get_batch_employee_number;&lt;br /&gt;&lt;br /&gt;  FUNCTION get_gl_je_reference1(p_batch_header_id IN INTEGER&lt;br /&gt;                               ,p_trx_number      IN VARCHAR2)&lt;br /&gt;    RETURN VARCHAR2 IS&lt;br /&gt;  BEGIN&lt;br /&gt;    RETURN g_gl_batch_prefix || p_batch_header_id || '-' || p_trx_number || ':' || get_batch_employee_number(p_batch_header_id) || ':';&lt;br /&gt;  END get_gl_je_reference1;&lt;br /&gt;&lt;br /&gt;  FUNCTION get_sob_currency(p_sob_id IN INTEGER) RETURN VARCHAR2 IS&lt;br /&gt;    CURSOR c_check IS&lt;br /&gt;      SELECT currency_code&lt;br /&gt;      FROM gl_sets_of_books&lt;br /&gt;      WHERE set_of_books_id = p_sob_id;&lt;br /&gt; &lt;br /&gt;    p_check c_check%ROWTYPE;&lt;br /&gt;  BEGIN&lt;br /&gt;    OPEN c_check;&lt;br /&gt;    FETCH c_check&lt;br /&gt;      INTO p_check;&lt;br /&gt;    CLOSE c_check;&lt;br /&gt;    RETURN p_check.currency_code;&lt;br /&gt;  END get_sob_currency;&lt;br /&gt;&lt;br /&gt;  /**************************************************&lt;br /&gt;  Main code for gms_cost_xfer GL Interface begins here&lt;br /&gt;  **************************************************/&lt;br /&gt;  PROCEDURE transfer_to_gl(p_sob_id                   IN INTEGER&lt;br /&gt;                          ,p_batch_header_id          IN INTEGER&lt;br /&gt;                          ,p_trx_header_id            IN INTEGER&lt;br /&gt;                          ,p_trx_line_id              IN INTEGER&lt;br /&gt;                          ,p_date                     IN OUT DATE&lt;br /&gt;                          ,p_currency_code            IN VARCHAR2&lt;br /&gt;                          ,p_amount                   IN NUMBER&lt;br /&gt;                          ,p_dr_account               IN INTEGER&lt;br /&gt;                          ,p_cr_account               IN INTEGER&lt;br /&gt;                          ,p_journal_name             IN VARCHAR2&lt;br /&gt;                          ,p_header_description       IN VARCHAR2&lt;br /&gt;                          ,p_line_description         IN VARCHAR2&lt;br /&gt;                          ,p_success_flag             OUT BOOLEAN&lt;br /&gt;                          ,p_first_record_in_batch    IN VARCHAR2&lt;br /&gt;                          ,p_submit_gl_interface      IN VARCHAR2&lt;br /&gt;                          ,p_gl_user_je_source_name   IN VARCHAR2&lt;br /&gt;                          ,p_gl_user_je_category_name IN VARCHAR2&lt;br /&gt;                          ,p_trx_number               IN VARCHAR2) IS&lt;br /&gt;    v_gl_appl_id      NUMBER;&lt;br /&gt;    l_gl_int_type_rec g_gl_int_type_rec;&lt;br /&gt;    v_conc_id         INTEGER;&lt;br /&gt;    conversion_rate_does_not_exist EXCEPTION;&lt;br /&gt;    invalid_conversion_type EXCEPTION;&lt;br /&gt;    invalid_dr_ccid EXCEPTION;&lt;br /&gt;    invalid_cr_ccid EXCEPTION;&lt;br /&gt;    invalid_currency_code EXCEPTION;&lt;br /&gt;    not_in_open_period EXCEPTION;&lt;br /&gt;    invalid_gl_source EXCEPTION;&lt;br /&gt;    v_func_curr        VARCHAR2(30);&lt;br /&gt;    v_group_id         NUMBER;&lt;br /&gt;    v_interface_run_id NUMBER;&lt;br /&gt; &lt;br /&gt;    v_ret_val    BOOLEAN;&lt;br /&gt;    v_request_id INTEGER;&lt;br /&gt;    phase        VARCHAR2(100);&lt;br /&gt;    status       VARCHAR2(100);&lt;br /&gt;    dev_phase    VARCHAR2(100);&lt;br /&gt;    dev_status   VARCHAR2(100);&lt;br /&gt;    v_message    VARCHAR2(100);&lt;br /&gt;    v_bool       BOOLEAN;&lt;br /&gt;    v_old_status VARCHAR2(30);&lt;br /&gt; &lt;br /&gt;  BEGIN&lt;br /&gt;    set_debug_context('transfer_to_gl');&lt;br /&gt; &lt;br /&gt;    SAVEPOINT gms_cost_xfer_gl_int;&lt;br /&gt; &lt;br /&gt;    set_conversion_type_code;&lt;br /&gt; &lt;br /&gt;    /* Get the GL Application ID */&lt;br /&gt;    v_gl_appl_id := get_gl_application_id(p_appl_name =&gt; g_gl_appl_name);&lt;br /&gt; &lt;br /&gt;    IF p_first_record_in_batch = 'Y'&lt;br /&gt;    THEN&lt;br /&gt;      debug_stmt('p_first_record_in_batch is Y. Hence will reset global variables to initiate new batch');&lt;br /&gt;      new_gl_interface_batch;&lt;br /&gt;    ELSE&lt;br /&gt;      debug_stmt('Not being the first record, accumulating this line to existing batch.');&lt;br /&gt;    END IF;&lt;br /&gt;    /* May be GL team forgets to create source for gms_cost_xfer, lets see...*/&lt;br /&gt;    IF NOT check_gl_source(p_gl_user_je_source_name)&lt;br /&gt;    THEN&lt;br /&gt;      RAISE invalid_gl_source;&lt;br /&gt;    END IF;&lt;br /&gt; &lt;br /&gt;    /* During the design phase in Swiss Re the conversion type has already been changed once&lt;br /&gt;    Lets not take any chances and check is this is a valid conversion type */&lt;br /&gt;    IF NOT check_conversion_type&lt;br /&gt;    THEN&lt;br /&gt;      RAISE invalid_conversion_type;&lt;br /&gt;    END IF;&lt;br /&gt; &lt;br /&gt;    /* Lets validate the accounting date.&lt;br /&gt;    Although gms_cost_xfer almost always passes the current date.&lt;br /&gt;    But still this is a good to have validation. */&lt;br /&gt;    IF NOT validate_accounting_date(p_accounting_date =&gt; p_date&lt;br /&gt;                                   ,p_gl_appl_id      =&gt; v_gl_appl_id&lt;br /&gt;                                   ,p_sob_id          =&gt; p_sob_id&lt;br /&gt;                                   ,p_batch_header_id =&gt; p_batch_header_id&lt;br /&gt;                                   ,p_trx_header_id   =&gt; p_trx_header_id)&lt;br /&gt;    THEN&lt;br /&gt;      RAISE not_in_open_period;&lt;br /&gt;    END IF;&lt;br /&gt; &lt;br /&gt;    /* Lets validate the currency code.&lt;br /&gt;    Although gms_cost_xfer will certainly pass correct curr code*/&lt;br /&gt;    IF NOT validate_currency(p_accounting_date =&gt; p_date&lt;br /&gt;                            ,p_currency_code   =&gt; p_currency_code)&lt;br /&gt;    THEN&lt;br /&gt;      RAISE invalid_currency_code;&lt;br /&gt;    END IF;&lt;br /&gt; &lt;br /&gt;    v_func_curr := get_sob_currency(p_sob_id);&lt;br /&gt; &lt;br /&gt;    IF nvl(v_func_curr&lt;br /&gt;          ,'XX') != nvl(p_currency_code&lt;br /&gt;                       ,'XX')&lt;br /&gt;    THEN&lt;br /&gt;      IF 'N' =&lt;br /&gt;         gl_currency_api.rate_exists(x_from_currency   =&gt; p_currency_code&lt;br /&gt;                                    ,x_to_currency     =&gt; v_func_curr&lt;br /&gt;                                    ,x_conversion_date =&gt; p_date&lt;br /&gt;                                    ,x_conversion_type =&gt; g_conversion_type_code)&lt;br /&gt;      THEN&lt;br /&gt;        RAISE conversion_rate_does_not_exist;&lt;br /&gt;      ELSE&lt;br /&gt;        l_gl_int_type_rec.user_currency_conversion_type := g_conversion_type;&lt;br /&gt;        l_gl_int_type_rec.currency_conversion_date      := p_date;&lt;br /&gt;      END IF;&lt;br /&gt;    END IF;&lt;br /&gt; &lt;br /&gt;    set_sob_id(p_sob_id =&gt; p_sob_id);&lt;br /&gt;    set_source_name(p_source_name =&gt; nvl(p_gl_user_je_source_name&lt;br /&gt;                                        ,g_gl_user_je_source_name));&lt;br /&gt;    populate_interface_control(p_user_je_source_name =&gt; nvl(p_gl_user_je_source_name&lt;br /&gt;                                                           ,g_gl_user_je_source_name)&lt;br /&gt;                              ,p_group_id            =&gt; v_group_id&lt;br /&gt;                              ,p_set_of_books_id     =&gt; p_sob_id&lt;br /&gt;                              ,p_interface_run_id    =&gt; v_interface_run_id);&lt;br /&gt; &lt;br /&gt;    --batch name; part of the je batch name&lt;br /&gt;    l_gl_int_type_rec.reference1 := get_gl_je_reference1(p_batch_header_id =&gt; p_batch_header_id&lt;br /&gt;                                                        ,p_trx_number      =&gt; p_trx_number);&lt;br /&gt; &lt;br /&gt;    --je batch description&lt;br /&gt;    l_gl_int_type_rec.reference2 := p_batch_header_id || ': ' ||&lt;br /&gt;                                    p_header_description || '-' ||&lt;br /&gt;                                    p_trx_number;&lt;br /&gt; &lt;br /&gt;    --part of the je header name&lt;br /&gt;    l_gl_int_type_rec.reference4 := p_journal_name || '-' || p_trx_number;&lt;br /&gt; &lt;br /&gt;    --je header description will be the description of the gms_cost_xfer receipt&lt;br /&gt;    l_gl_int_type_rec.reference5 := p_batch_header_id || ': ' ||&lt;br /&gt;                                    nvl(p_header_description&lt;br /&gt;                                       ,p_journal_name) || '-' ||&lt;br /&gt;                                    p_trx_number;&lt;br /&gt;    --if the description is left blank, then use the Journal Name instead&lt;br /&gt; &lt;br /&gt;    --je lines description will be the description of the gms_cost_xfer receipt&lt;br /&gt;    l_gl_int_type_rec.reference10 := p_line_description;&lt;br /&gt; &lt;br /&gt;    l_gl_int_type_rec.reference_date        := p_date;&lt;br /&gt;    l_gl_int_type_rec.reference21           := p_header_description;&lt;br /&gt;    l_gl_int_type_rec.group_id              := v_group_id;&lt;br /&gt;    l_gl_int_type_rec.set_of_books_id       := p_sob_id;&lt;br /&gt;    l_gl_int_type_rec.user_je_source_name   := nvl(p_gl_user_je_source_name&lt;br /&gt;                                                  ,g_gl_user_je_source_name);&lt;br /&gt;    l_gl_int_type_rec.user_je_category_name := nvl(p_gl_user_je_category_name&lt;br /&gt;                                                  ,g_gl_user_je_category_name);&lt;br /&gt;    l_gl_int_type_rec.accounting_date       := p_date;&lt;br /&gt;    l_gl_int_type_rec.transaction_date      := p_date;&lt;br /&gt;    l_gl_int_type_rec.currency_code         := p_currency_code;&lt;br /&gt;    l_gl_int_type_rec.date_created          := p_date;&lt;br /&gt;    l_gl_int_type_rec.created_by            := fnd_global.user_id;&lt;br /&gt;    l_gl_int_type_rec.actual_flag           := 'A';&lt;br /&gt;    l_gl_int_type_rec.status                := 'S';&lt;br /&gt;    l_gl_int_type_rec.attribute1            := p_trx_header_id;&lt;br /&gt;    l_gl_int_type_rec.attribute2            := p_trx_line_id;&lt;br /&gt;    l_gl_int_type_rec.attribute3            := p_trx_number;&lt;br /&gt;    l_gl_int_type_rec.attribute4            := get_xx_transaction_source;&lt;br /&gt;    l_gl_int_type_rec.attribute5            := p_batch_header_id;&lt;br /&gt;    IF p_dr_account IS NOT NULL AND&lt;br /&gt;       (NOT check_ccid(p_sob_id =&gt; p_sob_id&lt;br /&gt;                      ,p_ccid   =&gt; p_dr_account))&lt;br /&gt;    THEN&lt;br /&gt;      RAISE invalid_dr_ccid;&lt;br /&gt;    END IF;&lt;br /&gt; &lt;br /&gt;    IF p_cr_account IS NOT NULL AND&lt;br /&gt;       (NOT check_ccid(p_sob_id =&gt; p_sob_id&lt;br /&gt;                      ,p_ccid   =&gt; p_cr_account))&lt;br /&gt;    THEN&lt;br /&gt;      RAISE invalid_cr_ccid;&lt;br /&gt;    END IF;&lt;br /&gt; &lt;br /&gt;    /* First the gms_cost_xfer Debit Line */&lt;br /&gt;    l_gl_int_type_rec.entered_dr          := p_amount;&lt;br /&gt;    l_gl_int_type_rec.entered_cr          := NULL;&lt;br /&gt;    l_gl_int_type_rec.code_combination_id := p_dr_account;&lt;br /&gt;    debug_stmt('p_dr_account ' || l_gl_int_type_rec.code_combination_id);&lt;br /&gt; &lt;br /&gt;    IF p_dr_account IS NOT NULL&lt;br /&gt;    THEN&lt;br /&gt;      insert_statement(p_gl_int_rec =&gt; l_gl_int_type_rec);&lt;br /&gt;    END IF;&lt;br /&gt;    l_gl_int_type_rec.entered_dr          := NULL;&lt;br /&gt;    l_gl_int_type_rec.entered_cr          := p_amount;&lt;br /&gt;    l_gl_int_type_rec.code_combination_id := p_cr_account;&lt;br /&gt;    IF p_cr_account IS NOT NULL&lt;br /&gt;    THEN&lt;br /&gt;      insert_statement(p_gl_int_rec =&gt; l_gl_int_type_rec);&lt;br /&gt;      debug_stmt('p_cr_account ' || l_gl_int_type_rec.code_combination_id);&lt;br /&gt;    END IF;&lt;br /&gt; &lt;br /&gt;    IF p_submit_gl_interface = 'Y'&lt;br /&gt;    THEN&lt;br /&gt;      debug_stmt('p_submit_gl_interface=&gt;' || p_submit_gl_interface);&lt;br /&gt;      /* After inset, submit the request*/&lt;br /&gt;      COMMIT;&lt;br /&gt;      v_conc_id := fnd_request.submit_request(application =&gt; 'SQLGL'&lt;br /&gt;                                             ,program     =&gt; 'GLLEZL'&lt;br /&gt;                                             ,description =&gt; NULL&lt;br /&gt;                                             ,start_time  =&gt; SYSDATE&lt;br /&gt;                                             ,sub_request =&gt; FALSE&lt;br /&gt;                                             ,argument1   =&gt; v_interface_run_id&lt;br /&gt;                                             ,argument2   =&gt; p_sob_id&lt;br /&gt;                                             ,argument3   =&gt; 'N'&lt;br /&gt;                                             ,argument4   =&gt; NULL&lt;br /&gt;                                             ,argument5   =&gt; NULL&lt;br /&gt;                                             ,argument6   =&gt; 'N'&lt;br /&gt;                                             ,argument7   =&gt; 'W');&lt;br /&gt;   &lt;br /&gt;      SELECT status_code&lt;br /&gt;      INTO v_old_status&lt;br /&gt;      FROM fnd_concurrent_requests&lt;br /&gt;      WHERE request_id = fnd_global.conc_request_id;&lt;br /&gt;   &lt;br /&gt;      UPDATE fnd_concurrent_requests&lt;br /&gt;      SET status_code = 'W'&lt;br /&gt;      WHERE request_id = fnd_global.conc_request_id;&lt;br /&gt;   &lt;br /&gt;      COMMIT;&lt;br /&gt;      v_bool := fnd_concurrent.wait_for_request(v_conc_id&lt;br /&gt;                                               ,5&lt;br /&gt;                                               ,1000&lt;br /&gt;                                               ,phase&lt;br /&gt;                                               ,status&lt;br /&gt;                                               ,dev_phase&lt;br /&gt;                                               ,dev_status&lt;br /&gt;                                               ,v_message);&lt;br /&gt;      UPDATE fnd_concurrent_requests&lt;br /&gt;      SET status_code = v_old_status&lt;br /&gt;      WHERE request_id = fnd_global.conc_request_id;&lt;br /&gt;      COMMIT;&lt;br /&gt;   &lt;br /&gt;      debug_stmt('Request id is ' || v_conc_id);&lt;br /&gt;   &lt;br /&gt;      IF (v_conc_id = 0)&lt;br /&gt;      THEN&lt;br /&gt;        /* If request not submitted, return false */&lt;br /&gt;        ROLLBACK TO gms_cost_xfer_gl_int;&lt;br /&gt;        p_success_flag := FALSE;&lt;br /&gt;        debug_stmt(' Returning false as request could not be submitted');&lt;br /&gt;        RETURN;&lt;br /&gt;      END IF;&lt;br /&gt;    END IF;&lt;br /&gt;    p_success_flag := TRUE;&lt;br /&gt;  EXCEPTION&lt;br /&gt;    WHEN conversion_rate_does_not_exist THEN&lt;br /&gt;      ROLLBACK TO gms_cost_xfer_gl_int;&lt;br /&gt;      p_success_flag := FALSE;&lt;br /&gt;      fnd_message.set_name('XTR'&lt;br /&gt;                          ,'XTR_2207');&lt;br /&gt;      fnd_message.set_token('CURR1'&lt;br /&gt;                           ,v_func_curr);&lt;br /&gt;      fnd_message.set_token('CURR2'&lt;br /&gt;                           ,p_currency_code);&lt;br /&gt;      fnd_message.set_token('XCHG_DATE'&lt;br /&gt;                           ,to_char(p_date));&lt;br /&gt;      fnd_message.set_token('C_TYPE'&lt;br /&gt;                           ,g_conversion_type);&lt;br /&gt;    WHEN invalid_currency_code THEN&lt;br /&gt;      ROLLBACK TO gms_cost_xfer_gl_int;&lt;br /&gt;      p_success_flag := FALSE;&lt;br /&gt;      fnd_message.set_name('SQLGL'&lt;br /&gt;                          ,'R_PPOS0026');&lt;br /&gt;    WHEN invalid_gl_source THEN&lt;br /&gt;      ROLLBACK TO gms_cost_xfer_gl_int;&lt;br /&gt;      p_success_flag := FALSE;&lt;br /&gt;      fnd_message.set_name('SQLGL'&lt;br /&gt;                          ,'SHRD0152');&lt;br /&gt;    WHEN invalid_conversion_type THEN&lt;br /&gt;      ROLLBACK TO gms_cost_xfer_gl_int;&lt;br /&gt;      p_success_flag := FALSE;&lt;br /&gt;      fnd_message.set_name('SQLGL'&lt;br /&gt;                          ,'GL_JE_INVALID_CONVERSION_TYPE');&lt;br /&gt;    WHEN not_in_open_period THEN&lt;br /&gt;      ROLLBACK TO gms_cost_xfer_gl_int;&lt;br /&gt;      p_success_flag := FALSE;&lt;br /&gt;      fnd_message.set_name('SQLGL'&lt;br /&gt;                          ,'GL_JE_NOT_OPEN_OR_FUTURE_ENT');&lt;br /&gt;    WHEN invalid_cr_ccid THEN&lt;br /&gt;      ROLLBACK TO gms_cost_xfer_gl_int;&lt;br /&gt;      p_success_flag := FALSE;&lt;br /&gt;      fnd_message.set_name('AR'&lt;br /&gt;                          ,'AR_AAPI_INVALID_CCID');&lt;br /&gt;      fnd_message.set_token('CCID'&lt;br /&gt;                           ,p_cr_account);&lt;br /&gt;    WHEN invalid_dr_ccid THEN&lt;br /&gt;      ROLLBACK TO gms_cost_xfer_gl_int;&lt;br /&gt;      p_success_flag := FALSE;&lt;br /&gt;      fnd_message.set_name('AR'&lt;br /&gt;                          ,'AR_AAPI_INVALID_CCID');&lt;br /&gt;      fnd_message.set_token('CCID'&lt;br /&gt;                           ,p_dr_account);&lt;br /&gt;    WHEN OTHERS THEN&lt;br /&gt;      ROLLBACK TO gms_cost_xfer_gl_int;&lt;br /&gt;      p_success_flag := FALSE;&lt;br /&gt;      fnd_message.set_name('FND'&lt;br /&gt;                          ,'FS-UNKNOWN');&lt;br /&gt;      fnd_message.set_token('ERROR'&lt;br /&gt;                           ,SQLERRM);&lt;br /&gt;  END transfer_to_gl;&lt;br /&gt;&lt;br /&gt;END xx_import_xfer_gl_iface_api;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34646129-115873189425353430?l=scripts4oracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scripts4oracle.blogspot.com/feeds/115873189425353430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34646129&amp;postID=115873189425353430' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/115873189425353430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/115873189425353430'/><link rel='alternate' type='text/html' href='http://scripts4oracle.blogspot.com/2006/09/oracle-api-for-gl-interface-package_19.html' title=''/><author><name>Anil Passi</name><uri>http://www.blogger.com/profile/14859722075898946765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34646129.post-115873183812384081</id><published>2006-09-19T22:56:00.000-07:00</published><updated>2006-09-30T08:42:45.706-07:00</updated><title type='text'></title><content type='html'>&lt;h3&gt;Oracle API for GL Interface Package Header&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE PACKAGE xx_import_xfer_gl_iface_api&lt;br /&gt;/* $Header: XXXXXXXX.pkh, Version 1.0, 07-FEB-2002 UKEXPI $&lt;br /&gt;***********************************************************************&lt;br /&gt;* *&lt;br /&gt;* History Log *&lt;br /&gt;* *&lt;br /&gt;***********************************************************************&lt;br /&gt;* *&lt;br /&gt;* App/Release : Oracle e-Business Suite RXXX *&lt;br /&gt;* Oracle App : SHORTNAME - FULL_NAME *&lt;br /&gt;* Module : SHORTNAME - DESCRIPTION *&lt;br /&gt;* Author : Anil Passi(Go 4 Gold) *&lt;br /&gt;* Version : 1.0 *&lt;br /&gt;* Created : 11-OCT-2002 *&lt;br /&gt;* Description : This package gives API for GL interface calls *&lt;br /&gt;* *&lt;br /&gt;* Change History Log *&lt;br /&gt;* ================== *&lt;br /&gt;* *&lt;br /&gt;* Version Date Author Change *&lt;br /&gt;* ======= =========== ============ ================================*&lt;br /&gt;* *&lt;br /&gt;* 1.0 11-OCT-2002 A. Passi Initial Version *&lt;br /&gt;* *&lt;br /&gt;* Parameters : *&lt;br /&gt;* *&lt;br /&gt;**********************************************************************/&lt;br /&gt;AUTHID CURRENT_USER IS&lt;br /&gt; PROCEDURE set_sob_id(p_sob_id IN INTEGER);&lt;br /&gt;&lt;br /&gt; PROCEDURE set_source_name(p_source_name IN VARCHAR2);&lt;br /&gt;&lt;br /&gt; PROCEDURE populate_interface_control(p_user_je_source_name IN VARCHAR2&lt;br /&gt;                                     ,p_group_id            IN OUT NUMBER&lt;br /&gt;                                     ,p_set_of_books_id     NUMBER&lt;br /&gt;                                     ,p_interface_run_id    IN OUT NUMBER);&lt;br /&gt;&lt;br /&gt; TYPE g_gl_int_type_rec IS RECORD(&lt;br /&gt;    reference_date                DATE&lt;br /&gt;   ,attribute20                   VARCHAR2(150)&lt;br /&gt;   ,CONTEXT                       VARCHAR2(150)&lt;br /&gt;   ,context2                      VARCHAR2(150)&lt;br /&gt;   ,invoice_date                  DATE&lt;br /&gt;   ,tax_code                      VARCHAR2(15)&lt;br /&gt;   ,invoice_identifier            VARCHAR2(20)&lt;br /&gt;   ,invoice_amount                NUMBER&lt;br /&gt;   ,context3                      VARCHAR2(150)&lt;br /&gt;   ,ussgl_transaction_code        VARCHAR2(30)&lt;br /&gt;   ,descr_flex_error_message      VARCHAR2(240)&lt;br /&gt;   ,jgzz_recon_ref                VARCHAR2(240)&lt;br /&gt;   ,segment23                     VARCHAR2(25)&lt;br /&gt;   ,segment24                     VARCHAR2(25)&lt;br /&gt;   ,segment25                     VARCHAR2(25)&lt;br /&gt;   ,segment26                     VARCHAR2(25)&lt;br /&gt;   ,segment27                     VARCHAR2(25)&lt;br /&gt;   ,segment28                     VARCHAR2(25)&lt;br /&gt;   ,segment29                     VARCHAR2(25)&lt;br /&gt;   ,segment30                     VARCHAR2(25)&lt;br /&gt;   ,entered_dr                    NUMBER&lt;br /&gt;   ,entered_cr                    NUMBER&lt;br /&gt;   ,accounted_dr                  NUMBER&lt;br /&gt;   ,accounted_cr                  NUMBER&lt;br /&gt;   ,transaction_date              DATE&lt;br /&gt;   ,reference1                    VARCHAR2(100)&lt;br /&gt;   ,reference2                    VARCHAR2(240)&lt;br /&gt;   ,reference3                    VARCHAR2(100)&lt;br /&gt;   ,reference4                    VARCHAR2(100)&lt;br /&gt;   ,reference5                    VARCHAR2(240)&lt;br /&gt;   ,reference6                    VARCHAR2(100)&lt;br /&gt;   ,reference7                    VARCHAR2(100)&lt;br /&gt;   ,reference8                    VARCHAR2(100)&lt;br /&gt;   ,reference9                    VARCHAR2(100)&lt;br /&gt;   ,reference10                   VARCHAR2(240)&lt;br /&gt;   ,reference11                   VARCHAR2(100)&lt;br /&gt;   ,reference12                   VARCHAR2(100)&lt;br /&gt;   ,reference13                   VARCHAR2(100)&lt;br /&gt;   ,reference14                   VARCHAR2(100)&lt;br /&gt;   ,reference15                   VARCHAR2(100)&lt;br /&gt;   ,reference16                   VARCHAR2(100)&lt;br /&gt;   ,reference17                   VARCHAR2(100)&lt;br /&gt;   ,reference18                   VARCHAR2(100)&lt;br /&gt;   ,reference19                   VARCHAR2(100)&lt;br /&gt;   ,reference20                   VARCHAR2(100)&lt;br /&gt;   ,reference21                   VARCHAR2(240)&lt;br /&gt;   ,reference22                   VARCHAR2(240)&lt;br /&gt;   ,reference23                   VARCHAR2(240)&lt;br /&gt;   ,reference24                   VARCHAR2(240)&lt;br /&gt;   ,reference25                   VARCHAR2(240)&lt;br /&gt;   ,reference26                   VARCHAR2(240)&lt;br /&gt;   ,reference27                   VARCHAR2(240)&lt;br /&gt;   ,reference28                   VARCHAR2(240)&lt;br /&gt;   ,reference29                   VARCHAR2(240)&lt;br /&gt;   ,reference30                   VARCHAR2(240)&lt;br /&gt;   ,je_batch_id                   NUMBER&lt;br /&gt;   ,period_name                   VARCHAR2(15)&lt;br /&gt;   ,je_header_id                  NUMBER&lt;br /&gt;   ,je_line_num                   NUMBER&lt;br /&gt;   ,chart_of_accounts_id          NUMBER&lt;br /&gt;   ,functional_currency_code      VARCHAR2(15)&lt;br /&gt;   ,code_combination_id           NUMBER&lt;br /&gt;   ,date_created_in_gl            DATE&lt;br /&gt;   ,warning_code                  VARCHAR2(4)&lt;br /&gt;   ,status_description            VARCHAR2(240)&lt;br /&gt;   ,stat_amount                   NUMBER&lt;br /&gt;   ,group_id                      NUMBER&lt;br /&gt;   ,request_id                    NUMBER&lt;br /&gt;   ,subledger_doc_sequence_id     NUMBER&lt;br /&gt;   ,subledger_doc_sequence_value  NUMBER&lt;br /&gt;   ,attribute1                    VARCHAR2(150)&lt;br /&gt;   ,attribute2                    VARCHAR2(150)&lt;br /&gt;   ,gl_sl_link_id                 NUMBER&lt;br /&gt;   ,gl_sl_link_table              VARCHAR2(30)&lt;br /&gt;   ,attribute3                    VARCHAR2(150)&lt;br /&gt;   ,attribute4                    VARCHAR2(150)&lt;br /&gt;   ,attribute5                    VARCHAR2(150)&lt;br /&gt;   ,attribute6                    VARCHAR2(150)&lt;br /&gt;   ,attribute7                    VARCHAR2(150)&lt;br /&gt;   ,attribute8                    VARCHAR2(150)&lt;br /&gt;   ,attribute9                    VARCHAR2(150)&lt;br /&gt;   ,attribute10                   VARCHAR2(150)&lt;br /&gt;   ,attribute11                   VARCHAR2(150)&lt;br /&gt;   ,attribute12                   VARCHAR2(150)&lt;br /&gt;   ,attribute13                   VARCHAR2(150)&lt;br /&gt;   ,attribute14                   VARCHAR2(150)&lt;br /&gt;   ,attribute15                   VARCHAR2(150)&lt;br /&gt;   ,attribute16                   VARCHAR2(150)&lt;br /&gt;   ,attribute17                   VARCHAR2(150)&lt;br /&gt;   ,attribute18                   VARCHAR2(150)&lt;br /&gt;   ,attribute19                   VARCHAR2(150)&lt;br /&gt;   ,status                        VARCHAR2(50)&lt;br /&gt;   ,set_of_books_id               NUMBER&lt;br /&gt;   ,accounting_date               DATE&lt;br /&gt;   ,currency_code                 VARCHAR2(15)&lt;br /&gt;   ,date_created                  DATE&lt;br /&gt;   ,created_by                    NUMBER&lt;br /&gt;   ,actual_flag                   VARCHAR2(1)&lt;br /&gt;   ,user_je_category_name         VARCHAR2(25)&lt;br /&gt;   ,user_je_source_name           VARCHAR2(25)&lt;br /&gt;   ,currency_conversion_date      DATE&lt;br /&gt;   ,encumbrance_type_id           NUMBER&lt;br /&gt;   ,budget_version_id             NUMBER&lt;br /&gt;   ,user_currency_conversion_type VARCHAR2(30)&lt;br /&gt;   ,currency_conversion_rate      NUMBER&lt;br /&gt;   ,average_journal_flag          VARCHAR2(1)&lt;br /&gt;   ,originating_bal_seg_value     VARCHAR2(25)&lt;br /&gt;   ,segment1                      VARCHAR2(25)&lt;br /&gt;   ,segment2                      VARCHAR2(25)&lt;br /&gt;   ,segment3                      VARCHAR2(25)&lt;br /&gt;   ,segment4                      VARCHAR2(25)&lt;br /&gt;   ,segment5                      VARCHAR2(25)&lt;br /&gt;   ,segment6                      VARCHAR2(25)&lt;br /&gt;   ,segment7                      VARCHAR2(25)&lt;br /&gt;   ,segment8                      VARCHAR2(25)&lt;br /&gt;   ,segment9                      VARCHAR2(25)&lt;br /&gt;   ,segment10                     VARCHAR2(25)&lt;br /&gt;   ,segment11                     VARCHAR2(25)&lt;br /&gt;   ,segment12                     VARCHAR2(25)&lt;br /&gt;   ,segment13                     VARCHAR2(25)&lt;br /&gt;   ,segment14                     VARCHAR2(25)&lt;br /&gt;   ,segment15                     VARCHAR2(25)&lt;br /&gt;   ,segment16                     VARCHAR2(25)&lt;br /&gt;   ,segment17                     VARCHAR2(25)&lt;br /&gt;   ,segment18                     VARCHAR2(25)&lt;br /&gt;   ,segment19                     VARCHAR2(25)&lt;br /&gt;   ,segment20                     VARCHAR2(25)&lt;br /&gt;   ,segment21                     VARCHAR2(25)&lt;br /&gt;   ,segment22                     VARCHAR2(25));&lt;br /&gt;&lt;br /&gt; PROCEDURE insert_statement(p_gl_int_rec IN OUT NOCOPY g_gl_int_type_rec);&lt;br /&gt;&lt;br /&gt; PROCEDURE transfer_to_gl(p_sob_id                   IN INTEGER&lt;br /&gt;                         ,p_batch_header_id          IN INTEGER&lt;br /&gt;                         ,p_trx_header_id            IN INTEGER&lt;br /&gt;                         ,p_trx_line_id              IN INTEGER&lt;br /&gt;                         ,p_date                     IN OUT DATE&lt;br /&gt;                         ,p_currency_code            IN VARCHAR2&lt;br /&gt;                         ,p_amount                   IN NUMBER&lt;br /&gt;                         ,p_dr_account               IN INTEGER&lt;br /&gt;                         ,p_cr_account               IN INTEGER&lt;br /&gt;                         ,p_journal_name             IN VARCHAR2&lt;br /&gt;                         ,p_header_description       IN VARCHAR2&lt;br /&gt;                         ,p_line_description         IN VARCHAR2&lt;br /&gt;                         ,p_success_flag             OUT BOOLEAN&lt;br /&gt;                         ,p_first_record_in_batch    IN VARCHAR2&lt;br /&gt;                         ,p_submit_gl_interface      IN VARCHAR2&lt;br /&gt;                         ,p_gl_user_je_source_name   IN VARCHAR2&lt;br /&gt;                         ,p_gl_user_je_category_name IN VARCHAR2&lt;br /&gt;                         ,p_trx_number               IN VARCHAR2);&lt;br /&gt; PROCEDURE new_gl_interface_batch;&lt;br /&gt;&lt;br /&gt; FUNCTION get_gl_je_reference1(p_batch_header_id IN INTEGER&lt;br /&gt;                              ,p_trx_number      IN VARCHAR2)&lt;br /&gt;   RETURN VARCHAR2;&lt;br /&gt;&lt;br /&gt; FUNCTION get_gl_application_id(p_appl_name IN VARCHAR2) RETURN INTEGER;&lt;br /&gt;&lt;br /&gt;END xx_import_xfer_gl_iface_api;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34646129-115873183812384081?l=scripts4oracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scripts4oracle.blogspot.com/feeds/115873183812384081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34646129&amp;postID=115873183812384081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/115873183812384081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34646129/posts/default/115873183812384081'/><link rel='alternate' type='text/html' href='http://scripts4oracle.blogspot.com/2006/09/oracle-api-for-gl-interface-package.html' title=''/><author><name>Anil Passi</name><uri>http://www.blogger.com/profile/14859722075898946765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
