Use Your Own Payload to Import Extensible Flexfields
You typically modify a predefined, example payload that imports an extensible flexfield. But you can also create your own payload that meets your specific requirements.
-
You will create an example payload that uses the ReceiveOrderRequestService web service to import a test extensible flexfield.
-
This topic describes the minimum details you must include.
-
Learn how to modify an example predefined payload instead. For details, see Example Web Service Payloads That Integrate Order Management.
Summary of the Steps
-
Create and import the payload.
-
Verify you imported the context code.
-
Verify you imported the flexfield segment.
Create and Import the Payload
-
Create the payload.
-
Add header details.
<ns2:AdditionalHeaderInformationCategories xsi:type="ns12:j_HeaderEffDooHeadersAddInfoprivate" xmlns:ns3=http://xmlns.oracle.com/apps/scm/doo/processOrder/service/ xmlns:ns12=http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/headerCategories/ xmlns:ns22=http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/headerContextsB/ xmlns:ns8="http://xmlns.oracle.com/apps/scm/doo/processOrder/model/"> <ns8:Category>DOO_HEADERS_ADD_INFO</ns8:Category> <ns8:SourceTransactionLineIdentifier>1</ns8:SourceTransactionLineIdentifier> <ns8:SourceTransactionScheduleIdentifier>1</ns8:SourceTransactionScheduleIdentifier> <ns12:HeaderEffBPREVIOUS_5FSO_5FREFprivateVO> <ns8:ContextCode>PREVIOUS_SO_REF</ns8:ContextCode> <ns22:locationname>West Coast</ns22:locationname> </ns12:HeaderEffBPREVIOUS_5FSO_5FREFprivateVO> </ns2:AdditionalHeaderInformationCategories>
-
Add fulfillment line details.
<ns2:AdditionalFulfillmentLineInformationCategories xsi:type="ns12:j_FulfillLineEffDooFulfillLinesAddInfoprivate" xmlns:ns12="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineCategories/"xmlns:ns22=http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineContextsB/ xmlns:ns8="http://xmlns.oracle.com/apps/scm/doo/processOrder/model/"> <ns8:Category>DOO_FULFILL_LINES_ADD_INFO</ns8:Category> <ns8:SourceTransactionLineIdentifier>1</ns8:SourceTransactionLineIdentifier> <ns8:SourceTransactionScheduleIdentifier>1</ns8:SourceTransactionScheduleIdentifier> <ns12:FulfillLineEffBADD_CONTEXT_HEREprivateVO> <ns8:ContextCode>ADD_CONTEXT_HERE</ns8:ContextCode> <ns22:ADD_SEGMENT_HERE>Working</ADD_SEGMENT_HERE> </ns12:FulfillLineEffBADD_CONTEXT_HEREprivateVO> </ns2:AdditionalFulfillmentLineInformationCategories> </ns2:OrchestrationOrderRequestLine>
where
-
You change ADD_CONTEXT_HERE to the context code.
-
You change ADD_SEGMENT_HERE to the segment.
-
You add extensible flexfields details as the last line of the order line details, immediately before
</ns2:OrchestrationOrderRequestLine>
.
-
For example:
<ns2:AdditionalFulfillmentLineInformationCategories xsi:type="ns12:j_FulfillLineEffDooFulfillLinesAddInfoprivate" xmlns:ns12=http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineCategories/ xmlns:ns22=http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineContextsB/ xmlns:ns8="http://xmlns.oracle.com/apps/scm/doo/processOrder/model/"> <ns8:Category>DOO_FULFILL_LINES_ADD_INFO</ns8:Category> <ns8:SourceTransactionLineIdentifier>1</ns8:SourceTransactionLineIdentifier> <ns8:SourceTransactionScheduleIdentifier>1</ns8:SourceTransactionScheduleIdentifier> <ns12:FulfillLineEffBPCTESTAUGprivateVO> <ns8:ContextCode>PCTESTAUG</ns8:ContextCode> <ns22:pctestaugseg1>Working</pctestaugseg1> </ns12:FulfillLineEffBPCTESTAUGprivateVO> </ns2:AdditionalFulfillmentLineInformationCategories> </ns2:OrchestrationOrderRequestLine>
where
-
PCTESTAUG is the context.
-
pctestaugseg1 is the segment. PCTESTAUG includes only one segment.
Notice the value for the FulfillLineEffBPCTESTAUGprivateVO virtual object. You will verify it later.
-
-
Use ReceiveOrderRequestService to import the payload. For details, see Guidelines for Using Web Services to Integrate Order Management.
Verify You Imported the Context Code
-
Open SoapUI, then create a project.
Attribute
Value
Project Name
Create Order with EFF Test
Initial WSDL
http://host:port/ soa-infra/services/default/DooDecompReceiveOrderExternalComposite/ReceiveOrderRequestServiceWSDL
Replace host:port with your server address.
Create Requests
Enabled.
-
Verify the virtual object.
-
In the Projects area, double click ReceiveOrderRequestServiceBinding.
-
On the Overview tab, in the Definition Parts area, click the link next to J_FulfillLineEFFDooFulfillLinesAdd.
Your browser displays the XSD.
<?xml version='1.0' encoding='UTF-8'?> <xsd:schema xmlns:ns0="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineContextsB/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sdoXML="commonj.sdo/xml" xmlns:sdo="commonj.sdo" xmlns="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineCategories/" targetNamespace="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineCategories/" elementFormDefault="qualified"> <xsd:import schemaLocation="../fulfillLineContextsB/Lineprcoverride.xsd" namespace="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineContextsB/"></xsd:import> <xsd:import schemaLocation="../fulfillLineContextsB/Pctestaug.xsd" namespace="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineContextsB/"></xsd:import> <xsd:import schemaLocation="https://eczc-test.scm.em2.oraclecloud.com:443/soa-infra/services/default/DooDecompReceiveOrderExternalComposite/soa-cp/xml/sdoXML.xsd" namespace="commonj.sdo/xml"></xsd:import> <xsd:import schemaLocation="https://eczc-test.scm.em2.oraclecloud.com:443/soa-infra/services/default/DooDecompReceiveOrderExternalComposite/soa-cp/xml/sdoModel.xsd" namespace="commonj.sdo"></xsd:import> <xsd:include schemaLocation="j_FulfillLineEffCategories.xsd"></xsd:include> <xsd:complexType name="j_FulfillLineEffDooFulfillLinesAddInfoprivate"> <xsd:annotation> <xsd:appinfo source="http://xmlns.oracle.com/adf/svc/metadata/"> <key xmlns="http://xmlns.oracle.com/adf/svc/metadata/"> <attribute>FulfillLineId</attribute> </key> </xsd:appinfo> </xsd:annotation> <xsd:complexContent> <xsd:extension base="j_FulfillLineEffCategories"> <xsd:sequence> <xsd:element name="FulfillLineEffBLinePrcOverrideprivateVO" type="ns0:Lineprcoverride" minOccurs="0" sdoXML:dataType="sdo:DataObject"></xsd:element> <xsd:element name="FulfillLineEffBPCTESTAUGprivateVO" type="ns0:Pctestaug" minOccurs="0" sdoXML:dataType="sdo:DataObject"></xsd:element> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="j_FulfillLineEffDooFulfillLinesAddInfoprivate" type="j_FulfillLineEffDooFulfillLinesAddInfoprivate"></xsd:element> </xsd:schema>
-
In
dataType="sdo:DataObject"
, verify thatxsd:element name=
contains FulfillLineEffBPCTESTAUGprivateVO.This value must match the value you included earlier in your import payload. For example,
<ns12:FulfillLineEffBPCTESTAUGprivateVO>
.
-
-
Verify the context code.
-
Make sure you have the privileges that you need to administer Order Management.
-
In the Setup and Maintenance work area, go to the task.
-
Offering: Order Management
-
Functional Area: Orders
-
Task: Manage Order Extensible Flexfields
-
-
On the Manage Extensible Flexfields page, search for the value.
Attribute
Value
Flexfield Code
DOO_FULFILL_LINES_ADD_INFO
-
In the search results, click Actions > Edit.
-
On the Edit Extensible Flexfield page, click Manage Contexts.
-
On the Manage Contexts page, search for the value.
Attribute
Value
Code
PCTESTAUG
-
Verify the search results display your context, then click Actions > Edit.
-
On the Edit Context page, verify the context contains the values you imported.
On the header.
Attribute
Value
Code
PCTESTAUG
API Name
Pctestaug
Note this value. You will use it later when you verify the segment.
In the Context Sensitive Segments area.
Attribute
Value
Name
PCTESTAUGSEG1
Code
PCTESTAUGSEG1
On the Context usages tab, make sure a row exists that contains this value.
Attribute
Value
Name
Additional Fulfillment Line Information
For example:
If you prefer not to use the Manage Order Extensible Flexfields page, then as an alternative, run a SQL query against the Oracle database.
select fdct.application_ID, fdct.descriptive_flexfield_code, fdct.context_code, fdcb.context_identifier, fdcb.enabled_flag, fdct.description from fnd_df_contexts_TL fdct, fnd_df_contexts_B fdcb where fdct.context_code = fdcb.context_code and fdct.application_id = fdcb.application_id and fdct.language = 'US' and fdct.descriptive_flexfield_code = 'DOO_FULFILL_LINES_ADD_INFO';
Here's an example of data the query might return.
APPLICATION_ID
DESCRIPTIVE_FLEXFIELD_CODE
CONTEXT_CODE
CONTEXT_IDENTIFIER
ENABLED_FLAG
10008
DOO_FULFILL_LINES_ADD_INFO
LinePrcOverride
Lineprcoverride
Y
10008
DOO_FULFILL_LINES_ADD_INFO
Accounting_Rule
AccountingRule
N
10008
DOO_FULFILL_LINES_ADD_INFO
PCTESTAUG
Pctestaug
Y
PCTESTAUG is the CONTEXT_CODE for this example.
-
Verify You Imported the Flexfield Segment
-
In SoapUI, in the Projects area, double click ReceiveOrderRequestServiceBinding.
-
On the Overview tab, in the Definition Parts area, click the link next to Pctestaug.xsd.
Pctestaug
is the value of attribute API Name you noted earlier on the Edit Context page.Your browser displays the XSD.
<?xml version='1.0' encoding='UTF-8'?> <xsd:schema xmlns:ns0="http://xmlns.oracle.com/apps/scm/doo/processOrder/model/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineContextsB/" targetNamespace="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineContextsB/" elementFormDefault="qualified"><xsd:include xmlns:id="Pctestaug-xsd" schemaLocation="Pctestaug.xsd"></xsd:include> <xsd:import schemaLocation="../../model/FulfillLineEff.xsd" namespace="http://xmlns.oracle.com/apps/scm/doo/processOrder/model/"></xsd:import> <xsd:complexType name="Pctestaug"> <xsd:annotation> <xsd:appinfo source="http://xmlns.oracle.com/adf/svc/metadata/"> <key xmlns="http://xmlns.oracle.com/adf/svc/metadata/"> <attribute>EffLineId</attribute> </key> </xsd:appinfo> </xsd:annotation> <xsd:complexContent> <xsd:extension base="ns0:FulfillLineEff"> <xsd:sequence> <xsd:element name="pctestaugseg1" type="xsd:string" minOccurs="0" nillable="true"></xsd:element> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="pctestaug" type="Pctestaug"></xsd:element> </xsd:schema>
-
In
xsd:extension base="ns0:FulfillLineEff"
, verify thatxsd:element name=
contains pctestaugseg1.This value must match the value you included earlier in your import payload.
If you prefer not to use SoapUI to verify the flexfield segment, then as an alternative, run a SQL query against the Oracle database.
select fdst.DESCRIPTIVE_FLEXFIELD_CODE, fdst.CONTEXT_CODE, fdst.SEGMENT_CODE, fdst.NAME, fdsb.SEGMENT_IDENTIFIER, fdsb.COLUMN_NAME, fdsb.SEQUENCE_NUMBER from fnd_df_segments_tl fdst, fnd_df_segments_b fdsb where fdst.APPLICATION_ID = fdsb.APPLICATION_ID and fdst.ENTERPRISE_ID = fdsb.ENTERPRISE_ID and fdst.DESCRIPTIVE_FLEXFIELD_CODE = fdsb.DESCRIPTIVE_FLEXFIELD_CODE and fdst.CONTEXT_CODE = fdsb.CONTEXT_CODE and fdst.SEGMENT_CODE = fdst.SEGMENT_CODE and fdst.language = 'US' and fdst.descriptive_flexfield_code = 'DOO_FULFILL_LINES_ADD_INFO' order by fdst.CONTEXT_CODE, fdsb.SEQUENCE_NUMBER;
Here's an example of data the query might return.
DESCRIPTIVE_FLEXFIELD_CODE
CONTEXT_CODE
SEGMENT_CODE
NAME
SEGMENT_IDENTIFIER
COLUMN_NAME
DOO_FULFILL_LINES_ADD_INFO
Accounting_Rule
PC 1
pc1
PC 1
ATTRIBUTE_CHAR1
DOO_FULFILL_LINES_ADD_INFO
LinePrcOverride
SalePrcOverrideVal
SalePrcOverrideVal
saleprcoverrideval
ATTRIBUTE_NUMBER1
DOO_FULFILL_LINES_ADD_INFO
PCTESTAUG
PCTESTAUGSEG1
PCTESTAUGSEG1
pctestaugseg1
ATTRIBUTE_CHAR7
The pctestaugseg1 value in the SEGMENT_IDENTIFIER column must match the value in
<ns22:pctestaugseg1>
from your import payload.