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

PDF Oracle Custom Web Adi For Ap Invoice Interface DD

The document describes developing a custom Oracle Web Application Development Integration (ADI) interface to import invoices into an accounts payable system. It involves the following steps: 1) Creating an integrator 2) Designing a layout 3) Mapping data fields 4) Creating a document 5) Defining a form function for the integrator It also provides code to compile a custom table and package in the Oracle Applications schema to support the interface.

Uploaded by

Văn Tiến Hồ
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
86 views

PDF Oracle Custom Web Adi For Ap Invoice Interface DD

The document describes developing a custom Oracle Web Application Development Integration (ADI) interface to import invoices into an accounts payable system. It involves the following steps: 1) Creating an integrator 2) Designing a layout 3) Mapping data fields 4) Creating a document 5) Defining a form function for the integrator It also provides code to compile a custom table and package in the Oracle Applications schema to support the interface.

Uploaded by

Văn Tiến Hồ
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 53

 

Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch


 

Requirement: Web ADI interface needed to be developed to import Invoices, Layout to be designed

Solution: Following steps to be followed


  Create integrator
  Create Layout
  Create Mappings
  Create Document
  Defining the Form Function for Integrator
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Compile the below Custom table and Package in APPS schema


--> ====================================================================
DROP 
DROP  TABLE
TABLE XXAA_APINV_IFACE_TBL
 XXAA_APINV_IFACE_TBL;

CREATE TABLE
CREATE TABLE XXAA_APINV_IFACE_TBL
 XXAA_APINV_IFACE_TBL

SOURCE VARCHAR2(50
VARCHAR2(50),
), 
 
ORGANIZATION VARCHAR2(40
VARCHAR2(40),
), 
 
INVOICE_TYPE VARCHAR2(
VARCHAR2(40
40),
), 
 
SUPPLIER_NAME VARCHAR2(
VARCHAR2(60
60),
), 
 
SUPPLIER_NUM VARCHAR2(60
VARCHAR2(60),
), 
 
SUPPLIER_SITE VARCHAR2(
VARCHAR2(40
40),
), 
 
INVOICE_DATE DATE,
DATE, 
INVOICE_NUMBER VARCHAR2(60
VARCHAR2(60),
), 
 
INVOICE_AMOUNT NUMBER(
NUMBER(10
10,
,2),
), 
 
TERMS VARCHAR2(60
VARCHAR2(60),
), 
 
INVOICE_CURRENCY VARCHAR2(25
VARCHAR2(25),
), 
 
GL_DATE DATE,
DATE, 
PAYMENT_CURRENCY VARCHAR2(25
VARCHAR2(25),
), 
 
PAYMENT_METHOD VARCHAR2(
VARCHAR2(40
40),
), 
 
LINE_NUM NUMBER, 
NUMBER,
LINE_TYPE VARCHAR2(
VARCHAR2(25
25),
), 
 
LINE_AMOUNT NUMBER(10
NUMBER(10,
,2),
), 
 
SEGMENT1 VARCHAR2(
VARCHAR2(25
25),
), 
 
SEGMENT2 VARCHAR2(
VARCHAR2(25
25),
), 
 
SEGMENT3 VARCHAR2(
VARCHAR2(25
25),
), 
 
SEGMENT4 VARCHAR2(25
VARCHAR2( 25),
), 
 
SEGMENT5 VARCHAR2(25
VARCHAR2( 25),
), 
 
LINE_DESCRIPTION VARCHAR2(
VARCHAR2(100
100),
), 
 
ORG_ID NUMBER, 
NUMBER,
VENDOR_ID NUMBER,
NUMBER, 
VENDOR_SITE_ID NUMBER, 
NUMBER,
TERM_ID NUMBER, 
NUMBER,
CODE_COMBINATION_ID NUMBER, 
NUMBER,
last_update_date DATE,
DATE, 
last_updated_by NUMBER,
NUMBER, 
creation_date DATE, 
DATE,
created_by NUMBER, 
NUMBER,
last_update_login NUMBER 
NUMBER , 
status VARCHAR2(
VARCHAR2 (50
50),
), 
 
error_code VARCHAR2(15
VARCHAR2( 15),
), 
 
error_message VARCHAR2(
VARCHAR2(3000
3000)) 
);

--> ====================================================================
CREATE 
CREATE  OR
OR  REPLACE 
REPLACE PACKAGE
PACKAGE XXAA_APINV_IFACE_PKG
 XXAA_APINV_IFACE_PKG
IS
IS  
PROCEDURE XXAA_APINV_IFACE_LOAD_PRC
PROCEDURE  XXAA_APINV_IFACE_LOAD_PRC

P_SOURCE VARCHAR2 
VARCHAR2 
,P_ORGANIZATION VARCHAR2 
VARCHAR2 
,P_INVOICE_TYPE VARCHAR2 
VARCHAR2 
,P_SUPPLIER_NAME VARCHAR2 
VARCHAR2 
,P_SUPPLIER_NUM VARCHAR2 
VARCHAR2 
,P_SUPPLIER_SITE VARCHAR2 
VARCHAR2 
,P_INVOICE_DATE DATE 
DATE 
,P_INVOICE_NUMBER VARCHAR2 
VARCHAR2 
,P_INVOICE_AMOUNT NUMBER 
NUMBER 
,P_TERMS VARCHAR2 
VARCHAR2 
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch
,P_INVOICE_CURRENCY VARCHAR2 
VARCHAR2 
,P_GL_DATE DATE 
DATE 
,P_PAYMENT_CURRENCY VARCHAR2 
VARCHAR2 
,P_PAYMENT_METHOD VARCHAR2 
VARCHAR2 
,P_LINE_NUM NUMBER 
NUMBER 
,P_LINE_TYPE VARCHAR2 
VARCHAR2 
,P_LINE_AMOUNT NUMBER 
NUMBER 
,P_LINE_DESCRIPTION VARCHAR2 
VARCHAR2 
,P_SEGMENT1 VARCHAR2 
VARCHAR2 
,P_SEGMENT2 VARCHAR2 
VARCHAR2 
,P_SEGMENT3 VARCHAR2 
VARCHAR2 
,P_SEGMENT4 VARCHAR2 
VARCHAR2 
,P_SEGMENT5 VARCHAR2 
VARCHAR2 
); 
); 

PROCEDURE  XXAA_APINV_IFACE_IMPORT_PRC;
PROCEDURE XXAA_APINV_IFACE_IMPORT_PRC ; 
END
END XXAA_APINV_IFACE_PKG
 XXAA_APINV_IFACE_PKG;

--> ====================================================================
CREATE 
CREATE  OR
OR  REPLACE 
REPLACE PACKAGE
PACKAGE XXAA_APINV_IFACE_PKG
 XXAA_APINV_IFACE_PKG
IS
IS  
PROCEDURE XXAA_APINV_IFACE_LOAD_PRC
PROCEDURE  XXAA_APINV_IFACE_LOAD_PRC

P_SOURCE VARCHAR2 
VARCHAR2 

,P_ORGANIZATION
,P_INVOICE_TYPE VARCHAR2 
VARCHAR2
VARCHAR2 
VARCHAR2  
,P_SUPPLIER_NAME VARCHAR2 
VARCHAR2 
,P_SUPPLIER_NUM VARCHAR2 
VARCHAR2 
,P_SUPPLIER_SITE VARCHAR2 
VARCHAR2 
,P_INVOICE_DATE DATE 
DATE 
,P_INVOICE_NUMBER VARCHAR2 
VARCHAR2 
,P_INVOICE_AMOUNT NUMBER 
NUMBER 
,P_TERMS VARCHAR2 
VARCHAR2 
,P_INVOICE_CURRENCY VARCHAR2 
VARCHAR2 
,P_GL_DATE DATE 
DATE 
,P_PAYMENT_CURRENCY VARCHAR2 
VARCHAR2 
,P_PAYMENT_METHOD VARCHAR2 
VARCHAR2 
,P_LINE_NUM NUMBER 
NUMBER 
,P_LINE_TYPE VARCHAR2 
VARCHAR2 
,P_LINE_AMOUNT NUMBER 
NUMBER 
,P_LINE_DESCRIPTION VARCHAR2 
VARCHAR2 
,P_SEGMENT1 VARCHAR2 
VARCHAR2 
,P_SEGMENT2 VARCHAR2 
VARCHAR2 
,P_SEGMENT3 VARCHAR2 
VARCHAR2 
,P_SEGMENT4 VARCHAR2 
VARCHAR2 
,P_SEGMENT5 VARCHAR2 
VARCHAR2 
); 
); 

PROCEDURE XXAA_APINV_IFACE_IMPORT_PRC
PROCEDURE  XXAA_APINV_IFACE_IMPORT_PRC;

END XXAA_APINV_IFACE_PKG
END  XXAA_APINV_IFACE_PKG;

--> ====================================================================
CREATE 
CREATE  OR
OR  REPLACE 
REPLACE PACKAGE
PACKAGE 
 body XXAA_APINV_IFACE_PKG
body XXAA_APINV_IFACE_PKG
IS 
IS 
PROCEDURE
PROCEDURE XXAA_APINV_IFACE_LOAD_PRC
(   XXAA_APINV_IFACE_LOAD_PRC
P_SOURCE VARCHAR2 
VARCHAR2 
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch
,P_ORGANIZATION VARCHAR2 
VARCHAR2 
,P_INVOICE_TYPE VARCHAR2 
VARCHAR2 
,P_SUPPLIER_NAME VARCHAR2 
VARCHAR2 
,P_SUPPLIER_NUM VARCHAR2 
VARCHAR2 
,P_SUPPLIER_SITE VARCHAR2 
VARCHAR2 
,P_INVOICE_DATE DATE 
DATE 
,P_INVOICE_NUMBER VARCHAR2 
VARCHAR2 
,P_INVOICE_AMOUNT NUMBER 
NUMBER 
,P_TERMS VARCHAR2 
VARCHAR2 
,P_INVOICE_CURRENCY VARCHAR2 
VARCHAR2 
,P_GL_DATE DATE 
DATE 
,P_PAYMENT_CURRENCY VARCHAR2 
VARCHAR2 
,P_PAYMENT_METHOD VARCHAR2 
VARCHAR2 
,P_LINE_NUM NUMBER 
NUMBER 
,P_LINE_TYPE VARCHAR2 
VARCHAR2 
,P_LINE_AMOUNT NUMBER 
NUMBER 
,P_LINE_DESCRIPTION VARCHAR2 
VARCHAR2 
,P_SEGMENT1 VARCHAR2 
VARCHAR2 
,P_SEGMENT2 VARCHAR2 
VARCHAR2 
,P_SEGMENT3 VARCHAR2 
VARCHAR2 
,P_SEGMENT4 VARCHAR2 
VARCHAR2 
,P_SEGMENT5 VARCHAR2 
VARCHAR2 

IS 
IS  
l_error_message VARCHAR2(3000
VARCHAR2( 3000);
); 
 
l_error_code
l_org_id VARCHAR2(
NUMBER
NUMBER;; (2);
VARCHAR2 ); 
 
l_invoice_num VARCHAR2(
VARCHAR2(60
60);
);  
l_vendor_id NUMBER;
NUMBER ; 
l_vendor_site_id NUMBER; 
NUMBER;
l_term_id NUMBER; 
NUMBER;
l_code_combination_id NUMBER; 
NUMBER;

BEGIN 
BEGIN 
l_error_message :=
:= 
 '';
''; 
l_error_code :='V'
:='V';; 

-->Organization Validation
BEGIN 
BEGIN  
l_org_id := 
:= NULL
NULL;

SELECT organization_id
SELECT  organization_id
INTO
INTO l_org_id
 l_org_id
FROM hr_organization_units hou
FROM hr_organization_units
WHERE hou
WHERE hou. .name
name==P_ORGANIZATION
P_ORGANIZATION;; 
EXCEPTION 
EXCEPTION 
WHEN no_data_found THEN
WHEN no_data_found THEN  
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Organization
'Organization not defined ';
'; 
l_error_code :='E'
:='E';; 
WHEN too_many_rows
WHEN  too_many_rows THEN
THEN  
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Too
'Too Many Records for Organization ';
' ; 
l_error_code :='E'
:='E';; 
WHEN
WHEN  OTHERS
OTHERS  THEN 
THEN 
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Other
'Other Errors with Organization '||
' ||SQLCODE
SQLCODE  
||sqlerrm;
||sqlerrm ; 
l_error_code :='E'
:='E';; 
END
END;; 

-->Invoice Number Validation


BEGIN 
BEGIN  
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch
l_invoice_num :=:= 
 NULL;
NULL; 
SELECT 
SELECT  COUNT
COUNT  (api
api.
.invoice_num
invoice_num)) 
INTO l_invoice_num
INTO l_invoice_num
FROM ap_invoices_all
FROM ap_invoices_all api
WHERE UPPER(
WHERE  UPPER(api
api.
.invoice_num
invoice_num)) = UPPER(
UPPER(P_INVOICE_NUMBER
P_INVOICE_NUMBER);
);  

IF l_invoice_num > 0 
IF l_invoice_num
THEN 
THEN  
:=l_error_message
l_error_message :=l_error_message||
||','
','||
||'Invoice
'Invoice number already exist in oracle
'; 
l_error_code :='E';
:='E' ; 
END IF;
END IF; 

EXCEPTION 
EXCEPTION 
WHEN no_data_found THEN
WHEN no_data_found THEN  
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Error
'Error in validating the invoice number ';
' ; 
l_error_code :=
:='E'
'E';; 
WHEN 
WHEN  OTHERS
OTHERS  THEN 
THEN 
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Other
'Other Errors with invoice number '||
' ||SQLCODE
SQLCODE  
||sqlerrm
|| sqlerrm;; 
l_error_code :='E'
:='E';; 
END
END;; 

-->Supplier Validation
BEGIN 
BEGIN  
l_vendor_id
SELECT
SELECT vendor_id:=
:= 
 vendor_id  NULL;
NULL; 
INTO
INTO l_vendor_id
 l_vendor_id
FROM ap_suppliers
FROM ap_suppliers aps
WHERE (UPPER
WHERE  UPPER((aps
aps..vendor_name
vendor_name)) = UPPER(
UPPER(P_SUPPLIER_NAME
P_SUPPLIER_NAME)
) OR 
OR UPPER
UPPER((aps
aps..segment1
segment1)) = 
UPPER(
UPPER(P_SUPPLIER_NUM
P_SUPPLIER_NUM));
)); 
 
EXCEPTION
EXCEPTION  
WHEN no_data_found
WHEN no_data_found THEN
THEN  
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Supplier
'Supplier not defined ';
' ; 
l_error_code :='E'
:='E';; 
WHEN
WHEN too_many_rows
 too_many_rows THEN
THEN  
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Too
'Too Many Records for Supplier '; ' ; 
l_error_code :='E'
:='E';; 
WHEN
WHEN  OTHERS
OTHERS  THEN 
THEN 
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Other
'Other Errors with Supplier '||
' ||SQLCODE
SQLCODE  ||
||sqlerrm
sqlerrm;

l_error_code :='E';
:='E' ; 
END
END;; 

-->Supplier Site Validation


BEGIN 
BEGIN  
l_vendor_site_id := := NULL;
NULL; 
SELECT
SELECT vendor_site_id
 vendor_site_id
INTO
INTO l_vendor_site_id
 l_vendor_site_id
FROM ap_supplier_sites_all
FROM ap_supplier_sites_all ass
WHERE ass.
WHERE ass .vendor_id = l_vendor_id
AND ass
AND ass..org_id = l_org_id
AND
AND  UPPER(
UPPER(ass
ass.
.vendor_site_code
vendor_site_code)) = UPPER(
UPPER(P_SUPPLIER_SITE
P_SUPPLIER_SITE);
); 
 
EXCEPTION
EXCEPTION   
WHEN no_data_found THEN
WHEN no_data_found THEN  
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Supplier
'Supplier Site not defined ';
' ; 
l_error_code :='E'
:='E';; 
WHEN
WHEN too_many_rows
 too_many_rows:=l_error_message
THEN
THEN  
l_error_message :=l_error_message||
||','
','||
||'Too
'Too Many Records for Supplier Site ';
' ; 
l_error_code :=
:='E'
'E';; 
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch
WHEN
WHEN  OTHERS
OTHERS  THEN 
THEN 
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Other
'Other Errors with Supplier Site '||
' ||SQLCODE
SQLCODE  
||sqlerrm;
||sqlerrm ; 
l_error_code :=
:='E'
'E';; 
END;
END ; 

-->Terms Validation
BEGIN 
BEGIN  
l_term_id := 
:= NULL;
NULL; 
SELECT
SELECT term_id
 term_id
INTO l_term_id
INTO  l_term_id
FROM ap_terms apt
FROM ap_terms
WHERE 
WHERE UPPER(
UPPER(apt
apt.
.name
name)) = UPPER(
UPPER(P_TERMS
P_TERMS);
); 
 
EXCEPTION 
EXCEPTION 
WHEN no_data_found THEN
WHEN no_data_found THEN  
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Terms
'Terms not defined ';
'; 
l_error_code :='E'
:='E';; 
WHEN too_many_rows
WHEN  too_many_rows THEN
THEN  
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Too
'Too Many Records for Terms ';
'; 
l_error_code :=
:='E'
'E';; 
WHEN 
WHEN  OTHERS
OTHERS  THEN 
THEN 
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Other
'Other Errors with Terms '||
'||SQLCODE
SQLCODE 
 ||sqlerrm
||sqlerrm;; 
l_error_code :=
:='E'
'E';; 
END;
END ; 

-->Account segment Validation


BEGIN 
BEGIN  
SELECT code_combination_id
SELECT  code_combination_id
INTO l_code_combination_id
INTO  l_code_combination_id
FROM gl_code_combinations
FROM gl_code_combinations
WHERE segment1=
WHERE segment1 = P_SEGMENT1
AND segment2 = P_SEGMENT2
AND segment2
AND segment3
AND segment3 = P_SEGMENT3
AND segment4 = P_SEGMENT4
AND segment4
AND segment5 = P_SEGMENT5
AND segment5  P_SEGMENT5;

EXCEPTION 
EXCEPTION  
WHEN no_data_found THEN
WHEN no_data_found THEN  
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Invalid
'Invalid Flex field combination ';
' ; 
l_error_code :=
:='E'
'E';; 
WHEN too_many_rows
WHEN  too_many_rows THEN
THEN  
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Too
'Too Many Records for Flex field combination ';
' ; 
l_error_code :='E';
:='E' ; 
WHEN 
WHEN  OTHERS
OTHERS  THEN 
THEN 
l_error_message :=l_error_message
:=l_error_message||
||','
','||
||'Other
'Other Errors with Flex field combination
'||
||SQLCODE
SQLCODE  ||
||sqlerrm
sqlerrm;

l_error_code :='E';
:='E' ; 
END
END;; 

-->Insert the data into the staging table


INSERT 
INSERT  INTO XXAA_APINV_IFACE_TBL
INTO XXAA_APINV_IFACE_TBL

SOURCE
,ORGANIZATION
,INVOICE_TYPE
,SUPPLIER_NAME
,SUPPLIER_NUM
,SUPPLIER_SITE
,INVOICE_DATE
,INVOICE_NUMBER
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch
,INVOICE_AMOUNT
,TERMS
,INVOICE_CURRENCY
,GL_DATE
,PAYMENT_CURRENCY
,PAYMENT_METHOD
,LINE_NUM
,LINE_TYPE
,LINE_AMOUNT
,LINE_DESCRIPTION
,SEGMENT1
,SEGMENT2
,SEGMENT3
,SEGMENT4
,SEGMENT5
,ORG_ID
,VENDOR_ID
,VENDOR_SITE_ID
,TERM_ID
,CODE_COMBINATION_ID
,last_update_date
,last_updated_by
,creation_date
,created_by
,last_update_login
,status
,error_code
,error_message

VALUES 
VALUES 
(UPPER
UPPER((P_SOURCE
P_SOURCE)) 
,P_ORGANIZATION
,UPPER
UPPER((P_INVOICE_TYPE
P_INVOICE_TYPE)) 
,P_SUPPLIER_NAME
,P_SUPPLIER_NUM
,P_SUPPLIER_SITE
,P_INVOICE_DATE
,P_INVOICE_NUMBER
,P_INVOICE_AMOUNT
,P_TERMS
,P_INVOICE_CURRENCY
,P_GL_DATE
,P_PAYMENT_CURRENCY
,P_PAYMENT_METHOD
,P_LINE_NUM
,P_LINE_TYPE
,P_LINE_AMOUNT
,P_LINE_DESCRIPTION
,P_SEGMENT1
,P_SEGMENT2
,P_SEGMENT3
,P_SEGMENT4
,P_SEGMENT5
,L_ORG_ID
,L_VENDOR_ID
,L_VENDOR_SITE_ID
,L_TERM_ID
,L_CODE_COMBINATION_ID
,sysdate
sysdate  
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch
,fnd_global
fnd_global. .user_id
,sysdate
sysdate   
,fnd_global
fnd_global. .user_id
,fnd_global
fnd_global. .login_id
,'NEW'
'NEW'  
,l_error_code
,SUBSTR
SUBSTR( (l_error_message
l_error_message,,2) 
);
); 
 

IF
IF 
 (l_error_code
l_error_code=
='E'
'E')

THEN 
THEN  
raise_application_error(
raise_application_error (-20101
-20101,,SUBSTR
SUBSTR((l_error_message
l_error_message,,2));
)); 
 
END IF
END  IF;

EXCEPTION 
EXCEPTION  
WHEN 
WHEN  OTHERS
OTHERS  
THEN 
THEN 
raise_application_error(
raise_application_error (-20102
-20102,,'Error -'||
-'||SQLCODE
SQLCODE||
||'-'
'-'||
||sqlerrm
sqlerrm);
); 
 
END XXAA_APINV_IFACE_LOAD_PRC;
END XXAA_APINV_IFACE_LOAD_PRC ; 

--> --------------------------------------------------------------------
PROCEDURE XXAA_APINV_IFACE_IMPORT_PRC
PROCEDURE  XXAA_APINV_IFACE_IMPORT_PRC
IS
IS  
CURSOR c_inv
CURSOR  c_inv
IS 
IS 
SELECT
SELECT  DISTINCT
DISTINCT  
api.
api .source
source,, 
api.
api .org_id
org_id,, 
api.
api .invoice_type
invoice_type, , 
api.
api .vendor_id
vendor_id, , 
api.
api .vendor_site_id
vendor_site_id, , 
api.
api .invoice_date
invoice_date, , 
api.
api .invoice_number
invoice_number, , 
api.
api .invoice_amount
invoice_amount, , 
api.
api .term_id
term_id,, 
api.
api .invoice_currency
invoice_currency, , 
api.
api .gl_date
gl_date,, 
api.
api .payment_currency
payment_currency, , 
api.
api .payment_method
FROM
FROM XXAA_APINV_IFACE_TBL
 XXAA_APINV_IFACE_TBL api
WHERE api.
WHERE api .error_code
error_code=='V'
'V'  
ORDER 
ORDER BY 
BY 
api.
api .org_id
org_id,, 
api.
api .invoice_type
invoice_type,, 
api.
api .vendor_id
vendor_id,, 
api.
api .vendor_site_id
vendor_site_id,, 
api.
api .invoice_number
invoice_number;; 

CURSOR c_lin
CURSOR  c_lin((X_INVOICE_NUMBER VARCHAR2
VARCHAR2)) 
IS
IS 
 
SELECT 
SELECT  
apl.
apl .line_num
line_num,, 
apl.
apl .line_type
line_type,, 
apl.
apl .line_amount
line_amount, , 
apl.
apl .code_combination_id
code_combination_id,, 
apl.
apl .line_description
FROM
FROM XXAA_APINV_IFACE_TBL
 XXAA_APINV_IFACE_TBL apl
WHERE apl.
WHERE apl .error_code
error_code=='V'
'V'  
AND
AND apl
 apl.
.invoice_number = X_INVOICE_NUMBER
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch
ORDER
ORDER  BY apl
BY apl..line_num
line_num;; 

l_batch_name VARCHAR2
VARCHAR2((100
100)) := 
:= TO_CHAR(
TO_CHAR(SYSDATE
SYSDATE,,'DD-MON-RR:HH24MISS'
'DD-MON-RR:HH24MISS');
); 
 
l_conc_request_id NUMBER;
NUMBER; 
l_phase VARCHAR2(
VARCHAR2 (25
25);
); 
 
l_status VARCHAR2(25
VARCHAR2( 25);
); 
 
l_dev_phase VARCHAR2(
VARCHAR2(25
25);
); 
 
l_dev_status VARCHAR2(25
VARCHAR2( 25);
); 
 
l_message VARCHAR2(
VARCHAR2(500
500);
); 
 
l_request_status BOOLEAN; 
BOOLEAN;
l_count NUMBER;
NUMBER ; 
l_inv_seq NUMBER;
NUMBER ; 

BEGIN
BEGIN  

BEGIN 
BEGIN  

FOR r_inv IN c_inv
FOR r_inv IN c_inv
LOOP 
LOOP 

select
select ap_invoices_interface_s
 ap_invoices_interface_s.
.NEXTVAL
NEXTVAL  into l_inv_seq
into l_inv_seq from dual
from dual;

INSERT 
INSERT INTO
INTO AP_INVOICES_INTERFACE
 AP_INVOICES_INTERFACE

invoice_id,
invoice_id , 
source, 
source,
org_id , 
invoice_type_lookup_code,
invoice_type_lookup_code , 
vendor_id,
vendor_id , 
vendor_site_id,
vendor_site_id , 
invoice_date,
invoice_date , 
invoice_num,
invoice_num , 
invoice_amount,
invoice_amount , 
terms_id,
terms_id , 
invoice_currency_code,
invoice_currency_code , 
gl_date,
gl_date , 
payment_currency_code,
payment_currency_code , 
payment_method_lookup_code

VALUES 
VALUES 

l_inv_seq,
l_inv_seq , 
r_inv.
r_inv .source
source,, 
r_inv.
r_inv .org_id
org_id,, 
r_inv.
r_inv .invoice_type
invoice_type, , 
r_inv.
r_inv .vendor_id
vendor_id, , 
r_inv.
r_inv .vendor_site_id
vendor_site_id, , 
r_inv.
r_inv .invoice_date
invoice_date, , 
r_inv.
r_inv .invoice_number
invoice_number, , 
r_inv.
r_inv .invoice_amount
invoice_amount, , 
r_inv.
r_inv .term_id
term_id,, 
r_inv.
r_inv .invoice_currency
invoice_currency, , 
r_inv.
r_inv .gl_date
gl_date,, 
r_inv.
r_inv .payment_currency
payment_currency, , 
r_inv.
r_inv .payment_method
); 
); 

FOR
FOR r_lin
 r_lin IN
IN c_lin
 c_lin(
(r_inv
r_inv.
.invoice_number
invoice_number)) 
LOOP
LOOP  
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch
INSERT INTO AP_INVOICE_LINES_INTERFACE
INSERT  INTO AP_INVOICE_LINES_INTERFACE

invoice_id,
invoice_id , 
invoice_line_id,
invoice_line_id , 
line_number,
line_number , 
line_type_lookup_code,
line_type_lookup_code , 
amount,
amount , 
dist_code_combination_id,
dist_code_combination_id , 
description

VALUES 
VALUES  

l_inv_seq,
l_inv_seq , 
ap_invoice_lines_interface_s.
ap_invoice_lines_interface_s .NEXTVAL
NEXTVAL,, 
r_lin.
r_lin .line_num
line_num,, 
r_lin.
r_lin .line_type
line_type,, 
r_lin.
r_lin .line_amount
line_amount,, 
r_lin.
r_lin .code_combination_id
code_combination_id,, 
r_lin.
r_lin .line_description
);
); 
 
END 
END  LOOP;
LOOP; 
END 
END  LOOP
LOOP;; 

COMMIT; 
COMMIT;
END
END;

:= FND_REQUEST
l_conc_request_id := FND_REQUEST.
.SUBMIT_REQUEST
( APPLICATION =>
=> 
 'SQLAP' 
'SQLAP' 
,PROGRAM => 
=> 'APXIIMPT' 
'APXIIMPT' 
,ARGUMENT1 => 
=> '204' 
'204' 
,ARGUMENT2 => 
=> 'MANUAL INVOICE ENTRY' 
ENTRY' 
,ARGUMENT4 => l_batch_name
=> l_batch_name
); 
); 

COMMIT
COMMIT;; 

l_request_status :=
:= FND_CONCURRENT
 FND_CONCURRENT..WAIT_FOR_REQUEST

l_conc_request_id,
l_conc_request_id , 
60,
60, 
0, 
l_phase,
l_phase , 
l_status,
l_status , 
l_dev_phase,
l_dev_phase , 
l_dev_status,
l_dev_status , 
l_message
);
); 
 

COMMIT;
COMMIT ; 
EXCEPTION
EXCEPTION  
WHEN 
WHEN  OTHERS
OTHERS  
THEN 
THEN 
raise_application_error(
raise_application_error (-20103
-20103,,'Error -'||
-'||SQLCODE
SQLCODE||
||'-'
'-'||
||sqlerrm
sqlerrm);
); 
 
END XXAA_APINV_IFACE_IMPORT_PRC;
END XXAA_APINV_IFACE_IMPORT_PRC ; 

END XXAA_APINV_IFACE_PKG
END XXAA_APINV_IFACE_PKG;; 

--> ====================================================================
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Integrator
1. Create Integrator
Navigation : Desktop Integration Manager Responsibility-> Create Integrator

Integrator Name : XXAA APINV Interface Integrator 


Internal Name : XXAA_APINV_IFACE_INTEGRATOR  
Application : Payables 
Next
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

2. Create Interface
Interface Name : XXAA APINV Interface  
Interface Type : API – Procedure 
Package Name : XXAA_APINV_IFACE_PKG 
Procedure/Funtion : XXAA_APINV_IFACE_LOAD_PRC  
API Returns : FND Message Code 
Click on Apply button
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Select the Interface and Click on Next button


 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

3. Create Content
Content Name : XXAA APINV Interface Content  
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Content Type : Text File


Number of columns :9
Apply

Rename the display names as per csv header columns for better under standing
And provide the content parameter (download parameter) as Web ADI: Download "Text File" Parameters
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

4. Create Uploader
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

5. Create Importer
Select importer type as PL/SQL API
Importer Name : XXAA_APINV_IFACE 
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Click on PL/SQL API Call plus button to add our custom procedure
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Enter following information


API Type : PL/SQL Procedure 
Package Name : XXAA_APINV_IFACE_PKG 
Procedure Name : XXAA_APINV_IFACE_IMPORT_PRC
API Returns : FND Message Code 
Click on apply and then submit button
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Layout
1.  Create Layout
Navigation: Desktop Integration Responsibility
Responsibility Define Layout
Select the integrator Go Create button

2.  Enter the name : XXAA APINV Interface Layout

3.  Include the fields in layout, Select the line in Placement


 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Click on Apply button


 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

2. Define Mapping
1.  Define mapping
Navigation: Desktop Integration Responsibility -> Defining mapping-> select integrator-> go

2.  Click on define mapping button

 
3.
MappingEnter
Name the mapping details
: XXAA APINV Interface Mapping
Mapping Key : XXAA_APINV_IFACE_MAPPING 
Number of column : 9 
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

4.  Map the source and target columns


 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

3. Create Document
1.  Create Document :- Test the document with sample data
Navigation: Desktop Integration Responsibility
Responsibility -> Create Document -> select integrator

2.  Select the desktop application like excel or word

3.  Select the layout if there are multiple layouts


4.  Select the content
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

5.  Select the data file

6.  Select the NONE to open the Excel file


 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

7.  Click on create document button

8.  Click on create document button to download the sheet


 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Enter the data and


a nd upload and verify the invoice number from application

Note: we have developed the sheet. Now it needs some cosmetic changes
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Changes
1.  Change the Labels of fields
Navigation: Go to integrator-> Interface-> Enter the Integrator name and click on Go

Click on Update button

Click on Next
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Select the Integrator


 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Change the Prompt Left Label


 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Click on the Update button and change Above Prompt then Save and Submit
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

  Create the document to check new changes

2.  Assign LOV and hints to the columns


Navigation: Go to integrator-> Interface->click on update button of respective attribute (say P_INVOICE_CURRENCY) to add
LOV
check the not null check box to indicate required columns in spread sheet
Select the validation type as table and enter below information
Validation Type : Table 
Id Column : CURRENCY_CODE 
Meaning Column : CURRENCY_CODE 
Desc Column : CURRENCY_CODE 
Validation Entity : FND_CURRENCIES 

Provide the information under user hint text item as ‘*List


*List––Text’ to give an idea user about what value should be entered or
select
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

  Do the same for other columns too then save and get the new document to see the changes
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

3.  Add default value as ‘USD’ to currency code item item  


Navigation: Go to integrator-> Interface-> select the default type and default value for currency code attribute

Do the changes for all


a ll required fields
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Result
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Defining the Form Function for Integrator


Define the form function for integrator to run the custom ADI document from any responsibility

1.  Define the custom Form Function


Navigation -> Application Developer -> Application -> Function

Function : XXAA_APINV_IFACE_FF 
User Function Name : XXAA APINV Interface Integrator 
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Properties Type - SSWA servlet function 

Form Parameters
bne:page=BneCreateDoc&bne:viewer=BNE:EXCEL2007&bne:reporting=N&bne:integrator=USER_NAME:
bne:page=BneCreateDoc&bne:viewer=BNE:EXCEL2007&bne:reporting=N&bne:integrator=USER_NAME:XXA
XXA
A APINV Interface Integrator&bne:noreview=Yes
Integrator&bne:noreview=Yes
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Web HTML HTML Call : BneApplicationService

Save it.

Assign Function to Custom Menu


Go and add the function into the custom responsibility
Navigation-> Application Developer
Developer -> Application -> Menu
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Search for your menu where you want to add this ADI
Menu : AP_NAVIGATE_GUI12
Prompt : XXAA APINV Interface Integrator  
Function : XXAA APINV Interface Integrator  
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Now you can navigate to your custom responsibility to see the ADI which you have assigned.
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Test the sheet


1.  Once you create document, it will populate the file data on the sheet

2.  Fill the required information


Sup Su In In Pa Lin Lin Lin C A D P
Inv Supp p pp v v y Pay e e e Line o c e O r
OU Typ Nam Nu Sit Inv Inv A Ter Cu GL Cu Met Nu Ty A Descripti m c p u o
Source Name e e m e Date Num mt ms rr Date rr hod m pe mt on p t t lt d
STA Dell 15- 15- Im 15- 6 0
MANUAL Vision ND Com NO NOV- me MA 15-NOV- 1 1 0 0
INVOICE Opera AR puter 509 DE V- 2015_0 9.9 diat US R- US CH ITE 4.4 2015_001 - 1 0 0 0
ENTRY tions D s 2 LL 2015 01 9 e D 2015 D ECK 1 M 4 Line_01 01 0 0 0 0
STA Dell 15- 15- Im 15- 6 0
MANUAL Vision ND Com NO NOV- me MA 15-NOV- 1 1 0 0
INVOICE Opera AR puter 509 DE V- 2015_0 9.9 diat US R- US CH ITE 3.3 2015_001 - 1 0 0 0
ENTRY tions D s 2 LL 2015 01 9 e D 2015 D ECK 2 M 3 Line_02 01 0 0 0 0
STA Dell 15- 15- Im 15- 6 0
MANUAL Vision ND Com NO NOV- me MA 15-NOV- 1 1 0 0
INVOICE Opera AR puter 509 DE V- 2015_0 9.9 diat US R- US CH ITE 2.2 2015_001 - 1 0 0 0
ENTRY tions D s 2 LL 2015 01 9 e D 2015 D ECK 3 M 2 Line_03 01 0 0 0 0

3.  Upload the data into oracle


Navigation: Add-Ins Tab-> Oracle-> Upload

4.  Once we click on upload button, it will pop up the upload page where we have to select ‘Automatically Submit
Import’ check box as we have added import procedure in importer rule . If it is checked then only it will call that import
program, otherwise it wont
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

5.  If there is any error, then program will return error message and will rollback the transaction

6.  After correcting the data, run again. And if there is no error, then program will insert all validated data into oracle
tables and call the import journal program

Click on Upload button


 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Wait until Import program completed

7.  We can monitor the import program from spread sheet itself by clicking on monitor button
Click on the Monitor to check the request id
Nav : Add-Ins Oracle Monitor
 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Verify the concurrent request id from application


 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Click on View Output button


 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Search with Invoice number from payables responsibility


 

 
Oracle Custom WEB ADI for AP Invoice Interface Ra u Ch

Check the from the backend tables

You might also like