Import Management
The following services are included in this functional area:
Actual Landed Cost
The following services are included in this functional area:
Actual Landed Cost Upload Service
The following services are included in this functional area:
Finalize Actual Landed Cost
Business Overview
This service is used to finalize the Actual Landed Cost (ALC) for a list of purchase orders or purchase order/shipment combinations matching the provided collection of purchase order, ASN, obligation, and/or customs entry input records. The available inputs for this service are purchase order, ASN, obligation, customs entry, method of finalization and the Back Out Estimates with No Actuals flag. Success or failure of the operation will be returned as part of the response object. The value of the Allocation Shipment Level Obligations Method system option will determine if orders or order/shipment combinations are processed as follows:
-
When the Allocate Shipment Level Obligations Using system option is set to ASN (
ASN
), the service processes order/shipment combinations matching the input provided. -
When the Allocate Shipment Level Obligations Using system option is set to Transportation (
TRNSPRT
), the service processes purchase orders matching the input provided; the service will not acceptASN
as an input in this case.
This service compares the actual value from obligations or customs entries with the estimated value on the purchase order
and posts records to transaction data (transaction code 20A
), update weighted average cost (WAC) and open
to buy (OTB) with the difference between the estimate and the actual.
For the pending ALC to be finalized, the associated obligation or customs entry must be approved or confirmed respectively.
Further, when Allocate Shipment Level Obligations Using is set to Transportation
, orders cannot be
finalized until the purchase order has been closed. When the Allocate Shipment Level Obligations Using is set to ASN,
order/shipments must be received before the ALC can be finalized, and for ALC from Purchase Order Header or Purchase Order/Item
level obligations, the associated purchase order must be closed before the associated ALC can be finalized.
When the provided method of finalization is No Finalization
, the pending ALC records are updated to have
a status of No Finalization
, which means that the actual values are ignored and the estimated values that
were posted at the time of receipt will be retained. Subsequent finalizations of the same purchase orders or purchase order/shipments
will only attempt to finalize new ALC records in Pending status; the records previously marked as No Finalization
or Processed
will not be processed during future finalizations.
Input Payload Details
Table 5-170 Finalize - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
Collection of the input details for which the ALC Finalization needs to be done. |
Table 5-171 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
orderNo |
No |
Number (12) |
The unique identifier for the Purchase Order. |
asn |
No |
String (30) |
The ASN linked to the Shipment. |
obligation |
No |
Number (10) |
The unique identifier for the Obligation. |
customsEntryNo |
No |
String (40) |
The Customs Entry Number. |
methodOfFinalization |
Yes |
String (6) |
The method of ALC Finalization to be used. |
backOutEstimatesWithNoActualsInd |
No |
String (1) |
Indicates whether the Order Estimates, which are not having Actuals, need to be Backed out or not. |
Table 5-172 FinalizeError - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
alcFinalizeError |
Yes |
Collection of Object |
Table 5-173 AlcFinalizeError - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
orderNo |
Yes |
Number (12) |
|
asn |
Yes |
String (30) |
|
obligation |
Yes |
Number (10) |
|
customsEntryNo |
Yes |
String (40) |
|
errorMessages |
Yes |
Array of String |
List of errors identified during business data processing of the request. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"orderNo": 100000,
"asn": "ASN_1234",
"obligation": 56789,
"customsEntryNo": "CE_1234",
"methodOfFinalization": "W",
"backOutEstimatesWithNoActualsInd": "N"
}
]
}
Response Code: 200 (Success)
Table 5-174 FinalizeResponse - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
items |
Yes |
Collection of Object |
Table 5-175 FinalizeResponse.Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
orderNo |
Yes |
Number (12) |
|
asn |
Yes |
String (30) |
|
obligation |
Yes |
Number (10) |
|
customsEntryNo |
Yes |
String (40) |
|
alcStatus |
Yes |
String (250) |
The status of the ALC records, after the successful completion of the ALC Finalization. |
Sample Response Message
{
"items": [
{
"orderNo": 120711,
"asn": "String",
"obligation": 389535,
"customsEntryNo": "String",
"alcStatus": "String"
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
is present when the input payload or input parameters do not match the schema definition of this service. The element businessError
is present if the payload passes schema validation but an exception is caught while processing the
business logic.
Table 5-176 FinalizeError - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
alcFinalizeError |
Yes |
Collection of Object |
Table 5-177 AlcFinalizeError - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
orderNo |
Yes |
Number (12) |
|
asn |
Yes |
String (30) |
|
obligation |
Yes |
Number (10) |
|
customsEntryNo |
Yes |
String (40) |
|
errorMessages |
Yes |
Array of String |
List of errors identified during business data processing of the request. |
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
],
"businessError": [
{
"alcFinalizeError": [
{
"orderNo": 120711,
"asn": "String",
"obligation": 389535,
"customsEntryNo": "String",
"errorMessages": [
"String"
]
}
]
}
]
}
Obligations
The following services are included in this functional area:
Obligations Upload Services
This section describes the Obligations Upload Services.
Business Overview
The primary role of these services is to support requests from trading partners or suppliers for bulk uploads of obligations in Merchandising.
Create Obligation
Business Overview
This service creates obligations by calling the SVCPROV_OBLIGATION
package, then calling the core obligation
package to validate and insert data to the Merchandising tables.
This service creates obligations with required fields. At least one component is needed to create a successful obligation.
If the obligation level is Purchase Order Header (PO
) or Purchase Order/Items (POIT
) then
component locations can be added if desired. Allocation to Actual Landed Cost (ALC) will be performed after obligation creation.
When creating a new Purchase Order Header (PO
) or Purchase Order/Item (POIT
) level obligation
with a provided status of Approved, if the purchase order has a single location or if the component/location level details
are provided on the obligation, you are able to specify whether the corresponding non-merchandise invoice should be generated
and sent to Invoice Matching (REIMCS) upon obligation approval, or if the system should wait until the purchase order is closed.
To have the system generate the non-merchandise invoice upon obligation approval, the Create Non-Merchandise Invoice upon
Obligation Approval flag (createInvoiceOnObligationApproval
) should be passed in as Yes (Y
); otherwise you can send a value of No (N
). If no value is provided for the flag, the system will assume
a value of No (N
). If the purchase order has multiple locations, the non-merchandise invoice will not be
generated or sent to Invoice Matching until the purchase order is closed. The reason for waiting until closure in this case
is because this allows the system to know the final receipt quantities in order to determine the location allocation of the
expenses on the obligation.
When creating new obligations of any level besides Purchase Order Header or Purchase Order/Item, non-merchandise invoices will be generated and sent to Invoice Matching (REIMCS) upon obligation approval.
Purchase Order and Purchase Order/Item level obligations are intended to be used for a full purchase order, meaning the system expects that a given expense component will only appear on one obligation for a given purchase order or for a given purchase order/item. For example, if you are being charged a freight expense for each of two shipments for a single purchase order. To use a Purchase Order Header level obligation, you would need to total the freight expense for the two shipments and enter the total value on a single Purchase Order Header level obligation with the total quantity on the order. You cannot create two separate Purchase Order Header level obligations for the same Freight expense component for a partial quantity. If you want to create separate obligations for a subset of the total ordered quantity, you need to use one of the transportation or ASN level obligations.
Service Type
Post
ReST URL
/ObligationUpload/createObligation
Input Parameters
RestObligationRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
obligationLevel |
String |
keyValue1 |
String |
keyValue2 |
String |
keyValue3 |
String |
keyValue4 |
String |
keyValue5 |
String |
keyValue6 |
String |
status |
String |
partnerType |
String |
partnerId |
String |
supplierSite |
String |
invoice |
String |
invoiceDate |
Timestamp |
qty |
BigDecimal |
qtyUom |
String |
currency |
String |
exchangeRate |
BigDecimal |
checkAuthNo |
String |
paidAmt |
BigDecimal |
paidDate |
Timestamp |
comments |
String |
obligationCompTbl |
List<RestObligationCompRecRDO> |
RestObligationCompRecRDO
Parameter Name | Data Type |
---|---|
compId |
String |
allocateToAlc |
String |
allocationType |
String |
allocationBasisUom |
String |
amt |
BigDecimal |
rate |
BigDecimal |
perCount |
BigDecimal |
perCountUom |
String |
obligationCompLocTbl |
List<RestObligationCompLocRecRDO> |
RestObligationCompLocRecRDO
Parameter Name | Data Type |
---|---|
action |
String |
locType |
String |
locId |
BigDecimal |
qty |
BigDecimal |
amt |
BigDecimal |
JSON Structure
invoiceDate and paidDate will take input in strings the 'YYYY-MM-DD' format that will be converted to Timestamp format and inserted into tables.
[{ "obligationKey": null, "obligationLevel":null , "keyValue1":null, "keyValue2":null, "keyValue3":null, "keyValue4":null, "keyValue5":null, "keyValue6":null, "status":null, "partnerType":null, "partnerId":null, "supplierSite":null, "invoice":null, "invoiceDate":null, "qty":null, "qtyUom":null, "exchangeRate":null, "currency":null, "paymentMethod":null, "checkAuthNo":null, "paidAmt":null, "paidDate":null, "comments":null, "obligationCompTbl" : [{ "compId":null, "allocateToAlc":null, "allocationType":null, "allocationBasisUom": null, "amt":null, "rate":null, "perCount":null, "perCountUom":null, "obligationCompLocTbl":[{ "action":null, "locType":null, "locId": null, "qty":null, "amt":null}] }] }]
Output
RestObligationStatusRecRDO
Parameter Name | Data Type |
---|---|
successObligationTbl |
List<RestObligationSuccessRecRDO> |
successObligationCount |
BigDecimal |
failObligationTbl |
List<RestObligationFailRecRDO> |
failObligationCount |
BigDecimal |
RestObligationSuccessRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
RestObligationFailRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
errorMessage |
String |
The output will contain the status of the request including validation error, if any.
The service will insert data into the Obligation (obligation
), Obligation Component (obligation_comp
) and Obligation Component Location (obligation_comp_loc
) tables based on obligation levels. Obligation
amounts will be allocated to each order/item/location represented on the obligation and will be recorded in the Actual Landed
Cost (ALC) tables. Non-merchandise invoices generated for approved obligations will be inserted into invoice staging tables
to be loaded into Invoice Matching.
For Success:
{ "successObligationTbl": [ { "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "successObligationCount": null, "failObligationTbl": [], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
For Failure:
{ "successObligationTbl": [], "successObligationCount": null, "failObligationTbl": [ { "errorMessage": null, "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
OBLIGATION |
No |
Yes |
No |
No |
OBLIGATION_COMP |
No |
Yes |
No |
No |
OBLIGATION_COMP_LOC |
No |
Yes |
No |
No |
ORDHEAD |
Yes |
No |
No |
No |
ORDSKU |
Yes |
No |
No |
No |
ORDLOC |
Yes |
No |
No |
No |
TRANSPORTATION |
Yes |
No |
No |
No |
SHIPMENT |
Yes |
No |
No |
No |
SHIPSKU |
Yes |
No |
No |
No |
V_PACKSKU_QTY |
Yes |
No |
No |
No |
ITEM_SUPP_COUNTRY |
Yes |
No |
No |
No |
ORDLOC_EXP |
Yes |
No |
No |
No |
CE_HEAD |
Yes |
No |
No |
No |
ELC_COMP |
Yes |
No |
No |
No |
RTM_UNIT_OPTIONS |
Yes |
No |
No |
No |
ALC_HEAD |
Yes |
Yes |
Yes |
No |
ALC_COMP_LOC |
Yes |
Yes |
Yes |
No |
INVC_HEAD |
No |
Yes |
No |
No |
INVC_NON_MERCH |
No |
Yes |
No |
No |
INVC_XREF |
No |
Yes |
No |
No |
Create Obligation Component
Business Overview
This service creates obligation
components for existing obligations in Pending status by calling the SVCPROV_OBLIGATION
package, then calling
the core obligation package to validate and insert data to the Merchandising tables.
This service accepts an obligation key, a supplier/invoice combination, or a partner type/partner/invoice combination to identify the existing obligation. Expense component details can be added.. Allocation to Actual Landed Cost (ALC) will be done after component creation.
Service Type
Post
ReST URL
/ObligationUpload/createObligationComp
Input Parameters
RestObligationRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
obligationLevel |
String |
keyValue1 |
String |
keyValue2 |
String |
keyValue3 |
String |
keyValue4 |
String |
keyValue5 |
String |
keyValue6 |
String |
Status |
String |
partnerType |
String |
partnerId |
String |
supplierSite |
String |
invoice |
String |
invoiceDate |
Timestamp |
Qty |
BigDecimal |
qtyUom |
String |
Currency |
String |
exchangeRate |
BigDecimal |
checkAuthNo |
String |
paidAmt |
BigDecimal |
paidDate |
Timestamp |
Comments |
String |
obligationCompTbl |
List<RestObligationCompRecRDO> |
RestObligationCompRecRDO
Parameter Name | Data Type |
---|---|
compId |
String |
allocateToAlc |
String |
allocationType |
String |
allocationBasisUom |
String |
Amt |
BigDecimal |
Rate |
BigDecimal |
perCount |
BigDecimal |
perCountUom |
String |
obligationCompLocTbl |
List<RestObligationCompLocRecRDO> |
RestObligationCompLocRecRDO
Parameter Name | Data Type |
---|---|
Action |
String |
locType |
String |
locId |
BigDecimal |
Qty |
BigDecimal |
Amt |
BigDecimal |
JSON Structure: The same RDO 'RestObligationRecRDO' will be used for createObligationComp, but only the below parameters will be considered for the request. The rest of the parameters will be ignored.
[{ "obligationKey": null, "partnerType":null, "partnerId":null, "supplierSite":null, "invoice":null, "obligationCompTbl" : [ { "compId":null, "allocateToAlc":null, "allocationType":null, "allocationBasisUom": null, "amt":null, "rate":null, "perCount":null, "perCountUom":null, "obligationCompLocTbl":[ { "action":null, "locType":null, "locId": null, "qty":null, "amt":null}] }] }]
Output
RestObligationStatusRecRDO
Parameter Name | Data Type |
---|---|
successObligationTbl |
List<RestObligationSuccessRecRDO> |
successObligationCount |
BigDecimal |
failObligationTbl |
List<RestObligationFailRecRDO> |
failObligationCount |
BigDecimal |
RestObligationSuccessRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
RestObligationFailRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
errorMessage |
String |
The output will contain the status of the request including validation error, if any.
The service will insert data into the Obligation Component (obligation_comp
) table, and for Purchase Order
Header or Purchase Order/Item obligations with location details, into the Obligation Component Location (obligation_comp_loc
) table. Obligation amounts will be allocated to each order/item/location represented on the obligation and will be recorded
in the Actual Landed Cost (ALC) tables.
For Success:
{ "successObligationTbl": [ { "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "successObligationCount": null, "failObligationTbl": [], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
For Failure:
{ "successObligationTbl": [], "successObligationCount": null, "failObligationTbl": [ { "errorMessage": null, "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
OBLIGATION |
Yes |
No |
No |
No |
OBLIGATION_COMP |
Yes |
Yes |
No |
No |
OBLIGATION_COMP_LOC |
Yes |
Yes |
No |
No |
ORDHEAD |
Yes |
No |
No |
No |
ORDSKU |
Yes |
No |
No |
No |
ORDLOC |
Yes |
No |
No |
No |
SHIPMENT |
Yes |
No |
No |
No |
SHIPSKU |
Yes |
No |
No |
No |
V_PACKSKU_QTY |
Yes |
No |
No |
No |
ITEM_SUPP_COUNTRY |
Yes |
No |
No |
No |
ORDLOC_EXP |
Yes |
No |
No |
No |
ELC_COMP |
Yes |
No |
No |
No |
ALC_HEAD |
Yes |
Yes |
Yes |
No |
ALC_COMP_LOC |
Yes |
Yes |
Yes |
No |
Create Obligation Component Location
Business Overview
This service creates obligation
component locations for Purchase Order Header or Purchase Order/Item level obligations by calling the SVCPROV_OBLIGATION
package and then calling the core obligation package to validate and insert data into the Merchandising tables.
For
Purchase Order Header (PO
) and Purchase Order/Item (POIT
) obligation levels, a location-level
breakdown of the obligation component amounts can be added. This service accepts an obligation key, supplier/invoice or partner
type/partner/invoice combination to identify the existing obligation. Allocation to Actual Landed Cost (ALC) will be done
done after successful location creation.
Service Type
Post
ReST URL
/ObligationUpload/createObligationCompLoc
Input Parameters
RestObligationRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
obligationLevel |
String |
keyValue1 |
String |
keyValue2 |
String |
keyValue3 |
String |
keyValue4 |
String |
keyValue5 |
String |
keyValue6 |
String |
status |
String |
partnerType |
String |
partnerId |
String |
supplierSite |
String |
invoice |
String |
invoiceDate |
Timestamp |
qty |
BigDecimal |
qtyUom |
String |
currency |
String |
exchangeRate |
BigDecimal |
checkAuthNo |
String |
paidAmt |
BigDecimal |
paidDate |
Timestamp |
comments |
String |
obligationCompTbl |
List<RestObligationCompRecRDO> |
RestObligationCompRecRDO
Parameter Name | Data Type |
---|---|
compId |
String |
allocateToAlc |
String |
allocationType |
String |
allocationBasisUom |
String |
amt |
BigDecimal |
rate |
BigDecimal |
perCount |
BigDecimal |
perCountUom |
String |
obligationCompLocTbl |
List<RestObligationCompLocRecRDO> |
RestObligationCompLocRecRDO
Parameter Name | Data Type |
---|---|
action |
String |
locType |
String |
locId |
BigDecimal |
qty |
BigDecimal |
amt |
BigDecimal |
JSON Structure: Same RDO 'RestObligationRecRDO' will be used for createObligationComp, but only the below parameters will be considered for the request. The rest of the parameters will be ignored.
[{ "obligationKey": null, "partnerType":null, "partnerId":null, "supplierSite":null, "invoice":null, "obligationCompTbl" : [{ "compId":null, "obligationCompLocTbl":[{ "action":null, "locType":null, "locId": null, "qty":null, "amt":null}] }] }]
Output
RestObligationStatusRecRDO
Parameter Name | Data Type |
---|---|
successObligationTbl |
List<RestObligationSuccessRecRDO> |
successObligationCount |
BigDecimal |
failObligationTbl |
List<RestObligationFailRecRDO> |
failObligationCount |
BigDecimal |
RestObligationSuccessRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
RestObligationFailRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
errorMessage |
String |
The output will contain the status of the request, including validation errors, if any.
For Success:
{ "successObligationTbl": [ { "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "successObligationCount": null, "failObligationTbl": [], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
For Failure:
{ "successObligationTbl": [], "successObligationCount": null, "failObligationTbl": [ { "errorMessage": null, "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
OBLIGATION |
Yes |
No |
No |
No |
OBLIGATION_COMP |
Yes |
No |
No |
No |
OBLIGATION_COMP_LOC |
Yes |
Yes |
No |
No |
ORDHEAD |
Yes |
No |
No |
No |
ORDSKU |
Yes |
No |
No |
No |
ORDLOC |
Yes |
No |
No |
No |
SHIPMENT |
Yes |
No |
No |
No |
SHIPSKU |
Yes |
No |
No |
No |
V_PACKSKU_QTY |
Yes |
No |
No |
No |
ITEM_SUPP_COUNTRY |
Yes |
No |
No |
No |
ORDLOC_EXP |
Yes |
No |
No |
No |
ALC_HEAD |
Yes |
Yes |
Yes |
No |
ALC_COMP_LOC |
Yes |
Yes |
Yes |
No |
Modify Obligation
Business Overview
This service updates obligation header record by calling the SVCPROV_OBLIGATION
package and then calling
the core obligation package to validate and update data to the Obligation table.
This service accepts an obligation key, a supplier/invoice combination or a partner type/partner/invoice combination to identify the existing obligation.
When approving an existing Purchase Order Header (PO
) or Purchase Order/Item (POIT
) level
obligation, if purchase order has a single location or if component/location level details are provided on the obligation,
you are able to specify whether the corresponding non-merchandise invoice should be generated and sent to Invoice Matching
(REIMCS) upon obligation approval, or if the system should wait until the purchase order is closed. To have the system generate
the non-merchandise invoice upon obligation approval, the Create Non-Merchandise Invoice upon Obligation Approval flag (createInvoiceOnObligationApproval
) should be passed in as Yes (Y
), otherwise you can send a value
of No (N
). If no value is provided for the flag, the system will assume a value of No (N
). If the purchase order has multiple locations, the non-merchandise invoice will not be generated or sent to Invoice Matching
until the purchase order is closed. The reason for waiting until closure in this case is because this allows the system to
know the final receipt quantities in order to determine the location allocation of the expenses on the obligation.
When approving obligations of any level besides Purchase Order Header or Purchase Order/Item, non-merchandise invoices will be generated and sent to Invoice Matching (REIMCS) upon obligation approval.
When modifying and/or approving a pending Purchase Order Header (PO) or Purchase Order/Item (POIT
) level
obligation, if purchase order has a single location or if component/location level details are provided on the obligation,
you are able to specify whether the corresponding non-merchandise invoice should be generated and sent to Invoice Matching
(REIMCS) upon obligation approval, or if the system should wait until the purchase order is closed. To have the system generate
the non-merchandise invoice upon obligation approval, the Create Non-Merchandise Invoice upon Obligation Approval flag (createInvoiceOnObligationApproval
) should be passed in as Yes (Y
), otherwise you can send a value
of No (N
). If no value is provided for the flag, the system will assume a value of No (N
). If the purchase order has multiple locations, the non-merchandise invoice will not be generated or sent to Invoice Matching
until the purchase order is closed. The reason for waiting until closure in this case is because this allows the system to
know the final receipt quantities in order to determine the location allocation of the expenses on the obligation.
When approving existing obligations of any level besides Purchase Order Header or Purchase Order/Item, non-merchandise invoices will be generated and sent to Invoice Matching (REIMCS) upon obligation approval.
The following fields can be updated when the obligation is in Pending status.
-
Status
-
Partner Type
-
Partner ID
-
Supplier Site
-
Invoice
-
Invoice Date
-
Quantity
-
Quantity UOM
-
Currency
-
Exchange Rate
The below fields, which are not mandatory, can be updated in pending as well as approved status.
-
Payment Method
-
Check Authorization No.
-
Amount Paid
-
Paid Date
-
Comments
Service Type
Post
ReST URL
/ObligationUpload/modifyObligation
RestObligationRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
obligationLevel |
String |
keyValue1 |
String |
keyValue2 |
String |
keyValue3 |
String |
keyValue4 |
String |
keyValue5 |
String |
keyValue6 |
String |
status |
String |
partnerType |
String |
partnerId |
String |
supplierSite |
String |
invoice |
String |
invoiceDate |
Timestamp |
qty |
BigDecimal |
qtyUom |
String |
currency |
String |
exchangeRate |
BigDecimal |
checkAuthNo |
String |
paidAmt |
BigDecimal |
paidDate |
Timestamp |
comments |
String |
obligationCompTbl |
List<RestObligationCompRecRDO> |
RestObligationCompRecRDO
Parameter Name | Data Type |
---|---|
compId |
String |
allocateToAlc |
String |
allocationType |
String |
allocationBasisUom |
String |
amt |
BigDecimal |
rate |
BigDecimal |
perCount |
BigDecimal |
perCountUom |
String |
obligationCompLocTbl |
List<RestObligationCompLocRecRDO> |
RestObligationCompLocRecRDO
Parameter Name | Data Type |
---|---|
action |
String |
locType |
String |
locId |
BigDecimal |
qty |
BigDecimal |
amt |
BigDecimal |
JSON Structure: Same RDO 'RestObligationRecRDO' will be used for modifyObligation but only the below parameters will be considered for the request. The rest of the parameters will be ignored.
invoiceDate and paidDate will take input in a string with the 'YYYY-MM-DD' format, which will be converted to Timestamp format and insert into the tables.
[{ "obligationKey": null, "status":null, "partnerType":null, "partnerId":null, "supplierSite":null, "invoice":null, "invoiceDate":null, "qty":null, "qtyUom":null, "exchangeRate":null, "currency":null, "paymentMethod":null, "checkAuthNo":null, "paidAmt":null, "paidDate":null, "comments":null }]
Output
RestObligationStatusRecRDO
Parameter Name | Data Type |
---|---|
successObligationTbl |
List<RestObligationSuccessRecRDO> |
successObligationCount |
BigDecimal |
failObligationTbl |
List<RestObligationFailRecRDO> |
failObligationCount |
BigDecimal |
RestObligationSuccessRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
RestObligationFailRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
errorMessage |
String |
The output will contain the status of the request, including validation errors, if any.
NULL values will be ignored for mandatory fields. Non-mandatory fields can be updated to NULL.
For Success:
{ "successObligationTbl": [ { "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "successObligationCount": null, "failObligationTbl": [], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
For Failure:
{ "successObligationTbl": [], "successObligationCount": null, "failObligationTbl": [ { "errorMessage": null, "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
OBLIGATION |
Yes |
No |
No |
No |
OBLIGATION_COMP |
Yes |
No |
No |
No |
OBLIGATION_COMP_LOC |
Yes |
No |
No |
No |
ORDHEAD |
Yes |
No |
No |
No |
ORDSKU |
Yes |
No |
No |
No |
ORDLOC |
Yes |
No |
No |
No |
SHIPMENT |
Yes |
No |
No |
No |
SHIPSKU |
Yes |
No |
No |
No |
V_PACKSKU_QTY |
Yes |
No |
No |
No |
ITEM_SUPP_COUNTRY |
Yes |
No |
No |
No |
ORDLOC_EXP |
Yes |
No |
No |
No |
ALC_HEAD |
Yes |
Yes |
Yes |
No |
ALC_COMP_LOC |
Yes |
Yes |
Yes |
No |
INVC_HEAD |
No |
Yes |
No |
No |
INVC_NON_MERCH |
No |
Yes |
No |
No |
INVC_XREF |
No |
Yes |
No |
No |
Modify Obligation Comp
Business Overview
This service updates existing obligation component records which are in pending status by calling the SVCPROV_OBLIGATION package and then calling the core obligation package to validate and update data in the obligation_comp table.
This service accepts an obligation key, a supplier/invoice combination, or a partner type/partner/invoice combination to identify the existing obligation. The user can modify component level fields on pending obligations. Reallocation to ALC will be done after update.
Service Type
Post
ReST URL
/ObligationUpload/modifyObligationComp
Input Parameters
RestObligationRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
obligationLevel |
String |
keyValue1 |
String |
keyValue2 |
String |
keyValue3 |
String |
keyValue4 |
String |
keyValue5 |
String |
keyValue6 |
String |
status |
String |
partnerType |
String |
partnerId |
String |
supplierSite |
String |
invoice |
String |
invoiceDate |
Timestamp |
qty |
BigDecimal |
qtyUom |
String |
currency |
String |
exchangeRate |
BigDecimal |
checkAuthNo |
String |
paidAmt |
BigDecimal |
paidDate |
Timestamp |
comments |
String |
obligationCompTbl |
List<RestObligationCompRecRDO> |
RestObligationCompRecRDO
Parameter Name | Data Type |
---|---|
compId |
String |
allocateToAlc |
String |
allocationType |
String |
allocationBasisUom |
String |
amt |
BigDecimal |
rate |
BigDecimal |
perCount |
BigDecimal |
perCountUom |
String |
obligationCompLocTbl |
List<RestObligationCompLocRecRDO> |
RestObligationCompLocRecRDO
Parameter Name | Data Type |
---|---|
action |
String |
locType |
String |
locId |
BigDecimal |
qty |
BigDecimal |
amt |
BigDecimal |
JSON Structure: The same RDO 'RestObligationRecRDO' will be used for modifyObligationComp, but only the below parameters will be considered for the request. The rest of the parameters will be ignored.
[{ "obligationKey": null, "partnerType":null, "partnerId":null, "supplierSite":null, "invoice":null, "obligationCompTbl" : [{"compId":null, "allocateToAlc":null, "allocationType":null, "allocationBasisUom": null, "amt":null, "rate":null, "perCount":null, "perCountUom":null, }] }]
Output
RestObligationStatusRecRDO
Parameter Name | Data Type |
---|---|
successObligationTbl |
List<RestObligationSuccessRecRDO> |
successObligationCount |
BigDecimal |
failObligationTbl |
List<RestObligationFailRecRDO> |
failObligationCount |
BigDecimal |
RestObligationSuccessRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
RestObligationFailRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
errorMessage |
String |
The output will contain the status of the request, including validation errors, if any.
For Success:
{ "successObligationTbl": [ { "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "successObligationCount": null, "failObligationTbl": [], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
For Failure:
{ "successObligationTbl": [], "successObligationCount": null, "failObligationTbl": [ { "errorMessage": null, "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
OBLIGATION |
Yes |
No |
No |
No |
OBLIGATION_COMP |
Yes |
No |
No |
No |
OBLIGATION_COMP_LOC |
Yes |
No |
No |
No |
ORDHEAD |
Yes |
No |
No |
No |
ORDSKU |
Yes |
No |
No |
No |
ORDLOC |
Yes |
No |
No |
No |
SHIPMENT |
Yes |
No |
No |
No |
SHIPSKU |
Yes |
No |
No |
No |
V_PACKSKU_QTY |
Yes |
No |
No |
No |
ITEM_SUPP_COUNTRY |
Yes |
No |
No |
No |
ORDLOC_EXP |
Yes |
No |
No |
No |
ALC_HEAD |
Yes |
Yes |
Yes |
No |
ALC_COMP_LOC |
Yes |
Yes |
Yes |
No |
Modify Obligation Component Location
Business Overview
This service updates existing obligation component records which are in pending status by calling the SVCPROV_OBLIGATION
package and then calling the core obligation package to validate and update data in the obligation_comp
table.
This service accepts an obligation key, a supplier/invoice combination, or a partner type/partner/invoice combination to identify the obligation. Enter an expense component for which you want to modify the location. Reallocation to ALC will be done after update.
Service Type
Post
ReST URL
/ObligationUpload/modifyObligationCompLoc
Input Parameters
RestObligationRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
obligationLevel |
String |
keyValue1 |
String |
keyValue2 |
String |
keyValue3 |
String |
keyValue4 |
String |
keyValue5 |
String |
keyValue6 |
String |
status |
String |
partnerType |
String |
partnerId |
String |
supplierSite |
String |
invoice |
String |
invoiceDate |
Timestamp |
qty |
BigDecimal |
qtyUom |
String |
currency |
String |
exchangeRate |
BigDecimal |
checkAuthNo |
String |
paidAmt |
BigDecimal |
paidDate |
Timestamp |
comments |
String |
obligationCompTbl |
List<RestObligationCompRecRDO> |
RestObligationCompRecRDO
Parameter Name | Data Type |
---|---|
compId |
String |
allocateToAlc |
String |
allocationType |
String |
allocationBasisUom |
String |
amt |
BigDecimal |
rate |
BigDecimal |
perCount |
BigDecimal |
perCountUom |
String |
obligationCompLocTbl |
List<RestObligationCompLocRecRDO> |
RestObligationCompLocRecRDO
Parameter Name | Data Type |
---|---|
action |
String |
locType |
String |
locId |
BigDecimal |
qty |
BigDecimal |
amt |
BigDecimal |
JSON Structure: The same RDO 'RestObligationRecRDO' will be used for modifyObligationCompLoc but only the below parameters will be considered for the request. The rest of the parameters will be ignored.
[{ "obligationKey": null, "partnerType":null, "partnerId":null, "supplierSite":null, "invoice":null, "obligationCompTbl" : [{ "compId":null, "obligationCompLocTbl":[{ "action":null, "locType":null, "locId": null, "qty":null, "amt":null}] }] }]
Output
RestObligationStatusRecRDO
Parameter Name | Data Type |
---|---|
successObligationTbl |
List<RestObligationSuccessRecRDO> |
successObligationCount |
BigDecimal |
failObligationTbl |
List<RestObligationFailRecRDO> |
failObligationCount |
BigDecimal |
RestObligationSuccessRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
RestObligationFailRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
errorMessage |
String |
The output will contain the status of the request, including validation errors, if any.
The action field is mandatory here. Valid value for this are MOD/DEL. MOD is to update a location and DEL to delete a location.
For Success:
{ "successObligationTbl": [ { "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "successObligationCount": null, "failObligationTbl": [], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
For Failure:
{ "successObligationTbl": [], "successObligationCount": null, "failObligationTbl": [ { "errorMessage": null, "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
OBLIGATION |
Yes |
No |
No |
No |
OBLIGATION_COMP |
Yes |
No |
Yes |
No |
OBLIGATION_COMP_LOC |
Yes |
No |
Yes |
No |
ORDHEAD |
Yes |
No |
No |
No |
ORDSKU |
Yes |
No |
No |
No |
ORDLOC |
Yes |
No |
No |
No |
SHIPMENT |
Yes |
No |
No |
No |
SHIPSKU |
Yes |
No |
No |
No |
V_PACKSKU_QTY |
Yes |
No |
No |
No |
ITEM_SUPP_COUNTRY |
Yes |
No |
No |
No |
ORDLOC_EXP |
Yes |
No |
No |
No |
ALC_HEAD |
Yes |
No |
Yes |
No |
ALC_COMP_LOC |
Yes |
No |
Yes |
No |
Delete Obligation
Business Overview
This service deletes existing obligation records with pending status by calling the SVCPROV_OBLIGATION
package and then calling the core obligation package to validate and delete entire obligation records from Merchandising
tables.
This service accepts an obligation key, a supplier/invoice combination, or a partner type/partner/invoice combination to identify the obligation. This service will delete the entire obligation record.
Service Type
Post
ReST URL
/ObligationUpload/deleteObligation
Input Parameters
RestObligationRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
obligationLevel |
String |
keyValue1 |
String |
keyValue2 |
String |
keyValue3 |
String |
keyValue4 |
String |
keyValue5 |
String |
keyValue6 |
String |
status |
String |
partnerType |
String |
partnerId |
String |
supplierSite |
String |
invoice |
String |
invoiceDate |
Timestamp |
qty |
BigDecimal |
qtyUom |
String |
currency |
String |
exchangeRate |
BigDecimal |
checkAuthNo |
String |
paidAmt |
BigDecimal |
paidDate |
Timestamp |
comments |
String |
obligationCompTbl |
List<RestObligationCompRecRDO> |
RestObligationCompRecRDO
Parameter Name | Data Type |
---|---|
compId |
String |
allocateToAlc |
String |
allocationType |
String |
allocationBasisUom |
String |
amt |
BigDecimal |
rate |
BigDecimal |
perCount |
BigDecimal |
perCountUom |
String |
obligationCompLocTbl |
List<RestObligationCompLocRecRDO> |
RestObligationCompLocRecRDO
Parameter Name | Data Type |
---|---|
action |
String |
locType |
String |
locId |
BigDecimal |
qty |
BigDecimal |
amt |
BigDecimal |
JSON Structure: The same RDO 'RestObligationRecRDO' will be used for deleteObligation but only the below parameters will be considered for the request. The rest of the parameters will be ignored.
[{ "obligationKey": null, "partnerType":null, "partnerId":null, "supplierSite":null, "invoice":null }]
Output
RestObligationStatusRecRDO
Parameter Name | Data Type |
---|---|
successObligationTbl |
List<RestObligationSuccessRecRDO> |
successObligationCount |
BigDecimal |
failObligationTbl |
List<RestObligationFailRecRDO> |
failObligationCount |
BigDecimal |
RestObligationSuccessRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
RestObligationFailRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
errorMessage |
String |
The output will contain the status of the request, including validation errors, if any.
For Success:
{ "successObligationTbl": [ { "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "successObligationCount": null, "failObligationTbl": [], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
For Failure:
{ "successObligationTbl": [], "successObligationCount": null, "failObligationTbl": [ { "errorMessage": null, "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
OBLIGATION |
Yes |
No |
No |
Yes |
OBLIGATION_COMP |
Yes |
No |
No |
Yes |
OBLIGATION_COMP_LOC |
Yes |
No |
No |
Yes |
ALC_HEAD |
Yes |
No |
No |
Yes |
ALC_COMP_LOC |
Yes |
No |
No |
Yes |
Delete Obligation Component
Business Overview
This service deletes obligation components for existing obligations by calling the SVCPROV_OBLIGATION
package
and then calling the core obligation package to validate and delete data from Merchandising tables.
This service accepts an obligation key, a supplier/invoice combination or a partner type/partner/invoice combination to identify the obligation. Pass the expense component to be deleted. This service will delete the component if the obligation is in Pending status and the component is not the only component on the obligation. If locations are attached to the components then that will be deleted as well. Reallocation to ALC will be done after deletion.
Service Type
Post
ReST URL
/ObligationUpload/deleteObligationComp
Input Parameters
RestObligationRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
obligationLevel |
String |
keyValue1 |
String |
keyValue2 |
String |
keyValue3 |
String |
keyValue4 |
String |
keyValue5 |
String |
keyValue6 |
String |
status |
String |
partnerType |
String |
partnerId |
String |
supplierSite |
String |
invoice |
String |
invoiceDate |
Timestamp |
qty |
BigDecimal |
qtyUom |
String |
currency |
String |
exchangeRate |
BigDecimal |
checkAuthNo |
String |
paidAmt |
BigDecimal |
paidDate |
Timestamp |
comments |
String |
obligationCompTbl |
List<RestObligationCompRecRDO> |
RestObligationCompRecRDO
Parameter Name | Data Type |
---|---|
compId |
String |
allocateToAlc |
String |
allocationType |
String |
allocationBasisUom |
String |
amt |
BigDecimal |
rate |
BigDecimal |
perCount |
BigDecimal |
perCountUom |
String |
obligationCompLocTbl |
List<RestObligationCompLocRecRDO> |
RestObligationCompLocRecRDO
Parameter Name | Data Type |
---|---|
action |
String |
locType |
String |
locId |
BigDecimal |
qty |
BigDecimal |
amt |
BigDecimal |
JSON Structure: The same RDO 'RestObligationRecRDO' will be used for deleteObligationComp, but only the below parameters will be considered for the request. The rest of the parameters will be ignored.
[{ "obligationKey": null, "partnerType":null, "partnerId":null, "supplierSite":null, "invoice":null, "obligationCompTbl" : [{ "compId":null }] }]
Output
RestObligationStatusRecRDO
Parameter Name | Data Type |
---|---|
successObligationTbl |
List<RestObligationSuccessRecRDO> |
successObligationCount |
BigDecimal |
failObligationTbl |
List<RestObligationFailRecRDO> |
failObligationCount |
BigDecimal |
RestObligationSuccessRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
RestObligationFailRecRDO
Parameter Name | Data Type |
---|---|
obligationKey |
BigDecimal |
status |
String |
invoice |
String |
errorMessage |
String |
The output will contain the status of the request, including validation errors, if any.
For Success:
{ "successObligationTbl": [ { "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "successObligationCount": null, "failObligationTbl": [], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
For Failure:
{ "successObligationTbl": [], "successObligationCount": null, "failObligationTbl": [ { "errorMessage": null, "status": null, "invoice": null, "obligationKey": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "failObligationCount": null, "links": [], "hyperMediaContent": { "linkRDO": [] } }
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
OBLIGATION |
Yes |
No |
No |
Yes |
OBLIGATION_COMP |
Yes |
No |
No |
Yes |
OBLIGATION_COMP_LOC |
Yes |
No |
No |
Yes |
ORDHEAD |
Yes |
No |
No |
Yes |
ORDSKU |
Yes |
No |
No |
Yes |
ORDLOC |
Yes |
No |
No |
Yes |
SHIPMENT |
Yes |
No |
No |
Yes |
SHIPSKU |
Yes |
No |
No |
Yes |
V_PACKSKU_QTY |
Yes |
No |
No |
Yes |
ITEM_SUPP_COUNTRY |
Yes |
No |
No |
Yes |
ORDLOC_EXP |
Yes |
No |
No |
Yes |
ALC_HEAD |
Yes |
No |
Yes |
Yes |
ALC_COMP_LOC |
Yes |
No |
Yes |
Yes |