I have a requirement to process and create/update the incomming PO Requisitions header, lines and distributions in Oracle EBS R12.2.10. There is a standard out of the box PO Requisition web service available but that comes with 3 seperate end points and third party cannot generate three different payloads one for header, line and distributions..They just want to send a single JSON request with header, lines and distributions. For that, I need to develope a custom rest web service to get data from JSON and insert into 3 stagging tables for further processing.
Took a while to understand the REST web services technology. Here is what I have accmplished so far and having an issue. See below:
- Create a pl/sql package with approperiate annotation (declare parameters) and package body
- Generate .ildt successfully
- Upload .ildt successfully
- Login to Integrated SOA Gateway responsibility, review custom service from the front end all parameters looks good
- Deploy the custom service successfully and provide the approperiate grant
- Enabled the logs to see the activity
- Create JSON data with some sample header, lines and distribution data
- CREATE OR REPLACE PACKAGE APPS.xx_po_req_int AS
- /* $Header: $ */
- /*#
- PBGC PO Requisition SOA Web Service
-
- @rep:scope public
-
- @rep:product po
-
- @rep:displayname PO Requisition SOA Web Service
-
- @rep:category BUSINESS_ENTITY PO_PURCHASE_REQUISITION
- */
- /*#
- This web service Validates, Creates, Updates and Cancel Requisition.
-
- @param p_req_flag VARCHAR2 Requisition Flag
-
- @param p_req_number VARCHAR2 Requisition Number
-
- @param po_req_lines IN PO Requisition Lines exposed column table
-
- @rep:displayname PO Requisition SOA Web Service
-
- @rep:scope public
-
- @rep:lifecycle active
- */
- PROCEDURE requisition_process (p_req_flag IN VARCHAR2,
- p_req_number IN VARCHAR2,
- po_req_lines IN PO_REQ_LINE_REC_NT
-
);
- END xx_po_req_int;
- /
ISSUE I created object and types to ready multiple lines
- CREATE OR REPLACE TYPE APPS.PO_REQ_LINE_REC_OBJ AS OBJECT
- (REQ_NUMBER_SEGMENT1 VARCHAR2(20),
- AMS_LINE_NUM VARCHAR2(10),
- ITEM_DESCRIPTION VARCHAR2(240),
- UNIT_OF_MEASURE VARCHAR2(25),
- UNIT_PRICE VARCHAR2(30),
- QUANTITY VARCHAR2(30),
- BASE_UNIT_PRICE VARCHAR2(30),
- LINE_TYPE VARCHAR2(50)); Created successfully
CREATE OR REPLACE TYPE APPS.PO_REQ_LINE_REC_NT AS TABLE OF PO_REQ_LINE_REC_OBJ; Created successfully
Open the SOAP ui and enter WADL link to import, and during import I get error:
org.apache.xmlbeans.impl.values.XmlValueOutOfRangeException: Invalid QName value: Can't resolve prefix 'db'
WADL (Please see the last line from the below. It has some thing to do with the TYPE i created above. I have no idea as why I have db prefix in the WADL
param name="P_REQ_FLAG" style="template" required="true" type="string"/ param name="P_REQ_NUMBER" style="template" required="true" type="string"/ param name="PO_REQ_LINES" style="template" required="true" type="db:APPS.PO_REQ_LINE_REC_NT"/
Please help me to resolve the issue. Thanks, Arshad
Google and Oracle support