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

  1. Create and import the payload.

  2. Verify you imported the context code.

  3. Verify you imported the flexfield segment.

Create and Import the Payload

  1. 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.

  2. Use ReceiveOrderRequestService to import the payload. For details, see Guidelines for Using Web Services to Integrate Order Management.

Verify You Imported the Context Code

  1. 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.

  2. 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.

      Overview tab, Definition Parts area, 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 that xsd:element name= contains FulfillLineEffBPCTESTAUGprivateVO.

      This value must match the value you included earlier in your import payload. For example, <ns12:FulfillLineEffBPCTESTAUGprivateVO>.

  3. 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:

      Edit Context page, verifying the context contains the values you imported

    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

  1. In SoapUI, in the Projects area, double click ReceiveOrderRequestServiceBinding.

  2. 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.

    the Overview tab, in the Definition Parts area, the link next to the link

    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>
  3. In xsd:extension base="ns0:FulfillLineEff", verify that xsd: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.