|Oracle XML Gateway- Mapping XML to Oracle Apps API - Wrong Number or types of arguments mismatch err [message #544675]
||Thu, 23 February 2012 04:53
Registered: February 2012
XML GATEWAY INBOUND CALLING AN API (PL/SQL record type IN variable) TO INSERT THE DATA INTO SAMPLE TABLE|
I am using XML Gateway to push data into Oracle Apps using a procedure call with "Record Type" as the parameter. I am getting a "wrong number" or types of arguments mismatch error inspite of following the process described in the Oracle XML Gateway User's Guide
1. I Created a sample table XX_CUST_HIST(ID NUMBER, ACCOUNT_NAME VARCHAR2(50), FIRST_NAME VARCHAR2(50), LAST_NAME VARCHAR2(50), TITLE VARCHAR2(50))
2.I then Created a package 'XX_XML_DEMO_API' in which we have defined a record type and a procedure.
3.The Record type 'customerRecordType' holds account_name , first_name, last_name and the title.
4.The Procedure 'insert_customer_r' takes 2 IN arguments :
1. p_ id number
2. p_customer customerRecordType
5.The procedure will insert the values into xx_cust_hist table
p_id -> id
p_customer.account_name -> account_name
p_customer.first_name -> first_name
p_customer.last_name -> last_name
p_customer.title -> title
Now I need to call the procedure 'XX_XML_DEMO_API . insert_customer_r' from XML gateway.
Following are the steps to call the procedure:
 Create DTD
ELEMENT NEW_CUSTOMER_APIR (DATAAREA)
ELEMENT DATAAREA (CUSTOMER_DATA)
ELEMENT CUSTOMER_DATA (ID, CUSTOMER_RECORD)
ELEMENT ID (#PCDATA)
ELEMENT CUSTOMER_RECORD (ACCOUNT_NAME, FIRST_NAME, LAST_NAME, TITLE)
ELEMENT ACCOUNT_NAME (#PCDATA)
ELEMENT FIRST_NAME (#PCDATA)
ELEMENT LAST_NAME (#PCDATA)
ELEMENT TITLE (#PCDATA)
 Creation of XML map Data Definition type for Source and Destination are set to XML.
While executing the procedure 'XX_XML_DEMO_API . insert_customer_r' in post_process from the message designer, instead of 2 (p_id IN number , p_customer IN customerRecordType) parameters it is showing 6 parameters (p_id IN number, p_customer IN customerRecordType, account_name IN varchar2, first_name IN varchar2, last_name IN varchar2, title IN varchar2). Six parameters are getting mapped, instead of the 2 that the procedure really needs.
 Testing of XML map. Error message in transaction monitor: ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'INSERT_CUSTOMER_R' ORA-06550: line 1, column 7: PL/SQL: Statement ignored - ECX_ACTIONS.BIND_PROC_VARIABLES
The process executed and produced the error message given in the step 3.
The standard documentation is unclear on how this should be done. Being a newbie to the XML Gateway technology I am unable to get a clue about what the error message could be and which step of the process produced the message. Could anyone help me to proceed further?
Thanks in advance.