Option request
Request | |
---|---|
Description | The option request allows OMD clients to ask for options for a specific task. The options can then be used to select the preferred option. |
Context | https://<instance>.optimizemyday.com/omdservices-basic/rest/v1/services/option |
URL | /request |
Method | GET |
Response Code | 200 when successful, another HTTP status code otherwise |
Success Response | A list of feasible insertion points for the provided task. |
Response Type | XML or JSON |
Parameter | Datatype | Description |
---|---|---|
configId | Integer | The identifier of the configuration. |
taskId | String | The external identifier of the task. |
resourceId | String | A comma-separated list of resources for which the options are to be calculated. If omitted, the request will automatically identify potential candidates. |
dateFrom | Date/Time | The time frame start boundary for the request. If omitted, this value will default to the earliest date/time attribute of the task. |
dateTo | Date/Time | The time frame end boundary for the request. If omitted, this value will default to the latest date/time attribute of the task. |
explain | Boolean | Provides a detailed explanation of the costs before and after the insertion. Defaults to false . |
abort | Boolean | If false , the request will ignore all hard constraint exceptions. Default value is true . |
maxSeconds | Integer | The request must stop calculating more options if the maximum amount of time has been surpassed. Defaults to -1, i.e. as long as the plan horizon allows. |
maxOptions | Integer | The maximum number of options. Defaults to -1, i.e. as many options as possible. |
checkTerritory | Boolean | Indicates whether the calculations should consider the territory being a hard constraint. |
checkSkill | Boolean | Indicates whether the calculations should consider the skill being a hard constraint. |
checkRequiredResource | Boolean | Indicates whether the calculations should consider the required resource being a hard constraint. |
allowExtraOvertime | Boolean | Indicates if extra overtime should be added to each trip during the calculations. This will temporarily give the planning engine more room for finding feasible options. |
extraOvertime | Integer | The number of minutes added to the working hours of each trip while executing the request. This value is only applicable if the allowExtraOvertime parameter has been set. |
_output | String | The requested output format being xml or json . If omitted, xml is assumed. |
Sample Call
Sample Result
<Result success="true">
<PlanningOption task="0000161996-1-1-2017-05-11" resource="10000032" dateTime="2017-10-19 09:32:56" index="1">
<Cost costValue="89">
<CostComponent name="Waiting time" base="0.0" value="0"/>
<CostComponent name="Busy time" base="75.0" value="0"/>
<CostComponent name="Idle time" base="-75.0" value="0"/>
<CostComponent name="Travel time" base="0.0" value="0"/>
<CostComponent name="Travel distance" base="0.0" value="0"/>
<CostComponent name="Duration" base="75.0" value="0"/>
<CostComponent name="Best age" base="0.0" value="89"/>
</Cost>
<TripInfoBefore identifier="16167225 / 10000032 / Thu Oct 19 00:00:00 CEST 2017">
<Cost costValue="278872">
<CostComponent name="Waiting time" base="0.0" value="0"/>
<CostComponent name="Busy time" base="260.892" value="0"/>
<CostComponent name="Idle time" base="279.108" value="0"/>
<CostComponent name="Travel time" base="185.892" value="278838"/>
<CostComponent name="Travel distance" base="298764.0" value="0"/>
<CostComponent name="Duration" base="75.0" value="0"/>
<CostComponent name="Best age" base="0.0" value="34"/>
</Cost>
<StopInfo type="Departure" start="2017-10-19T08:00:00+02:00" duration="0.0" travelDistance="149382" travelTime="92.946" travelUnknown="false" overlap="0.0" busyTime="92.946" isTravelUnknown="false" pauseTimeTravel="0.0" pauseTimeOnSite="0.0">
<Cost costValue="139419">
<CostComponent name="Travel time" base="92.946" value="139419"/>
<CostComponent name="Travel distance" base="149382.0" value="0"/>
</Cost>
</StopInfo>
<StopInfo type="Visit" externalId="0000161996-1-1-2017-05-11" start="2017-10-19T09:32:56.760+02:00" duration="75.0" travelDistance="0" travelTime="0.0" travelUnknown="false" overlap="0.0" busyTime="75.0" waitingTime="0.0" isTravelUnknown="false" pauseTimeTravel="0.0" pauseTimeOnSite="0.0">
<Cost costValue="89">
<CostComponent name="Duration" base="75.0" value="0"/>
<CostComponent name="Best age" base="0.0" value="89"/>
</Cost>
</StopInfo>
<StopInfo type="Visit" externalId="b8d61bb7-497e-4ca5-a76c-84f7a44ab7df" start="2017-10-19T10:47:56.760+02:00" duration="75.0" travelDistance="149382" travelTime="92.946" travelUnknown="false" overlap="0.0" busyTime="167.946" waitingTime="0.0" isTravelUnknown="false" pauseTimeTravel="0.0" pauseTimeOnSite="0.0">
<Cost costValue="139453">
<CostComponent name="Travel time" base="92.946" value="139419"/>
<CostComponent name="Travel distance" base="149382.0" value="0"/>
<CostComponent name="Duration" base="75.0" value="0"/>
<CostComponent name="Best age" base="0.0" value="34"/>
</Cost>
</StopInfo>
<StopInfo type="Arrival" start="2017-10-19T17:00:00+02:00" duration="0.0" travelDistance="0" travelTime="0.0" travelUnknown="false" overlap="0.0" busyTime="0.0" isTravelUnknown="false" pauseTimeTravel="0.0" pauseTimeOnSite="0.0">
<Cost costValue="0"/>
</StopInfo>
</TripInfoBefore>
<TripInfoAfter identifier="16167225 / 10000032 / Thu Oct 19 00:00:00 CEST 2017">
<Cost costValue="278961">
<CostComponent name="Waiting time" base="0.0" value="0"/>
<CostComponent name="Busy time" base="335.892" value="0"/>
<CostComponent name="Idle time" base="204.108" value="0"/>
<CostComponent name="Travel time" base="185.892" value="278838"/>
<CostComponent name="Travel distance" base="298764.0" value="0"/>
<CostComponent name="Duration" base="150.0" value="0"/>
<CostComponent name="Best age" base="0.0" value="123"/>
</Cost>
<StopInfo type="Departure" start="2017-10-19T08:00:00+02:00" duration="0.0" travelDistance="149382" travelTime="92.946" travelUnknown="false" overlap="0.0" busyTime="92.946" isTravelUnknown="false" pauseTimeTravel="0.0" pauseTimeOnSite="0.0">
<Cost costValue="139419">
<CostComponent name="Travel time" base="92.946" value="139419"/>
<CostComponent name="Travel distance" base="149382.0" value="0"/>
</Cost>
</StopInfo>
<StopInfo type="Visit" externalId="0000161996-1-1-2017-05-11" start="2017-10-19T09:32:56.760+02:00" duration="75.0" travelDistance="0" travelTime="0.0" travelUnknown="false" overlap="0.0" busyTime="75.0" waitingTime="0.0" isTravelUnknown="false" pauseTimeTravel="0.0" pauseTimeOnSite="0.0">
<Cost costValue="89">
<CostComponent name="Duration" base="75.0" value="0"/>
<CostComponent name="Best age" base="0.0" value="89"/>
</Cost>
</StopInfo>
<StopInfo type="Visit" externalId="b8d61bb7-497e-4ca5-a76c-84f7a44ab7df" start="2017-10-19T10:47:56.760+02:00" duration="75.0" travelDistance="149382" travelTime="92.946" travelUnknown="false" overlap="0.0" busyTime="167.946" waitingTime="0.0" isTravelUnknown="false" pauseTimeTravel="0.0" pauseTimeOnSite="0.0">
<Cost costValue="139453">
<CostComponent name="Travel time" base="92.946" value="139419"/>
<CostComponent name="Travel distance" base="149382.0" value="0"/>
<CostComponent name="Duration" base="75.0" value="0"/>
<CostComponent name="Best age" base="0.0" value="34"/>
</Cost>
</StopInfo>
<StopInfo type="Arrival" start="2017-10-19T17:00:00+02:00" duration="0.0" travelDistance="0" travelTime="0.0" travelUnknown="false" overlap="0.0" busyTime="0.0" isTravelUnknown="false" pauseTimeTravel="0.0" pauseTimeOnSite="0.0">
<Cost costValue="0"/>
</StopInfo>
</TripInfoAfter>
</PlanningOption>
</Result>
Slots
The query can be extended with slots that limit the options to specific days and time windows:
Parameter | Datatype | Description |
---|---|---|
slot{X} | DayTime | The slot on a specific day |
Example
slot1=Mon08:00-17:00&slot2=Wed12:00-17:00
The options calculation will limit the responses to those options that fit both the requested slots and the company's requirements with regards to other constraints, such as the maximum travel time. Therefore, it can happen that there are no options available for the provided slots. In that case, even though there may be options available outside of the slots, they will not be part of the response.