Register a Third-Party Transfer Price Calculation Web Service

In some scenarios, you may want to use a third-party pricing web service to calculate the transfer price used in a Supply Chain Financial Orchestration flow. To do so, you must first register the web service.

To register a third-party transfer price web service:

  1. Sign in to Oracle Fusion Cloud Supply Chain Management as an Application Implementor or Administrator.

  2. In the Setup and Maintenance work area, go to the following.

    • Offering: Manufacturing and Supply Chain Materials Management

    • Functional Area: Supply Chain Financial Flows

    • Task: Register Financial Orchestration Third-Party Transfer Pricing Service

  3. Enter the URL of the third-party web service in one of the following formats:

    • If you're using the predefined Service Name (FinancialOrchestrationTransferPriceCustomService) and Port Name (FinancialOrchestrationTransferPriceCustomPort), use the syntax given in the following table.

      Syntax

      Example

      {HTTP_Protocol}://{Host_Name}:{Port}/{ServiceName}

      https://abc.com:8888/ws/FinancialOrchestrationTransferPriceCustomService/1.0

    • If you're using a modified Service Name and Port Name, use the syntax given in the following table.

      Syntax

      Example

      {HTTP_Protocol}://{Host_Name}:{Port}/{ServiceName},CustomServiceName,CustomServicePort

      https://abc.com:8888/ws/FinancialOrchestrationTransferPriceCustomService_VS/1.0,CustomFinancialOrchestrationTransferPriceServiceName,CustomFinancialOrchestrationPortName

  4. Select a security policy from the following options:

    • oracle/wss10_username_token_with_message_protection_client_policy

    • oracle/wss11_username_token_with_message_protection_client_policy

    • oracle/wss_http_token_over_ssl_client_policy

    • oracle/wss_saml_token_over_ssl_client_policy

    • oracle/wss_username_token_over_ssl_client_policy

  5. Enter a User Name and Password.

  6. Enter a Keystore Alias.

  7. Click Save and Close.

Note: Use the predefined specifications while creating the web service specifications. Specifications, such as the input and output parameters and data types and the operation name, aren't configurable.

The WSDL template to use for the web service is as follows:

<wsdl:definitions
     name="FinancialOrchestrationTransferPriceCustomService"
     targetNamespace="http://xmlns.oracle.com/apps/scm/fos/orchestrationProcesses/transferPrice/transferPriceCustomService"
     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
     xmlns:tns="http://xmlns.oracle.com/apps/scm/fos/orchestrationProcesses/transferPrice/transferPriceCustomService"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
     xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    >
    <wsdl:documentation>
        <name>Compute Custom Transfer Price</name>
        <docCategories>
            <category>None</category>
        </docCategories>
    </wsdl:documentation>
    
    <wsdl:types>
        <xs:schema version="1.0" targetNamespace="http://xmlns.oracle.com/apps/scm/fos/orchestrationProcesses/transferPrice/transferPriceCustomService/proxy/types"
             xmlns:xs="http://www.w3.org/2001/XMLSchema">
            <xs:complexType name="customTransferPriceResponse">
                <xs:sequence>
                    <xs:element name="description" type="xs:string" minOccurs="0"/>
                    <xs:element name="errorsExistFlag" type="xs:boolean" minOccurs="0"/>
                    <xs:element name="unitPrice" type="xs:decimal" minOccurs="0"/>
                </xs:sequence
            </xs:complexType>
            <xs:complexType name="customTransferPrice">
                <xs:sequence>
                    <xs:element name="agreementFTRId" type="xs:long" minOccurs="0"/>
                    <xs:element name="currencyCode" type="xs:string" minOccurs="0"/>
                    <xs:element name="customerDeliverToLocationId" type="xs:long" minOccurs="0"/>
                    <xs:element name="customerShipToLocationId" type="xs:long" minOccurs="0"/>
                    <xs:element name="eventId" type="xs:long" minOccurs="0"/>
                    <xs:element name="flowInstanceId" type="xs:long" minOccurs="0"/>
                    <xs:element name="fromBusinessUnitId" type="xs:long" minOccurs="0"/>
                    <xs:element name="fromLegalEntityId" type="xs:long" minOccurs="0"/>
                    <xs:element name="inventoryItemId" type="xs:long" minOccurs="0"/>
                    <xs:element name="lineTypeCode" type="xs:string" minOccurs="0"/>
                    <xs:element name="purchaseOrderDestination" type="xs:string" minOccurs="0"/>
                    <xs:element name="purchasingCategory" type="xs:string" minOccurs="0"/>
                    <xs:element name="quantity" type="xs:decimal" minOccurs="0"/>
                    <xs:element name="quoteModeFlag" type="xs:boolean" minOccurs="0"/>
                    <xs:element name="requisitionOrganizationCode" type="xs:string" minOccurs="0"/>
                    <xs:element name="shipFromOrganizationCode" type="xs:string" minOccurs="0"/>
                    <xs:element name="sourceDocumentId" type="xs:string" minOccurs="0"/>
                    <xs:element name="sourceDocumentType" type="xs:string" minOccurs="0"/>
                    <xs:element name="supplierSiteId" type="xs:long" minOccurs="0"/>
                    <xs:element name="toBusinessUnitId" type="xs:long" minOccurs="0"/>
                    <xs:element name="toLegalEntityId" type="xs:long" minOccurs="0"/>
                    <xs:element name="transactionDate" type="xs:dateTime" minOccurs="0"/>
                    <xs:element name="unitOfMeasure" type="xs:string" minOccurs="0"/>
                    <xs:element name="CtoSalesRows" minOccurs="0" maxOccurs="unbounded">
                        <xs:complexType>
                            <xs:sequence>
                              <xs:element name="configItemId" type="xs:long" minOccurs="0"/>
                              <xs:element name="inventoryItemId" type="xs:long" minOccurs="0"/>
                              <xs:element name="subItemType" type="xs:long" minOccurs="0"/>
                              <xs:element name="lineId" type="xs:long" minOccurs="0"/>
                              <xs:element name="parentLineId" type="xs:long" minOccurs="0"/>
                              <xs:element name="unitQty" type="xs:decimal" minOccurs="0"/>
                              <xs:element name="unitUom" type="xs:string" minOccurs="0"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:schema>
        <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xmlns.oracle.com/apps/scm/fos/orchestrationProcesses/transferPrice/transferPriceCustomService"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://xmlns.oracle.com/apps/scm/fos/orchestrationProcesses/transferPrice/transferPriceCustomService"
             xmlns:ns1="http://xmlns.oracle.com/apps/scm/fos/orchestrationProcesses/transferPrice/transferPriceCustomService/proxy/types">
            <import namespace="http://xmlns.oracle.com/apps/scm/fos/orchestrationProcesses/transferPrice/transferPriceCustomService/proxy/types"/>
            <xsd:complexType name="computeCustomTransferPrice">
                <xsd:sequence>
                    <xsd:element name="arg0" type="ns1:customTransferPrice"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:element name="computeCustomTransferPrice" type="tns:computeCustomTransferPrice"/>
            <xsd:complexType name="computeCustomTransferPriceResponse">
                <xsd:sequence>
                    <xsd:element name="return" type="ns1:customTransferPriceResponse"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:element name="computeCustomTransferPriceResponse" type="tns:computeCustomTransferPriceResponse"/>
        </schema>
    </wsdl:types>
    <wsdl:message name="computeCustomTransferPriceInput">
        <wsdl:part name="parameters" element="tns:computeCustomTransferPrice"/>
    </wsdl:message>
    <wsdl:message name="computeCustomTransferPriceOutput">
        <wsdl:part name="parameters" element="tns:computeCustomTransferPriceResponse"/>
    </wsdl:message>
    <wsdl:portType name="FinancialOrchestrationTransferPriceCustom">
        <wsdl:operation name="computeCustomTransferPrice">
            <wsdl:input message="tns:computeCustomTransferPriceInput" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"
                 ns1:Action=""/>
            <wsdl:output message="tns:computeCustomTransferPriceOutput" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"
                 ns1:Action=""/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="FinancialOrchestrationTransferPriceCustomSoapHttp" type="tns:FinancialOrchestrationTransferPriceCustom">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="computeCustomTransferPrice">
            <soap:operation soapAction=""/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="FinancialOrchestrationTransferPriceCustomService">
        <wsdl:port name="FinancialOrchestrationTransferPriceCustomPort" binding="tns:FinancialOrchestrationTransferPriceCustomSoapHttp">
            <soap:address location="http://localhost:7101/FinancialOrchestration-FosTransferPriceService-webapp/FinancialOrchestrationTransferPriceCustomService"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>