Supplier Import feature allows you to bulk load suppliers from external systems into Oracle Procurement Cloud. This involves capturing the import data in a CSV format, uploading the data file to the UCM server, loading the data into interface tables and then moving it to the supply base post successful validation. The loading and importing of data is accomplished by scheduling 2 ESS processes:
ERP Cloud provides an integration web service that helps automate the steps to upload data file (CSV format) to the UCM server, load the data into interface tables and subsequently import it into Oracle Procurement Cloud. This eliminates the need to execute these steps manually.
Here are the instructions to import supplier data using the ERP Integration Web Service:
Refer to the following for more details on what this integration service offers:
NOTE: Attached content above in a PDF document.
In Supplier REST GET operation, you can use q to specify a filter for the items to be returned from the collection. For example, the following URL will return suppliers with Supplier Type of Services:
https://<server>/fscmRestApi/resources/latest/suppliers?q=SupplierType="Services"
The attribute used by the query parameter q has to be queryable. Not all supplier profile attributes are queryable. You can use URLs like below to find out the queryable property for supplier entity attributes:
https://<server>/fscmRestApi/resources/latest/suppliers/describe
https://<server>/fscmRestApi/resources/latest/suppliers/<SupplierId>/child/addresses/describe
For a quick reference for release 19A, here is the list of all the queryable attributes for supplier and its child entities:
Supplier
Addresses
Contacts
Contact Addresses
Sites
Site Assignments
Business Classifications
Products & Services
Attachments
Refer to the documentation links below for using GET method for REST service & Supplier REST service API:
https://docs.oracle.com/en/cloud/saas/procurement/19a/fapra/Resource_Methods.html
https://docs.oracle.com/en/cloud/saas/procurement/19a/fapra/api-suppliers.html
Supplier SOAP Web Service is an inbound web service that lets you create and update suppliers from external repositories into Oracle Procurement Cloud.
Attached is a sample payload (Create_Supplier.txt) that can be used to create a supplier and some of its child entities (viz. business classifications, products and services, addresses, sites, site assignments, contacts and contact addresses) using the service. Refer to the following for more details on what the Supplier SOAP Web Service offers: |
Suppliers can be created and updated using the suppliers REST API.
To get or update the payment attributes of suppliers, their addresses or sites, you need to use the external payees REST APIs.
https://<hostname>:<port>/fscmRestApi/resources/latest/paymentsExternalPayees
The content type of request and response is in the json format
Following table explains each of the parameters which can be used as part of the REST API call which are relevant to suppliers payment attributes.
Sample payload is provided as part of this post.
Body Parameters |
Data Type |
Description |
PayeePartyIdentifier |
Integer |
Corresponds to the SupplierPartyId retrieved using Suppliers GET operation. Required to retrieve PayeeId corresponding to supplier payment attributes. |
PayeePartySiteIdentifier |
Integer |
Corresponds to the SupplierPartySiteID retrieved using Supplier Address GET operation. Required to retrieve PayeeId corresponding to supplier addresses payment attributes. |
SupplierSiteIdentifier |
Integer |
Identifier of a supplier site. Corresponds to SiteId retrieved using Supplier Site GET operation. Required to retrieve PayeeId corresponding to supplier sites payment attributes. |
PayeeId |
Integer |
Application-generated identifier of the external payee. Can be retrieved using the External Payee GET operation. Useful for PATCH operation. Required to PATCH payment attributes. |
DeliveryChannelCode DeliveryChannelName |
String |
Code/Name of the delivery channel for an external payee. |
SupplierNumber |
String |
Application-generated party number in Procurement. |
SupplierSiteCode |
String |
Code of a supplier site. |
SettlementPriority |
String |
Priority with which the financial institution or payment system settles payments for an external payee. |
PaymentTextMessageOne PaymentTextMessageTwo PaymentTextMessageThree |
String |
First, second and third text payment message to an external payee. |
ServiceLevelCode ServiceLevelName |
String |
Code/Name of the service level for an external payee. |
PayEachDocumentAloneOption |
String |
Indicates whether documents payable for an external payee are prevented from being grouped with other like documents payable for payment. |
BankChargeBearerCode BankChargeBearerName |
String |
Code of an external payee who is responsible for paying regular or express bank charges, such as Payee or Payer. Values are from the IBY_BANK_CHARGE_BEARER lookup. Name of an external payee who is responsible for paying regular or express bank charges, such as Payee or Payer. |
PaymentReasonCode PaymentReasonName |
String |
Code/Name of the reason for paying an external payee. |
PaymentReasonComments |
String |
Text field available for entering information about an external payee payment. |
DeliveryMethod
|
String |
Delivery method that is set on the external payee level. If the Override with Payee Delivery Method Preference option on the payment process profile is turned off, the setting is ignored. Values from the IBY_DELIVERY_METHODS lookup include EMAIL, FAX, and PRINTED. |
|
String |
Email address at which an external payee receives remittance advice. |
Fax |
String |
Fax number at which an external payee receives remittance advice. |
DefaultPaymentMethodCode DefaultPaymentMethodName |
String |
Code/Name of the default payment method for an external payee. |
Step 1: Retrieve PayeeId for supplier, address or site level payment records
PayeeId: This is a unique identifier for the set of payment attributes. It is auto generated individually when a supplier, address or site record is created. You need to use this value to identify a payment record to be updated. PayeeId can be retrieved using the external payee GET operation as shown below.
Note: First you need to run the supplier GET operation to get SupplierId and SupplierPartyId.
SupplierId will be used to retrieve supplier site and supplier address PayeeId.
SupplierPartyId will be used to get PayeeId for Supplier payment record.
https://<hostname>:<port>/fscmRestApi/resources/latest/suppliers?q=Supplier LIKE <Supplier Name>
Run the external payee GET operation to get the PayeeId for a supplier payment record
https://<hostname>:<port>/fscmRestApi/resources/latest/paymentsExternalPayees?finder=ExternalPayeeSearch;Intent=Supplier,PayeePartyIdentifier=<SupplierPartyId>
Run the supplier address GET operation to get SupplierAddressId
https://<hostname>:<port>/fscmRestApi/resources/latest/suppliers/<SupplierId>/child/addresses
Run the external payee GET operation to get the PayeeId for a supplier address payment record
https://<hostname>:<port>/fscmRestApi/resources/latest/paymentsExternalPayees?
finder=ExternalPayeeSearch;Intent=Supplier,PayeePartyIdentifier=<SupplierPartyId>&q=PayeePartySiteIdentifier=<SupplierAddressId>
Run the supplier site GET operation to get SupplierSiteId
https://<hostname>:<port>/fscmRestApi/resources/latest/suppliers/<SupplierId>/child/sites
Run the external payee GET operation to get the PayeeId for a supplier site payment record
https://<hostname>:<port>/fscmRestApi/resources/latest/paymentsExternalPayees?
finder=ExternalPayeeSearch;Intent=Supplier,PayeePartyIdentifier=<SupplierPartyId>,SupplierSiteIdentifier=<SupplierSiteId>
Step 2: Update the payment record corresponding to the supplier, address or site using the PATCH operation
PATCH operation URL: https://<hostname>:<port>/fscmRestApi/resources/latest/paymentsExternalPayees/<PayeeId>
Sample PATCH Payload
{
"PaymentReasonName": "143",
"PaymentReasonCode": "BE_143",
"SettlementPriority": "NORMAL",
"DeliveryChannelCode": "CH_DTACHECK",
"BankInstructionCodeOne": "NL_N",
"BankInstructionCodeTwo": "NL_2",
"ServiceLevelCode": "SDVA",
"BankChargeBearerCode": "SHA"
"DeliveryMethod": "EMAIL",
"Email":"alex@hotmail.com"
}
Points to consider:
1. Important to identify the attributes used in these payloads. As already detailed above:
2. As detailed above, a payee row is automatically created for suppliers, supplier addresses or supplier sites, whenever they are created. This implies that you can directly use PATCH operation to update payment attributes for suppliers, their addresses or sites.
3. If a user’s access to patch supplier site payment attributes is denied, you need to review the procurement BU access and maintain supplier site privilege for that user.
References:
Suppliers REST document: Suppliers REST API
External Payees REST document: External Payees REST API
External Payee functional and data security document: Doc ID 2540702.1
How to get audit report using the REST API
REST Service Name: Get Audit Report
The user will have to use the REST POST method to post a request to retrieve audit reports response.
https://<hostname>:<port>/fscmRestApi/fndAuditRESTService/audittrail/getaudithistory
The content type of request and response is in the json format
Query Parameter |
Data Type |
Description |
attributeDetailMode |
boolean |
Indicates whether the old and new attribute values are returned. If true, the old and new values are retrieved. If false, the response contains only attribute names, and not old and new values. The default value is false. On the audit reports UI this corresponds to ‘Show Attribute Details’ check box. |
businessObjectType |
String |
The fully qualified view object name. In this case it will be "oracle.apps.prc.poz.suppliers.protectedModel. core.view.AuditSupplierVO" |
eventType |
String |
A comma-separated list of events you want to search. Valid values are : Object Data Insert, Object Data Update, Object Data Delete, All |
fromDate |
String |
The date from which the audit history is to be retrieved. The format of the date can be yyyy-MM-dd or yyyy-MM-dd HH:mm:ss. You can retrieve audit history for up to one month. |
toDate |
String |
The date up to which the audit report data is to be retrieved. The format of the date can be yyyy-MM-dd or yyyy-MM-dd HH:mm:ss. |
includeChildObjects |
boolean |
Indicates whether to include the child objects in the audit report. The default value is false. The child objects for Supplier will be address, contact, sites, business classifications, product and services, bank accounts. |
includeImpersonator |
boolean |
Indicates whether to include the impersonator name in the audit report. The default value is false. |
product |
String |
A predefined product value provided in the request. It will be ‘Procurement’ in this context. |
user |
String |
The display name of the user who has created or updated the supplier. |
includeAttributes |
boolean |
Indicates whether the audit report includes attribute details that were changed in the specified time period. The default value is true. On the audit reports UI this corresponds to ‘Show Attribute Details’ check box. |
includeExtendedObjectIdentiferColumns
|
boolean |
Indicates whether to include the context information for the business objects. The default value is false. This corresponds to ‘Show additional object identifier columns’ checkbox in the Audit Reports UI |
timeZone |
String |
The timezone to be used for the specified period of the audit report. |
pageSize |
number |
The number of records displayed in a page, in the audit report. |
pageNumber |
number |
The page number in the audit report you want to view. |
Sample request payload to retrieve all the supplier records which was inserted, updated or deleted in the given date range.
{
"fromDate":"2018-10-15 00:00:00",
"toDate":"2018-10-15 23:59:59",
"product":"procurement",
"businessObjectType":"oracle.apps.prc.poz.suppliers.protectedModel.core.view.AuditSupplierVO",
"includeChildObjects":"true",
"includeAttributes":"true",
"eventType":"All",
"attributeDetailMode":"true",
"timeZone":"UTC"
}
Response property |
Data Type |
Title |
Description |
actionName |
string |
Action Name |
The request method name for which the response is retrieved. Since we are retrieving audit history it will be ‘getAuditHistory’ |
auditData |
array |
Audit Data |
The audit data retrieved for the specified criteria. This section contains results similar to the ones fetched in audit reports. |
status |
string |
Status |
The status of the audit report. The valid values are 200-success, 400-Bad request, 401-Authentication error, 403-Authorization error, and 500-Internal server error. |
pageSize |
string |
Page Size |
The number of records displayed per page in the audit report. |
pageNumber |
string |
Page Number |
The number of records displayed per page in the audit report. |
Sample response payload with audit report results for Supplier: Automotive Supplier.
Updates were made to attributes: Federal reportable and TaxVerificationDate.
{
"auditData": [
{
"date": "2018-10-15 12:29:00",
"descriptionInternal": "Supplier:949",
"userInternalName": "CVBUYER01",
"attributeDetails": [
{
"oldValueId": "N",
"newValueId": "Y",
"attribute": "Federal reportable",
"attributeInternalName": "FederalReportableFlag",
"newValue": "Yes",
"oldValue": "No"
},
{
"attribute": "Verification Date",
"attributeInternalName": "TaxVerificationDate",
"newValue": "2018-08-02"
},
],
"businessObject": "Supplier",
"qualifiedBusinessObject":
"oracle.apps.prc.poz.suppliers.protectedModel.core.view.AuditSupplierVO",
"userName": "Clare Furey",
"eventType": "Object Data Update",
"description": "Supplier:Automotive Supplier"
}
],
"pageSize": "1",
"status": "SUCCESS",
"actionName": "getAuditHistory"
}
You can refer the following document for further details: Common Features in Oracle Applications Cloud R13
Is there any Web Service to Update Supplier Primary Payment Method.
Case Scenario:
System A - Change the Payment method/details
We want to update Oracle Cloud - Supplier Primary Payment Method, Accordingly.
Can you direct me to the Web Service and payload example?
Thanks
Hi ,
Is there any web services available to find the supplier in fusion Or any web services of customer/party through can it be possible to achieve that. ?
Hi
We have a requirement to create end to end supplier including supplier header, supplier address. business classification, sites and site assignments via REST API. We are using version 19c and referred "Create Supplier" REST API. When we tried to create end to end supplier, we get error " The action create is not enabled".
Please advise if there is any method through which we can achieve the same.
Regards
Ashish
Hi,
We have a requirement to create Supplier/Site/Address/Site Assignment via Web service.
Context DFF has been configured at Supplier Site level with 10 attributes. All attributes are Non-mandatory
While calling Web service, we are passing only values for 3 attributes.
Web service is failed with the following error
"The value for the attribute cannot be blank when Operation has the value Create"
It is expecting all attributes should have value during create operation, even though none of the attributes are mandatory.
Need help on how to resolve this issue. Appreciate very much
Thanks
Paddy
sample Payload Below
-------------------------------
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:typ="http://xmlns.oracle.com/apps/prc/poz/suppliers/supplierServiceV2/types/"
xmlns:sup="http://xmlns.oracle.com/apps/prc/poz/suppliers/supplierServiceV2/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<typ:updateSupplier>
<typ:supplierRow>
<sup:Supplier>SCS - ABB PRM2708003</sup:Supplier>
<sup:SupplierAddresses>
<sup:Operation>CREATE</sup:Operation>
<sup:AddressName>TSC 600108002</sup:AddressName>
<sup:Country>US</sup:Country>
<sup:AddressLine1>6502</sup:AddressLine1>
<sup:AddressLine2>N Military Trl</sup:AddressLine2>
<sup:AddressLine3/>
<sup:City>Boca Raton</sup:City>
<sup:State>FL</sup:State>
<sup:PostalCode>33496</sup:PostalCode>
<sup:OrderingPurposeFlag>TRUE</sup:OrderingPurposeFlag>
</sup:SupplierAddresses>
<sup:SupplierSites>
<!--Optional:-->
<sup:Operation>CREATE</sup:Operation>
<sup:SiteName>TSC 600108002</sup:SiteName>
<sup:AddressName>TSC 600108002</sup:AddressName>
<sup:AlternateSiteName>600108002</sup:AlternateSiteName>
<sup:ProcurementBU>XX Trade Procurement BU</sup:ProcurementBU>
<sup:PurchasingPurposeFlag>TRUE</sup:PurchasingPurposeFlag>
<sup:PaymentCurrency>USD</sup:PaymentCurrency>
<sup:InvoiceCurrency>USD</sup:InvoiceCurrency>
<sup:FOB>SHIPPING</sup:FOB>
<sup:AmountTolerances>US_OD_TOLERANCES_1_PCT_SERVICES</sup:AmountTolerances>
<sup:QuantityTolerances>US_OD_Tolerances_Default</sup:QuantityTolerances>
<sup:InvoiceMatchOption>P</sup:InvoiceMatchOption>
<sup:PaymentPriority>99</sup:PaymentPriority>
<sup:PaymentTerms>0/0N0</sup:PaymentTerms>
<sup:PayDateBasis>DISCOUNT</sup:PayDateBasis>
<sup:PayGroup>US_OD_TRADE_NON_DISCOUNT</sup:PayGroup>
<sup:AlwaysTakeDiscount>Y</sup:AlwaysTakeDiscount>
<sup:TermsDateBasis>Invoice</sup:TermsDateBasis>
<sup:SupplierSitesFlexField xsi:type="sup3:Xx" xmlns:sup3="http://xmlns.oracle.com/apps/flex/prc/poz/suppliers/supplierServiceV2/supplierSites/">
<sup3:__FLEX_Context>XX</sup3:__FLEX_Context>
<sup3:siteCategory>TR-SCS</sup3:siteCategory>
<sup3:ediDistributionCode>ED</sup3:ediDistributionCode>
<sup3:backOrderFlag>Y</sup3:backOrderFlag>
<sup3:fob>SHIPPING</sup3:fob>
<sup3:legacySupplier xsi:nil="true"></sup3:legacySupplier>
<sup3:geocode xsi:nil="true"></sup3:geocode>
<sup3:supplierTrait xsi:nil="true"></sup3:supplierTrait>
<sup3:consignmentFrequency xsi:nil="true"></sup3:consignmentFrequency>
<sup3:duns xsi:nil="true"></sup3:duns>
<sup3:sendLocIdOnPoXml xsi:nil="true"></sup3:sendLocIdOnPoXml>
<sup3:odDateSigned xsi:nil="true"></sup3:odDateSigned>
<sup3:vendorDateSigned xsi:nil="true"></sup3:vendorDateSigned>
<sup3:legacySupplierSiteId xsi:nil="true"></sup3:legacySupplierSiteId>
<sup3:eftSettleDays xsi:nil="true"></sup3:eftSettleDays>
<sup3:relatedPaySite xsi:nil="true"></sup3:relatedPaySite>
</sup:SupplierSitesFlexField>
<sup:SupplierSiteAssignments>
<sup:Operation>CREATE</sup:Operation>
<sup:ClientBU>XX US Fin BU</sup:ClientBU>
<sup:BillToBU>XX US Fin BU</sup:BillToBU>
<sup:ShipToLocation>Office Depot Florida</sup:ShipToLocation>
<sup:BillToLocation>Office Depot Florida</sup:BillToLocation>
<sup:LiabilityDistributionConcatSegments>1150.43.00000.211110.10000.0000</sup:LiabilityDistributionConcatSegments>
<sup:PrepaymentDistributionConcatSegments>1150.43.00000.151340.10000.0000</sup:PrepaymentDistributionConcatSegments>
<sup:BillsPayableDistributionConcatSegments>1150.43.00000.151340.10000.0000</sup:BillsPayableDistributionConcatSegments>
</sup:SupplierSiteAssignments>
</sup:SupplierSites>
<sup:SupplierContacts>
<sup:Operation>CREATE</sup:Operation>
<sup:FirstName>PKUM</sup:FirstName>
<sup:LastName>PRM0409007</sup:LastName>
<sup:EmailAddress>1test@officedepot.com</sup:EmailAddress>
<sup:PhoneCountryCode>1</sup:PhoneCountryCode>
<sup:PhoneAreaCode>240</sup:PhoneAreaCode>
<sup:Phone>4098977</sup:Phone>
</sup:SupplierContacts>
</typ:supplierRow>
</typ:updateSupplier>
</soapenv:Body>
</soapenv:Envelope>
Response
-----------------
HTTP/1.1 500 Internal Server Error
Server: Oracle-HTTP-Server
X-ORACLE-DMS-ECID: 005^OSr4fDE5i^E_R5^Ayd0005E60002kj
SOAPAction: ""
Content-Encoding: gzip
Content-Type: text/xml; charset=UTF-8
Content-Language: en
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-DataStream-MidMile-RTT: 7
X-DataStream-Origin-MEX-Latency: 20658
X-DataStream-Cache-Status: 0
Date: Mon, 02 Sep 2019 00:40:34 GMT
Transfer-Encoding: chunked
Connection: close
Vary: Accept-Encoding
Connection: Transfer-Encoding
Set-Cookie: JSESSIONID=NePvakJjseWhpsrLFnzYNGt0mU3HgNJlZepmBB4SitDrZWn4vmNZ!-1795238425; path=/; HttpOnly
Set-Cookie: _WL_AUTHCOOKIE_JSESSIONID=1EYbNkoLpUwGANRr4vqc; path=/; secure; HttpOnly
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault><faultcode>env:Server</faultcode><faultstring><Supplier WebServiceOperation="updateSupplier" Supplier="SCS - ABB PRM2708003" SupplierNumber="" SupplierId="">
<SupplierSite Operation="CREATE" SiteId="" SiteName="TSC 600108002" ProcurementBUId="" ProcurementBU="OD Trade Procurement BU">
<Rejection Attribute2="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection Attribute3="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection Attribute4="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection Attribute5="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection Attribute7="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection Attribute9="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection Attribute14="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection Attribute17="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection AttributeDate1="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection AttributeDate2="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection AttributeNumber3="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<SupplierSiteAssignments Operation="CREATE" SiteAssignmentId="" SiteId="" Site="" ProcurementBUId="" ProcurementBU="" ClientBUId="" ClientBU="OD US Fin BU">
<Rejection VendorSiteId="">A value is required. You must provide a value.</Rejection>
</SupplierSiteAssignments>
</SupplierSite>
</Supplier></faultstring><detail><tns:ServiceErrorMessage xmlns:tns="http://xmlns.oracle.com/adf/svc/errors/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><tns:code/><tns:message><Supplier WebServiceOperation="updateSupplier" Supplier="SCS - ABB PRM2708003" SupplierNumber="" SupplierId="">
<SupplierSite Operation="CREATE" SiteId="" SiteName="TSC 600108002" ProcurementBUId="" ProcurementBU="OD Trade Procurement BU">
<Rejection Attribute2="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection Attribute3="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection Attribute4="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection Attribute5="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection Attribute7="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection Attribute9="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection Attribute14="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection Attribute17="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection AttributeDate1="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection AttributeDate2="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<Rejection AttributeNumber3="">The value for the attribute cannot be blank when Operation has the value Create.</Rejection>
<SupplierSiteAssignments Operation="CREATE" SiteAssignmentId="" SiteId="" Site="" ProcurementBUId="" ProcurementBU="" ClientBUId="" ClientBU="OD US Fin BU">
<Rejection VendorSiteId="">A value is required. You must provide a value.</Rejection>
</SupplierSiteAssignments>
</SupplierSite>
</Supplier></tns:message><tns:severity>SEVERITY_ERROR</tns:severity>
We want to be able to use Supplier Contact FBDI but I don’t see those fields in the Supplier Contact FBDI template. Did someone had the same situation?