Manage a Production Schedule

You can manage a production schedule within an inventory organization by using the Production Scheduling Plans REST resource. After you create a production schedule, you can automate an entire scheduling workflow and make the schedule available and ready to use at the start of the scheduler's workday.

Let's discuss these scenarios:

  1. Create a production schedule for an organization with a defined scope
  2. Define which items to consider in the schedule
  3. Update the production schedule behavior, scope, and default view
  4. Refresh or refresh and solve a production schedule with the most up to date information from Oracle Supply Chain Management Cloud
  5. Solve or repair the schedule to generate a finite capacity plan
  6. Release a plan
  7. Export the resource schedule

In addition to the typical scenarios above, you can perform more advanced tasks such as:

  1. Manually schedule an operation to a different time or alternate resource
  2. Re-sequence operations on a specific resource
  3. Download the schedule for support purposes

Create a Production Schedule for an Organization

Let's say Richard Jones wants to create a production schedule for an organization. Richard can create the production schedule with a defined scheduling horizon, fixed time fence, and advanced scheduling options.

Example URL

Use this resource URL format.

POST

curl -u username:password POST 'https://servername/fscmRestApi/resources/version/productionSchedulingPlans'--header 'Content-Type: application/json' -d 'request payload'

Example Request

Here's an example of the request body in JSON format.

{
	"PlanName": "My Schedule",
	"OrganizationId": 209,
	"OrganizationCode": "M2",
	"Description": "Sample PS Plan",
	"HorizonDuration": 14,
	"HorizonDurationUnit": "days",
	"AnchorTimestamp": "2021-03-01T00:00:00+00:00",
	"HorizonAnchorBehavior": "Rolling",
	"UseAnchorForHorizonFlag": false,
	"MinimumTimeFence": null,
	"HorizonExtension": null,
	"FixedTimeFenceDuration": 7,
	"PublishHorizonDuration": 3,
	"ResourceCapacityHorizonDuration": 7,
	"PastDueDemandDuration": 7,
	"PastDueSupplyDuration": 7
}

Example Response

Here's an example of the response body in JSON format.

{
	"PlanId": 300100222372498,
	"ShortPlanId": null,
	"PlanName": "My Schedule",
	"OrganizationId": 209,
	"OrganizationCode": "M2",
	"Description": "Sample PS Plan",
	"HorizonDuration": 14,
	"HorizonDurationUnit": "days",
	"AnchorTimestamp": "2021-03-01T00:00:00+00:00",
	"HorizonAnchorBehavior": "Rolling",
	"UseAnchorForHorizonFlag": false,
	"MinimumTimeFence": null,
	"HorizonExtension": null,
	"FixedTimeFenceDuration": 7,
	"ActualFixedTimeFenceDuration": null,
	"PublishHorizonDuration": 3,
	"ResourceCapacityHorizonDuration": 7,
	"PastDueDemandDuration": 7,
	"PastDueSupplyDuration": 7,
	"HorizonStartDate": null,
	"HorizonEndDate": null,
	"CalendarHorizonStartDate": null,
	"CalendarHorizonEndDate": null,
	"DataHorizonStartDate": null,
	"DataHorizonEndDate": null,
	"PlanOwner": null,
	"LastApprovedBy": null,
	"ApprovedFlag": null,
	"LastApprovedDate": null,
	"PlanApprovalStatus": null,
	"BuildStrategy": null,
	"PreBuildPolicy": null,
	"ResourceAllocationMode": null,
	"AcceleratedDispatchingFlag": null,
	"RepairUnconstrainedMode": null,
	"RepairSequencingMode": null,
	"UseSchedulingBucketFlag": null,
	"SchedulingBucket": null,
	"SchedulingBucketUnit": null,
	"RespectFirmDatesInsideTimeFenceFlag": null,
	"FirmInsideTimeFenceOnRefreshFlag": null,
	"WorkOrderUnitOfEffort": null,
	"UseSolveTimeLimitFlag": null,
	"SolveTimeLimitDuration": null,
	"SolveTimeLimitUnit": null,
	"RequestInProcessFlag": null,
	"LastRequest": null,
	"LastRequestId": null,
	"LastExecutionId": null,
	"LastRequestAction": null,
	"LastRequestStatus": null,
	"LastRequestPercentage": null,
	"LastRequestEndDate": null,
	"LastRequestErrorCode": null,
	"LastPublishDate": null,
	"LastRefreshDate": null,
	"DefaultResourceGanttGroupId": null,
	"DefaultResourceGanttGroupCode": null,
	"CreatedBy": "PRODUCTION_SCHEDULER",
	"CreationDate": "2020-10-07T16:10:54.018+00:00",
	"LastUpdatedBy": "PRODUCTION_SCHEDULER",
	"LastUpdateDate": "2020-10-07T16:10:54.230+00:00",
	"LastUpdateLogin": "B0968C6B28003D45E0534005F00A6076",
	"links": [
	{
		"rel": "self",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498",
		"name": "productionSchedulingPlans",
		"kind": "item"
	},
	{
		"rel": "canonical",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498",
		"name": "productionSchedulingPlans",
		"kind": "item"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/attributes",
		"name": "attributes",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/calendarEvents",
		"name": "calendarEvents",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/calendars",
		"name": "calendars",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/changeoverInstances",
		"name": "changeoverInstances",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/changeoverRules",
		"name": "changeoverRules",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/changeoverTimeMeasures",
		"name": "changeoverTimeMeasures",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/demandEvents",
		"name": "demandEvents",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/items",
		"name": "items",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/lateDemandMeasures",
		"name": "lateDemandMeasures",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/lateWorkOrderMeasures",
		"name": "lateWorkOrderMeasures",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/planStatus",
		"name": "planStatus",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/resourceCalendars",
		"name": "resourceCalendars",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/resourceChangeoverSequences",
		"name": "resourceChangeoverSequences",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/resourceGroups",
		"name": "resourceGroups",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/resourceOperationSequences",
		"name": "resourceOperationSequences",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/resourceRelationships",
		"name": "resourceRelationships",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/resourceUsageLevels",
		"name": "resourceUsageLevels",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/resourceUtilization",
		"name": "resourceUtilization",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/resourceUtilizationMeasures",
		"name": "resourceUtilizationMeasures",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/resources",
		"name": "resources",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/scheduleMeasures",
		"name": "scheduleMeasures",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/schedulingResources",
		"name": "schedulingResources",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/selectedItemCategories",
		"name": "selectedItemCategories",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/supplyEvents",
		"name": "supplyEvents",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/workOrderOperationAlternateResources",
		"name": "workOrderOperationAlternateResources",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/workOrderOperationAttributes",
		"name": "workOrderOperationAttributes",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/workOrderOperations",
		"name": "workOrderOperations",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/workOrderTemporalRelations",
		"name": "workOrderTemporalRelations",
		"kind": "collection"
	},
	{
		"rel": "child",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/child/workOrders",
		"name": "workOrders",
		"kind": "collection"
	},
	{
		"rel": "action",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/action/stopSolvingPlan",
		"name": "stopSolvingPlan",
		"kind": "other"
	},
	{
		"rel": "action",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/action/releasePlan",
		"name": "releasePlan",
		"kind": "other"
	},
	{
		"rel": "action",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/action/refreshPlanData",
		"name": "refreshPlanData",
		"kind": "other"
	},
	{
		"rel": "action",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/action/solvePlan",
		"name": "solvePlan",
		"kind": "other"
	},
	{
		"rel": "action",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/action/repairPlan",
		"name": "repairPlan",
		"kind": "other"
	},
	{
		"rel": "enclosure",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/enclosure/EngineStateFile",
		"name": "EngineStateFile",
		"kind": "other"
	},
	{
		"rel": "enclosure",
		"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100222372498/enclosure/ModelExtractFile",
		"name": "ModelExtractFile",
		"kind": "other"
	}
	]
}

Define Items to Include in the Schedule

Let's say Richard Jones wants to define the items that you want to include in the schedule. Although the schedule is bounded by the organization, Richard can further refine the items to be considered for the scheduling purposes by defining the item categories to be included in the plan.

Example URL

Use this resource URL format.

POST

curl -u username:password POST 'https://servername/fscmRestApi/resources/version/productionSchedulingPlans/ 300100232684758/child/selectedItemCategories' --header 'Content-Type: application/json' -d 'request payload'

Example Request

Here's an example of the request body in JSON format. You can get the CatalogId and CategoryId by using the Items resource.

{
	"CatalogId": 300100168686273,
	"CategoryId": 300100168686276,      
	"CatalogCode": "RBPS_ICECREAM_CAT",
	"CategorySetName": "RBPS_ICECREAM_CAT",
	"CategoryName": "RBPS_FINALICREAM"
}

Example Response

Here's an example of the response body in JSON format.

{
	"PlanId": 300100232684758,
	"CatalogId": 300100168686273,
	"CategoryId": 300100168686276,
	"CatalogCode": "RBPS_ICECREAM_CAT",
	"CategorySetName": "RBPS_ICECREAM_CAT",
	"CategoryCode": null,
	"CategoryName": "RBPS_FINALICREAM",
	"CreatedBy": "PRODUCTION_SCHEDULER",
	"CreationDate": "2020-10-13T17:28:35+00:00",
	"LastUpdatedBy": "PRODUCTION_SCHEDULER",
	"LastUpdateDate": "2020-10-13T17:28:35.005+00:00",
	"LastUpdateLogin": "B11520781D896935E0534005F00A289F",
	"links": [
		{
			"rel": "self",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/selectedItemCategories/00030000000EACED00057708000110F087C424D60000000EACED00057708000110F083F39AC10000000EACED00057708000110F083F39AC4",
			"name": "selectedItemCategories",
			"kind": "item"
		},
		{
			"rel": "canonical",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/selectedItemCategories/00030000000EACED00057708000110F087C424D60000000EACED00057708000110F083F39AC10000000EACED00057708000110F083F39AC4",
			"name": "selectedItemCategories",
			"kind": "item"
		},
		{
			"rel": "parent",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758",
			"name": "productionSchedulingPlans",
			"kind": "item"
		}
	]
}

Update Production Schedule Options

Richard can update a production schedule for an organization after it has been created. Richard can update the values for schedule horizon, fixed time fence, and default resource group.

Example URL

Use this resource URL format.

PATCH

curl -u username:password PATCH 'https://servername/fscmRestApi/resources/version/productionSchedulingPlans/ 300100232684758' --header 'Content-Type: application/json' -d 'request payload'

Example Request

Here's an example of the request body in JSON format to use the anchor date as the start of the schedule horizon.

{
	"UseAnchorForHorizonFlag": true
}

Example Response

Here's an example of the response body in JSON format.

{
	"PlanId": 300100232684758,
	"ShortPlanId": null,
	"PlanName": "My Schedule",
	"OrganizationId": 209,
	"OrganizationCode": "M2",
	"Description": "Sample PS Plan",
	"HorizonDuration": 14,
	"HorizonDurationUnit": "days",
	"AnchorTimestamp": "2021-03-01T00:00:00+00:00",
	"HorizonAnchorBehavior": "Rolling",
	"UseAnchorForHorizonFlag": true,
	"MinimumTimeFence": null,
	"HorizonExtension": null,
	"FixedTimeFenceDuration": 7,
	"ActualFixedTimeFenceDuration": 7,
	"PublishHorizonDuration": 3,
	"ResourceCapacityHorizonDuration": 7,
	"PastDueDemandDuration": 7,
	"PastDueSupplyDuration": 7,
	"HorizonStartDate": "2030-01-07T00:00:00+00:00",
	"HorizonEndDate": "2030-01-21T00:00:00+00:00",
	"CalendarHorizonStartDate": "2029-12-31T00:00:00+00:00",
	"CalendarHorizonEndDate": "2030-01-21T00:00:00+00:00",
	"DataHorizonStartDate": "2030-01-07T00:00:00+00:00",
	"DataHorizonEndDate": "2030-01-21T12:00:00+00:00",
	"PlanOwner": null,
	"LastApprovedBy": null,
	"ApprovedFlag": null,
	"LastApprovedDate": null,
	"PlanApprovalStatus": null,
	"BuildStrategy": null,
	"PreBuildPolicy": null,
	"ResourceAllocationMode": null,
	"AcceleratedDispatchingFlag": null,
	"RepairUnconstrainedMode": null,
	"RepairSequencingMode": null,
	"UseSchedulingBucketFlag": null,
	"SchedulingBucket": null,
	"SchedulingBucketUnit": null,
	"RespectFirmDatesInsideTimeFenceFlag": null,
	"FirmInsideTimeFenceOnRefreshFlag": null,
	"WorkOrderUnitOfEffort": "No",
	"UseSolveTimeLimitFlag": null,
	"SolveTimeLimitDuration": 30,
	"SolveTimeLimitUnit": "minutes",
	"RequestInProcessFlag": null,
	"LastRequest": 0,
	"LastRequestId": 126833,
	"LastExecutionId": 16161,
	"LastRequestAction": null,
	"LastRequestStatus": 1,
	"LastRequestPercentage": 100,
	"LastRequestEndDate": "2020-10-13T17:45:59.856+00:00",
	"LastRequestErrorCode": null,
	"LastPublishDate": null,
	"LastRefreshDate": "2020-10-13T17:45:16.572+00:00",
	"DefaultResourceGanttGroupId": null,
	"DefaultResourceGanttGroupCode": null,
	"CreatedBy": "PRODUCTION_SCHEDULER",
	"CreationDate": "2020-10-13T15:16:48.021+00:00",
	"LastUpdatedBy": "PRODUCTION_SCHEDULER",
	"LastUpdateDate": "2020-10-13T17:46:17+00:00",
	"LastUpdateLogin": "B11520781E5C6935E0534005F00A289F",
	"links": [
		{
			"rel": "self",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758",
			"name": "productionSchedulingPlans",
			"kind": "item"
		},
		{
			"rel": "canonical",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758",
			"name": "productionSchedulingPlans",
			"kind": "item"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/attributes",
			"name": "attributes",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/calendarEvents",
			"name": "calendarEvents",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/calendars",
			"name": "calendars",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/changeoverInstances",
			"name": "changeoverInstances",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/changeoverRules",
			"name": "changeoverRules",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/changeoverTimeMeasures",
			"name": "changeoverTimeMeasures",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/demandEvents",
			"name": "demandEvents",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/items",
			"name": "items",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/lateDemandMeasures",
			"name": "lateDemandMeasures",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/lateWorkOrderMeasures",
			"name": "lateWorkOrderMeasures",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/planStatus",
			"name": "planStatus",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/resourceCalendars",
			"name": "resourceCalendars",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/resourceChangeoverSequences",
			"name": "resourceChangeoverSequences",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/resourceGroups",
			"name": "resourceGroups",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/resourceOperationSequences",
			"name": "resourceOperationSequences",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/resourceRelationships",
			"name": "resourceRelationships",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/resourceUsageLevels",
			"name": "resourceUsageLevels",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/resourceUtilization",
			"name": "resourceUtilization",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/resourceUtilizationMeasures",
			"name": "resourceUtilizationMeasures",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/resources",
			"name": "resources",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/scheduleMeasures",
			"name": "scheduleMeasures",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/schedulingResources",
			"name": "schedulingResources",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/selectedItemCategories",
			"name": "selectedItemCategories",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/supplyEvents",
			"name": "supplyEvents",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/workOrderOperationAlternateResources",
			"name": "workOrderOperationAlternateResources",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/workOrderOperationAttributes",
			"name": "workOrderOperationAttributes",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/workOrderOperations",
			"name": "workOrderOperations",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/workOrderTemporalRelations",
			"name": "workOrderTemporalRelations",
			"kind": "collection"
		},
		{
			"rel": "child",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/child/workOrders",
			"name": "workOrders",
			"kind": "collection"
		},
		{
			"rel": "action",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/action/stopSolvingPlan",
			"name": "stopSolvingPlan",
			"kind": "other"
		},
		{
			"rel": "action",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/action/releasePlan",
			"name": "releasePlan",
			"kind": "other"
		},
		{
			"rel": "action",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/action/refreshPlanData",
			"name": "refreshPlanData",
			"kind": "other"
		},
		{
			"rel": "action",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/action/solvePlan",
			"name": "solvePlan",
			"kind": "other"
		},
		{
			"rel": "action",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/action/repairPlan",
			"name": "repairPlan",
			"kind": "other"
		},
		{
			"rel": "enclosure",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/enclosure/EngineStateFile",
			"name": "EngineStateFile",
			"kind": "other"
		},
		{
			"rel": "enclosure",
			"href": "https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/enclosure/ModelExtractFile",
			"name": "ModelExtractFile",
			"kind": "other"
		}
	]
}

Refresh a Production Schedule

Richard can refresh or refresh and solve the plan to get the latest information from Oracle Supply Chain Management Cloud.

Example URL

Use this resource URL format.

POST

curl -u username:password POST 'https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758' --header 'Content-Type: application/vnd.oracle.adf.action+json' -d 'request payload'

Example Request

Here's an example of the request body in JSON format.

{
	"name": "refreshPlanData",
	"parameters": [{
		"solveMode": "unconstrainedSolve"
	}]
}

If you want to refresh and solve the schedule, use solveMode as coldSolve.

Example Response

Here's an example of the response body in JSON format.

{
	"result": "126833"
}

The response includes the scheduled processes request identifier.

Solve a Production Schedule

Example URL

Use this resource URL format.

POST

curl -u username:password POST 'https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758' --header 'Content-Type: application/vnd.oracle.adf.action+json' -d 'request payload'

Example Request

Here's an example of the request body in JSON format.

{
	"name": "solvePlan",
	"parameters": [{
		"solveParameter": "-coldSolve"
		
	}]
}

Use solveParameter = -repairSolve if you want to refresh and solve the schedule.

Example Response

Here's an example of the response body in JSON format.

{
	"result": "131526"
}

The response includes the scheduled processes request identifier.

Release a Production Schedule

Richard can release the schedule to Oracle Manufacturing Cloud to display the schedule changes. The work order dates, work order operation dates, release status, firm status, and alternate resource selection are updated based on the production schedule. Only work orders within the release horizon specified in the schedule options will be released.

Example URL

Use this resource URL format.

POST

curl -u username:password POST 'https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758' --header 'Content-Type: application/vnd.oracle.adf.action+json' -d 'request payload'

Example Request

Here's an example of the request body in JSON format.

{
	"name": "releasePlan"
}

Example Response

Here's an example of the response body in JSON format.

{
	"result": "131527"
}

The response includes the scheduled processes request identifier.

Export the Resource Schedule

In this scenario, you can export the resource schedule that is viewed in the Gantt Chart or Dispatch List for reporting purposes.

Example URL

Use this resource URL format.

POST

curl -u username:password POST 'https://servername:port/fscmRestApi/resources/version/productionSchedulingPlans/30010023268475/ child/resourceOperationSequences' --header ' Content-Type: application/json'-d 'request payload'

Example Request

{}

Example Response

{
            "PlanId": 300100543620851,
            "WorkCenterId": 300100206744990,
            "WorkCenterCode": "SA-Car-WC1",
            "ResourceId": 300100206744986,
            "ResourceCode": "SA-Car-L1",
            "ResourceType": "Crew",
            "CapacityType": "Single",
            "GroupMemberSequenceNumber": null,
            "WorkOrderId": 300100206745069,
            "WorkOrderNumber": "CarWhite101",
            "WorkMethodId": 300100070832877,
            "WorkMethodCode": "DISCRETE_MANUFACTURING",
            "WorkMethodName": "Discrete Manufacturing",
            "WorkOrderTypeCode": "STANDARD",
            "WorkOrderTypeName": "Standard",
            "WorkOrderSubTypeCode": "ORA_STANDARD",
            "WorkOrderSubTypeName": "Standard Production",
            "WorkOrderOperationId": 300100206745070,
            "OperationCode": "SAPS-A4Model-White-WD1:SAPS-A4Model-White:Cleaning:10:10",
            "OperationName": "Cleaning",
            "OperationType": "IN_HOUSE",
            "SupplierId": null,
            "SupplierSiteId": null,
            "SupplierName": null,
            "SupplierSiteCode": null,
            "ResourceSequenceNumber": 10,
            "OperationSequenceNumber": 10,
            "AttributeValues": "[{\"attributeId\": 100100240992637, \"attributeCode\": \"Car Color:Scheduling Car Model & Color(WIS_WD_OPERATIONS_B)\", \"attributeName\": \"Car Color\", \"attributeValueId\": 529738, \"attributeValueCode\": \"White\", \"attributeValueColor\": \"#FFEFEF\"}, {\"attributeId\": 100100240992639, \"attributeCode\": \"Car Model:Scheduling Car Model & Color(WIS_WD_OPERATIONS_B)\", \"attributeName\": \"Car Model\", \"attributeValueId\": 528737, \"attributeValueCode\": \"A4\", \"attributeValueColor\": \"#D70909\"}]",
            "PeggedDemands": null,
            "ScheduledStartDate": "2030-01-09T12:00:00+00:00",
            "ScheduledEndDate": "2030-01-09T18:00:00+00:00",
            "ScheduledDuration": 6,
            "ScheduledDurationUnit": "hours",
            "RequestedDate": "2030-01-10T12:00:00+00:00",
            "TargetCompletionDate": null,
            "CompletionDate": "2030-01-10T12:00:00+00:00",
            "FirmPlannedFlag": false,
            "FirmStatus": null,
            "PrimaryItemId": 300100206744943,
            "PrimaryItemCode": "SAPS-A4Model-White",
            "WorkOrderRemainingQuantity": 6,
            "CompletedQuantity": null,
            "ScrappedQuantity": null,
            "RejectedQuantity": null,
            "RemainingQuantity": 6,
            "UOMCode": "Ea",
            "PrimaryProductQuantity": null,
            "PrimaryProductRemainingQuantity": 6,
            "PrimaryProductUOMCode": "Ea",
            "AssetId": null,
            "AssetNumber": null,
            "AssetDescription": null,
            "SerialNumber": null,
            "ChangedByLastRepairFlag": false,
            "ChangedSinceLastSolveFlag": false,
            "links": [
                {
                    "rel": "self",
                    "href": "https://servername:port/fscmRestApi/resources/11.13.18.05/productionSchedulingPlans/300100543620851/child/resourceOperationSequences/00050000000EACED00057708000110F09A4CA6F30000000EACED00057708000110F08638559E0000000EACED00057708000110F08638559A0000000EACED00057708000110F0863855EE0000000EACED00057708000000000000000A",
                    "name": "resourceOperationSequences",
                    "kind": "item"
                },
                {
                    "rel": "canonical",
                    "href": "https://servername:port/fscmRestApi/resources/11.13.18.05/productionSchedulingPlans/300100543620851/child/resourceOperationSequences/00050000000EACED00057708000110F09A4CA6F30000000EACED00057708000110F08638559E0000000EACED00057708000110F08638559A0000000EACED00057708000110F0863855EE0000000EACED00057708000000000000000A",
                    "name": "resourceOperationSequences",
                    "kind": "item"
                },
                {
                    "rel": "parent",
                    "href": "https://servername:port/fscmRestApi/resources/11.13.18.05/productionSchedulingPlans/300100543620851",
                    "name": "productionSchedulingPlans",
                    "kind": "item"
                }
            ]

Manually Schedule a Work Order Operation

Richard can manually schedule an operation to a new start time or offload to an alternate resource. Typically, this will be accomplished in the user interface, but can also be performed using a REST API if there are known scheduling changes that need to be performed.

Example URL

Use this resource URL format.

POST

curl -u username:password POST 'https://servername/fscmRestApi/resources/version/productionSchedulingPlans/ 300100213982424/action/repairPlan' --header 'Content-Type: application/vnd.oracle.adf.action+json' -d 'request payload'

Example Request

Here's an example of the request body in JSON format.

{
	"repairCommands": [

	"{\"command\": \"Reschedule\",\"targetResourceId\": 300100209046817,\"workCenterId\": 300100209046811,\"workOrderOperations\": [{\"workOrderOperationId\": 300100213973339,\"resourceSequenceNumber\": 10}],\"resequenceMode\": \"S\",\"targetStartDate\": \"2021-03-01T07:33:44\"}", 
	
	"{\"command\": \"Reschedule\",\"targetResourceId\": 300100209046817,\"workCenterId\": 300100209046811,\"workOrderOperations\": [{\"workOrderOperationId\": 300100213973330,\"resourceSequenceNumber\": 10}],\"resequenceMode\": \"S\",\"targetStartDate\": \"2021-03-01T07:44:44\"}"
	]
}

repairCommands is a list of commands in string format because the REST framework does not currently support nested JSON document structures. The payload for each command is a work order operation on a given resource. All the necessary information for the payload can be obtained from getting the resource schedule using the resourceOperationSequences child resource for the plan. In the case of manually scheduling the operation to a different time on the same resource, the target resource is the same as the current one. When offloading to an alternate resource, the target resource is the selected alternate resource.

Example Response

Here's an example of the response body in JSON format.

{
	"result": "131422"
}

The response includes the scheduled processes request identifier.

Resequence Operations on a Specific Resource

Example URL

Use this resource URL format.

POST

curl -u username:password POST 'https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/action/repairPlan' --header 'Content-Type: application/vnd.oracle.adf.action+json' -d 'request payload'

Example Request

Here's an example of the request body in JSON format.

{

	"repairCommands": [
	"{\"command\": \"Resequence\",\"targetResourceId\": 300100209046815,\"workCenterId\": 300100209046811,\"workOrderOperations\": [{\"workOrderOperationId\": 300100213976228,\"resourceSequenceNumber\": 10}, {\"workOrderOperationId\": 300100213976220,\"resourceSequenceNumber\": 10}],\"resequenceMode\": \"M\"}"
	]

}

repairCommands is a list of commands in string format because the REST framework does not currently support nested JSON document structures. The command for resequencing requires the resource in addition to an ordered list of work order operations in the desired sequence. The ordered list must contain a reordered list or sub-list of the original work order operations. For example, if the original sequence of work order operations was A-B-C-D-E-F than the payload must be an altered version of a contiguous section of this list. C-B-A-D-E-F and E-D-C are examples of valid resequences. A-C-F is not since the original sequence did not contain a contiguous combination of these operations. All the necessary information for the payload can be obtained from getting the resource schedule using the resourceOperationSequences child resource for the plan. Because you are reordering the operations, no time specification is required.

Example Response

Here's an example of the response body in JSON format.

{
	"result": "131527"
}

The response includes the scheduled processes request identifier.

Download a Copy of the Schedule

Richard can download a binary version of the schedule. This will be required for most of the service requests.

Example URL

Use this resource URL format.

GET

curl -u username:password GET 'https://servername/fscmRestApi/resources/version/productionSchedulingPlans/300100232684758/enclosure/EngineStateFile' --header 'Content-Type: application/json' -d 'request payload'

Example Request

Here's an example of the request body in JSON format.

{}

Example Response

The response will be cryptic in nature as it represents a binary state of the scheduling engine. The response should be saved in a file, preferably with a .dxt extension.