Posts

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 in Procurement > Purchasing public
    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 in Procurement > Purchasing public
    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:
  • Manavalan Ethirajan
    How to reassign POs when buyer left the organization5.0
    Topic posted December 31, 2018 by Manavalan EthirajanSilver Medal: 2,000+ Points, tagged How-To, Orders in Procurement > Purchasing public
    Title:
    How to reassign POs when buyer left the organization
    Content:

    Requirement: Buyer has left the organization and there are volume of Purchase Orders that have not been changed to finally close. Need to provide additional rights to some other user to make the changes to the eligible Purchase Orders.

    Option 1:

    You can run a process to reassign purchasing documents from one buyer to another, including purchase agreements, contract agreements and purchase orders. To run the process use the Reassign Purchasing Documents task, from the Purchase Agreements or Purchase Orders work area. To use the Reassign Purchasing Documents task you must have a role with the Reassign Purchasing Document privilege. For example, Procurement Manager, Category Manager or Buyer. Refer the attached 'Reassign Purchasing Documents' image.

    Option 2:

    Set the other agent’s access to ‘Full’ for Purchase Orders in procurement agent setup. With this setup, other agents can access Purchase Orders created by buyers who left the organization. Please refer 'Manage Procurement Agents' image.

    Image:
    Document:
  • Boyuan Zhu
    How to Exchange User-Defined cXML Messages via Oracle...5.0
    Topic posted July 29, 2019 by Boyuan ZhuBronze Trophy: 5,000+ Points, tagged How-To, Orders, Supplier Communication in Procurement > Purchasing public
    Title:
    How to Exchange User-Defined cXML Messages via Oracle Supplier Network
    Content:

    As of release 19B, you can exchange user-defined cXML messages with your trading partners via Oracle Supplier Network. You can use this capability to customize your messages to meet your partners' requirements. To send a user-defined cXML message, you need to define a cXML message with custom mapping, create a custom service provider pointing to OSN, and use this service provider and message when setting up trading partners on your supplier sites.

    1. First, define a new message by going to Manage Collaboration Message Definitions in the Collaboration Messaging Workarea. For the message you want to customize, download the existing transformation file by taking the Export Transformation Package action. You can then customize the transform file as you wish. 
    2. Duplicate the existing cXML message and upload your customized transform file. This is now the message you will be using in the future steps. 
    3. Create a service provider in the Manage Collaboration Service Providers task. If you have different customizations for different trading partners, you will need to create a separate message and service provider for each case.
    4. For the service provider, add a Delivery Method, using the delivery method type as “Web Service”. In the Service Name field, select the Service Name as CollaborationMessageV2.Process. Specify the following: 
      • Endpoint: https://osn.oracle.com/HTTPService/ProcessSOAPCollaborationMessage or https://osn-prod.oracle.com/HTTPService/ProcessSOAPCollaborationMessage.
      • User Name: The Oracle Supplier Network buyer account user name
      • Password: The Oracle Supplier Network buyer account password 
      ​​
    5. Add the message from earlier and use the delivery method you created. Set the status as Active and save. 
    6. Make sure that the correct documents are set up on OSN and that your supplier site is using the new service provider and message. The Collaboration Messaging Framework will transform your message into cXML using your defined mapping before invoking OSN.
    Document:
    Document:
    Document:
    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 in Procurement > Purchasing public
    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
    How to Show the Order Total with Tax on the PDF45.0
    Topic posted January 31, 2019 by Boyuan ZhuBronze Trophy: 5,000+ Points, tagged BI Publisher Reports, How-To, Orders in Procurement > Purchasing public
    Title:
    How to Show the Order Total with Tax on the PDF
    Content:

    The seeded order PDF shows the total amount of goods and services you purchased. Your approvers or your suppliers may have requirements to see the total amount with exclusive tax included. You can customize the data model and template to display the sum of the ordered amount and exclusive tax

    1. Add the following expression to your data model at the end of the existing select clause in your header datasets. The position in the clause is important because the expression depends on values calculated by existing seeded expressions. 
      PO_BIP_HELPER.get_formatted_display(PO_BIP_HELPER.get_global_attr('ORGORDEREDAMOUNT') + PO_BIP_HELPER.get_global_attr('RECOVERABLE') + PO_BIP_HELPER.get_global_attr('NONRECOVERABLE')) AS TotalWithTaxDisplay
      

       

    2. By default, the attribute tag in the XML will be upper case (TOTALWITHTAXDISPLAY). You can change this to camelcase in the structure tab. 

       
    3. Finally, add the attribute to the template <?TotalWithTaxDisplay?>
    Document:
    Document:
    Document:
  • Sathish Jackson Putti Vincent
    Which Procurement Business Unit will my requisition be...5.0
    Topic posted November 29, 2018 by Sathish Jackson Putti VincentGreen Ribbon: 100+ Points, tagged Orders, Requisition Processing in Procurement > Purchasing public
    Title:
    Which Procurement Business Unit will my requisition be processed in?
    Summary:
    Which Procurement Business Unit will my requisition be processed in?
    Content:

    What is a Procurement Business Unit? A business unit that will procure the goods or services that has been requested for.

    The procurement business unit where your requisition line will be processed is determined in the following order:

    1.  If a source supplier and supplier site is identified for your requisition line, your requisition line will be processed in the procurement BU where the supplier site is defined.
    2. If the requisition line does not have a source supplier but the line originated from a Smart form or a public shopping list then your requisition line will be processed in the procurement BU that created that smart form or Public shopping list.
    3. If no source supplier/supplier site has been identified nor did the line originate from a Smart form or a public shopping list, but a buyer has been assigned to process your requisition line, then your requisition line will be processed in the procurement BU that the buyer belongs to.
    4. If none of the above applies for your requisition line, then your line will be processed by the procurement BU that acts as the default service provider for your requisitioning BU.
  • Boyuan Zhu
    How to Repeat Headers in the Purchasing PDF15.0
    Topic posted September 4, 2018 by Boyuan ZhuBronze Trophy: 5,000+ Points, tagged BI Publisher Reports, How-To, Orders in Procurement > Purchasing public
    Title:
    How to Repeat Headers in the Purchasing PDF
    Content:

    You can ensure important information is included on every page of the purchasing document PDF by using repeating document headers and table headers. 

    Document Headers

    Information that needs to be on every page can be placed into the document header, located at the very top of the RTF template. The seeded template uses the Different First Page option so that the header on the first page differs from the repeating header on the other pages. If you keep this setting, you will need to make your changes on both the first and second pages. 

    Table Headers

    If you are adding a new table, you can set the table header to repeat for every page it is on. 

    Open the table properties and enable the Repeat as header row at the top of each page checkbox. 

     

    Document:
    header.png (46KB)
    Document:
    Document:
  • Manavalan Ethirajan
    Include custom OTBI/BI Publisher content to the springboard25.0
    Topic posted May 25, 2018 by Manavalan EthirajanSilver Medal: 2,000+ Points, tagged BI Publisher Reports, Business Intelligence, Fusion, Orders, Setup in Procurement > Purchasing public
    Title:
    Include custom OTBI/BI Publisher content to the springboard
    Content:

    Improve insight and productivity by making your BI analytics available as content in the springboard. Buyer or any other role with necessary privilege to use page composer and access the BI Catalog can add BI analytics to the user-defined infolets page.
     

    How to enable this?

    Follow the steps mentioned below to make custom content available in the springboard.

    1. Add the privilege ‘View Custom Infolet’ to a role and then assign it to the user.
    2. Create an infolet on the User-Defined Infolets page and add a BI analytics to the springboard.

    Please refer the attached document and follow the steps mentioned, to include the custom content to the springboard.

     

  • Boyuan Zhu
    Sample Payloads for Purchase Order SOAP Web Service174.6
    Topic posted October 5, 2017 by Boyuan ZhuBronze Trophy: 5,000+ Points, tagged FAQ, Orders, Web Services in Procurement > Purchasing public
    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