Schedule Large Volume of Sales Order Lines Across Orders
Oracle Order Management Fusion Cloud provides the ability to schedule large volume of sales order lines using a REST resource.
You can use a REST resource to request scheduling of multiple sales order lines across orders and get the status of the request that's submitted for scheduling. For example, several orders submitted during the day are scheduled at the end of day to make sure that the order lines with tomorrow's Requested Date are scheduled before other lines are scheduled.
Here's a typical application processing flow for the scenario:
- In this example, you have a list of Fulfill Line IDs across orders that you want to schedule. You can use the GET service of Sales Orders for Order Hub resource to get the Fulfill Line IDs of the lines that you want to schedule. Alternatively, as described in the Submit Large Volume of Sales Order use case, you can use filter criteria in the Sales Order Action Requests resource to get the order lines to schedule.
- You send a request payload using Sales Order Action Requests REST resource to schedule the list of Fulfill Line IDs.
- The response payload includes details of the batch process that's submitted to schedule the Fulfill Line IDs. As this is an offline process, so the immediate response is always shown as PRE_PROCESSING.
- You can get the summarized status of the schedule line request by calling the GET service of the Sales Order Action Requests REST resource for the request.
- The GET service of the Sales Order Action Requests REST resource for the request also provides the unique request identifiers that are spawned for each Fulfill Line ID that you request to schedule. You can get the status of scheduling on the line and error or warning details, if any, for each line using the request identifier of each Fulfill Line ID.
In this example, there are three Fulfill Line IDs submitted to schedule. Two result in success and one in error.
Create One Sales Action Request
Use this resource URL format.
POST
curl -u username:password -X POST -H "Content-Type:application/vnd.oracle.adf.resourceitem+json" -d 'request payload' "https://servername/fscmRestApi/resources/version/salesOrderActionRequests"
Example Request
Here's an example of the request body in JSON format. You plan to schedule three fulfillment lines with Fulfill Line IDs 300100615865777, 300100615865893, and 300100615865994. Specify ActionCode ORA_FOM_SCHEDULE_LINE to indicate that the sales order action request is to schedule all the three lines. The FulfillLineId attribute carries the unique identifier of the lines to be scheduled.
{ "ActionCode": "ORA_FOM_SCHEDULE_LINE", "requests": [ { "FulfillLineId": 300100615865777 }, { "FulfillLineId": 300100615865893 }, { "FulfillLineId": 300100615865994 } ] }
Example Response
- You can see one master request and three child action requests to schedule three
Fulfill Line IDs mentioned in the request payload. The master ActionRequestId is
300100619025386. The master action request spawned three child requests to
handle processing of three individual Fulfill line IDs:
- ActionRequestId 300100619025387 for FulfillLineID 300100615865777
- ActionRequestId 300100619025388 for FulfillLineID 300100615865893
- ActionRequestId 300100619025389 for FulfillLineID 300100615865994
The order lines are scheduled through a batch process, hence the response shows StatusCode as PRE_PROCESSING and ProcessStatus as IN_QUEUE as the batch process is yet to start.
Note:
- TotalRecords: 3
- TotalFailed: 0
- TotalPassed: 0
Here's an example of the response body in JSON format.
{ "ActionCode": "ORA_FOM_SCHEDULE_LINE", "ActionRequestId": 300100619025386, "ActionRequestTrackingId": 310764, "CreatedBy": "SCMOPERATIONS", "CreationDate": "2024-07-30T14:49:25.001+00:00", "FulfillLineId": null, "HeaderId": -1, "LastUpdateDate": "2024-07-30T14:49:25.191+00:00", "MassActionFlag": true, "OutcomeCode": null, "StatusCode": "PRE_PROCESSING", "Action": null, "ProcessId": 209301, "TotalRecords": 3, "TotalFailed": 0, "TotalPassed": 0, "ProcessStatus": "IN_QUEUE", "FilterCriteria": null, "Comments": null, "CancelReasonCode": null, "HoldCode": null, "ReleaseReasonCode": null, "RequireReasonCodeFlag": null, "OverrideScheduleDateFlag": null, "ShippingModeCode": null, "SupplierSiteId": null, "SupplierId": null, "RequestedFulfillmentOrganizationId": null, "ShippingCarrierId": null, "ShippingServiceLevelCode": null, "ScheduleShipDate": null, "ScheduleArrivalDate": null, "DemandClassCode": null, "OrderRevisionReasonCode": null, "OrderRevisionComments": null, "requests": [ { "ActionCode": "ORA_FOM_SCHEDULE_LINE", "ActionRequestId": 300100619025387, "ActionRequestTrackingId": 310764, "FulfillLineId": 300100615865777, "HeaderId": 300100615865752, "MassActionFlag": false, "OutcomeCode": null, "StatusCode": "PRE_PROCESSING", "SummaryMessageText": null, "RequestStatus": "IN_QUEUE", "links": [ { "rel": "self", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025387", "name": "requests", "kind": "item", "properties": { "changeIndicator": "ACED0005737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A65787000000001770400000001737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000178" } }, { "rel": "canonical", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025387", "name": "requests", "kind": "item" }, { "rel": "parent", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386", "name": "salesOrderActionRequests", "kind": "item" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025387/child/messageDetails", "name": "messageDetails", "kind": "collection" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025387/child/orderDetails", "name": "orderDetails", "kind": "collection" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025387/child/orderLineDetails", "name": "orderLineDetails", "kind": "collection" } ] }, { "ActionCode": "ORA_FOM_SCHEDULE_LINE", "ActionRequestId": 300100619025388, "ActionRequestTrackingId": 310764, "FulfillLineId": 300100615865893, "HeaderId": 300100615865891, "MassActionFlag": false, "OutcomeCode": null, "StatusCode": "PRE_PROCESSING", "SummaryMessageText": null, "RequestStatus": "IN_QUEUE", "links": [ { "rel": "self", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025388", "name": "requests", "kind": "item", "properties": { "changeIndicator": "ACED0005737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A65787000000001770400000001737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000178" } }, { "rel": "canonical", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025388", "name": "requests", "kind": "item" }, { "rel": "parent", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386", "name": "salesOrderActionRequests", "kind": "item" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025388/child/messageDetails", "name": "messageDetails", "kind": "collection" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025388/child/orderDetails", "name": "orderDetails", "kind": "collection" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025388/child/orderLineDetails", "name": "orderLineDetails", "kind": "collection" } ] }, { "ActionCode": "ORA_FOM_SCHEDULE_LINE", "ActionRequestId": 300100619025389, "ActionRequestTrackingId": 310764, "FulfillLineId": 300100615865994, "HeaderId": 300100615865990, "MassActionFlag": false, "OutcomeCode": null, "StatusCode": "PRE_PROCESSING", "SummaryMessageText": null, "RequestStatus": "IN_QUEUE", "links": [ { "rel": "self", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025389", "name": "requests", "kind": "item", "properties": { "changeIndicator": "ACED0005737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A65787000000001770400000001737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000178" } }, { "rel": "canonical", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025389", "name": "requests", "kind": "item" }, { "rel": "parent", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386", "name": "salesOrderActionRequests", "kind": "item" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025389/child/messageDetails", "name": "messageDetails", "kind": "collection" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025389/child/orderDetails", "name": "orderDetails", "kind": "collection" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025389/child/orderLineDetails", "name": "orderLineDetails", "kind": "collection" } ] } ], "links": [ { "rel": "self", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386", "name": "salesOrderActionRequests", "kind": "item", "properties": { "changeIndicator": "ACED0005737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A65787000000001770400000001737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000178" } }, { "rel": "canonical", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386", "name": "salesOrderActionRequests", "kind": "item" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests", "name": "requests", "kind": "collection" } ] }
GET One Sales Order Action Request
Use this resource URL format.
GET
curl -u username:password "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/ActionRequestId"
For example:
curl -u username:password "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386"
Example Response
You can review the summarized status of the schedule line request.
StatusCode indicates the status of the schedule line request for all the Fulfill line IDs. It can be COMPLETE, PRE_PROCESSING, or PROCESSING. Unless the StatusCode is COMPLETE, the request is still being processed. Keep checking the status until the StatusCode is marked as COMPLETE. OutcomeCode indicates the outcome of the schedule line request. It's set to SUCCESS if all the lines are scheduled successfully. Otherwise it's set to ERROR. In this example, notice that StatusCode is COMPLETE and OutcomeCode is ERROR. This means the schedule line request has been processed for all the lines, and at least one line is not scheduled.
Note:
- TotalRecords: 3
- TotalFailed: 1
- TotalPassed: 2
ProcessStatus indicates the combined status of StatusCode and OutcomeCode. COMPLETED_WITH_ERRORS indicates that schedule line request is processed for all the lines but there are errors.
Here's an example of the response body in JSON format.
{ "ActionCode": "ORA_FOM_SCHEDULE_LINE", "ActionRequestId": 300100619025386, "ActionRequestTrackingId": 310764, "CreatedBy": "SCMOPERATIONS", "CreationDate": "2024-07-30T14:49:25.001+00:00", "FulfillLineId": null, "HeaderId": -1, "LastUpdateDate": "2024-07-30T14:50:22+00:00", "MassActionFlag": true, "OutcomeCode": "ERROR", "StatusCode": "COMPLETE", "Action": "Schedule Line", "ProcessId": 209301, "TotalRecords": 3, "TotalFailed": 1, "TotalPassed": 2, "ProcessStatus": "COMPLETED_WITH_ERRORS", "FilterCriteria": null, "Comments": null, "CancelReasonCode": null, "HoldCode": null, "ReleaseReasonCode": null, "RequireReasonCodeFlag": null, "OverrideScheduleDateFlag": null, "ShippingModeCode": null, "SupplierSiteId": null, "SupplierId": null, "RequestedFulfillmentOrganizationId": null, "ShippingCarrierId": null, "ShippingServiceLevelCode": null, "ScheduleShipDate": null, "ScheduleArrivalDate": null, "DemandClassCode": null, "OrderRevisionReasonCode": null, "OrderRevisionComments": null, "links": [ { "rel": "self", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386", "name": "salesOrderActionRequests", "kind": "item", "properties": { "changeIndicator": "ACED0005737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A65787000000001770400000001737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000178" } }, { "rel": "canonical", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386", "name": "salesOrderActionRequests", "kind": "item" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests", "name": "requests", "kind": "collection" } ] }
GET All Requests
Use this resource URL format.
GET
curl -u username:password "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/ActionRequestId/child/requests"
For example:
curl -u username:password "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests"
Example Response
If your schedule line request has completed with errors, then you can review the status of the schedule line request for each line along with the error or warning details.
StatusCode indicates the status of the schedule line request for each Fulfill line ID. It can be COMPLETE, PRE_PROCESSING, or PROCESSING. Unless the StatusCode is COMPLETE, the request is still being processed for the line. Keep checking the status until the StatusCode is marked COMPLETE. OutcomeCode indicates the outcome of the schedule line request for each line. It's set to SUCCESS if the line is scheduled successfully. Otherwise it's set to ERROR.
- You can see that for the FulfillLineId 300100615865777 and 300100615865893 associated with ActionRequestId 300100619025387 and 300100619025388 respectively, StatusCode = COMPLETE and OutcomeCode = SUCCESS, which means these lines were successfully scheduled.
- For the FulfillLineId 300100615865994 associated with ActionRequestId 300100619025389, StatusCode = COMPLETE and OutcomeCode = ERROR. This means the request is completed but the line is not scheduled. You can see the SummaryMessageText = "The orchestration process of the order line must be on the schedule task to schedule it. (FOM-4515742)". This indicates the orchestration process of the line is not on the Schedule task, so the line wasn't scheduled.
Here's an example of the response body in JSON format.
{ "items": [ { "ActionCode": "ORA_FOM_SCHEDULE_LINE", "ActionRequestId": 300100619025387, "ActionRequestTrackingId": 310764, "FulfillLineId": 300100615865777, "HeaderId": 300100615865752, "MassActionFlag": false, "OutcomeCode": "SUCCESS", "StatusCode": "COMPLETE", "SummaryMessageText": null, "RequestStatus": "COMPLETED", "links": [ { "rel": "self", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025387", "name": "requests", "kind": "item", "properties": { "changeIndicator": "ACED0005737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A65787000000001770400000001737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000178" } }, { "rel": "canonical", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025387", "name": "requests", "kind": "item" }, { "rel": "parent", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386", "name": "salesOrderActionRequests", "kind": "item" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025387/child/messageDetails", "name": "messageDetails", "kind": "collection" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025387/child/orderDetails", "name": "orderDetails", "kind": "collection" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025387/child/orderLineDetails", "name": "orderLineDetails", "kind": "collection" } ] }, { "ActionCode": "ORA_FOM_SCHEDULE_LINE", "ActionRequestId": 300100619025388, "ActionRequestTrackingId": 310764, "FulfillLineId": 300100615865893, "HeaderId": 300100615865891, "MassActionFlag": false, "OutcomeCode": "SUCCESS", "StatusCode": "COMPLETE", "SummaryMessageText": null, "RequestStatus": "COMPLETED", "links": [ { "rel": "self", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025388", "name": "requests", "kind": "item", "properties": { "changeIndicator": "ACED0005737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A65787000000001770400000001737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000178" } }, { "rel": "canonical", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025388", "name": "requests", "kind": "item" }, { "rel": "parent", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386", "name": "salesOrderActionRequests", "kind": "item" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025388/child/messageDetails", "name": "messageDetails", "kind": "collection" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025388/child/orderDetails", "name": "orderDetails", "kind": "collection" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025388/child/orderLineDetails", "name": "orderLineDetails", "kind": "collection" } ] }, { "ActionCode": "ORA_FOM_SCHEDULE_LINE", "ActionRequestId": 300100619025389, "ActionRequestTrackingId": 310764, "FulfillLineId": 300100615865994, "HeaderId": 300100615865990, "MassActionFlag": false, "OutcomeCode": "ERROR", "StatusCode": "COMPLETE", "SummaryMessageText": "The orchestration process of the order line must be on the schedule task to schedule it. (FOM-4515742)", "RequestStatus": "FAILED", "links": [ { "rel": "self", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025389", "name": "requests", "kind": "item", "properties": { "changeIndicator": "ACED0005737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A65787000000001770400000001737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000178" } }, { "rel": "canonical", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025389", "name": "requests", "kind": "item" }, { "rel": "parent", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386", "name": "salesOrderActionRequests", "kind": "item" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025389/child/messageDetails", "name": "messageDetails", "kind": "collection" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025389/child/orderDetails", "name": "orderDetails", "kind": "collection" }, { "rel": "child", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025389/child/orderLineDetails", "name": "orderLineDetails", "kind": "collection" } ] } ], "count": 3, "hasMore": false, "limit": 25, "offset": 0, "links": [ { "rel": "self", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests", "name": "requests", "kind": "collection" } ] }
GET Details of All Messages for an Action Request
Use this resource URL format.
GET
curl -u username:password "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/ActionRequestId/child/requests/ActionRequestId2/child/messageDetails"
For example:
curl -u username:password "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025389/child/messageDetails"
Example Response
If your schedule line request for a line has completed with one or more errors, then you can get the details of all the errors logged for the line. You can see that one message with MessageId 300100619025393 has been logged for the ActionRequestId 300100619025389 that contains Fulfill LIne ID 300100615865994. The MessageType indicates that the message is of type ERROR, MessageText contains the error message for the MessageId, LastUpdateDate shows when the error message was logged, EntityType LINE indicates that the error message is logged on the line, and EntityDisplayNumber indicates the line number on which the error is logged.
Here's an example of the response body in JSON format.
{ "items": [ { "MessageId": 300100619025393, "ActionRequestId": 300100619025389, "MessageType": "ERROR", "MessageText": "The orchestration process of the order line must be on the schedule task to schedule it. (FOM-4515742)", "LastUpdateDate": "2024-07-30T14:49:47.042+00:00", "EntityType": "LINE", "EntityDisplayNumber": "2", "links": [ { "rel": "self", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025389/child/messageDetails/300100619025393", "name": "messageDetails", "kind": "item" }, { "rel": "canonical", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025389/child/messageDetails/300100619025393", "name": "messageDetails", "kind": "item" }, { "rel": "parent", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025389", "name": "requests", "kind": "item" } ] } ], "count": 1, "hasMore": false, "limit": 25, "offset": 0, "links": [ { "rel": "self", "href": "https://servername/fscmRestApi/resources/version/salesOrderActionRequests/300100619025386/child/requests/300100619025389/child/messageDetails", "name": "messageDetails", "kind": "collection" } ] }