Release hold
/fscmRestApi/resources/11.13.18.05/salesOrdersForOrderHub/action/releaseHold
Request
-
Metadata-Context:
If the REST API supports runtime customizations, the shape of the service may change during runtime. The REST client may isolate itself from these changes or choose to interact with the latest version of the API by specifying this header. For example: Metadata-Context:sandbox="TrackEmployeeFeature".
-
REST-Framework-Version:
The protocol version between a REST client and service. If the client does not specify this header in the request the server will pick a default version for the API.
- application/vnd.oracle.adf.action+json
object
-
holdRequests: array
holdRequests
Required attributes for Release hold request include SourceTransactionSystem, HoldCode or HoldName, and HoldReleaseReasonCode or HoldReleaseReason.
- For header holds, either SourceTransactionId or OrderNumber are mandatory along with SourceTransactionSystem, HoldCode or HoldName and HoldReleaseReasonCode or HoldReleaseReason.
- For fulfillment line holds, FulfillLineId is mandatory along with HoldCode or HoldName and HoldReleaseReasonCode or HoldReleaseReason. When SourceTransactionLineId is used to release holds, either SourceTransactionId or OrderNumber are mandatory along with SourceTransactionSystem and HoldCode or HoldName.
- HoldReleaseComments is an optional attribute.
Although SourceTransactionLineId is an input in the Release hold request, the hold will only be released from the fulfillment lines corresponding to that line. The hold will NOT be released from the order line entity itself. -
processRequestOfflineAfter: number
Time, in seconds, after which the control will be passed back to the calling client and the release hold request will continue in the background.
array
- For header holds, either SourceTransactionId or OrderNumber are mandatory along with SourceTransactionSystem, HoldCode or HoldName and HoldReleaseReasonCode or HoldReleaseReason.
- For fulfillment line holds, FulfillLineId is mandatory along with HoldCode or HoldName and HoldReleaseReasonCode or HoldReleaseReason. When SourceTransactionLineId is used to release holds, either SourceTransactionId or OrderNumber are mandatory along with SourceTransactionSystem and HoldCode or HoldName.
- HoldReleaseComments is an optional attribute.
Although SourceTransactionLineId is an input in the Release hold request, the hold will only be released from the fulfillment lines corresponding to that line. The hold will NOT be released from the order line entity itself.
-
Array of:
object items
Additional Properties Allowed: additionalProperties
Response
- application/json
- application/vnd.oracle.adf.actionresult+json
Default Response
object
-
result(required): array
result
The RequestStatus attribute in the Release hold response contains the status of the Release hold request. It can have two values: SUCCESS or ERROR. In case of an ERROR, the Message attribute contains the actual error message.
In addition to the RequestStatus and Message attributes, the Release hold response also contains the SourceTransactionSystem, SourceTransactionId, OrderNumber, SourceTransactionLineId, FulfillLineId and HoldCode.
array
In addition to the RequestStatus and Message attributes, the Release hold response also contains the SourceTransactionSystem, SourceTransactionId, OrderNumber, SourceTransactionLineId, FulfillLineId and HoldCode.
-
Array of:
object items
Additional Properties Allowed: additionalProperties
Examples
These examples describe how to release holds on sales orders.
Example Number | Description |
---|---|
Example 1 | Release a header hold on a single order. |
Example 2 | Release a header hold on multiple orders in a single request. |
Example 3 | Release a hold on multiple fulfillment lines in a single order. |
Example 4 | Release a hold on fulfillment lines belonging to multiple orders in a single request. |
Example 5 | Release a hold on fulfillment lines in a single order using the SourceTransactionLineId attribute. The hold is only released from the fulfillment lines corresponding to the SourceTransactionLineId attribute. |
Example 6 | Release a hold on fulfillment lines belonging to multiple orders using the SourceTransactionLineId attribute. The hold is only released from the fulfillment lines corresponding to the SourceTransactionLineId attribute. |
Example 7 | Release header holds on multiple orders using the HoldName attribute. |
Example 8 | Release fulfillment line holds on multiple fulfillment lines with the processRequestOfflineAfter attribute set to a non-default value. |
Example 9 | Demonstrates an exception scenario where a request is made to release a header hold on multiple orders but the orders are not on hold. |
Example 10 | Demonstrates an exception scenario where a required input is not passed in the input to the release hold request. |
Example cURL Command
Use the following cURL command to submit a request on the REST resource.
curl -u username:password -X POST -H "Content-Type:application/vnd.oracle.adf.resourceitem+json" -d 'request payload' "https://servername/fscmRestApi/resources/version/salesOrdersForOrderHub/action/releaseHold"
Example 1
This example describes how to release a header hold on a single order.
Example 1 Request Body
The following example includes the contents of the request body in JSON format. You replace the request payload in the cURL command with the contents of the Example Request Body. The request payload specifies attribute values that the command will use in the record that it updates.
{ "processRequestOfflineAfter": 240, "holdRequests": [ { "SourceTransactionSystem" : "GPR", "SourceTransactionId": "AASHIP190404", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Order released from hold", "HoldReleaseReasonCode": "QAREL" } ] }
Example 1 Response Body
The following example includes contents of the response body in JSON format:
{ "result": [ { "RequestStatus": "SUCCESS", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190404", "OrderNumber": "531257", "SourceTransactionLineId": null, "FulfillLineId": null, "HoldCode": "DOO_SHIP_ALL" } ] }
Example 2
This example describes how to release a header hold on multiple orders in a single request.
Example 2 Request Body
The following example includes the contents of the request body in JSON format. You replace the request payload in the cURL command with the contents of the Example Request Body. The request payload specifies attribute values that the command will use in the record that it updates.
{ "processRequestOfflineAfter": 60, "holdRequests": [ { "OrderNumber": "531257", "SourceTransactionSystem" : "GPR", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release order from hold", "HoldReleaseReasonCode": "QAREL" }, { "OrderNumber": "531258", "SourceTransactionSystem" : "GPR", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release order from hold", "HoldReleaseReasonCode": "QAREL" } ] }
Example 2 Response Body
The following example includes the contents of the response body in JSON format:
{ "result": [ { "RequestStatus": "SUCCESS", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190404", "OrderNumber": "531257", "SourceTransactionLineId": null, "FulfillLineId": null, "HoldCode": "DOO_SHIP_ALL" }, { "RequestStatus": "SUCCESS", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190405", "OrderNumber": "531258", "SourceTransactionLineId": null, "FulfillLineId": null, "HoldCode": "DOO_SHIP_ALL" } ] }
Example 3
This example describes how to release a hold on multiple fulfillment lines in a single order.
Example 3 Request Body
The following example includes the contents of the request body in JSON format. You replace the request payload in the cURL command with the contents of the Example Request Body. The request payload specifies attribute values that the command will use in the record that it updates.
{ "processRequestOfflineAfter": 60, "holdRequests": [ { "FulfillLineId": "300100592623973", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release Fulfillment line Hold", "HoldReleaseReasonCode": "QAREL" }, { "FulfillLineId": "300100592623975", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release Fulfillment line Hold", "HoldReleaseReasonCode": "QAREL" } ] }
Example 3 Response Body
The following example includes the contents of the response body in JSON format:
{ "result": [ { "RequestStatus": "SUCCESS", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190404", "OrderNumber": "531257", "SourceTransactionLineId": "1", "FulfillLineId": "300100592623973", "HoldCode": "DOO_SHIP_ALL" }, { "RequestStatus": "SUCCESS", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190404", "OrderNumber": "531257", "SourceTransactionLineId": "2", "FulfillLineId": "300100592623975", "HoldCode": "DOO_SHIP_ALL" } ] }
Example 4
This example describes how to to release a hold on fulfillment lines belonging to multiple orders in a single request.
Example 4 Request Body
The following example includes the contents of the request body in JSON format. You replace the request payload in the cURL command with the contents of the Example Request Body. The request payload specifies attribute values that the command will use in the record that it updates.
{ "processRequestOfflineAfter": 60, "holdRequests": [ { "FulfillLineId": "300100592623973", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release Fulfillment line Hold", "HoldReleaseReasonCode": "QAREL" }, { "FulfillLineId": "300100592623975", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release Fulfillment line Hold", "HoldReleaseReasonCode": "QAREL" }, { "FulfillLineId": "300100592625199", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release Fulfillment line Hold", "HoldReleaseReasonCode": "QAREL" }, { "FulfillLineId": "300100592625201", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release Fulfillment line Hold", "HoldReleaseReasonCode": "QAREL" } ] }
Example 4 Response Body
The following example includes the contents of the response body in JSON format:
{ "result": [ { "RequestStatus": "SUCCESS", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190404", "OrderNumber": "531257", "SourceTransactionLineId": "1", "FulfillLineId": "300100592623973", "HoldCode": "DOO_SHIP_ALL" }, { "RequestStatus": "SUCCESS", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190404", "OrderNumber": "531257", "SourceTransactionLineId": "2", "FulfillLineId": "300100592623975", "HoldCode": "DOO_SHIP_ALL" }, { "RequestStatus": "SUCCESS", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190405", "OrderNumber": "531258", "SourceTransactionLineId": "1", "FulfillLineId": "300100592625199", "HoldCode": "DOO_SHIP_ALL" }, { "RequestStatus": "SUCCESS", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190405", "OrderNumber": "531258", "SourceTransactionLineId": "2", "FulfillLineId": "300100592625201", "HoldCode": "DOO_SHIP_ALL" } ] }
Example 5
This example describes how to release a hold on fulfillment lines in a single order using the SourceTransactionLineId attribute. The hold is only released from the fulfillment lines corresponding to the SourceTransactionLineId attribute.
Example 5 Request Body
The following example includes the contents of the request body in JSON format. You replace the request payload in the cURL command with the contents of the Example Request Body. The request payload specifies attribute values that the command will use in the record that it updates.
{ "processRequestOfflineAfter": 10, "holdRequests": [ { "SourceTransactionLineId": 2, "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release hold using Line id", "HoldReleaseReason": "Quality Release", "SourceTransactionId": "AASHIP190406", "SourceTransactionSystem": "GPR" } ] }
Example 5 Response Body
The following example includes the contents of the response body in JSON format:
{ "result": [ { "RequestStatus": "SUCCESS", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190406", "OrderNumber": "531274", "SourceTransactionLineId": "2", "FulfillLineId": null, "HoldCode": "DOO_SHIP_ALL" } ] }
Example 6
This example describes how to release a hold on fulfillment lines belonging to multiple orders using the SourceTransactionLineId attribute. The hold is only released from the fulfillment lines corresponding to the SourceTransactionLineId attribute.
Example 6 Request Body
The following example includes the contents of the request body in JSON format. You replace the request payload in the cURL command with the contents of the Example Request Body. The request payload specifies attribute values that the command will use in the record that it updates.
{ "processRequestOfflineAfter": 10, "holdRequests": [ { "SourceTransactionLineId": 2, "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release hold using Line id", "HoldReleaseReason": "Quality Release", "SourceTransactionId": "AASHIP190406", "SourceTransactionSystem": "GPR" }, { "SourceTransactionLineId": 1, "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release hold using Line id", "HoldReleaseReason": "Quality Release", "SourceTransactionId": "AASHIP190407", "SourceTransactionSystem": "GPR" } ] }
Example 6 Response Body
The following example includes the contents of the response body in JSON format:
{ "result": [ { "RequestStatus": "SUCCESS", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190406", "OrderNumber": "531274", "SourceTransactionLineId": "2", "FulfillLineId": null, "HoldCode": "DOO_SHIP_ALL" }, { "RequestStatus": "SUCCESS", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190407", "OrderNumber": "531275", "SourceTransactionLineId": "1", "FulfillLineId": null, "HoldCode": "DOO_SHIP_ALL" } ] }
Example 7
This example describes how to release header holds on multiple orders using the HoldName attribute.
Example 7 Request Body
The following example includes the contents of the request body in JSON format. You replace the request payload in the cURL command with the contents of the Example Request Body. The request payload specifies attribute values that the command will use in the record that it updates.
{ "processRequestOfflineAfter": 10, "holdRequests": [ { "OrderNumber": "531257", "SourceTransactionSystem" : "GPR", "HoldName": "SHIP_ALL", "HoldReleaseComments": "Release order from hold", "HoldReleaseReasonCode": "QAREL" }, { "OrderNumber": "531258", "SourceTransactionSystem" : "GPR", "HoldName": "SHIP_ALL", "HoldReleaseComments": "Release order from hold", "HoldReleaseReasonCode": "QAREL" } ] }
Example 7 Response Body
The following example includes the contents of the response body in JSON format:
{ "result": [ { "RequestStatus": "SUCCESS", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190404", "OrderNumber": "531257", "SourceTransactionLineId": null, "FulfillLineId": null, "HoldCode": "DOO_SHIP_ALL" }, { "RequestStatus": "SUCCESS", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190405", "OrderNumber": "531258", "SourceTransactionLineId": null, "FulfillLineId": null, "HoldCode": "DOO_SHIP_ALL" } ] }
Example 8
This example describes how to release fulfillment line holds on multiple fulfillment lines with the processRequestOfflineAfter attribute set to a non-default value. The default value for this attribute is 240 seconds.
Example 8 Request Body
The following example includes the contents of the request body in JSON format. You replace the request payload in the cURL command with the contents of the Example Request Body. The request payload specifies attribute values that the command will use in the record that it updates.
{ "processRequestOfflineAfter": 10, "holdRequests": [ { "FulfillLineId": "300100592623973", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release Fulfillment line Hold", "HoldReleaseReasonCode": "QAREL" }, { "FulfillLineId": "300100592623975", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release Fulfillment line Hold", "HoldReleaseReasonCode": "QAREL" }, { "FulfillLineId": "300100592625199", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release Fulfillment line Hold", "HoldReleaseReasonCode": "QAREL" }, { "FulfillLineId": "300100592625201", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release Fulfillment line Hold", "HoldReleaseReasonCode": "QAREL" } ] }
Example 8 Response Body
The following example includes the contents of the response body in JSON format:
{ "result": [ { "RequestStatus": "PROCESSING", "Message": "Order management is processing your request to release a hold on the sales order. Query for order 531257 to monitor your request.", "SourceTransactionSystem": null, "SourceTransactionId": null, "OrderNumber": null, "SourceTransactionLineId": null, "FulfillLineId": "300100592623973", "HoldCode": "DOO_SHIP_ALL" }, { "RequestStatus": "PROCESSING", "Message": "Order management is processing your request to release a hold on the sales order. Query for order 531257 to monitor your request.", "SourceTransactionSystem": null, "SourceTransactionId": null, "OrderNumber": null, "SourceTransactionLineId": null, "FulfillLineId": "300100592623975", "HoldCode": "DOO_SHIP_ALL" }, { "RequestStatus": "PROCESSING", "Message": "Order management is processing your request to release a hold on the sales order. Query for order 531258 to monitor your request.", "SourceTransactionSystem": null, "SourceTransactionId": null, "OrderNumber": null, "SourceTransactionLineId": null, "FulfillLineId": "300100592625199", "HoldCode": "DOO_SHIP_ALL" }, { "RequestStatus": "PROCESSING", "Message": "Order management is processing your request to release a hold on the sales order. Query for order 531258 to monitor your request.", "SourceTransactionSystem": null, "SourceTransactionId": null, "OrderNumber": null, "SourceTransactionLineId": null, "FulfillLineId": "300100592625201", "HoldCode": "DOO_SHIP_ALL" } ] }
Example 9
This example demonstrates an exception scenario where a request is made to release a header hold on multiple orders but the orders are not on hold. Since the orders are not on hold when the release hold request is sent, an error is returned with RequestStatus error.
Example 9 Request Body
The following example includes the contents of the request body in JSON format. You replace the request payload in the cURL command with the contents of the Example Request Body. The request payload specifies attribute values that the command will use in the record that it updates.
{ "processRequestOfflineAfter": 10, "holdRequests": [ { "OrderNumber": "531257", "SourceTransactionSystem" : "GPR", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release order from hold", "HoldReleaseReasonCode": "QAREL" }, { "OrderNumber": "531258", "SourceTransactionSystem" : "GPR", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release order from hold", "HoldReleaseReasonCode": "QAREL" } ] }
Example 9 Response Body
The following example includes the contents of the response body in JSON format:
{ "result": [ { "RequestStatus": "ERROR", "Message": "You can't release the DOO_SHIP_ALL hold on the order header or the order line because the order or line isn't on the DOO_SHIP_ALL hold. (FOM-4515607)", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190404", "OrderNumber": "531257", "SourceTransactionLineId": null, "FulfillLineId": null, "HoldCode": "DOO_SHIP_ALL" }, { "RequestStatus": "ERROR", "Message": "You can't release the DOO_SHIP_ALL hold on the order header or the order line because the order or line isn't on the DOO_SHIP_ALL hold. (FOM-4515607)", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190405", "OrderNumber": "531258", "SourceTransactionLineId": null, "FulfillLineId": null, "HoldCode": "DOO_SHIP_ALL" } ] }
Example 10
The following example demonstrates an exception scenario where a required input is not passed in the input to the release hold request. Since the required attributes are not passed in the release hold request, an error is returned with RequestStatus as error.
Example 10 Request Body
The following example includes the contents of the request body in JSON format. You replace the request payload in the cURL command with the contents of the Example Request Body. The request payload specifies attribute values that the command will use in the record that it updates.
{ "processRequestOfflineAfter": 10, "holdRequests": [ { "OrderNumber": "531257", "SourceTransactionSystem" : "GPR", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release order from hold" }, { "OrderNumber": "531258", "SourceTransactionSystem" : "GPR", "HoldCode": "DOO_SHIP_ALL", "HoldReleaseComments": "Release order from hold" } ] }
Example 10 Response Body
The following example includes the contents of the response body in JSON format:
{ "result": [ { "RequestStatus": "ERROR", "Message": "Your payload for the RELEASE_HOLD service is missing the HoldReleaseReasonCode attribute. (FOM-4515571) Details: Include the HoldReleaseReasonCode attribute in your payload.", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190404", "OrderNumber": "531257", "SourceTransactionLineId": null, "FulfillLineId": null, "HoldCode": "DOO_SHIP_ALL" }, { "RequestStatus": "ERROR", "Message": "Your payload for the RELEASE_HOLD service is missing the HoldReleaseReasonCode attribute. (FOM-4515571) Details: Include the HoldReleaseReasonCode attribute in your payload.", "SourceTransactionSystem": "GPR", "SourceTransactionId": "AASHIP190405", "OrderNumber": "531258", "SourceTransactionLineId": null, "FulfillLineId": null, "HoldCode": "DOO_SHIP_ALL" } ] }