CREATE OR REPLACE PACKAGE BODY ap_khr_inv_pkg
IS
PROCEDURE ap_khr_inv_main (v_errbuff OUT VARCHAR2, v_retcode OUT NUMBER)
IS
CURSOR c1
IS
SELECT kihs.*, kihs.ROWID rid
FROM
khr_inv_hdr_stg kihs
WHERE process_flag = 'N';
CURSOR c2 (p_inv_num VARCHAR2)
IS
SELECT kils.*, kils.ROWID rid
FROM
khr_inv_line_stg kils
WHERE process_flag = 'N' AND invoice_num = p_inv_num;
CURSOR c3
IS
SELECT kihs.*, kihs.ROWID rid
FROM
khr_inv_hdr_stg kihs
WHERE process_flag = 'V';
CURSOR c4 (p_inv_num VARCHAR2)
IS
SELECT kils.*, kils.ROWID rid
FROM
khr_inv_line_stg kils
WHERE process_flag = 'V' AND invoice_num = p_inv_num;
v_process_flag VARCHAR2 (10) :=
'N';
v_error_message VARCHAR2 (1000);
v_org_id NUMBER;
v_vendor_id NUMBER;
v_vendor_site_id NUMBER;
v_term_id NUMBER;
v_inv_curr_code VARCHAR2 (20);
v_pay_curr_code VARCHAR2 (30);
v_lookup_code VARCHAR2 (30);
u_lookup_code VARCHAR2 (50);
t_lookup_code VARCHAR2 (50);
CONSTANT VARCHAR2 (100);
v_application_id NUMBER;
u_org_id NUMBER;
v_code_comb_id NUMBER;
u_line_type VARCHAR2 (50);
v_count_hdr_valid_record NUMBER;
v_count_line_valid_record NUMBER;
v_rec_pros_hdr_count NUMBER;
v_rec_prss_line_count NUMBER;
v_count_hdr_errors NUMBER;
v_count_hdr_insert NUMBER;
v_count_line_insert NUMBER;
v_count_line_errors NUMBER;
v_reject_rcd NUMBER;
v_line_rej_rd NUMBER;
v_requist_id NUMBER;
v_conc_prgm_id NUMBER;
v_conc_req_id NUMBER;
v_user_id NUMBER;
v_resp_id NUMBER;
v_resp_appl_id NUMBER;
v_boolean BOOLEAN;
v_phase VARCHAR2 (40);
v_status VARCHAR2 (40);
v_dev_phase VARCHAR2 (40);
v_dev_status VARCHAR2 (40);
v_message VARCHAR2 (40);
v_inv_count NUMBER;
BEGIN
v_conc_prgm_id := fnd_global.conc_program_id;
v_conc_req_id := fnd_global.conc_request_id;
v_user_id := fnd_global.user_id;
v_resp_id := fnd_global.resp_id;
v_resp_appl_id := fnd_global.resp_appl_id;
fnd_global.apps_initialize (v_user_id, v_resp_id, v_resp_appl_id);
mo_global.init ('SQLAP');
fnd_file.put_line (fnd_file.LOG, 'ENTER INTO BEGIN BLOCK');
FOR
i IN c1
LOOP
v_process_flag := 'N';
v_rec_pros_hdr_count := c1%ROWCOUNT;
fnd_file.put_line (fnd_file.LOG, 'ENTER INTO BEGIN LOOP');
SELECT COUNT (*)
INTO
v_inv_count
FROM
ap_invoices_all aia,
ap_suppliers ass,
ap_supplier_sites_all assa
WHERE aia.invoice_num = i.invoice_num
AND
ass.vendor_id = assa.vendor_id
AND
assa.vendor_site_id = aia.vendor_site_id
AND
ass.vendor_id = aia.vendor_id;
IF
v_inv_count = 0
THEN
-----VALIDATIONS START-----
-----OPERATING UNTIT VALIDATION------
BEGIN
SELECT organization_id
INTO v_org_id
FROM hr_operating_units
WHERE NAME = i.operating_unit;
fnd_file.put_line
(fnd_file.LOG, 'ORG_ID:' || v_org_id);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fnd_file.put_line (fnd_file.LOG, 'ORG_ID not found');
v_process_flag := 'E';
v_error_message := 'ORGID not found';
WHEN TOO_MANY_ROWS
THEN
fnd_file.put_line (fnd_file.LOG,
'too may rows in OPERATING
UNIT..'
);
v_process_flag := 'E';
v_error_message := 'to many values to ORG ID';
WHEN OTHERS
THEN
fnd_file.put_line
(fnd_file.LOG,
'other exceptions in OPERATING
UNIT validation'
);
v_process_flag := 'E';
v_error_message :=
'in other exception of
OPERATING UNIT valiation';
END;
-----------------END OPERATING UNIT
VALIDATIONS-------------
-----VENDOR NAME VALIDATION------
BEGIN
SELECT vendor_id
INTO v_vendor_id
FROM ap_suppliers
WHERE vendor_name =
i.vendor_name;
fnd_file.put_line
(fnd_file.LOG, 'VENDOR ID:' || v_vendor_id);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fnd_file.put_line (fnd_file.LOG, 'VENDOR NAME not found');
v_process_flag := 'E';
v_error_message := 'VENDOR NAME not found';
WHEN TOO_MANY_ROWS
THEN
fnd_file.put_line (fnd_file.LOG,
'too may rows in VENDOR NAME..'
);
v_process_flag := 'E';
v_error_message := 'to many values to VENDOR NAME';
WHEN OTHERS
THEN
fnd_file.put_line
(fnd_file.LOG,
'other exceptions in VENDOR
NAME validation'
);
v_process_flag := 'E';
v_error_message :=
'in other exception of VENDOR
NAME valiation';
END;
-----------------END VENDOR NAME
VALIDATIONS-------------
-----VENDOR SITE VALIDATION------
BEGIN
SELECT vendor_site_id
INTO v_vendor_site_id
FROM ap_supplier_sites_all
WHERE vendor_site_code =
i.vendor_site_code
AND vendor_id = v_vendor_id
AND org_id = v_org_id;
fnd_file.put_line
(fnd_file.LOG,
'VENDOR SITE ID :' || v_vendor_site_id
);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fnd_file.put_line (fnd_file.LOG, 'VENDOR SITE not found');
v_process_flag := 'E';
v_error_message := 'VENDOR SITE not found';
WHEN TOO_MANY_ROWS
THEN
fnd_file.put_line (fnd_file.LOG,
'too may rows in VENDOR SITE..'
);
v_process_flag := 'E';
v_error_message := 'to many values to VENDOR SITE';
WHEN OTHERS
THEN
fnd_file.put_line
(fnd_file.LOG,
'other exceptions in VENDOR
SITE validation'
);
v_process_flag := 'E';
v_error_message :=
'in other exception of VENDOR
SITE valiation';
END;
---------END VENDOR SITE VALIDATIONS------
-----TERM NAME
VALIDATION------
BEGIN
SELECT term_id
INTO v_term_id
FROM ap_terms_tl
WHERE NAME = i.terms_name;
fnd_file.put_line
(fnd_file.LOG, 'TERM ID :' || v_term_id);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fnd_file.put_line (fnd_file.LOG, 'TERM NAME not foUnd');
v_process_flag := 'E';
v_error_message := 'TERM NAME not found';
WHEN TOO_MANY_ROWS
THEN
fnd_file.put_line (fnd_file.LOG,
'too may rows in TERM NAME..'
);
v_process_flag := 'E';
v_error_message := 'to many values to TERM NAME';
WHEN OTHERS
THEN
fnd_file.put_line
(fnd_file.LOG,
'other exceptions in TERM NAME
validation'
);
v_process_flag := 'E';
v_error_message :=
'in other exception of TERM
NAME valiation';
END;
---------END TERM NAME VALIDATIONS------
-----INVOICE CURRENCY CODE VALIDATION------
BEGIN
SELECT currency_code
INTO v_inv_curr_code
FROM fnd_currencies
WHERE currency_code =
i.invoice_currency_code;
fnd_file.put_line
(fnd_file.LOG,
'CURRENCY CODE :' || v_inv_curr_code
);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fnd_file.put_line (fnd_file.LOG,
'CURRENCY CODE not foUnd');
v_process_flag := 'E';
v_error_message := 'CURRENCY CODE not found';
WHEN TOO_MANY_ROWS
THEN
fnd_file.put_line (fnd_file.LOG,
'too may rows in CURRENCY
CODE..'
);
v_process_flag := 'E';
v_error_message := 'to many values to CURRENCY
CODE';
WHEN OTHERS
THEN
fnd_file.put_line
(fnd_file.LOG,
'other exceptions in CURRENCY
CODE validation'
);
v_process_flag := 'E';
v_error_message :=
'in other exception of CURRENCY
CODE valiation';
END;
---------END INVOICE CURRENCY CODE VALIDATIONS-----
-----PAYMENT CURRENCY CODE VALIDATION------
BEGIN
SELECT currency_code
INTO v_pay_curr_code
FROM fnd_currencies
WHERE currency_code =
i.payment_currency_code;
fnd_file.put_line
(fnd_file.LOG,
'PAY CURRENCY CODE :' || v_pay_curr_code
);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fnd_file.put_line (fnd_file.LOG,
'CURRENCY CODE not foUnd');
v_process_flag := 'E';
v_error_message := 'CURRENCY CODE not found';
WHEN TOO_MANY_ROWS
THEN
fnd_file.put_line (fnd_file.LOG,
'too may rows in PAYCURRENCY
CODE..'
);
v_process_flag := 'E';
v_error_message := 'to many values to PAY CURRENCY
CODE';
WHEN OTHERS
THEN
fnd_file.put_line
(fnd_file.LOG,
'other exceptions in PAY
CURRENCY CODE validation'
);
v_process_flag := 'E';
v_error_message :=
'in other exception of PAY
CURRENCY CODE valiation';
END;
---------END PAYMENT CURRENCY
CODE VALIDATIONS----
-----INVOICE TYPE
VALIDATION------
BEGIN
SELECT application_id
INTO v_application_id
FROM fnd_application
WHERE application_short_name = 'SQLAP';
SELECT lookup_code
INTO v_lookup_code
FROM fnd_lookup_values
WHERE lookup_type =
'INVOICE TYPE'
AND view_application_id = v_application_id
AND lookup_code = i.invoice_type_lookup_code;
fnd_file.put_line
(fnd_file.LOG,
'LOOKUP CODE :' || v_lookup_code
);
fnd_file.put_line
(fnd_file.LOG,
'APPLICATION ID :' || v_application_id
);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fnd_file.put_line (fnd_file.LOG, 'LOOKUP CODE not foUnd');
v_process_flag := 'E';
v_error_message := 'LOOKUP CODE not found';
WHEN TOO_MANY_ROWS
THEN
fnd_file.put_line (fnd_file.LOG,
'too may rows in LOOKUP CODE..'
);
v_process_flag := 'E';
v_error_message := 'to many values to LOOKUP CODE';
WHEN OTHERS
THEN
fnd_file.put_line
(fnd_file.LOG,
'other exceptions in LOOKUP
CODE validation'
);
v_process_flag := 'E';
v_error_message :=
'in other exception of LOOKUP
CODE valiation';
END;
---------END INVOICE TYPE VALIDATIONS-----
-----PAYMENT METHOD VALIDATION------
BEGIN
SELECT lookup_code
INTO u_lookup_code
FROM fnd_lookup_values
WHERE lookup_type =
'PAYMENT METHOD'
AND view_application_id = v_application_id
AND lookup_code = i.payment_method_lookup_code;
fnd_file.put_line
(fnd_file.LOG,
'PAYMENT METHOD :' || u_lookup_code
);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fnd_file.put_line (fnd_file.LOG,
'PAY LOOKUP CODE not foUnd'
);
v_process_flag := 'E';
v_error_message := 'PAY LOOKUP CODE not found';
WHEN TOO_MANY_ROWS
THEN
fnd_file.put_line (fnd_file.LOG,
'too may rows in PAY LOOKUP
CODE..'
);
v_process_flag := 'E';
v_error_message := 'to many values to PAY LOOKUP
CODE';
WHEN
OTHERS
THEN
fnd_file.put_line
(fnd_file.LOG,
'other exceptions in PAY LOOKUP
CODE validation'
);
v_process_flag := 'E';
v_error_message :=
'in other exception of PAY
LOOKUP CODE valiation';
END;
---------END PAYMENT TYPE VALIDATIONS-----
----SOURCE VALIDATION------
BEGIN
SELECT lookup_code
INTO t_lookup_code
FROM fnd_lookup_values
WHERE lookup_type =
'SOURCE'
AND lookup_code = i.SOURCE
AND view_application_id = v_application_id;
fnd_file.put_line
(fnd_file.LOG, 'SOURCE :' || t_lookup_code);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fnd_file.put_line (fnd_file.LOG, 'SOURCE not foUnd');
v_process_flag := 'E';
v_error_message := 'SOURCE not found';
WHEN TOO_MANY_ROWS
THEN
fnd_file.put_line (fnd_file.LOG,
'too may rows in SOURCE..');
v_process_flag := 'E';
v_error_message := 'to many values to SOURCE';
WHEN OTHERS
THEN
fnd_file.put_line (fnd_file.LOG,
'other exceptions in SOURCE validation'
);
v_process_flag := 'E';
v_error_message := 'in other exception ofSOURCE
valiation';
END;
---------END SOURCE VALIDATIONS-----
IF
v_process_flag != 'E'
THEN
fnd_file.put_line
(fnd_file.LOG,
'Inserting Values into Headers
Interface Table'
);
UPDATE khr_inv_hdr_stg
SET process_flag = 'V',
error_message =
'VALID RECORDS INTO HEADER
INTERFACE TABLE',
vendor_id = v_vendor_id,
vendor_site_id = v_vendor_site_id
WHERE ROWID = i.rid;
fnd_file.put_line
(fnd_file.LOG,
'UPDATE STGING TABLE WITH
SUCESS RECORDS'
);
fnd_file.put_line
(fnd_file.LOG,
'STAGING TABLE IS UPDATED WITH
VALID RECORD'
);
fnd_file.put_line
(fnd_file.LOG, 'enter into c2 curSor');
FOR j IN c2 (i.invoice_num)
LOOP
v_rec_prss_line_count := c2%ROWCOUNT;
fnd_file.put_line (fnd_file.LOG, 'ENTER INTO LINE LOOP...');
----LINES VALIDATIONS----
-----OPERATING UNTIT
VALIDATION------
BEGIN
SELECT organization_id
INTO u_org_id
FROM hr_operating_units
WHERE NAME = j.operating_unit;
fnd_file.put_line (fnd_file.LOG, 'ORG_ID:' || v_org_id);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fnd_file.put_line (fnd_file.LOG, 'ORG_ID not found');
v_process_flag := 'E';
v_error_message := 'ORGID not found';
WHEN TOO_MANY_ROWS
THEN
fnd_file.put_line (fnd_file.LOG,
'too may rows in OPERATING
UNIT..'
);
v_process_flag := 'E';
v_error_message := 'to many values to ORG ID';
WHEN OTHERS
THEN
fnd_file.put_line
(fnd_file.LOG,
'other exceptions in OPERATING
UNIT validation'
);
v_process_flag := 'E';
v_error_message :=
'in other exception of
OPERATING UNIT valiation';
END;
-----------------END
OPERATING UNIT VALIDATIONS-------------
------- Account Validation
-------
BEGIN
SELECT code_combination_id
INTO v_code_comb_id
FROM gl_code_combinations_kfv gcc, gl_ledgers gl
WHERE gcc.concatenated_segments = j.ACCOUNT
AND gcc.chart_of_accounts_id = gl.chart_of_accounts_id
AND gl.ledger_id =
fnd_profile.VALUE ('GL_SET_OF_BKS_ID');
fnd_file.put_line (fnd_file.LOG,
'Code Combination ID is : '
||
v_code_comb_id
);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_process_flag := 'E';
v_error_message :=
'No Data Found for Code
Combination';
WHEN TOO_MANY_ROWS
THEN
v_process_flag := 'E';
v_error_message :=
'Too Many Rows for Code
Combination';
WHEN OTHERS
THEN
v_process_flag := 'E';
v_error_message :=
'In Others of Code Combination
Validation';
END;
--------END ACCOUNT
VALIDATION---------
------- LINE TYPE Validation
-------
BEGIN
SELECT lookup_code
INTO u_line_type
FROM fnd_lookup_values
WHERE lookup_code = j.line_type_lookup_code
AND lookup_type = 'INVOICE LINE TYPE';
fnd_file.put_line (fnd_file.LOG,
'LINE TYPE IS:' || u_line_type
);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_process_flag := 'E';
v_error_message :=
v_error_message || 'Line Type not found';
WHEN TOO_MANY_ROWS
THEN
v_process_flag := 'E';
v_error_message :=
v_error_message || 'Too Many Values to Line Type';
WHEN OTHERS
THEN
v_process_flag := 'E';
v_error_message :=
v_error_message
|| 'In OTHERS of Line Type
Validation';
END;
--------END LINE TYPE
VALIDATION---------
IF v_process_flag != 'E'
THEN
UPDATE khr_inv_line_stg
SET process_flag = 'V',
error_message =
'VALID RECORD INSERT INTO LINE
INTERFACE TABLE'
WHERE ROWID = j.rid;
fnd_file.put_line (fnd_file.LOG, 'VAILD RECORD ');
fnd_file.put_line (fnd_file.LOG,
'LINE STAGING TABLE IS UPDATED'
);
ELSE
UPDATE khr_inv_line_stg
SET process_flag = v_process_flag,
error_message = v_error_message
WHERE ROWID = i.rid;
fnd_file.put_line
(fnd_file.LOG,
'INSERTED INTO ERROR RECORD
INTERFACE TABLE'
);
fnd_file.put_line (fnd_file.LOG,
'STAGING TABLE IS UPDATED WITH
ERRORS'
);
END IF;
END LOOP; ----LINES END LOOP
ELSE
UPDATE khr_inv_hdr_stg
SET process_flag = 'E',
error_message = v_error_message,
vendor_id = v_vendor_id,
vendor_site_id = v_vendor_site_id
WHERE ROWID = i.rid;
fnd_file.put_line
(fnd_file.LOG,
'UPDATE STGING TABLE WITH ERROR
RECORDS'
);
fnd_file.put_line
(fnd_file.LOG,
'STAGING TABLE IS UPDATED WITH
ERRORS'
);
END
IF;
ELSE
v_process_flag := 'E';
v_error_message := 'Invoice num already Exist';
fnd_file.put_line (fnd_file.LOG, 'Invoice already exist');
END
IF;
END
LOOP;
---HEADER LOOP
fnd_file.put_line (fnd_file.LOG, 'inserting into header
interface');
FOR
k IN c3
LOOP
INSERT INTO ap_invoices_interface
(invoice_num, invoice_id,
gl_date, last_update_date, last_updated_by,
invoice_currency_code, payment_currency_code,
payment_cross_rate, invoice_type_lookup_code,
vendor_id, vendor_site_id, org_id,
invoice_date, invoice_amount, terms_date,
terms_id, payment_method_lookup_code, SOURCE
)
VALUES (k.invoice_num, ap_invoices_interface_s.NEXTVAL,
k.gl_date, k.last_update_date, k.last_updated_by,
v_inv_curr_code, v_pay_curr_code,
k.payment_cross_rate, v_lookup_code,
v_vendor_id, v_vendor_site_id, v_org_id,
k.invoice_date, k.invoice_amount, k.terms_date,
v_term_id, k.payment_method_lookup_code, k.SOURCE
);
fnd_file.put_line (fnd_file.LOG, 'inserted into header
interface');
UPDATE khr_inv_hdr_stg
SET
process_flag = 'I',
error_message = 'INSERT INTO HEADER INTERFACE
TABLE',
invoice_id = ap_invoices_interface_s.CURRVAL
WHERE ROWID = k.rid;
fnd_file.put_line (fnd_file.LOG,
'INSERT INTO SUCESS RECORD INTO
INTERFACE TABLE'
);
fnd_file.put_line (fnd_file.LOG, 'inserting into lines interface');
FOR
l IN c4 (k.invoice_num)
LOOP
INSERT INTO ap_invoice_lines_interface
(line_number, line_type_lookup_code,
accounting_date, invoice_id,
invoice_line_id,
dist_code_combination_id, org_id, amount
)
VALUES (l.line_number, l.line_type_lookup_code,
l.accounting_date, ap_invoices_interface_s.CURRVAL,
ap_invoice_lines_interface_s.NEXTVAL,
v_code_comb_id, u_org_id, l.amount
);
fnd_file.put_line (fnd_file.LOG, 'inserted into lines interface');
UPDATE khr_inv_line_stg
SET process_flag = 'I',
error_message = 'INSERT INTO LINES INTERFACE
TABLE'
WHERE ROWID = l.rid;
fnd_file.put_line
(fnd_file.LOG,
'INSERT INTO SUCESS RECORD INTO
LINES INTERFACE TABLE'
);
END
LOOP; ---------------C4 LOOP
END
LOOP; ----------------C3 LOOP
SELECT COUNT (*)
INTO
v_reject_rcd
FROM
khr_inv_hdr_stg
WHERE v_process_flag = 'E';
SELECT COUNT (*)
INTO
v_line_rej_rd
FROM
khr_inv_line_stg
WHERE v_process_flag = 'E';
-------------------SUMMARY INFORMATION-------------------
SELECT RPAD (LPAD ('SUMMARY INFORMATION', 50, '-'), 80, '-')
INTO
CONSTANT
FROM
DUAL;
fnd_file.put_line (fnd_file.output, CONSTANT);
fnd_file.put_line (fnd_file.output,
'Total no of hdr processed
record is:'
||
v_rec_pros_hdr_count
);
fnd_file.put_line (fnd_file.output,
'total no of lines processed
record is :'
||
v_rec_prss_line_count
);
fnd_file.put_line (fnd_file.output,
'Rejectd record hdr is ' || v_reject_rcd
);
fnd_file.put_line (fnd_file.output,
'Rejectd record line is ' || v_line_rej_rd
);
SELECT COUNT (*)
INTO
v_count_hdr_valid_record
FROM
khr_inv_hdr_stg
WHERE process_flag = 'N';
SELECT COUNT (*)
INTO
v_count_line_valid_record
FROM
khr_inv_line_stg
WHERE process_flag = 'N';
SELECT COUNT (*)
INTO
v_count_hdr_insert
FROM
khr_inv_hdr_stg
WHERE process_flag = 'I';
SELECT COUNT (*)
INTO
v_count_hdr_errors
FROM
khr_inv_hdr_stg
WHERE process_flag = 'E';
SELECT COUNT (*)
INTO
v_count_line_insert
FROM
khr_inv_hdr_stg
WHERE process_flag = 'I';
SELECT COUNT (*)
INTO
v_count_line_errors
FROM
khr_inv_hdr_stg
WHERE process_flag = 'E';
fnd_file.put_line (fnd_file.LOG,
'COUNT OF HDR VALID RECORD :'
||
v_count_hdr_valid_record
);
fnd_file.put_line (fnd_file.LOG,
'COUNT OF LINE VALID RECORD :'
||
v_count_line_valid_record
);
fnd_file.put_line (fnd_file.LOG,
'COUNT OF HEADER PROCESS RECORD:'
||
v_rec_pros_hdr_count
);
fnd_file.put_line (fnd_file.LOG,
'COUNT OF LINE PROCESS RECORD:'
||
v_rec_prss_line_count
);
fnd_file.put_line (fnd_file.LOG,
'COUNT OF HEADER INSERT RECORD:'
|| v_count_hdr_insert
);
fnd_file.put_line (fnd_file.LOG,
'COUNT OF HDR ERROR
RECORD:'
|| v_count_hdr_errors
);
fnd_file.put_line (fnd_file.LOG,
'COUNT OF LINE INSERT RECORD:'
|| v_count_line_insert
);
fnd_file.put_line (fnd_file.LOG,
'COUNT OF LINE ERROR
RECORD:'
|| v_count_line_errors
);
COMMIT;
fnd_file.put_line (fnd_file.LOG, 'SUBMITTING THE STANDARD
PROGRAM---');
v_requist_id :=
fnd_request.submit_request
('SQLAP', ---APPLICATION SHOT NAME
'APXIIMPT', ------PROGRAM SHOT NAME
'Payables Open Interface
Import',
'14-sep-2013',
FALSE,
204,
'ERS',
NULL,
'N/A',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
);
COMMIT;
fnd_file.put_line (fnd_file.LOG, 'REQUIST_ID :' || v_requist_id);
fnd_file.put_line (fnd_file.LOG, 'CONN REQUEST ID :' || v_conc_req_id);
fnd_file.put_line (fnd_file.LOG, 'CON PROGRAM ID :' || v_conc_prgm_id);
v_boolean :=
fnd_concurrent.wait_for_request
(request_id => v_requist_id,
INTERVAL => 60,
max_wait => 0,
phase => v_phase,
status => v_status,
dev_phase => v_dev_phase,
dev_status => v_dev_status,
MESSAGE => v_message
);
COMMIT;
fnd_file.put_line (fnd_file.LOG, 'PHASE :' || v_phase);
fnd_file.put_line (fnd_file.LOG, 'STATUS :' || v_status);
fnd_file.put_line (fnd_file.LOG, 'DEV_PHASE :' || v_dev_phase);
fnd_file.put_line (fnd_file.LOG, 'DEV STATUS :' || v_dev_status);
fnd_file.put_line (fnd_file.LOG, 'MESSAGE :' || v_message);
EXCEPTION
WHEN
NO_DATA_FOUND
THEN
fnd_file.put_line (fnd_file.LOG, 'NO DATA FOUND');
WHEN
TOO_MANY_ROWS
THEN
fnd_file.put_line (fnd_file.LOG, 'TOO MANY VALUES');
WHEN
OTHERS
THEN
fnd_file.put_line (fnd_file.LOG, 'OTHER THAN EXCEPTION');
END
ap_khr_inv_main;
END ap_khr_inv_pkg;