Debug Issues While Calling Award External Web Service

When you're using legacy purchasing application other than Oracle Purchasing to create purchasing documents, use the Negotiation Award Web Service to generate the OAGIS award XML file and pass this file to the external purchasing service.

The external service processes the XML file and creates the purchasing documents in the legacy purchasing application.

Using an External Purchasing Application

On the Purchasing Documents page, clicking Export Purchasing Documents calls the Award Web Service and the application passes the purchase information to generate the .xml file. The Award Web Service passes the xml file to the external purchasing application for processing. Once the purchasing documents are created in external legacy purchasing application, you can run another web service, Update Purchasing Document Numbers which imports the external purchasing document numbers and the links you can follow to view the full details of the externally created purchasing documents in the legacy application.

Configure Award Outbound Web Service

To configure award outbound web service:

  1. In the Setup and Maintenance work area, go to the Configure Procurement Business Function task:

    • Offering: Procurement

    • Functional Area: Procurement Foundation

    • Task: Configure Procurement Business Function

  2. For your procurement BU, enable the Award outbound web service, in Sourcing, for Purchasing Documents, select Export using web service, and then click Save and Close.

  3. In the Setup and Maintenance work area, go to the Configure Negotiation Award Outbound Service task:

    • Offering: Procurement

    • Functional Area: Sourcing

    • Task: Configure Negotiation Award Outbound Service

  4. Provide the URL of service end point, provide the credentials, and then click Save and Close.

    Note: The URL must be https (secured) and must not be http. Also, it must not include ?wsdl at the end. Basically, only the service URL must be given. This is a sample URL:https://<host_name>:<port_number)/<context_path> where a sample <context_path> = ic/ws/integration/v1/flows/soap/ICAAWARDOUTBOUNDAYNC/1.0.
  5. All the certificates of the external web service ( including the root certificate and intermediate certificate) must be imported in to the cloud application. You need to log a service request with cloud operations for getting this done. This can be done using the keytool command. Post the import and then bounce the domain.

    For example:

    1. [oracle@lpfar52114l04 efln-test:BI tmp]$ /u01/APPLTOP/fusionapps/jdk/bin/keytool -importcert -alias GoDaddyRootCertificateAuthority-G2 -keystore /u01/APPLTOP/instance/keystores/fusion_trust.jks -file GoDaddyRootCertificateAuthority-G2.crt

      Enter keystore password: Certificate was added to keystore

    2. [oracle@lpfar52114l04 efln-test:BI tmp]$ /u01/APPLTOP/fusionapps/jdk/bin/keytool -importcert -alias GoDaddySecureCertificateAuthority-G2 -keystore /u01/APPLTOP/instance/keystores/fusion_trust.jks -file GoDaddySecureCertificateAuthority-G2.crt

      Enter keystore password: Certificate was added to keystore

    3. [oracle@lpfar52114l04 efln-test:BI tmp]$ /u01/APPLTOP/fusionapps/jdk/bin/keytool -importcert -alias frisiacoopbr -keystore /u01/APPLTOP/instance/keystores/fusion_trust.jks -file -frisiacoopbr.crt

      Enter keystore password: Certificate was added to keystore

  6. Consider these requirements for the external web service:

    It must be a SOAP service and not a REST service. It must be secured (https). Attach the policy oracle/wss_username_token_over_ssl_service_policy. The web service operation must have this structure in the wsdl, Operation's name must be printXMLAsync.

    <wsdl:operation name="printXMLAsync">

    <wsdl:input message="tns:AppModuleService_printXMLAsync" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl" ns1:Action="http://xmlns.oracle.com/oracle/apps/model/printXMLAsync"/>

    </wsdl:operation>

    Where message tns:AppModuleService_printXMLAsync is of this type

    <element name="printXMLAsync">

    <complexType>

    <sequence>

    <element name="awardData" type="string"/>

    </sequence>

    </complexType>

    </element>

    Note: If you 're creating this web service using JDeveloper, the service method that you create must have this signature. Then, wsdl will have the structure as mentioned in the preceding paragraph.public void printXMLAsync(String awardData)Cloud application calls the preceding service by passing OAGIS standard format enclosed in string format as input payload.
  7. If the preceding changes were done, but the web service is not getting invoked, then verify these details.

    1. Is it related to network connectivity?

      This check can be done by logging in to the application server where web-logic or procurement software is installed or deployed, you can ping the host name of the web service.

    2. Does proxy changes enabled to the URL of the web service to be invoked from procurement screens?

      Verify proxy settings.