Purchasing

Get Involved. Join the Conversation.

Posts

  • Boyuan Zhu
    How to Create Change Orders with a Script5.0
    Topic posted November 1, 2018 by Boyuan ZhuBronze Trophy: 5,000+ Points, tagged Orders, Web Services 
    Title:
    How to Create Change Orders with a Script
    Content:

    You can call the Purchase Order Service V2 to create change orders to keep your orders up to date. For example, you can use change orders to correct attribute values that have been defaulted to an undesired value or migrated from a legacy system with the wrong value. If you need to modify only a few orders, you can use the sample payloads in our previous post and a client like SoapUI. If you want to create many change orders, it is easier to do so using a script. In the following use case, orders have been created with the invoice match option set to Receipt, but now the business would like to set the option to Order for each schedule. 

    1. To use the script, you need to feed it data on the orders/lines/schedules/distributions you want to change. You can generate this data by running a data model on BI Publisher. The example code below will output an XML of all the schedules you need to update by selecting the schedules with invoice match option as Receipt and no receiving or invoicing has taken place. The XML also includes the desired new invoice match option (Order) for each schedule and the change order description for the header. You can save the output as data.xml in the script directory.

    SELECT pll.po_header_id AS HEADERID,
    pll.po_line_id AS LINEID, 
    pll.line_location_id AS SCHEDULEID,
    'Change match option' AS CHANGEORDERDESC,
    'Order' AS MATCHOPTION
    FROM po_line_locations_all pll, 
     po_distributions_all pod 
    WHERE
    pll.SCHEDULE_STATUS = 'OPEN' 
    AND pll.match_option = 'R' 
    AND pod.line_location_id = pll.line_location_id 
    AND NOT EXISTS 
     (SELECT 'txnexists' 
     FROM rcv_transactions rt 
     WHERE rt.po_line_location_id = pll.line_location_id) 
    AND NOT EXISTS 
     (SELECT 'invoiceexists' 
     FROM AP_INVOICE_DISTRIBUTIONS_ALL ap 
     WHERE ap.PO_DISTRIBUTION_ID = pod.PO_DISTRIBUTION_ID)
    

    2. To run the script (createChangeOrder.py attached below), you need the zeep SOAP library. You can install it using pip, or change the script to use your preferred SOAP library. 

    3. When you run the script, it reads the data.xml file and make a web service call for each order changed. For each order, the invoice match option on the selected schedules is updated to the desired invoice match option. You can change or add new attributes to the payload by changing BI Publisher SQL, and then parsing and referencing the output data in the script. Supported attributes can be found in the service definition

    Document:
  • Boyuan Zhu
    How to Import Orders and Agreements Using the ERP...45.0
    Topic posted November 1, 2018 by Boyuan ZhuBronze Trophy: 5,000+ Points, tagged Agreements, How-To, Orders, Web Services 
    Title:
    How to Import Orders and Agreements Using the ERP Integration Service
    Content:

    You can use the ERP Integration Service to automate file based data import (FBDI) between your system and Oracle Procurement Cloud. For example, you can create a program to convert import data from your system into the FBDI CSV format, encode the resulting ZIP file into the SOAP payload, and invoke the integration web service with the payload. The following section contains example payloads for importing purchase orders, blanket purchase agreements and contract purchase agreements. 

    Each payload includes a ParameterList of parameters for the import job. The examples below explain, in order, what each parameter is and what values are valid. Note that the parameters and the order of the parameters differ for each job. To figure out the value for id based parameters, you can look at the values for previous jobs on the Scheduled Processes Page, as seen in the screenshot below.

    Import SPO 

    Payload:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/types/" xmlns:erp="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/">
     <soapenv:Header/>
     <soapenv:Body>
     <typ:importBulkData>
     <typ:document>
     <erp:Content>INSERT YOUR ZIP FILE IN BASE64 ENCODING HERE</erp:Content>
     <erp:FileName>PoImportOrders.zip</erp:FileName>
     </typ:document>
     <typ:jobDetails>
     <erp:JobName>/oracle/apps/ess/prc/po/pdoi,ImportSPOJob</erp:JobName>
     <erp:ParameterList>204,100010026863783,NONE,204,2021,N,#NULL,N</erp:ParameterList>
     </typ:jobDetails>
     </typ:importBulkData>
     </soapenv:Body>
    </soapenv:Envelope>
    

    Parameters: 

    Procurement BU: Specify the id of the Procurement business unit that these documents should be imported into.

    Buyer: Specify the id of the buyer to be used when one is not included in the import data.

    Approval Action: NONE - Imports the document in Incomplete status requiring manual interaction. SUBMIT - Imports the document and submits it to the approval process after the document is imported. BYPASS - Imports the document in Open (approved) status without going through the approval process.

    Default Requisitioning BU: Specify the id of the Requisitioning business unit to be used when one is not included in the import data.

    Batch ID: Enter the value for your import data from the file-based data import template, to select the interface table data to be processed in the current run. For example: Batch ID = 123. Use it in conjunction with Import Source to identify the documents to be loaded to the application tables.

    Create or Update Item: Y to create an item that does not exist or update an existing item. N to not create or update any items. 

    Import Source: Enter the value for your import data from the file-based data import template, to select the interface table data to be processed in the current run. For example: Import Source = External Contracts. Use it in conjunction with Batch ID to identify the documents to be loaded to the application tables.

    Communicate Document: Y to have imported purchasing documents communicated to the supplier. N to not have imported purchasing documents communicated to the supplier.

     

    Import BPA 

    Payload:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/types/" xmlns:erp="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/">
     <soapenv:Header/>
     <soapenv:Body>
     <typ:importBulkData>
     <typ:document>
     <erp:Content>INSERT YOUR ZIP FILE IN BASE64 ENCODING HERE</erp:Content>
     <erp:FileName>PoImportBlanketAgreements.zip</erp:FileName>
     </typ:document>
     <typ:jobDetails>
     <erp:JobName>/oracle/apps/ess/prc/po/pdoi,ImportBPAJob</erp:JobName>
     <erp:ParameterList>204,100010026863783,N,NONE,2021,#NULL,N</erp:ParameterList>
     </typ:jobDetails>
     </typ:importBulkData>
     </soapenv:Body>
    </soapenv:Envelope>
    

    Parameters: 

    Procurement BU: Specify the id of the Procurement business unit that these documents should be imported into.

    Buyer: Specify the id of the buyer to be used when one is not included in the import data.

    Create or Update Item: Y to create an item that does not exist or update an existing item. N to not create or update any items. 

    Approval Action: NONE - Imports the document in Incomplete status requiring manual interaction. SUBMIT - Imports the document and submits it to the approval process after the document is imported. BYPASS - Imports the document in Open (approved) status without going through the approval process.

    Batch ID: Enter the value for your import data from the file-based data import template, to select the interface table data to be processed in the current run. For example: Batch ID = 123. Use it in conjunction with Import Source to identify the documents to be loaded to the application tables.

    Import Source: Enter the value for your import data from the file-based data import template, to select the interface table data to be processed in the current run. For example: Import Source = External Contracts. Use it in conjunction with Batch ID to identify the documents to be loaded to the application tables.

    Communicate Document: Y to have imported purchasing documents communicated to the supplier. N to not have imported purchasing documents communicated to the supplier.

     

    Import CPA

    Payload:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/types/" xmlns:erp="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/">
     <soapenv:Header/>
     <soapenv:Body>
     <typ:importBulkData>
     <typ:document>
     <erp:Content>INSERT YOUR ZIP FILE IN BASE64 ENCODING HERE</erp:Content>
     <erp:FileName>PoImportContractAgreements.zip</erp:FileName>
     </typ:document>
     <typ:jobDetails>
     <erp:JobName>/oracle/apps/ess/prc/po/pdoi,ImportCPAJob</erp:JobName>
     <erp:ParameterList>204,100010026863783,NONE,2021,#NULL,N</erp:ParameterList>
     </typ:jobDetails>
     </typ:importBulkData>
     </soapenv:Body>
    </soapenv:Envelope>
    

    Parameters: 

    Procurement BU: Specify the id of the Procurement business unit that these documents should be imported into.

    Buyer: Specify the id of the buyer to be used when one is not included in the import data.

    Approval Action: NONE - Imports the document in Incomplete status requiring manual interaction. SUBMIT - Imports the document and submits it to the approval process after the document is imported. BYPASS - Imports the document in Open (approved) status without going through the approval process.

    Batch ID: Enter the value for your import data from the file-based data import template, to select the interface table data to be processed in the current run. For example: Batch ID = 123. Use it in conjunction with Import Source to identify the documents to be loaded to the application tables.

    Import Source: Enter the value for your import data from the file-based data import template, to select the interface table data to be processed in the current run. For example: Import Source = External Contracts. Use it in conjunction with Batch ID to identify the documents to be loaded to the application tables.

    Communicate Document: Y to have imported purchasing documents communicated to the supplier. N to not have imported purchasing documents communicated to the supplier.

    Document:
  • Boyuan Zhu
    How to Exchange Messages through Oracle Supplier Network...95.0
    Topic posted July 29, 2019 by Boyuan ZhuBronze Trophy: 5,000+ Points, tagged How-To, Orders, Supplier Communication, Web Services 
    Title:
    How to Exchange Messages through Oracle Supplier Network Using a Web Service
    Content:

    You can now set up Collaborative Messaging Framework to exchange messages with your suppliers through Oracle Supplier Network (OSN) using a web service. Routing messages using a web service simplifies message exchange between Fusion Applications and OSN. Messages will no longer be routed through Oracle B2B and you will not need to do any setup in Oracle B2B. This guide covers the configuration you need to perform in Fusion Applications and OSN to support message exchange using a web service. 

    Fusion Applications setup (needed for outbound messages)

    1. In the Manage Collaboration Service Provider task, select the OracleSN or OracleSNTest service provider. 
    2. If you are updating your test pod: 
      1. Select the ORA_B2BMessageTestService delivery method.
      2. Set the endpoint to https://osn.oracle.com/HTTPService/ProcessSOAPCollaborationMessage
      3. User Name: The buyer account user name that was used for the HTTP connection
      4. Password: The buyer account password that was used for the HTTP connection
    3. If you are updating your production pod, follow the same steps in 2, but set the endpoint to https://osn-prod.oracle.com/HTTPService/ProcessSOAPCollaborationMessage
    4. In the Outbound Collaboration Messages tab, change the status of all messages to “Inactive”, then update the Delivery Method from ORA_OracleSNOneWayHTTP to ORA_B2BMessageTestService. Note that this step is not applicable for new customers. 
    5. Change the status of all outbound messages to Active (applicable for all customers).


    Oracle Supplier Network setup (needed for inbound messages)

    1. Login as the buyer to OSN and select Messaging Setup. 
    2. Under Communication Parameters, add a new SOAP Service delivery method 
    3. Specify the endpoint URL for the service that Oracle Supplier Network will invoke to send messages to the Collaboration Messaging Framework. The URL is https://<host>/soa-infra/services/default/CmkCollaborationMessagingInboundServiceComposite/CollaborationMessageServiceV2. Replace <host> with the appropriate values from your test and production pod.
    4. Specify a user name and password for your test and production pods. Note that the user specified here must be a valid Fusion user and must have the Invoke Collaboration Message Inbound Service privilege (CMK_INVOKE_INBOUND_COLLAB_DOC_SERVICE_PRIV) in the respective pod.
    5. Once you have specified the appropriate values, select Submit. The dialog is closed and the Communication Parameters table now shows the newly added delivery method.
    6. In the Transaction Management table, edit the Transactions with “Receive” action – these are the ones that OSN is going to send to Fusion Applications. If you are a new customer setting up OSN for the first time, this table will not have any records. Update the delivery method to the new method you created. 

     

    Document:
    Document:
    Document:
    EditOSN.png (127KB)
  • Boyuan Zhu
    Sample Payloads for Purchase Order SOAP Web Service164.6
    Topic posted October 5, 2017 by Boyuan ZhuBronze Trophy: 5,000+ Points, tagged FAQ, Orders, Web Services 
    Title:
    Sample Payloads for Purchase Order SOAP Web Service
    Content:

    The purchase order SOAP web service allows buyers to take actions, such as create, change, or cancel, on purchase orders. Sample payloads for different operations can be found in this topic. 

    More details about the purchase order SOAP web service can be found here: https://docs.oracle.com/cloud/latest/procurementcs_gs/OESWP/Purchase_Order_Service_Version_2_PurchaseOrderService_svc_3.htm

  • Manavalan Ethirajan
    R13 Update 18B: Procurement Agents REST API35.0
    Topic posted July 31, 2018 by Manavalan EthirajanSilver Medal: 2,000+ Points, tagged Fusion, Orders, Web Services 
    Title:
    R13 Update 18B: Procurement Agents REST API
    Summary:
    New REST API to manage procurement agents
    Content:

    All,

    In Release 13 Update 18B, Fusion purchasing introduced a new REST API: Manage Procurement Agents. This post is to give you a heads up on the new feature.

    The procurement agents resource manages procurement agents. Procurement agents are users with roles such as buyer, catalog administrator and supplier manager. These users need to be defined as procurement agents in order to manage procurement documents and perform other procurement actions. This REST API allows you to create, update and search procurement agents.

    You can review the new feature in the following REST API documentation.

    https://docs.oracle.com/en/cloud/saas/procurement/18b/fapra/api-procurement-agents.html

  • Mohanish Mahajan
    Purchase Order business Events15.0
    Topic posted December 19, 2018 by Mohanish MahajanBronze Medal: 1,250+ Points, tagged How-To, Orders, Web Services, White Paper 
    Title:
    Purchase Order business Events
    Summary:
    How to subscribe to business events
    Content:

    Hi experts,

    I am referring to the release notes (New feature summary) for 17B upgrade (and also integration whitepaper) where it is mentioned that purchase order business events can be subscribed for the purpose of outbound integrations. Is there any technical documentation available around this which explains how exactly it works and how to subscribe to these events?

    I also wanted to know if ICS licenses are required or can it work with other middle ware platforms too ?

    Regards,

    Mohanish

  • Dev Thota
    How to write approval rules for “Outside Processing P...25.0
    Topic posted July 30, 2019 by Dev ThotaGold Trophy: 10,000+ Points, tagged Agreements, Approvals, Approvals/Notification, Approved Supplier List, BI Publisher Reports, Business Intelligence, Create Requisition, FAQ, Financials, Fusion, General Ledger, How-To, Manage Procurement Catalog, Notifications, Orders, OTBI, Payables, Public Sector, Requisition Processing, Security, Setup, Supplier Communication, Supply & Distribution Planning Cloud, Web Services, White Paper 
    Title:
    How to write approval rules for “Outside Processing Purchase Order” through BPM?
    Summary:
    How to write approval rules for “Outside Processing Purchase Order” through BPM?
    Content:

    Hi all,

    When we are releasing the work order our requisitions are auto approving and POs are getting created automatically. As per the Oracle, we can't control the approvals of PR so we want to enable the approval flow for the purchase orders(OSP orders). If anyone has any idea on how to create a BPM rule for these kinds of POs please let me know.

    Version:
    19B
  • Dev Thota
    Terminated users are getting removed on requisition even...25.0
    Topic posted September 25, 2019 by Dev ThotaGold Trophy: 10,000+ Points, tagged Agreements, Approvals, Approvals/Notification, Approved Supplier List, BI Publisher Reports, Business Intelligence, Create Requisition, FAQ, Financials, Fusion, General Ledger, How-To, Manage Procurement Catalog, Notifications, Orders, OTBI, Payables, Public Sector, Requisition Processing, Security, Setup, Supplier Communication, Supply & Distribution Planning Cloud, Tip, Web Services 
    Title:
    Terminated users are getting removed on requisition even though the user is PO requester and the user is on inactive state
    Summary:
    Terminated users are getting removed on requisition even though the user is PO requester and the user is on inactive state
    Content:

    Hi all,

    Terminated users are getting removed on requisition even though the user is PO requester and the user is on the inactive state.

    Report Subject Area: Procurement - Purchasing Real Time.

    Thanks,

    Dev Thota.

    Version:
    19C
  • sameer ashturkar
    How to know SOAP request mandatory fields55.0
    Topic posted February 27, 2019 by sameer ashturkarBronze Medal: 1,250+ Points, tagged Fusion, Web Services 
    Title:
    How to know SOAP request mandatory fields
    Summary:
    In SOAP request how to know mandatory fields if it contain many elements
    Content:

    Hello, 

    I am trying to create purchase order through soapui  tool but when I have imported the respective wsdl into soapui I have seen all request payload elements are optional. how do I find mandatory element to get response. 

    Image:
  • s nagavarapu
    Web Service for creating Change Orders15.0
    Topic posted October 18, 2018 by s nagavarapuRed Ribbon: 250+ Points, tagged Fusion, Orders, Web Services 
    Title:
    Web Service for creating Change Orders
    Summary:
    Is there a web service or Rest API available for creating change orders
    Content:

    I am looking for a web service or Rest API to create change orders to the existing POs.  The filed that I want to update is the Receipt Date Exception Action from Reject to None.  

    When we initially loaded the POs during the conversion this field is update with 'Reject'.  Now the system is not allowing to make receipts because it crossed the date tolerance.  There are around 1500 POs and it is difficult to create change orders manually.  Hence this request

    Any other pointers in this regard are highly appreciated.

     

    Thanks,