XML GATEWAY INBOUND - ВЫЗОВ API (PL / SQL-тип записи IN переменная) ДЛЯ ВСТАВКИ ДАННЫХ В ОБРАЗЕЦ ТАБЛИЦЫ
Я использую XML Gateway для передачи данных в Oracle Apps, используя вызов процедуры с «Типом записи» в качестве параметра. Я получаю «неправильное число» или ошибку несоответствия типов аргументов, несмотря на то, что я следую процессу, описанному в Руководстве пользователя Oracle XML Gateway
Шаги:
Я создал образец таблицы XX_CUST_HIST(ID NUMBER, ACCOUNT_NAME VARCHAR2(50), FIRST_NAME VARCHAR2(50), LAST_NAME VARCHAR2(50), TITLE VARCHAR2(50))
Затем я создал пакет XX_XML_DEMO_API
, в котором мы определили тип записи и процедуру.
Тип записи customerRecordType
содержит имя учетной записи, имя, фамилию и название.
Процедура insert_customer_r
принимает 2 аргумента IN:
- p_ id номер
- p_customer customerRecordType
Процедура вставит значения в таблицу xx_cust_hist
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
Теперь мне нужно вызвать процедуру XX_XML_DEMO_API.insert_customer_r
из шлюза XML.
Ниже приведены шаги для вызова процедуры:
Создать 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)
Создание карты XML
Тип определения данных для источника и назначения задан как XML.
При выполнении процедуры XX_XML_DEMO_API.insert_customer_r
в post_process от дизайнера сообщений вместо 2 (p_id IN number , p_customer IN customerRecordType)
параметров отображается 6 параметров (p_id IN number, p_customer IN customerRecordType, account_name IN varchar2, first_name IN varchar2, last_name IN varchar2, title IN varchar2)
. Отображаются шесть параметров вместо двух, которые действительно нужны процедуре.
Тестирование карты XML.
Сообщение об ошибке в мониторе транзакций:
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
Процесс выполнен и выдает сообщение об ошибке, указанное в шаге 3.
В стандартной документации неясно, как это должно быть сделано.
Будучи новичком в технологии XML Gateway, я не могу понять, каким может быть сообщение об ошибке и какой этап процесса породил это сообщение. Может ли кто-нибудь помочь мне продолжить?
Заранее спасибо.