Release hold

post

/fscmRestApi/resources/11.13.18.05/salesOrdersForOrderHub/action/releaseHold

This service can be used to release holds on the sales order resource at the order header and fulfillment line levels.

Request

Header Parameters
  • 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".
  • 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.
Supported Media Types
Request Body - application/vnd.oracle.adf.action+json ()
Root Schema : schema
Type: object
Show Source
  • 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.
  • 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.
Nested Schema : holdRequests
Type: array
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.
Show Source
Nested Schema : items
Type: object
Additional Properties Allowed
Show Source
Back to Top

Response

Supported Media Types

Default Response

The following table describes the default response for this task.
Body ()
Root Schema : schema
Type: object
Show Source
  • 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.
Nested Schema : result
Type: array
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.
Show Source
Nested Schema : items
Type: object
Additional Properties Allowed
Show Source
Back to Top

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.action+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"
        }
    ]
}
Back to Top