Download OpenAPI specification:
Welcome to the adiutaOpt API documentation!
This document specifies all endpoints and schema requirements. If you notice an error, please contact us.
The typical process of an optimization request looks as follows:
The overview site can be found here.
A string consisting of three parts following the pattern "YYYY-MM-DD":
While the schema does not check for validity, the optimization algorithms do. Including invalid dates (e.g. 2020-02-31) leads to a validation error.
Examples:
"2020-04-10"A string of either format "hh:mm" or "-hh:mm":
Times are always interpreted relative to a date in the same object as the Time field. This allows times to exceed 24h or even become negative, as the value gets "added" to midnight of the date. For example, the following times applied to the respective date (in Date format) are equivalent:
"07:25"Values are:
3An integer representing the vehicle type:
4A version consisting of the date of release [0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]+, which can have a patch suffix p[0-9]+.
"1970-01-01_0p0"See https://semver.org/ for a full description of semantic versioning. The regex here is a subset of allowed semantic versions.
"v1.2.3"The authentication is performed via AWS Cognito (Developer-Guide). It is recommended to use one of the SKDs provided by AWS to simplify the authentication process considerably. Examples for SDKs:
eu-central-1_0nXRn1JFH5n75tqsegshum2i9o0bgavmmufAuthentication provides three tokens: the access-token, the ID-token and the refresh-token. All three are JSON Web Tokens.
Authorization: 'ID-token'
auth_time) and when it will expire (exp). Currently, an ID-token expires after one hour and requests with expired ID-tokens are rejected automatically. You can get a new ID-token by using the refresh-token without having to re-enter your credentials.const user = ""; // your username const pw = ""; // your password const userPoolID = ""; // UserPoolID, see configuration details const clientID = ""; // ClientId, see configuration details const AmazonCognitoIdentity = require('amazon-cognito-identity-js'); module.exports.login = () => new Promise((resolve, reject) => { const userPool = new AmazonCognitoIdentity.CognitoUserPool({ UserPoolId: userPoolID, ClientId: clientID }); const authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails({ Username: user, Password: pw, }); const cognitoUser = new AmazonCognitoIdentity.CognitoUser({ Username: user, Pool: userPool }); cognitoUser.authenticateUser(authenticationDetails, { onSuccess: function (result) { const token = result.getIdToken().getJwtToken(); resolve(token); }, onFailure: function (err) { reject(); } }); })
Post a request to be solved.
If a new optimization request was received and was successfully processed, the endpoint will return 201 and the key with which the solution can be retrieved. This does not mean that calculating a solution will succeed, as logic errors, invalid ids and many other checks are performed later - these kinds of issues will result in an ErrorPlan, retrievable from the solution endpoint. Only schema violations are being checked in this request, they will result in the request being rejected with code 422.
Usually, if an optimization request was received but an identical request was already posted before, the endpoint will return 200 and the key with which the solution can be retrieved, which is identical to the key from the earlier request. This is not the case for certain errors which allow a repeat request (marked by the allowRepeat property of an ErrorPlan). Repeats for such requests are allowed after a certain amount of time has passed, trying to post before this cooldown has expired will result in rejection (code 429) where the retry-after header contains the remaining time in seconds until the request will be accepted again. If the repeat request was accepted, the endpoint returns code 201 and a new key to get the solution with.
Request to this endpoint have a content size limit which depends on the used content-type. Requests with content-type: application/json must contain a "plain-text" json payload which must be less than 6Mb in size. For sending larger requests, you must use content-type: application/vnd.adiutabyte.adiutaopt.json+[gzip,deflate,br]. These requests must contain the json data, compressed with gzip, deflate (zlib) or brotli, the payload size limit is 4.5Mb for the compressed data.
required | "application/json" (string) or "application/vnd.adiutabyte.adiutaopt.json+gzip" (string) or "application/vnd.adiutabyte.adiutaopt.json+deflate" (string) or "application/vnd.adiutabyte.adiutaopt.json+br" (string) The |
| adiutaopt-version | string (optional) A specific version to process the request under. Valid versions can be retrieved with the /packages-list endpoint ( Using a specific version is not recommended for "general" application but for testing, debugging or other developer actions. Versions represent a specific state of the application, they cannot be changed, bug-fixed or extended in any way. For that reason, support for these requests may be limited. |
object (Client) Contains information about the client which sends this request. | |
required | object (MixedPlannerMeta) Meta information about what to consider in the optimization. |
required | object (MixedPlannerOptimizationParameters) Parameters for the optimizer. |
required | Array of objects (MixedPlannerInputTask) Array of tasks to be planned by the optimizer. |
required | Array of objects (MixedPlannerInputWorker) Array of available workers. |
Array of objects (MixedPlannerLocationSite) Array of available location sites. | |
object (MixedPlannerHistory) History data the optimizer can learn from to apply to the current request. History analysis is done differently for each of our customers, if you know what issues you want to address/ what results you want to see from such methods, please contact us so we can set up a solution. | |
object (MixedPlannerTravelOverride) Manual distance matrix data | |
Array of objects or objects (MixedPlannerObstacle) Deprecated Obstacles for the travel calculation. | |
| recovery | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] This is a field only used for debugging by internal developers. Content in this field may change depending on the application, input-data and version. The output values can be used as input values. |
A basic TSP
{- "meta": {
- "dateFrom": "2019-12-03",
- "dateTo": "2019-12-03",
- "accuracyMode": 1,
- "postProcessing": true
}, - "parameters": {
- "preset": 0
}, - "tasks": [
- {
- "date": "2019-12-03",
- "duration": 60,
- "taskID": 200,
- "timeEarliest": "0:00",
- "timeLatest": "24:00",
- "location": {
- "lat": 50.88,
- "lng": 6.95
}
}, - {
- "date": "2019-12-03",
- "duration": 60,
- "taskID": 201,
- "timeEarliest": "0:00",
- "timeLatest": "24:00",
- "location": {
- "lat": 50.89,
- "lng": 6.96
}
}, - {
- "date": "2019-12-03",
- "duration": 60,
- "taskID": 202,
- "timeEarliest": "06:00",
- "timeLatest": "12:00",
- "location": {
- "lat": 50.9,
- "lng": 6.97
}
}
], - "workers": [
- {
- "workerID": 1,
- "shiftDate": "2019-12-03",
- "shiftStart": "06:00",
- "shiftEnd": "20:00",
- "startLocation": {
- "lat": 50.878847,
- "lng": 6.9647284
}, - "endLocation": {
- "lat": 50.878847,
- "lng": 6.9647284
}
}
]
}"VGVzdEtleUZvckFQSURvY3VtZW50YXRpb24uYXNk=="Retrieve the solution from this endpoint with the key you got when posting the request. The solution can either be a solved request or an ErrorPlan.
Responses from this endpoint have a content size limit which depends on the used content-type of the response, which can be specified with the accept header. If the response size would exceed that limit, the endpoint returns code 409 instead. Responses of type application/json can include payloads of up to 6Mb, all other types can return up to 4.5Mb of (compressed) data.
| planID required | string Key returned in the 200/201 response of the POST request |
"application/json" (string) or "application/vnd.adiutabyte.adiutaopt.json+gzip" (string) or "application/vnd.adiutabyte.adiutaopt.json+deflate" (string) or "application/vnd.adiutabyte.adiutaopt.json+br" (string) (optional) The | |
"identity" (string) or "gzip" (string) or "deflate" (string) (optional) The |
curl \ --request GET \ --url '[see url above]/[key obtained from POST request]' \ --header 'Authorization: Bearer [ID-Token obtained from Authentication (JWT)]'
{- "requestID": "string",
- "client": {
- "clientID": "logisticscenter_a"
}, - "meta": {
- "dateFrom": "2020-04-10",
- "dateTo": "2020-04-10",
- "resCapacity": false,
- "resCategory": false,
- "resQualification": false,
- "postProcessing": false,
- "accuracyMode": 1.7e+308,
- "outputLanguage": 1,
- "tightSchedule": false,
- "tourStartsOnShiftStart": false,
- "minTravelTime": 2147483647,
- "travelTimeMin": 2147483647,
- "integrateDurationExtensions": true,
- "integrateGermanBreakRegulations": false,
- "enablePlanSplitting": true,
- "allowUnassignedTasks": false,
- "removeInvalidTasks": true,
- "useInitialClustering": false,
- "dontOptimizeResets": false,
- "minConcurrentSolutions": 1,
- "minTaskDuration": 2147483647,
- "useDensityClustering": false,
- "disableTaskTimeWindowRelaxation": false
}, - "parameters": {
- "preset": 4,
- "fairDistribution": 9,
- "localityClustering": 9,
- "shortPaths": 9,
- "timeliness": 9,
- "travelTimeRelax": 9,
- "workerPrefs": 9,
- "workerReduction": 9,
- "workTimeRelax": 9,
- "genderPref": 9,
- "profitability": 9
}, - "tasks": [
- {
- "taskID": 2147483647,
- "externalID": "string",
- "clientID": 2147483647,
- "baseScheduleTime": "07:25",
- "date": "2020-04-10",
- "duration": 2147483647,
- "durationInSeconds": 2147483647,
- "timeEarliest": "07:25",
- "timeLatest": "07:25",
- "forbTimeEarliest": "07:25",
- "forbTimeLatest": "07:25",
- "timePriority": 5,
- "location": {
- "lat": -90,
- "lng": -180
}, - "locationSiteID": 2147483647,
- "finishLocation": {
- "lat": -90,
- "lng": -180
}, - "finishLocationSiteID": 2147483647,
- "rotatable": false,
- "description": "string",
- "prefWorkers": [
- 2147483647
], - "unpreferredWorkers": [
- 2147483647
], - "antiWorkers": [
- 2147483647
], - "forbWorkers": [
- 2147483647
], - "capacity": -1.7e+308,
- "weight": -1.7e+308,
- "volume": -1.7e+308,
- "qualification": 2147483647,
- "categories": [
- 2147483647
], - "antiCategories": [
- 2147483647
], - "exchangeableCategories": [
- 2147483647
], - "twinCategories": [
- 2147483647
], - "preassignedWorker": 2147483647,
- "preassignedOrder": -2147483648,
- "desiredWorker": 2147483647,
- "initassignedOrder": 2147483647,
- "initassignedWorker": 2147483647,
- "initassignedShiftID": 2147483647,
- "prefGender": 3,
- "precedingTasks": [
- 2147483647
], - "predecessorTasks": [
- 2147483647
], - "revenue": 1.7e+308,
- "travelTimeExtra": 2147483647,
- "group": 2147483647,
- "predecessorGroup": 2147483647,
- "assignmentPriority": 5,
- "ignoreHistory": false,
- "timeScheduled": "07:25",
- "timeWindowViolation": -2147483648,
- "travelTime": 2147483647,
- "travelDistance": 1.7e+308,
- "assignedWorker": 2147483647,
- "assignedShiftID": 2147483647,
- "finalassignedOrder": 1,
- "info": "string",
- "allowedWorkers": [
- 2147483647
], - "profit": -1.7e+308,
- "performResetBeforeAtID": 2147483647,
- "travelTimeToReset": 2147483647,
- "travelDistanceToReset": 1.7e+308,
- "rotated": true,
- "gapBeforeTask": 2147483647
}
], - "workers": [
- {
- "workerID": 2147483647,
- "shiftID": 2147483647,
- "externalID": "string",
- "startLocation": {
- "lat": -90,
- "lng": -180
}, - "startLocationSiteID": 2147483647,
- "endLocation": {
- "lat": -90,
- "lng": -180
}, - "endLocationSiteID": 2147483647,
- "shiftDate": "2020-04-10",
- "shiftStart": "07:25",
- "shiftEnd": "07:25",
- "shiftPriority": 3,
- "hoursPerWeek": 1,
- "capacity": 1.7e+308,
- "capacityInitial": 1.7e+308,
- "capacityResetLocationSiteIDs": [
- 2147483647
], - "capacityResetDuration": 2147483647,
- "maxResets": 2147483647,
- "volume": 1.7e+308,
- "volumeInitial": 1.7e+308,
- "weight": 1.7e+308,
- "weightInitial": 1.7e+308,
- "finalCapacityResetThreshold": 1.7e+308,
- "finalVolumeResetThreshold": 1.7e+308,
- "finalWeightResetThreshold": 1.7e+308,
- "qualification": 2147483647,
- "categories": [
- 2147483647
], - "desiredCategory": 2147483647,
- "prefCategories": [
- 2147483647
], - "breakLocationSiteID": 2147483647,
- "breakStartEarliest": "07:25",
- "breakEndLatest": "07:25",
- "breakDuration": 2147483647,
- "noAutomaticBreak": false,
- "vehicleType": 4,
- "gender": 3,
- "costsPerKM": 1.7e+308,
- "costsPerMinute": 1.7e+308,
- "costsInitial": 1.7e+308,
- "maxDesiredTotalDistance": 1.7e+308,
- "maxDesiredSingleDistance": 1.7e+308,
- "dontVary": false,
- "dontAlter": false,
- "expectedWorkingMinutes": 2147483647,
- "maxAssignableTasks": 2147483647,
- "minAssignableTasks": 2147483647,
- "breakScheduled": "07:25",
- "info": "string",
- "travelHomeTime": 2147483647,
- "travelHomeDistance": 1.7e+308,
- "performFinalResetAtID": 2147483647,
- "travelTimeToFinalReset": 2147483647,
- "travelDistanceToFinalReset": 1.7e+308,
- "tourStart": "07:25",
- "tourEnd": "07:25",
- "totalTravelTime": 2147483647,
- "totalTravelDistance": 1.7e+308,
- "totalTaskTime": 2147483647
}
], - "locationSites": [
- {
- "locationSiteID": 2147483647,
- "location": {
- "lat": -90,
- "lng": -180
}, - "externalID": "string"
}
], - "obstacles": [
- {
- "description": "string",
- "factor": 1.7e+308,
- "restriction": 1,
- "travelTimeIncrease": 1.7e+308,
- "type": "polyline",
- "points": [
- {
- "lat": -90,
- "lng": -180
}
]
}
], - "statistics": {
- "configuration": [
- {
- "label": "Kurze Wege",
- "value": 1
}
], - "workload": [
- {
- "workerID": 2147483647,
- "values": [
- 1
]
}
], - "travelTimes": [
- {
- "workerID": 2147483647,
- "time": 2147483647
}
], - "travelDistances": [
- {
- "workerID": 2147483647,
- "distance": 1.7e+308
}
], - "taskTimes": [
- {
- "workerID": 2147483647,
- "time": 2147483647
}
], - "taskBusyness": [
- {
- "workerID": 2147483647,
- "busyness": 1.7e+308
}
], - "travelBusyness": [
- {
- "workerID": 2147483647,
- "busyness": 1.7e+308
}
], - "workTimeDistribution": [
- {
- "type": "Arbeitszeit",
- "time": 2147483647
}
], - "preferredWorkers": [
- {
- "type": "matched",
- "count": 2147483647
}
], - "preferredGender": [
- {
- "type": "matched",
- "count": 2147483647
}
], - "desiredWorkers": [
- {
- "type": "matched",
- "count": 2147483647
}
], - "vehicleTypeDistances": [
- {
- "vehicleType": 4,
- "distance": 1.7e+308
}
], - "impact": [
- {
- "label": "string",
- "value": 1
}
], - "unassignedTaskIDs": [
- 2147483647
], - "unassignableTaskIDs": [
- 2147483647
], - "timeWindowViolationTaskIDs": [
- 2147483647
], - "routeLength": 1.7e+308,
- "onTime": 100,
- "planProfitability": -1.7e+308,
- "history": {
- "tasks": [
- {
- "taskID": 2147483647,
- "preassignedWorker": 2147483647,
- "timeEarliest": "07:25",
- "timeLatest": "07:25",
- "timeEarliestLimit": "07:25",
- "timeLatestLimit": "07:25",
- "preferenceWeights": [
- {
- "workerID": 2147483647,
- "value": 1.7e+308
}
], - "genderWeights": [
- {
- "gender": 3,
- "value": 1.7e+308
}
], - "prefGender": 3,
- "group": 2147483647,
- "desiredGroup": 2147483647,
- "timePriority": 5,
- "initassignedWorker": 2147483647,
- "weakPredecessorTasks": [
- 2147483647
], - "taskGaps": [
- {
- "taskID": 2147483647,
- "minGap": -2147483648,
- "maxGap": -2147483648
}
]
}
], - "workers": [
- {
- "workerID": 2147483647,
- "hasShortHistory": true,
- "hasNoHistory": true
}
]
}
}, - "info": {
- "text": "string",
- "balance": "string",
- "dist": "string",
- "pref": "string",
- "relax": "string",
- "time": "string",
- "feasible": true,
- "constructionSites": null
}, - "anomalies": [
- {
- "anomalyKey": "string",
- "severity": "high",
- "text": "string",
- "taskID": 2147483647,
- "workerID": 2147483647
}
], - "backendVersion": {
- "version": "v1.0.0",
- "optVersion": "1970-01-01_0p0",
- "rev": "strings",
- "schema": "v1.2.3"
}, - "recovery": [
- 2147483647
]
}Same behavior as the GET request but returns no content for any of the responses.
| planID required | string Key returned in the 200/201 response of the POST request |
"application/json" (string) or "application/vnd.adiutabyte.adiutaopt.json+gzip" (string) or "application/vnd.adiutabyte.adiutaopt.json+deflate" (string) or "application/vnd.adiutabyte.adiutaopt.json+br" (string) (optional) The | |
"identity" (string) or "gzip" (string) or "deflate" (string) (optional) The |
Get the currently deployed version.
Responses from this endpoint have a content size limit which depends on the used content-type of the response, which can be specified with the accept header. If the response size would exceed that limit, the endpoint returns code 409 instead. Responses of type application/json can include payloads of up to 6Mb, all other types can return up to 4.5Mb of (compressed) data.
| adiutaopt-version | string (optional) A specific version to process the request under. Valid versions can be retrieved with the /packages-list endpoint ( Using a specific version is not recommended for "general" application but for testing, debugging or other developer actions. Versions represent a specific state of the application, they cannot be changed, bug-fixed or extended in any way. For that reason, support for these requests may be limited. |
"application/json" (string) or "application/vnd.adiutabyte.adiutaopt.json+gzip" (string) or "application/vnd.adiutabyte.adiutaopt.json+deflate" (string) or "application/vnd.adiutabyte.adiutaopt.json+br" (string) (optional) The | |
"identity" (string) or "gzip" (string) or "deflate" (string) (optional) The |
curl \ --request GET \ --url '[see url above]' \ --header 'Authorization: Bearer [ID-Token obtained from Authentication (JWT)]'
{- "schema": "v1.7.0",
- "version": "2024-10-01_0",
- "meta_data": "v19",
- "api_scripts": "v1.6.2"
}Same behavior as the GET request but returns no content for any of the responses.
| adiutaopt-version | string (optional) A specific version to process the request under. Valid versions can be retrieved with the /packages-list endpoint ( Using a specific version is not recommended for "general" application but for testing, debugging or other developer actions. Versions represent a specific state of the application, they cannot be changed, bug-fixed or extended in any way. For that reason, support for these requests may be limited. |
"application/json" (string) or "application/vnd.adiutabyte.adiutaopt.json+gzip" (string) or "application/vnd.adiutabyte.adiutaopt.json+deflate" (string) or "application/vnd.adiutabyte.adiutaopt.json+br" (string) (optional) The | |
"identity" (string) or "gzip" (string) or "deflate" (string) (optional) The |
Get a list of all available packages. The Name of each package can be used in a POST request in header adiutaopt-version, the algorithm will then run on the specified version.
Responses from this endpoint have a content size limit which depends on the used content-type of the response, which can be specified with the accept header. If the response size would exceed that limit, the endpoint returns code 409 instead. Responses of type application/json can include payloads of up to 6Mb, all other types can return up to 4.5Mb of (compressed) data.
"application/json" (string) or "application/vnd.adiutabyte.adiutaopt.json+gzip" (string) or "application/vnd.adiutabyte.adiutaopt.json+deflate" (string) or "application/vnd.adiutabyte.adiutaopt.json+br" (string) (optional) The | |
"identity" (string) or "gzip" (string) or "deflate" (string) (optional) The |
curl \ --request GET \ --url '[see url above]' \ --header 'Authorization: Bearer [ID-Token obtained from Authentication (JWT)]'
[- {
- "Name": "a6b69c77bedb7",
- "LastModified": "2024-08-16T12:41:09.000Z",
- "Content": {
- "schema": "v2.7.0",
- "version": "2024-10-01_0",
- "meta_data": "v26"
}
}, - {
- "Name": "d63ca460db7bc",
- "LastModified": "2024-08-16T09:16:09.000Z",
- "Content": {
- "schema": "v2.3.0",
- "version": "2024-10-01_0p0",
- "meta_data": "v26"
}
}
]Same behavior as the GET request but returns no content for any of the responses.
"application/json" (string) or "application/vnd.adiutabyte.adiutaopt.json+gzip" (string) or "application/vnd.adiutabyte.adiutaopt.json+deflate" (string) or "application/vnd.adiutabyte.adiutaopt.json+br" (string) (optional) The | |
"identity" (string) or "gzip" (string) or "deflate" (string) (optional) The |
The following list contains all error solution data used by the algorithm. The solution's language is determined by the input file's language setting, certain arguments will be inserted into the templates. "Internal errors" have an additional sentence attached at the end of the template, telling users to contact the developer team, as these are not fixable by adjusting input information alone.
| errorID | Name | Internal error? | Allow repeat request? | Contains taskID? | Contains workerID? | Message template English | Message template German |
|---|---|---|---|---|---|---|---|
| 44 | TravelNotPossible | Travel between two points is not possible: {0}. | Eine Fahrt zwischen zwei Punkten im Input ist nicht möglich: {0}. | ||||
| 45 | PreparationValidationFailure | Pre-validation failed: {0}. | Vor-Validierung ist fehlgeschlagen: {0}. | ||||
| 46 | PreparationError | ✔ | Error while while preparing data: {0}. You may try to repeat the request, if the issue persists, please contact the developers! | Fehler bei der Vorbearbeitung der Daten: {0}. Sie können die Anfrage wiederholen - falls das Problem dauerhaft auftritt, kontaktieren Sie bitte die Entwickler! | |||
| 47 | ErrorPostRequest | Error while posting request: {0}. | Fehler beim Senden der Plananfrage: {0}. | ||||
| 48 | ErrorGetRequest | Error while getting solution: {0}. | Fehler beim Abholen des gelösten Planes: {0}. | ||||
| 49 | InvalidSchemaPostRequest | Posted invalid data to endpoint! Errors: {0}. | Ungültige Daten an Endpunkt gesendet! Fehler: {0}. | ||||
| 92 | CannotCreateErrorBody | ✔ | Critical error while creating error notification. | Kritischer Fehler beim Erzeugen einer Fehlermeldung. | |||
| 93 | SeverePreparationError | ✔ | Critical error while preparing data. | Kritischer Fehler in der Datenvorbearbeitung. | |||
| 94 | SevereErrorPostRequest | ✔ | Critical error while posting request: {0}. | Kritischer Fehler beim Senden der Plananfrage: {0}. | |||
| 95 | InvalidTimeoutCalculation | ✔ | Invalid remaining time for calculation. | Ungültige Restzeit für Planberechnung. | |||
| 96 | SevereErrorGetRequest | ✔ | Critical error while getting solution: {0}. | Kritischer Fehler beim Abholen eines gelösten Plans. | |||
| 97 | PlanHandlingTimeout | ✔ | Irregular timeout without solution. | Irreguläre Zeitüberschreitung ohne Lösung. | |||
| 98 | MissingExecutable | ✔ | Cannot find optimizer data. | Plandaten können nicht gefunden werden. | |||
| 99 | CriticalCalculationError | ✔ | Critical error while optimizing. | Kritischer Fehler beim Optimieren der Plananfrage. | |||
| 100 | InvalidError | ✔ | Invalid error code in error solution: {0}. | Ungültiger Fehlercode in Fehleroutput: {0}. | |||
| 101 | UncaughtException | ✔ | An uncaught error occurred: {0}. | Ein Fehler konnte nicht abgefangen werden: {0}. | |||
| 102 | InvalidErrorSolutionSave | ✔ | Error while creating error solution. | Fehler beim Erstellen einer Fehlermeldung. | |||
| 103 | DisjunctTimeout | ✔ | Timeout in an invalid optimizer state. | Zeitüberschreitung in einem unzulässigen Stadium der Optimierung. | |||
| 104 | InvalidValidationData | ✔ | Invalid validation data while writing error message. | Ungültige Validierungsdaten beim Schreiben einer Fehlermeldung. | |||
| 105 | SignalError | ✔ | Abnormal termination via signal {0} ({1}). | Irregulärer Abbruch durch Signal {0} ({1}). | |||
| 110 | InvalidWorker | A worker contains input data errors. Missing field: {0}. | Bei einem Mitarbeiter ist ein Fehler in den Inputdaten vorhanden. Fehlendes Feld: {0}. | ||||
| 111 | InvalidTask | A task contains input data errors. Missing field: {0}. | Bei einer Aufgabe ist ein Fehler in den Inputdaten vorhanden. Fehlendes Feld: {0}. | ||||
| 112 | InvalidLocationSite | A location site contains input data errors. Missing field: {0}. | Bei einem Ort ist ein Fehler in den Inputdaten vorhanden. Fehlendes Feld: {0}. | ||||
| 113 | InvalidObstacle | An obstacle contains input data errors. | Bei einem Hindernis sind Fehler in den Inputdaten vorhanden. | ||||
| 114 | NoWorkersInInput | There is no worker array in the input data file. | Es ist kein Feld für Mitarbeiter in den Inputdaten angegeben. | ||||
| 115 | NoTasksInInput | There is no task array in the input data file. | Es ist kein Feld für Aufgaben in den Inputdaten angegeben. | ||||
| 116 | InvalidHistoryAssignment | A historical assignment contains input data errors. Missing field: {0}. | Bei einer historischen Zuweisung sind Fehler in den Inputdaten vorhanden. Fehlendes Feld: {0}. | ||||
| 117 | InvalidHistoryWorker | A historical worker contains input data errors. Missing field: {0}. | Bei einem historischen Mitarbeiter sind Fehler in den Inputdaten vorhanden. Fehlendes Feld: {0}. | ||||
| 118 | InvalidHistoryTask | A historical task contains input data errors. Missing field: {0}. | Bei einem historischen Auftrag sind Fehler in den Inputdaten vorhanden. Fehlendes Feld: {0}. | ||||
| 119 | NoWorkersInHistory | There is no worker array in the history of the input data file. | Es ist kein Feld für Mitarbeiter in der Historie der Inputdaten angegeben. | ||||
| 120 | TaskTimeGTShiftTime | The sum of task duration exceeds the sum of available shift time. | Es sind mehr reine Arbeitsminuten zu verteilen als durch Mitarbeiterschichten verfügbar. | ||||
| 121 | DuplicateTaskID | ✔ | The input data contains two tasks with ID #{0}. | In den Eingabedaten existieren zwei Aufgaben mit ID #{0}. | |||
| 122 | DuplicateWorkerID | ✔ | The input data contains two workers with ID #{0}. | In den Eingabedaten existieren zwei Mitarbeiter mit ID #{0}. | |||
| 123 | TaskTimeWindowTooSmall | ✔ | The task #{0} with a duration of {1} min does not fit into the given timeslot ({2} - {3}). | Die Aufgabe #{0} (Dauer: {1} min) passt nicht in den angegebenen Zeitslot ({2} - {3}). | |||
| 124 | InvalidRelationGroup | A subset of tasks, which have to be assigned to a single worker, have no worker that can fulfill all of their requirements. Task ids: {0}. | Eine Teilmenge der Aufgaben, die alle einem Mitarbeiter zugewiesen werden müssen, hat keinen Mitarbeiter, der deren Anforderungen erfüllen kann. Aufgaben IDs: {0}. | ||||
| 125 | InvalidParameter | Invalid parameter. | Ungültiger Parameter. | ||||
| 126 | ConflictingDontVaryReplacement | ✔ | Task #{0} and #{1} are part of a forced task chain but have different fixed/ order-fixed assignments. | Aufgabe #{0} und #{1} sind Teil einer erzwungenen Kette von Aufgaben, haben aber einen unterschiedlichen Status bezüglich fixer/ Reihenfolgen-fixer Zuweisung. | |||
| 127 | TaskTimeWindowForMinTaskDurationTooSmall | ✔ | The task #{0} with a provided minimum task duration of {1} min does not fit into the given timeslot ({2} - {3}). | Die Aufgabe #{0} (durch gesetzte Mindestaufgabendauer: {1} min) passt nicht in den angegebenen Zeitslot ({2} - {3}). | |||
| 128 | NegativeTimeWindowDuration | ✔ | The time window for task #{0} ends before it even begins (begin: {1}, end: {2}). | Das Zeitfenster von Aufgabe #{0} endet bevor es beginnt (Start: {1}, Ende: {2}). | |||
| 250 | CSVPFileNotSet | ✔ | Input file for population maps cannot be read. | Das Input-File für die Population-Map kann nicht gelesen werden. | |||
| 251 | CSVOFileNotSet | ✔ | Input file for obstacle maps cannot be read. | Das Input-File für die Obstacle-Map kann nicht gelesen werden. | |||
| 252 | CSVCFileNotSet | ✔ | Input file for construction maps cannot be read. | Das Input-File für die Baustellen-Map kann nicht gelesen werden. | |||
| 253 | InputPathNotValid | ✔ | Invalid filepath, file not found. | Der angegebene Pfad enthält keine lesbare Datei. | |||
| 254 | InvalidClientMetaParameters | ✔ | The meta data contains conflicting parameters. | Die Metadaten beinhalten widersprüchliche Parameter. | |||
| 300 | NoWorkerBeforeFBTP | ✔ | No worker available for planning. | Kein Mitarbeiter zum Verplanen verfügbar. | |||
| 301 | NoTaskBeforeFBTP | ✔ | No task available for planning. | Keine Aufgabe zum Verplanen verfügbar. | |||
| 302 | InvalidSVSInFBTP | ✔ | Missing worker in plan data for FBTP. | Mitarbeiter fehlt in Plandaten für FBTP. | |||
| 303 | InvalidSVSSizeInFBTP | ✔ | Invalid svs size in FBTP. | Ungültige Größe der SVS in FBTP. | |||
| 304 | InvalidMVSInFBTP | ✔ | Invalid mvs size in FBTP. | Ungültige Größe der MVS in FBTP. | |||
| 305 | NoWorkersInGreedy | ✔ | Missing workers in GDY. | Mitarbeiter fehlen in GDY. | |||
| 306 | MissingWorkerGreedy | ✔ | Missing worker in plan data for GDY. | Mitarbeiter fehlen in Plandaten in GDY. | |||
| 307 | InvalidSVSSizeGreedy | ✔ | Invalid svs size in GDY. | Ungültige Größe der SVS in GDY. | |||
| 308 | InvalidMVSGreedy | ✔ | Invalid mvs size in GDY. | Ungültige Größe der MVS in GDY. | |||
| 309 | InvalidSVSInCLS | ✔ | Missing worker in plan data for clustering. | Mitarbeiter fehlt in Plandaten für Clustering. | |||
| 310 | InvalidSVSSizeInCLS | ✔ | Invalid svs size in clustering. | Ungültige Größe der SVS in Clustering. | |||
| 311 | InvalidMVSInCLS | ✔ | Invalid mvs size in clustering. | Ungültige Größe der MVS in Clustering. | |||
| 400 | NoNeighbors | ✔ | Empty neighborhood. | Leere Nachbarschaft. | |||
| 401 | InvalidFraction | ✔ | Invalid fraction of {0}. | Ungültige Fraction von {0}. | |||
| 500 | LocationIDNotInList | ✔ | There is no location saved to ID {0}. | Keine Koordinaten zu ID {0} gefunden. | |||
| 501 | WorkerUIDOutOfRange | ✔ | Worker uid request out of range: {0}. | Mitarbeiter-UID Anfrage ungültig: {0}. | |||
| 502 | WorkerUIDNotFound | ✔ | No worker found with uid {0}. | Mitarbeiter mit UID {0} existiert nicht. | |||
| 503 | TaskUIDOutOfRange | ✔ | Task uid request out of range: {0}. | Aufgaben-UID Anfrage ungültig: {0}. | |||
| 504 | TaskUIDNotFound | ✔ | No task found with uid {0}. | Aufgabe mit UID {0} existiert nicht. | |||
| 505 | FailedDeterminingDeadlines | ✔ | ✔ | Can't calculate the deadline for task #{0}. | Die Deadline von Aufgabe #{0} kann nicht berechnet werden. | ||
| 506 | InvalidDateString | ✔ | Invalid date: {0}. | Ungültiges Datum: {0}. | |||
| 507 | InvalidSaturdaysSinceDate | ✔ | Requesting number of Saturdays on invalid date range: {0} to {1}. | Abfrage der Samstage auf ungültigem Bereich: {0} bis {1}. | |||
| 508 | InvalidSundaysSinceDate | ✔ | Requesting number of Sundays on invalid date range: {0} to {1}. | Abfrage der Sonntage auf ungültigem Bereich: {0} bis {1}. | |||
| 509 | InvalidMonth | ✔ | Invalid month: {0}. | Ungültiger Monat: {0}. | |||
| 510 | DMInvalidConstruct | ✔ | Matrix construction of invalid size. | Matrix-Konstruktion mit ungültiger Größe. | |||
| 511 | DMVectorSizeMismatchColumns | ✔ | Number of columns in matrix does not match vector size. | Matrix-Spaltenzahl und Vectorgröße sind nicht gleich. | |||
| 512 | DMInvalidmatrixMult | ✔ | Invalid dimensions for matrix multiplication. | Ungültige Dimensionen für Matrix-Multiplikation. | |||
| 513 | DMInvalidmatrixAdd | ✔ | Invalid dimensions for matrix addition. | Ungültige Dimensionen für Matrix-Addition. | |||
| 514 | DMInvalidmatrixSubtract | ✔ | Invalid dimensions for matrix subtraction. | Ungültige Dimensionen für Matrix-Subtraktion. | |||
| 515 | DMInvalidCG | ✔ | Solving with CG is not possible on this matrix. | CG-Verfahren kann nicht auf Matrix angewendet werden. | |||
| 516 | DMInvalidCoordinates | ✔ | Invalid matrix access: {0} ({1}), {2} ({3}). | Ungültiger Zugriff auf Matrix: {0} ({1}), {2} ({3}). | |||
| 517 | InvalidNodeID | ✔ | Node with ID {0} does not exist. | Knoten mit ID {0} existiert nicht. | |||
| 518 | InvalidEdgeID | ✔ | Edge with ID {0} does not exist. | Kante mit ID {0} existiert nicht. | |||
| 519 | SFOutOfRange | ✔ | Invalid parameters for scaling factor: {0}/{1}. | Ungültige Parameter für Skalierungsfaktor: {0}/{1}. | |||
| 520 | PVInvalidConstruct | ✔ | Permutation vector construction of invalid size. | Permutationsvektor-Konstruktion mit ungültiger Größe. | |||
| 521 | InvalidPointString | ✔ | Invalid coordinates: {0}. | Ungültige Koordinaten: {0}. | |||
| 522 | DivisionByZero | ✔ | Division by zero. | Division durch null. | |||
| 523 | QTEmptyPointList | ✔ | Cannot generate quadtree, empty coordinate list. | Quadtree kann nicht erzeugt werden, Koordinatenliste leer. | |||
| 524 | QTInvalidBoundingBox | ✔ | Invalid bounding box for quadtree coordinate list. | Ungültige BoundingBox für Quadtree-Koordinaten. | |||
| 525 | QTNotInitialized | ✔ | Quadtree not initialized. | Quadtree nicht initialisiert. | |||
| 526 | QTInitialPointSearch | ✔ | Invalid coordinate search in Quadtree. | Ungültige Suche nach Koordinaten in Quadtree. | |||
| 527 | QTCoordPairNotContained | ✔ | Coordinate pair not contained within quadtree. | Koordinatenpaar nicht in Quadtree enthalten. | |||
| 528 | QTEmptyCell | ✔ | Empty quadtree cell. | Leere Quadtree-Zelle. | |||
| 529 | QTInvalidSearch | ✔ | Cannot find quadtree cell. | Quadtree-Zelle konnte nicht gefunden werden. | |||
| 530 | InvalidStringConversionToInt | ✔ | Number cannot be read from string: {0}. | Zahl kann nicht aus string gelesen werden: {0}. | |||
| 531 | InitialTimeObject | ✔ | Invalid call on initial time object. | Ungültiger Aufruf auf initialem Zeit-Objekt. | |||
| 532 | InvalidStringConversionToTime | ✔ | Invalid time format: {0}. | Ungültiges Zeitformat: {0}. | |||
| 533 | TimerNotRunning | ✔ | Timer cannot be stopped. | Timer kann nicht gestoppt werden. | |||
| 534 | MaldefinedPopMacros | ✔ | Population limit macros wrongly defined. | Population-Limit-Macros fehlerhaft angelegt. | |||
| 535 | TSMInvalidMeta | ✔ | Invalid meta data in population file. | Fehlerhafte Meta-Daten in Population-File. | |||
| 536 | FPVIncompatibleSize | ✔ | Invalid vector sizes for operator. | Vektoren haben eine inkompatible Größe. | |||
| 537 | FPVNegativeElement | ✔ | Vector contains negative element. | Vektor beinhaltet negatives Element. | |||
| 538 | FPVInvalidConstruction | ✔ | Invalid vector construction. | Ungültige Vektor-Konstruktion. | |||
| 539 | FPVInvalidIndex | ✔ | Invalid index query: {0} ({1}). | Ungültiger Index in Abfrage: {0} ({1}). | |||
| 540 | IONotANumber | ✔ | Expected number in field: {0}. | Zahl in Feld erwartet: {0}. | |||
| 541 | IONotAnInteger | ✔ | Expected integer in field: {0}. | Ganze Zahl in Feld erwartet: {0}. | |||
| 542 | IONotABoolean | ✔ | Expected boolean in field: {0}. | Boolean in Feld erwartet: {0}. | |||
| 543 | IONotAString | ✔ | Expected text in field: {0}. | Text in Feld erwartet: {0}. | |||
| 544 | IONotAVehicle | ✔ | Expected vehicle type in field: {0}. | Fahrzeugtyp in Feld erwartet: {0}. | |||
| 545 | IONotAGenderType | ✔ | Expected gender type in field: {0}. | Geschlechtertyp in Feld erwartet: {0}. | |||
| 546 | IONotALangType | ✔ | Expected language type in field: {0}. | Sprachtyp in Feld erwartet: {0}. | |||
| 547 | IONotCoordinates | ✔ | Expected coordinates in field: {0}. | Koordinaten in Feld erwartet: {0}. | |||
| 548 | IONotAnArray | ✔ | Expected array in field: {0}. | Array in Feld erwartet: {0}. | |||
| 549 | IONotANumberArray | ✔ | Expected numbers in array: {0}. | Zahlen in Array erwartet: {0}. | |||
| 550 | IONotAnIntegerArray | ✔ | Expected integers in array: {0}. | Ganze Zahlen in Array erwartet: {0}. | |||
| 551 | IONotACoordinateArray | ✔ | Expected coordinates in array: {0}. | Koordinaten in Array erwartet: {0}. | |||
| 552 | IONonexistantField | ✔ | Input data field does not exist: {0}. | Inputdatenfeld existiert nicht: {0}. | |||
| 553 | IOInvalidArrayIterator | ✔ | Invalid index in data array. | Ungültiger Index in Daten-Array. | |||
| 554 | UnexpectedNull | ✔ | Unexpected null reference. | Unerwartete Null-Referenz. | |||
| 555 | IOConflictingType | ✔ | Input data field exists with a different type: {0}. | Inputdatenfeld existiert bereits mit anderem Typ: {0}. | |||
| 556 | IOAlreadyExists | ✔ | Input data field already exists: {0}. | Inputdatenfeld existiert bereits: {0}. | |||
| 557 | MalformedSwitchCase | ✔ | Invalid decision declaration. | Ungültige Entscheidungsdefinition. | |||
| 558 | InvalidFPConversionLang | ✔ | Invalid configuration for converting number to text. | Ungültige Einstellungen für Zahlenumwandlung in Text. | |||
| 559 | InvalidEnumFromString | ✔ | Enum cannot be read: {0}. | Enum kann nicht gelesen werden: {0}. | |||
| 560 | InvalidRandBounds | ✔ | Invalid bounds for random value: {0} to {1}. | Ungültige Grenzen für Zufallszahlen: {0} bis {1}. | |||
| 561 | FunctionCallNotAllowed | ✔ | Function call not allowed. | Funktionsaufruf nicht erlaubt. | |||
| 562 | InvalidCOMEdge | ✔ | Invalid edge in COM-Graph. | Ungültige Kante in COM-Graph. | |||
| 563 | KMCInvalidRange | ✔ | Invalid index range in KMC. | Ungültige Index-Weite in KMC. | |||
| 564 | KMCInvalidNumClusters | ✔ | Invalid amount of clusters in KMC. | Ungültige Menge an Clustern in KMC. | |||
| 565 | InvalidTimeDistPen | ✔ | Travel evaluation not possible. | Fahrtevaluation nicht möglich. | |||
| 566 | InvalidMidDistance | ✔ | Invalid calculated mid distance. | Ungültige berechnete Zwischendistanz. | |||
| 567 | HungarianTimeout | ✔ | Unexpected number of iterations in matching calculations. | Unerwartete Zahl der Iterationen in Matching-Berechnung. | |||
| 568 | InvalidValidationStatus | ✔ | Overwriting validation status is not allowed. | Überschreiben der Validierung nicht möglich. | |||
| 569 | SVSuidOutOfRange | ✔ | Couldn't find svs uid {0}. | SVS-UID {0} nicht gefunden. | |||
| 570 | QTCoordNotContained | ✔ | Coordinate not contained in Quadtree. | Koordinate nicht in Quadtree enthalten. | |||
| 571 | InvalidTimeStampRegex | ✔ | Invalid timestamp: {0}. | Kein gültiger Zeitstempel: {0}. | |||
| 572 | RegrCoeffsNotCalculated | ✔ | Invalid amount of regressional coefficients. | Ungültige Menge an Regressionskoeffizienten. | |||
| 573 | NoDataPointsForCalculation | ✔ | No data given for regression calculation. | Keine Daten für Regressionsanalyse gegeben. | |||
| 574 | MeanEmptyVector | ✔ | Given vector for mean calculation is empty. | Leerer Vektor für Mittelwertberechnung. | |||
| 575 | NodeAlreadyExists | ✔ | Existing node #{0} is being overwritten. | Existierender Knoten #{0} wird überschrieben. | |||
| 576 | EdgeAlreadyExists | ✔ | Existing edge #{0} is being overwritten. | Existierende Kante #{0} wird überschrieben. | |||
| 577 | InvalidProximityInitialCoords | ✔ | Invalid proximity due to undetermined coordinates. | Ungültige Distanz auf Knoten mit unbestimmten Koordinaten. | |||
| 578 | InvalidNodeKMean | ✔ | Invalid node in clustering graph. | Ungültiger Knoten in Clustering Graph. | |||
| 579 | InvalidStartingPositionKMean | ✔ | Unset initial position for clustering. | Ungültige Startposition für Clustering. | |||
| 580 | InvalidCOMNode | ✔ | Invalid node in COM-Graph. | Ungültiger Knoten in COM-Graph. | |||
| 581 | NoWorkersLeftForClustering | ✔ | Worker assignment to cluster failed: no clusters exist. | Mitarbeiterzuweisung an Cluster gescheitert: Keine Cluster vorhanden. | |||
| 582 | InvalidPlanParts | ✔ | Plan parts are wrongly synched. Faulty id: {0}. | Planteile sind fehlerhaft synchronisiert. Fehlerhafte ID: {0}. | |||
| 583 | InvalidTravelRequest | ✔ | Invalid travel data request. | Ungültige Fahrtdatenanfrage. | |||
| 584 | InvalidAccessToTable | ✔ | Invalid table access. | Ungültiger Zugriff auf Tabelle. | |||
| 585 | InvalidFinalMVS | ✔ | Error in finalized solution. | Fehler in finaler Lösung. | |||
| 586 | AmbiguousNumberOfInputFieldsFound | ✔ | Number of encountered input fields is ambiguous (field names: {0}). | Anzahl an gefunden Eingabefeldern uneindeutig (Felder: {0}). | |||
| 587 | ValidationFailInternalError | ✔ | Data adjustment corrupted some data. | Nach Datenanpassung sind Fehler in den Daten vorhanden. | |||
| 588 | DisallowedThreadObjectReset | ✔ | Tried resetting a locked thread object storage. | Versuchtes Zurücksetzen eines gesperrten Thread-Objekt-Speichers. | |||
| 589 | ThreadObjectAlreadyRegistered | ✔ | Tried re-registering an already registered thread (id: {0}). | Ein bereits registrierter Thread (id: {0}) wurde erneut registriert. | |||
| 590 | ThreadObjectRegistrationOutOfRange | ✔ | Registering thread outside initialized range (position: {0}, size: {1}). | Thread-Registrierung außerhalb des initialisierten Bereiches (Position: {0}, Größe: {1}). | |||
| 591 | ThreadObjectNotRegistered | ✔ | Thread {0} was not registered. | Thread {0} wurde nicht registiert. | |||
| 592 | RequiredValueInOptional | ✔ | Required value in optional was not found. In field: {0}. | Benötigter Wert konnte nicht ausgelesen werden. In Feld: {0}. | |||
| 593 | InvalidRangeParameter | ✔ | Range construction with invalid parameters. | Range-Konstruktion mit ungültigen Parametern. | |||
| 594 | ConversionOutOfRange | ✔ | Conversion between types failed, value out of range. | Umwandlung zwischen Typen fehlgeschlagen, ungültiger Wert. | |||
| 595 | InvalidUIDAccess | ✔ | Invalid access to uid-object with uid {0}. | Ungültiger Zugriff auf UID-Object mit uid {0}. | |||
| 596 | MissingPlanDataWrapperSetup | ✔ | The plan data wrapper was not set up correctly. | Der Plandata-Wrapper wurde nicht korrekt initialisiert. | |||
| 597 | IONotIterable | ✔ | List-operations can only be called on lists. In field: {0}. | Listenfunktionen können nur auf Listen aufgerufen werden. In Feld: {0}. | |||
| 598 | UnresolvedWeakRestriction | ✔ | ✔ | An impossible weak restriction on task #{0} was not properly cleaned up. | Eine unerfüllbare weiche Restriktion auf Auftrag #{0} wurde nicht entfernt. | ||
| 599 | OutOfEnumRange | ✔ | Expected enum type in field: {0}. | Enumtyp in Feld erwartet: {0}. | |||
| 600 | WriteOutOfEnumRange | ✔ | An attempt is made to write a value outside its enum range. | Es wird versucht einen Wert außerhalb der Enumspanne zu schreiben. | |||
| 601 | ElementNotFound | ✔ | A required element was not found. | Ein benötigtes Element wurde nicht gefunden. | |||
| 602 | KDTreeInvalidRadius | ✔ | Invalid radius for KD-Tree search. | Ungültiger Radius für die KD-Baum-Suche. | |||
| 603 | IONotAStringArray | ✔ | Expected text in array: {0}. | Text in Array erwartet: {0}. | |||
| 900 | NoTasksInHistory | There is no task array in the history of the input data file. | Es ist kein Feld für Aufgaben in der Historie der Inputdaten angegeben. | ||||
| 901 | VehicleTypesNotUnique | A distance matrix contains multiple identical vehicle types. | Eine Distanzmatrix enthält mehrfach vorkommende Fahrzeugtypen. | ||||
| 902 | VehicleTypesUsedMultipleTimes | Multiple distance matrices set values for the same vehicle type. | Mehrere Distanzmatrizen setzen Werte für denselben Fahrzeugtyp. | ||||
| 903 | InvalidVectorSizesTravelOverride | The data storage for a distance matrix has invalid size. | Die Daten für eine Distanzmatrix haben eine ungültige Größe. | ||||
| 904 | InvalidOptimizerOptions | The meta data or parameters contain input data errors. Missing field: {0}. | In den Metadaten oder Parametern sind Fehler in den Inputdaten vorhanden. Fehlendes Feld: {0}. | ||||
| 905 | ImpossibleDate | Invalid date: {0}. | Ungültiges Datum: {0}. | ||||
| 906 | ParameterOutOfRange | Parameter out of range. | Parameter nicht im Definitionsbereich. | ||||
| 907 | InvalidDurationData | Data for exactly one of duration in minutes or duration in seconds must exist. | Es muss genau eine Angabe zu entweder Dauer in Minuten oder Dauer in Sekunden existieren. | ||||
| 908 | InvalidTimeObjectSize | Time limit for time object {0} was exceeded. | Das Zeitlimit für Feld {0} wurde überschritten. | ||||
| 909 | InputDataIssue | There is an issue with the input data. In {0}: {1}. | Es gibt ein Problem mit den Inputdaten. In {0}: {1}. | ||||
| 950 | NoCorrespondingObject | ✔ | Output element to overwrite was not found in input data: {0}. | Zu überschreibendes Output-Element wurde nicht in Input gefunden: {0}. | |||
| 951 | MissingOutputElement | ✔ | Input list contains a different number of elements than output list ({0} vs {1}). | Input-Liste ungleich Output-Liste ({0} vs {1}). | |||
| 952 | MissingOutputField | ✔ | Missing field in output: {0}. | Fehlendes Feld in Output: {0}. | |||
| 953 | FailedSolutionOutput | ✔ | Could not write output file. | Output konnte nicht geschrieben werden. | |||
| 954 | InvalidWorkerStats | ✔ | Error while getting statistics. | Fehler beim Berechnen der Statistiken. | |||
| 955 | OutputPathNotValid | ✔ | Invalid path for file output location. | Der angegebene Pfad für das Speicherziel kann nicht gelesen werden. | |||
| 1200 | TaskCapacityExceedsWorkerCapacity | The capacity requirements of the given tasks ({0}) exceed the capacities of all available workers ({1}). | Die benötigten Kapazitäten der Aufträge ({0}) übersteigen die Summe aller verfügbaren Mitarbeiterkapazitäten ({1}). | ||||
| 1201 | TaskWeightExceedsWorkerWeight | The weights of the given tasks ({0}) exceed the maximum weight limit of all available workers ({1}). | Die Gewichte der Aufträge ({0}) übersteigen die Summe aller maximalen Mitarbeitergewichtsbegrenzungen ({1}). | ||||
| 1202 | TaskVolumeExceedsWorkerVolume | The volume of the given tasks ({0}) exceed the maximum volume limit of all available workers ({1}). | Die Volumen der Aufträge ({0}) übersteigen die Summe aller maximalen Mitarbeitervolumenbegrenzungen ({1}). | ||||
| 1203 | InitWorkerDoesNotExist | ✔ | The initially assigned worker #{1} for task #{0} is missing in the list of available workers. | Der initial zugewiesene Mitarbeiter #{1} für Aufgabe #{0} befindet sich nicht in der Liste bereitgestellter Mitarbeiter. | |||
| 1204 | InitOrderButNotInitWorker | ✔ | The task #{0} has an initially assigned order but no initially or preassigned worker. | In den Eingabedaten für Aufgabe #{0} ist eine initial zugewiesene Reihenfolge aber kein initial oder vorab zugewiesener Mitarbeiter angegeben. | |||
| 1205 | NoSuitableWorkerAvailable_MP | ✔ | A suitable worker for task #{0} (?[4]{|:T|:Client: {4}, t}ime window: {1} - {2} o'clock, duration: {3} min) is missing in the list of available workers.?[5]{|:|: {5}} | In den Eingabedaten fehlt ein geeigneter Mitarbeiter für Aufgabe #{0} (?[4]{|:|:Klienten-Nr.: {4}, }Zeitfenster: {1} - {2} Uhr, Dauer: {3} min) unter den verfügbaren Mitarbeitern.?[5]{|:|: {5}} | |||
| 1206 | SelfPrecedingTask | ✔ | Task #{0} has itself assigned as preceding task. | Aufgabe #{0} ist sich selbst als vorhergehende Aufgabe angegeben. | |||
| 1207 | PrecedingTaskDoesNotExist | ✔ | Task #{1} is requested as a preceding task to task #{0} but this task is not part of this plan at all. | In den Eingabedaten ist Aufgabe #{1} als notwendiger Vorab-Auftrag zu Aufgabe #{0} angegeben, diese Aufgabe ist aber nicht Teil der Planung. | |||
| 1208 | SelfPredecessorTask | ✔ | Task #{0} has itself assigned as predecessor task. | In den Eingabedaten ist für Aufgabe #{0} die Aufgabe selbst als unmittelbar vorhergehende Aufgabe angegeben. | |||
| 1209 | WorkerInitiallyOverfilledCap | ✔ | Worker #{0} is overfilled when starting their tour (exceeding capacity). | Mitarbeiter #{0} ist zu Beginn der Tour überfüllt (Kapazitätsüberschreitung). | |||
| 1210 | WorkerInitiallyOverfilledWeight | ✔ | Worker #{0} is overfilled when starting their tour (exceeding weight limit). | Mitarbeiter #{0} ist zu Beginn der Tour überfüllt (Gewichtsüberschreitung). | |||
| 1211 | WorkerInitiallyOverfilledVol | ✔ | Worker #{0} is overfilled when starting their tour (exceeding volume limit). | Mitarbeiter #{0} ist zu Beginn der Tour überfüllt (Volumenüberschreitung). | |||
| 1212 | CapacityResetInformationInvalid | ✔ | The reset information on worker #{0} is invalid (missing reset locations). | Mitarbeiter #{0} hat ungültige Reset-Informationen (fehlende Reset-Orte). | |||
| 1213 | NegativeLengthShift | ✔ | A shift ends before it starts for worker #{0} (start: {1}, end: {2}). | In den Eingabedaten endet eine Schicht bevor sie startet für Mitarbeiter #{0} (Start: {1}, Ende: {2}). | |||
| 1214 | MissingBreakEarliest | ✔ | The input data is missing break start information for worker #{0}. | In den Eingabedaten fehlt der früheste Pausenbeginn für Mitarbeiter #{0}. | |||
| 1215 | MissingBreakLatest | ✔ | The input data is missing break end information for worker #{0}. | In den Eingabedaten fehlt das späteste Pausenende für Mitarbeiter #{0}. | |||
| 1216 | MissingBreakDuration | ✔ | The input data is missing break duration for worker #{0}. | In den Eingabedaten fehlt die Pausendauer für Mitarbeiter #{0}. | |||
| 1217 | BreakTimeSlotTooSmall | ✔ | The given break duration for Worker #{0} does not fit into the break timeslot. | Die gewünschte Pausendauer für Mitarbeiter #{0} passt nicht in den angegebenen Zeitslot. | |||
| 1218 | NegativeBreakTimeWindow | ✔ | The break time window for worker #{0} ends before it starts. | Das Pausenzeitfenster für Mitarbeiter #{0} endet bevor es startet. | |||
| 1219 | BreakOutsideWorkerShift | ✔ | The break time window for worker #{0} is not contained within shift. | Das Pausenzeitfenster für Mitarbeiter #{0} liegt nicht innerhalb der Schicht. | |||
| 1220 | OverlappingMultishifts | ✔ | Two shifts are overlapping for worker #{0}. | Zwei Schichten von Mitarbeiter #{0} überlappen sich. | |||
| 1221 | RedundantStartLocationSiteID | ✔ | Worker #{0} has both a start location and a start location id in the input data. | Mitarbeiter #{0} hat sowohl einen Startort als auch eine Startort-ID angegeben. | |||
| 1222 | RedundantEndLocationSiteID | ✔ | Worker #{0} has both an end location and an end location id in the input data. | Mitarbeiter #{0} hat sowohl einen Endort als auch eine Endort-ID angegeben. | |||
| 1223 | InvalidStartLocationID | ✔ | Worker #{0} has an invalid start location id in the input data. | Mitarbeiter #{0} hat eine ungültige Startort-ID angegeben. | |||
| 1224 | InvalidEndLocationID | ✔ | Worker #{0} has an invalid end location id in the input data. | Mitarbeiter #{0} hat eine ungültige Endort-ID angegeben. | |||
| 1225 | InvalidCapacityResetLocationID | ✔ | Worker #{0} has an invalid reset location id in the input data. | Mitarbeiter #{0} hat einen ungültigen Reset-Ort angegeben. | |||
| 1226 | RedundantLocationSiteID | ✔ | Task #{0} has both a location and a location id in the input data. | Aufgabe #{0} hat sowohl einen Ort als auch eine Ort-ID angegeben. | |||
| 1227 | InvalidLocationSiteID | ✔ | Task #{0} has an invalid location id in the input data. | Aufgabe #{0} hat eine ungültige Ort-ID angegeben. | |||
| 1228 | PrecedingCycle | There is a logical cycle in the preceding tasks (e.g. Task A precedes B, Task B precedes C and Task C precedes A). Affected tasks: {0}. | Es existiert ein logischer Kreisschluss in den vorhergehenden Aufgaben (z.B. Aufgabe A muss vor B erledigt werden, Aufgabe B vor C und Aufgabe C vor A). Betroffene Aufgaben: {0}. | ||||
| 1229 | InvalidMultishift | ✔ | Worker #{0} is fixed or order-fixed but has multi-shift. | Mitarbeiter #{0} ist fix oder Reihenfolgen-fix und hat Mehrfachschicht. | |||
| 1230 | InvalidDontVary | ✔ | Worker #{0} has a multi-shift plan but is declared fix or order fix, without providing a shiftID. | Mitarbeiter #{0} hat eine Mehrfachschicht und ist als fix oder Reihenfolgen-fix deklariert, ohne eine angegebene shiftID. | |||
| 1231 | MoreNegCapacitiesThanPos | The plan contains more negative capacities (unloading) than positive. | Es sind mehr negative Kapazitäten (Abladen) im Plan angegeben als positive. | ||||
| 1232 | MoreNegWeightThanPos | The plan contains more negative weight (unloading) than positive. | Es sind mehr negative Gewichte (Abladen) im Plan angegeben als positive. | ||||
| 1233 | MoreNegVolumeThanPos | The plan contains more negative volume (unloading) than positive. | Es sind mehr negative Volumen (Abladen) im Plan angegeben als positive. | ||||
| 1234 | NotUniquePredecessorTask | The tasks #{0} and #{1} both have a single, identical task assigned as predecessor. | Die Aufgaben #{0} und #{1} haben dieselbe Aufgabe als einzige unmittelbar vorhergehende Aufgabe. | ||||
| 1235 | InconsistentDontVaryTask | ✔ | The task #{0} has an invalid assignment to a fixed/ order-fixed worker (conflicting information). | Die Aufgabe #{0} ist ungültig einem fixen/ Reihenfolgen-fixen Mitarbeiter zugewiesen (widersprüchliche Information). | |||
| 1236 | NoInitAssignedOrderDontVary | ✔ | The task #{0} has a fixed/ order-fixed assignment but is missing information regarding assignment order. | Die Aufgabe #{0} ist fix/ Reihenfolgen-fix zugewiesen, besitzt aber keine Information zur Reihenfolge. | |||
| 1237 | DontVaryInitassignedOrderNotUnique | ✔ | The assignment order on worker #{0} (fixed/ order-fixed worker) is not unique. | Die Reihenfolge der Aufgaben auf dem fixen/ Reihenfolgen-fixen Mitarbeiter #{0} ist nicht eindeutig. | |||
| 1238 | InvalidMultishiftLength | ✔ | Worker #{0} has a shift duration of zero minutes. | Mitarbeiter #{0} hat eine Schichtlänge von null Minuten. | |||
| 1239 | ConflictingDontVaryOrder | ✔ | Task #{0} has an invalid initial order within its fixed/ order-fixed assignment. | Aufgabe #{0} hat eine ungültige Reihenfolge innerhalb der fixen/ Reihenfolgen-fixen Zuweisung. | |||
| 1240 | MissingForbiddenTimeWindowData | ✔ | Task #{0} is missing data regarding its forbidden time window. | Aufgabe #{0} fehlen Information bezüglich des verbotenen Zeitfensters. | |||
| 1241 | InvalidForbiddenTimeWindow | ✔ | The forbidden time window of task #{0} ends before it begins. | Das verbotene Zeitfenster von Aufgabe #{0} endet bevor es beginnt. | |||
| 1242 | ForbiddenTimeWindowNotIncluded | ✔ | The forbidden time window of task #{0} is not included in the task's time window. | Das verbotene Zeitfenster von Aufgabe #{0} befindet sich außerhalb des Zeitfensters der Aufgabe. | |||
| 1243 | ForbiddenTimeWindowTooLarge | ✔ | Task #{0} cannot be carried out within its time window either before or after the forbidden time window. | Aufgabe #{0} kann nicht innerhalb ihres Zeitfensters entweder vor oder nach dem verbotenen Zeitfenster durchgeführt werden. | |||
| 1244 | ConflictingDontAlterDontVary | ✔ | Worker #{0} has both fixed assignments and order-fixed assignments. | Mitarbeiter #{0} hat sowohl fixe Zuweisung als auch Reihenfolgen-fixe Zuweisung. | |||
| 1245 | InvalidLocationSiteIDForTravelOverride | Location site #{0} violates a distance matrix range. | Ort #{0} verletzt die zulässigen Grenzen einer Distanzmatrix. | ||||
| 1246 | DuplicateShiftID | ✔ | The input data contains two workers with ID #{0} and shiftID #{1}. | In den Eingabedaten existieren zwei Mitarbeiter mit ID #{0} und shiftID #{1}. | |||
| 1247 | InvalidPreassignWithDontVary | ✔ | ✔ | Task #{0} is declared fix or order fix on multi-shift plan for Worker #{1}, the task is provided without a shiftID. | Aufgabe #{0} ist fix oder Reihenfolgen-fix auf Mehrfachschicht von Mitarbeiter #{1} deklariert, der Aufgabe fehlt eine Angabe zur shiftID. | ||
| 1248 | InvalidPreassignTask | ✔ | ✔ | Task #{0} is declared fix or order fix on multi-shift plan for Worker #{1}, the task is outside of the assigned worker's shift. | Aufgabe #{0} ist fix oder Reihenfolgen-fix auf Mehrfachschicht von Mitarbeiter #{1} deklariert, die Aufgabe liegt außerhalb des Zeitfensters des Arbeiters. | ||
| 1249 | DateTimeStampExceedingLimits | A given time ({0} {1}) exceeds the given time restraints. | Eine Zeitangabe ({0} {1}) liegt außerhalb des angegebenen Zeitrahmens. | ||||
| 1250 | RedundantFinishLocationSiteID | ✔ | Task #{0} has both a finish location and a finish location id in the input data. | Aufgabe #{0} hat sowohl einen Endort als auch eine Endort-ID angegeben. | |||
| 1251 | InvalidFinishLocationSiteID | ✔ | Task #{0} has an invalid finish location id in the input data. | Aufgabe #{0} hat eine ungültige Endort-ID angegeben. | |||
| 1252 | MissingLocationSiteID | ✔ | Task #{0} has finish location data set without having location data. | Aufgabe #{0} hat Endort-Informationen ohne Ort-Informationen angegeben. | |||
| 1253 | IdenticalStartFinishLocationTask | ✔ | Task #{0} has identical location and finish location. | Aufgabe #{0} hat identischen Ort und Endort. | |||
| 1254 | MissingRotatableLocationData | ✔ | Task #{0} is allowed to be rotated but is missing either location or finish location. | Aufgabe #{0} darf rotiert werden, hat aber entweder keinen Ort oder keinen Endort. | |||
| 1255 | PredecessorCycle | There is a logical cycle in the predecessor tasks (e.g. Task A precedes B, Task B precedes C and Task C precedes A). Affected tasks: {0}. | Es existiert ein logischer Kreisschluss in den direkt-vorhergehenden Aufgaben (z.B. Aufgabe A muss vor B erledigt werden, Aufgabe B vor C und Aufgabe C vor A). Betroffene Aufgaben: {0}. | ||||
| 1256 | PreassignedOrderNoPreassignedWorker | ✔ | A task with fixed position in the solution has no preassigned worker. | Eine Aufgabe mit fester Position in der Lösung hat keinen fest zugewiesenen Mitarbeiter. | |||
| 1257 | PreassignedOrderNoInitassignedShiftID | ✔ | The preassignment of a task with fixed position in the solution is ambiguous. | Die Festzuweisung einer Aufgabe mit fester Position in der Lösung ist nicht eindeutig. | |||
| 1258 | PreassignedOrderPredecessor | ✔ | A task with fixed position in the solution is part of a static task chain (e.g. via predecessor tasks). | Eine Aufgabe mit fester Position in der Lösung ist Teil einer statischen Kette (z.B. durch Angabe von Unmittelbar-Vorab-Aufträgen). | |||
| 1259 | PreassignedOrderNotUnique | ✔ | The tasks with fixed position in the solution of a worker have an ambiguous order. | Die Aufgaben mit fester Position auf einem Mitarbeiter haben eine uneindeutige Reihenfolge. | |||
| 1260 | PredecessorTaskDoesNotExist | ✔ | Task #{1} is requested as a predecessor task to task #{0} but this task is not part of this plan at all. | In den Eingabedaten ist Aufgabe #{1} als notwendiger Unmittelbar-Vorab-Auftrag zu Aufgabe #{0} angegeben, diese Aufgabe ist aber nicht Teil der Planung. | |||
| 1261 | InvalidLocationSiteCoordinatesForTravelOverride | There are multiple location sites with the same coordinates while a user defined distance matrix exists. | Es wurden Orte mit identischen Koordinaten erkannt, während eine nutzerdefinierte Distanzmatrix gegeben ist. | ||||
| 1262 | DuplicateLocationSiteID | Location site {0} is defined more than once in the input data. | Ort {0} ist in den Eingabedaten mehrfach definiert. | ||||
| 1263 | MaxAssignableTasksNotFeasible | The total amount of free tasks ({0}) exceeds the sum of the maximum amounts of tasks assignable to all workers ({1}). | Die freie Aufgabenanzahl ({0}) übersteigt die Summe der maximal zuweisbaren Menge von Aufgaben an Mitarbeiter ({1}). | ||||
| 1264 | MinAssignableTasksNotFeasible | The total amount of free tasks ({0}) does not meet the minimum amounts of tasks assignable to all workers ({1}). | Die freie Aufgabenanzahl ({0}) erreicht nicht die Summe der minimal zuweisbaren Menge von Aufgaben an Mitarbeiter ({1}). | ||||
| 1265 | MultishiftIdenticalShiftStart | ✔ | Two or more shifts of worker #{0} start at the same time. | Zwei oder mehr Schichten von Mitarbeiter #{0} beginnen zur selben Zeit. | |||
| 1266 | MissingTwinCategory | ✔ | There's only one task with twin category {0}, namely task #{1}. | Es gibt nur eine Aufgabe mit Zwillings-Kategorie {0}, dies ist Aufgabe #{1}. | |||
| 1267 | ImpossibleStrictTimeWindow | ✔ | Task #{0}?[1]{|:|*: (client {1})} has an impossible strict time window. The earliest allowed worker starts their shift at {2}. | Aufgabe #{0}?[1]{|:|*: (Klienten-Nr. {1})} hat eine unerfüllbare Festzeit. Der frühest mögliche Mitarbeiter startet seine Schicht um {2}. | |||
| 1268 | ImpossibleStrictTimeWindowWithTravel | ✔ | It is not possible to reach and carry out task #{0}?[1]{|:|: (client {1})} which has a strict time window. The earliest possible time to reach the task is {2} - with that, the task would be finished at {3}, {4} ?[4]{|1:minute|:minutes} too late. | Es ist nicht möglich, die Festzeit-Aufgabe #{0}?[1]{|:|: (Klienten-Nr. {1})} innerhalb ihres Zeitfensters zu erreichen und auszuführen. Die frühest mögliche Zeit, den Auftrag zu erreichen, ist {2} - damit wäre er um {3}, {4} ?[4]{|1:Minute|:Minuten} zu spät erledigt. | |||
| 1500 | InvalidTaskLink | ✔ | Task #{0} contains multiple direct links to other tasks. | Die Aufgabe #{0} hat mehrere direkte Verknüpfungen mit anderen Aufgaben. | |||
| 1501 | TaskLinkCycle | Tasks with direct links form a cycle. | Aufgaben mit Direkt-Verknüpfungen bilden einen Kreisschluss. | ||||
| 1502 | InvalidLinkList | Task replaces itself. | Aufgabe ersetzt sich selber. | ||||
| 1503 | WorkerBothPlannedAndHistorical | ✔ | Worker #{0} appears in both history and planning data. | Mitarbeiter #{0} kommt sowohl in Planung als auch Historie vor. | |||
| 1504 | DuplicateWorkerHistory | Worker #{0} appears multiple times in the history data. | Mitarbeiter #{0} kommt mehrfach in der Historie vor. | ||||
| 1505 | DuplicateTaskHistory | Task #{0} appears multiple times in the history data. | Auftrag #{0} kommt mehrfach in der Historie vor. | ||||
| 1506 | HistoryAssignmentMissingWorker | Historical assignment of task #{0} is missing its assigned worker in the input data. | Einer historische Zuweisung von Auftrag #{0} fehlt der zugewiesene Mitarbeiter in den Inputdaten. | ||||
| 1507 | DuplicateHistoryDate | There are multiple entries on {1} for task #{0}. | In der Historie für Auftrag #{0} gibt es mehrere Einträge am Tag {1}. | ||||
| 1508 | FutureHistoryAssignments | There are invalid dates on historical assignments for task #{0}. | In der Historie für Auftrag #{0} gibt es Einträge mit ungültigem Datum. | ||||
| 1509 | InvalidCoordinateInternalOverride | A coordinate cannot be found in the list of location sites. | Eine Koordinate ist nicht bei den Ort-Objekten vertreten. | ||||
| 1650 | NoAssignmentFBTP | ✔ | ✔ | Task #{0} could not be assigned. | Aufgabe #{0} konnte nicht zugewiesen werden. | ||
| 1700 | InvalidWorkingTime | ✔ | Error while calculating working time. | Fehler bei der Arbeitszeitberechnung. | |||
| 1701 | InvalidGroupSize | ✔ | Error while grouping tasks. | Fehler in Gruppierung. | |||
| 1750 | LocUIDOutOfRange | ✔ | LocationSite uid request out of range: {0}. | Ort-UID Anfrage ungültig: {0}. | |||
| 1751 | LocUIDNotFound | ✔ | No location site found with uid {0}. | Ort mit UID {0} existiert nicht. | |||
| 1752 | FailedAddingStartTask | ✔ | Tasks are assigned before start depot. | Aufgaben zugewiesen vor Start-Depot. | |||
| 1753 | FailedAddingBreakTask | ✔ | Tried to assign break without any tasks. | Pause wurde ohne Aufgaben angelegt. | |||
| 1754 | IONotAPreset | ✔ | Expected preset type in field: {0}. | Voreinstellung in Feld erwartet: {0}. | |||
| 1755 | InvalidShiftExtension | ✔ | Shift extension failed. | Schichterweiterung fehlgeschlagen. | |||
| 1756 | InvalidClusterAmount | ✔ | Mismatched cluster and worker counts. | Cluster- und Mitarbeiteranzahl sind inkompatibel. | |||
| 1757 | InvalidTravelTrackerStatus | ✔ | Invalid status in TravelTracker. | Ungültiger Status des TravelTracker. | |||
| 1758 | AppliedInvalidPenalty | ✔ | Added invalid penalty: {1} ({0}). | Ungültige Penalty hinzugefügt: {1} ({0}). | |||
| 1759 | InvalidTravelDiscard | ✔ | Invalid travel calculations when discarding travel. | Ungültige Fahrtberechnung bei Vernachlässigen der Fahrt. | |||
| 1760 | MissingInternalTravelOverrideData | ✔ | Missing travel data from pre-processing for type {0}. | Fahrtdateninformation aus der Vorbearbeitung fehlen für Typ {0}. | |||
| 1761 | UncheckedPredecessorOrPrecedingCycles | ✔ | A cycle of predecessors or precedings was not detected during validation. | Ein Kreisschluss aus Direkt-Vorgängern oder Vorgängern wurde nicht in der Validierung erkannt. |
A string consisting of three parts following the pattern "YYYY-MM-DD":
While the schema does not check for validity, the optimization algorithms do. Including invalid dates (e.g. 2020-02-31) leads to a validation error.
Examples:
"2020-04-10"Unsigned 64bit number with the upper limit of a signed 64bit number
1.7e+308Unsigned 32 bit integer with the upper limit of a signed 32bit integer
2147483647Unsigned 32 bit integer (not zero) with the upper limit of a signed 32bit integer
1| dateFrom required | string (Date) ^[0-9]{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2][0-9... Planning horizon start, usually the earliest date on any of the tasks. |
| dateTo required | string (Date) ^[0-9]{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2][0-9... Planning horizon end, usually the latest date on any of the tasks. |
| resCapacity | boolean Default: false Activate/Deactivate whether capacities should be considered in the optimization. |
| resCategory | boolean Default: false Activate/Deactivate whether category types should be considered in the optimization. |
| resQualification | boolean Default: false Activate/Deactivate whether qualifications should be considered in the optimization. |
| postProcessing | boolean Default: false Enables dynamic traffic for calculating travel times (e.g. rush hour). Recommended for use cases where such dynamic travel times actually make a difference, otherwise leave it at false or carefully evaluate outcomes. |
| accuracyMode | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 1 Manages a solution refinement process. An accuracy > 0.0 can improve the solution significantly but will take longer to calculate, effects increase with higher accuracyMode. |
| outputLanguage | integer (LanguageType) [ 0 .. 1 ] Default: 0 Defines which language should be used in the output. |
| tightSchedule | boolean Default: false If set to true, any buffer between tasks (time spent neither working, driving, nor on break) is avoided if possible. Tasks with a |
| tourStartsOnShiftStart | boolean Default: false Per default, the worker tour starts not at their |
| minTravelTime | integer (Integer_u32) [ 0 .. 2147483647 ] Default: 0 A global lower limit to travel time, travel times below this will be raised. |
| travelTimeMin | integer (Integer_u32) [ 0 .. 2147483647 ] Deprecated Alias for |
| integrateDurationExtensions | boolean Deprecated |
| integrateGermanBreakRegulations | boolean Default: false Adds mandatory breaks to workers according to the German Working Time Act if set. Using manual breaks is recommended whenever possible. |
| enablePlanSplitting | boolean Deprecated Default: true |
| allowUnassignedTasks | boolean Default: false If this flag is set to false, all tasks will be assigned by the algorithm (for exceptions regarding unassignable tasks, see |
| removeInvalidTasks | boolean If this flag is set to false and the input data contains tasks that cannot be assigned to any worker (e.g. no worker has a qualification high enough for the task), an If this field is not set, it will assume the value of |
| useInitialClustering | boolean Default: false Use only clustering as a first optimization step instead of the default algorithms. Developer feature, use at your own risk! |
| dontOptimizeResets | boolean Default: false Per default, travel from and to capacity reset locations is part of the optimization. This option prevents considering these travels in the optimization. |
| minConcurrentSolutions | integer (Integer_u32_1) [ 1 .. 2147483647 ] Default: 1 Number of concurrently calculated solutions. Developer feature, use at your own risk! |
| minTaskDuration | integer (Integer_u32) [ 0 .. 2147483647 ] Default: 0 Minimum value for an input task's |
| useDensityClustering | boolean Default: false Uses a location-based density-clustering to restrict the possible solution space, potentially saving runtime and improving solution quality under certain conditions. |
| disableTaskTimeWindowRelaxation | boolean Default: false Per default, time windows of tasks are slightly relaxed before optimization depending on their |
{- "dateFrom": "2020-04-10",
- "dateTo": "2020-04-10",
- "resCapacity": false,
- "resCategory": false,
- "resQualification": false,
- "postProcessing": false,
- "accuracyMode": 1.7e+308,
- "outputLanguage": 1,
- "tightSchedule": false,
- "tourStartsOnShiftStart": false,
- "minTravelTime": 2147483647,
- "travelTimeMin": 2147483647,
- "integrateDurationExtensions": true,
- "integrateGermanBreakRegulations": false,
- "enablePlanSplitting": true,
- "allowUnassignedTasks": false,
- "removeInvalidTasks": true,
- "useInitialClustering": false,
- "dontOptimizeResets": false,
- "minConcurrentSolutions": 1,
- "minTaskDuration": 2147483647,
- "useDensityClustering": false,
- "disableTaskTimeWindowRelaxation": false
}| preset | integer [ 0 .. 4 ] Sets the parameters to a predefined preset. Additionally specified parameters will override the preset parameters. Preset descriptions: Preset 0 (Eco Oriented):
Preset 1 (Worker Oriented):
Preset 2 (Customer Oriented):
Preset 3 (Fleet Oriented):
Preset 4 (Random - Do not use this preset for customer requests, testing only! Due to the randomness of the optimization, we are no able to provide full support for issues in solutions with this preset.):
|
| fairDistribution | integer (Integer_0_9) [ 0 .. 9 ] Default: 0 Distribute the tasks fairly among the workers. |
| localityClustering | integer (Integer_0_9) [ 0 .. 9 ] Default: 0 Build local clusters for the workers to work within if possible. |
| shortPaths | integer (Integer_0_9) [ 0 .. 9 ] Default: 0 Optimize the plan towards short travel paths. |
| timeliness | integer (Integer_0_9) [ 0 .. 9 ] Default: 0 Optimize towards satisfying time windows. |
| travelTimeRelax | integer (Integer_0_9) [ 0 .. 9 ] Deprecated An integer 0-9 |
| workerPrefs | integer (Integer_0_9) [ 0 .. 9 ] Default: 0 Try to satisfy any tasks' worker preferences. |
| workerReduction | integer (Integer_0_9) [ 0 .. 9 ] Default: 0 Reduce the number of necessary workers. |
| workTimeRelax | integer (Integer_0_9) [ 0 .. 9 ] Deprecated An integer 0-9 |
| genderPref | integer (Integer_0_9) [ 0 .. 9 ] Deprecated An integer 0-9 |
| profitability | integer (Integer_0_9) [ 0 .. 9 ] Default: 0 Optimize towards high profitability. Requires costs set on workers. |
{- "preset": 4,
- "fairDistribution": 9,
- "localityClustering": 9,
- "shortPaths": 9,
- "timeliness": 9,
- "travelTimeRelax": 9,
- "workerPrefs": 9,
- "workerReduction": 9,
- "workTimeRelax": 9,
- "genderPref": 9,
- "profitability": 9
}A string of either format "hh:mm" or "-hh:mm":
Times are always interpreted relative to a date in the same object as the Time field. This allows times to exceed 24h or even become negative, as the value gets "added" to midnight of the date. For example, the following times applied to the respective date (in Date format) are equivalent:
"07:25"| lat required | number [ -90 .. 90 ] latitude |
| lng required | number [ -180 .. 180 ] longitude |
{- "lat": -90,
- "lng": -180
}Unsigned 32 bit integer with the upper limit of a signed 32bit integer
[- 2147483647
]Values are:
3| taskID required | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of this task. Task IDs need to be unique for all tasks in the input data |
| externalID | string A string to identify the task in the solution. Cannot be used for reference in the input data or the optimizer, it only serves as a helping tool for integrations. |
| clientID | integer (Integer_u32) [ 0 .. 2147483647 ] A unique id to identify a client to whom different tasks can be attributed. Only use when instructed to do so. |
| baseScheduleTime | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ A time for identifying history assignments. Only use when instructed to do so. |
| date required | string (Date) ^[0-9]{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2][0-9... The date for the day to be planned. |
| duration | integer (Integer_u32) [ 0 .. 2147483647 ] The time in minutes it takes to complete this task. Exactly one of |
| durationInSeconds | integer (Integer_u32) [ 0 .. 2147483647 ] The time in seconds it takes to complete this task. Exactly one of |
| timeEarliest required | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The earliest possible starting time of this task. This is a preference and can be violated for other preferences or restrictions. Its importance depends on the parameter |
| timeLatest required | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The latest time at which this task should be finished. This is a preference and can be violated for other preferences or restrictions. Its importance depends on the parameter |
| forbTimeEarliest | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The start of the forbidden time window. Tasks will not be carried out in the forbidden time window and will be scheduled either completely before or after integrations. This is a strict restriction and might fail validation if it is impossible to keep. |
| forbTimeLatest | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The end of the forbidden time window. Tasks will not be carried out in the forbidden time window and will be scheduled either completely before or after it. This is a strict restriction and might fail validation if it is impossible to keep. |
| timePriority | integer (Integer_0_5) [ 0 .. 5 ] Default: 1 The priority of the time window:
Tasks with high time priority are more likely to get scheduled inside their given time window. Tasks with time priority 0 completely ignore their given time window. For tasks with a |
object (GeoCoord) The coordinates where the task has to be performed. Not defining a location will allow the task to be performed anywhere. | |
| locationSiteID | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the location site that will be used as |
object (GeoCoord) The coordinates where the task will end. Moving between | |
| finishLocationSiteID | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the location site that will be used as |
| rotatable | boolean Default: false If set to true, the algorithm can swap |
| description | string Deprecated |
| prefWorkers | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] The IDs of preferred workers. This is a preference and can be violated for other preferences or restrictions. Its importance depends on the parameter |
| unpreferredWorkers | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] The IDs of workers to which an assignment is undesirable but not forbidden. This is a preference and can be violated for other preferences or restrictions. Its importance depends on the parameter |
| antiWorkers | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] Deprecated Alias for |
| forbWorkers | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] The IDs of forbidden workers. This is a strict restriction and might fail validation if it is impossible to keep. |
| capacity | number (Number_s64) [ -1.7e+308 .. 1.7e+308 ] Default: 0 The capacity requirement of this task, which the assigned worker will need to provide. This is a strict restriction and might fail validation if it is impossible to keep. |
| weight | number (Number_s64) [ -1.7e+308 .. 1.7e+308 ] Default: 0 The weight requirement of this task, which the assigned worker will need to provide. This is a strict restriction and might fail validation if it is impossible to keep. |
| volume | number (Number_s64) [ -1.7e+308 .. 1.7e+308 ] Default: 0 The volume requirement of this task, which the assigned worker will need to provide. This is a strict restriction and might fail validation if it is impossible to keep. |
| qualification | integer (Integer_u32) [ 0 .. 2147483647 ] The minimum qualification of the employee required to perform the task (e.g. years of experience). The algorithm tries to avoid high discrepancies between worker and task qualification. The importance of avoiding overqualification depends on the parameter This is a strict restriction and might fail validation if it is impossible to keep. |
| categories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] A suitable worker has to fulfill all of these categories This is a strict restriction and might fail validation if it is impossible to keep. |
| antiCategories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] Categories of other tasks which exclude joint performance with this task. This is a strict restriction and might fail validation if it is impossible to keep. |
| exchangeableCategories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] A suitable worker has to fulfill at least one of these categories. This is a strict restriction and might fail validation if it is impossible to keep. |
| twinCategories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] The assigned worker will need to perform at least two tasks with each of these categories. This is a strict restriction and might fail validation if it is impossible to keep. |
| preassignedWorker | integer (Integer_u32) [ 0 .. 2147483647 ] The This is a strict restriction and might fail validation if it is impossible to keep. |
| preassignedOrder | integer (Integer_s32) [ -2147483648 .. 2147483647 ] Tasks with a value > 0 will be assigned to the start of the tour of the This is a strict restriction and might fail validation if it is impossible to keep. |
| desiredWorker | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the worker who is desired (strong preference) to take over this task. This is a preference and can be violated for other preferences or restrictions. |
| initassignedOrder | integer (Integer_u32) [ 0 .. 2147483647 ] The order within the initially assigned worker's tour. Requires |
| initassignedWorker | integer (Integer_u32) [ 0 .. 2147483647 ] A hint for large optimization data sets, e.g. solution data from a previous optimization request. The field can also be used for |
| initassignedShiftID | integer (Integer_u32) [ 0 .. 2147483647 ] A |
| prefGender | integer (GenderType) [ 0 .. 3 ] The assigned worker needs to have this gender. This is a weak restriction and will be considered only if it is possible to keep it. It will not fail the validation if it is impossible to keep it. |
| precedingTasks | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] Tasks in this list and this task will be performed by the same worker and all listed tasks will have to be finished before this task starts. This is a strict restriction and might fail validation if it is impossible to keep. |
| predecessorTasks | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] One of these tasks has be carried out right before this task by the same worker. Putting multiple values in the array does not mean they are carried out in that order - if you want to have a predecessor-chain, you need to set the direct predecessor on each task in the chain (see examples). Do not put redundant values in here, as having more than one value in the array has negative impact on performance and solution quality. This is a strict restriction and might fail validation if it is impossible to keep. |
| revenue | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The revenue which will be achieved with this task. |
| travelTimeExtra | integer (Integer_u32) [ 0 .. 2147483647 ] Default: 0 Fixed amount of time added to this task's travel time. |
| group | integer (Integer_u32) [ 0 .. 2147483647 ] A group ID. Tasks with the same group ID get assigned to the same worker. This is a strict restriction and might fail validation if it is impossible to keep. |
| predecessorGroup | integer (Integer_u32) [ 0 .. 2147483647 ] Tasks with the same 'predecessorGroup' ID will be scheduled as a single batch of tasks without any tasks with different or no predecessorGroupIDs scheduled between them. The order of tasks within a batch can vary. This is a strict restriction and might fail validation if it is impossible to keep. |
| assignmentPriority | integer (Integer_0_5) [ 0 .. 5 ] Default: 1 A priority for assignment (see
If For tasks with an |
| ignoreHistory | boolean Default: false If true, this tasks get ignored in all history analysis |
{- "taskID": 2147483647,
- "externalID": "string",
- "clientID": 2147483647,
- "baseScheduleTime": "07:25",
- "date": "2020-04-10",
- "duration": 2147483647,
- "durationInSeconds": 2147483647,
- "timeEarliest": "07:25",
- "timeLatest": "07:25",
- "forbTimeEarliest": "07:25",
- "forbTimeLatest": "07:25",
- "timePriority": 5,
- "location": {
- "lat": -90,
- "lng": -180
}, - "locationSiteID": 2147483647,
- "finishLocation": {
- "lat": -90,
- "lng": -180
}, - "finishLocationSiteID": 2147483647,
- "rotatable": false,
- "description": "string",
- "prefWorkers": [
- 2147483647
], - "unpreferredWorkers": [
- 2147483647
], - "antiWorkers": [
- 2147483647
], - "forbWorkers": [
- 2147483647
], - "capacity": -1.7e+308,
- "weight": -1.7e+308,
- "volume": -1.7e+308,
- "qualification": 2147483647,
- "categories": [
- 2147483647
], - "antiCategories": [
- 2147483647
], - "exchangeableCategories": [
- 2147483647
], - "twinCategories": [
- 2147483647
], - "preassignedWorker": 2147483647,
- "preassignedOrder": -2147483648,
- "desiredWorker": 2147483647,
- "initassignedOrder": 2147483647,
- "initassignedWorker": 2147483647,
- "initassignedShiftID": 2147483647,
- "prefGender": 3,
- "precedingTasks": [
- 2147483647
], - "predecessorTasks": [
- 2147483647
], - "revenue": 1.7e+308,
- "travelTimeExtra": 2147483647,
- "group": 2147483647,
- "predecessorGroup": 2147483647,
- "assignmentPriority": 5,
- "ignoreHistory": false
}An integer representing the vehicle type:
4| workerID required | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the worker. Multiple workers with identical ID are allowed, those represent multiple "shifts" of the same person. |
| shiftID | integer (Integer_u32) [ 0 .. 2147483647 ] A second ID in case there are multiple workers with the same |
| externalID | string A string to identify the worker in the solution. Cannot be used for reference in the input data or the optimizer, it only serves as a helping tool for integrations. |
object (GeoCoord) The location where the worker begins their working day. Leaving it empty means the worker starts on the location of their first task, this can be used in situations where workers start their day at home and any travel time to their first client does not count as working time. | |
| startLocationSiteID | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the location site that will be used as startLocation. |
object (GeoCoord) The location where the worker finishes their working day. Leaving it empty means the worker will end their tour at their last task, this can be used in situations where travel time home does not count as working time. | |
| endLocationSiteID | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the location site that will be used as |
| shiftDate required | string (Date) ^[0-9]{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2][0-9... The date of this shift. |
| shiftStart required | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The time this shift starts. This is a preference and can be violated for other preferences or restrictions. |
| shiftEnd required | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The time this shift ends. This is a preference and can be violated for other preferences or restrictions. |
| shiftPriority | integer (Integer_0_3) [ 0 .. 3 ] Default: 1 The priority to keep the defined shift start and end times:
|
| hoursPerWeek | integer [ 1 .. 90 ] Deprecated |
| capacity | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The available capacity of the worker or their vehicle. |
| capacityInitial | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The initially occupied capacity on shift start of this worker or their vehicle. |
| capacityResetLocationSiteIDs | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] If during the tour the worker capacity gets filled up and this field is set, the worker will travel to the best available location sites in the given list and unload all their stored |
| capacityResetDuration | integer (Integer_u32) [ 0 .. 2147483647 ] Default: 0 The time in minutes needed for a capacity reset. |
| maxResets | integer (Integer_u32) [ 0 .. 2147483647 ] The maximum number of allowed capacity resets on this worker. This is a strict restriction and might fail validation if it is impossible to keep. |
| volume | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The available volume of the worker or their vehicle. |
| volumeInitial | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The initially loaded volume on shift start of this worker or their vehicle. |
| weight | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The weight the worker or their vehicle is able to handle. |
| weightInitial | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The initially loaded weight on shift start of this worker or their vehicle. |
| finalCapacityResetThreshold | number (Number_u64) [ 0 .. 1.7e+308 ] If at the end of the worker's tour the current capacity exceeds this threshold, a final reset is automatically added. |
| finalVolumeResetThreshold | number (Number_u64) [ 0 .. 1.7e+308 ] If at the end of the worker's tour the current weight exceeds this threshold, a final reset is automatically added. |
| finalWeightResetThreshold | number (Number_u64) [ 0 .. 1.7e+308 ] If at the end of the worker's tour the current volume exceeds this threshold, a final reset is automatically added. |
| qualification | integer (Integer_u32) [ 0 .. 2147483647 ] The qualification of the worker. Workers can perform any task with equal or lower qualification requirement, the optimizer tried to not "overqualify" workers for tasks by keeping worker and task qualification close. |
| categories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] The worker can only carry out tasks if he has each category the task requires. |
| desiredCategory | integer (Integer_u32) [ 0 .. 2147483647 ] The worker has a strong preference towards tasks with this category. The categories listed here is automatically considered valid as if they're listed in This is a preference and can be violated for other preferences or restrictions. |
| prefCategories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] Tasks with any of these categories will be preferred by this worker. Categories listed here are automatically considered valid as if they're listed in This is a preference and can be violated for other preferences or restrictions. Its importance depends on the parameter |
| breakLocationSiteID | integer (Integer_u32) [ 0 .. 2147483647 ] Deprecated Unsigned 32 bit integer with the upper limit of a signed 32bit integer |
| breakStartEarliest | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The earliest start of the break a worker has to do. This is a preference and can be violated for other preferences or restrictions. |
| breakEndLatest | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The latest end of the break a worker has to do. This is a preference and can be violated for other preferences or restrictions. |
| breakDuration | integer (Integer_u32) [ 0 .. 2147483647 ] The duration in minutes of the break. |
| noAutomaticBreak | boolean Default: false If |
| vehicleType | integer (MixedPlannerVehicleType) [ 0 .. 4 ] Default: 0 The vehicle type used by this worker. |
| gender | integer (GenderType) [ 0 .. 3 ] The gender type of the worker. |
| costsPerKM | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The costs per km for this worker (e.g. fuel costs). |
| costsPerMinute | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The costs per minute working time (carrying out tasks) for this worker (e.g. monthly salary converted to minutes). |
| costsInitial | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 Costs that occur if there is at least one task assigned to the worker. |
| maxDesiredTotalDistance | number (Number_u64) [ 0 .. 1.7e+308 ] The maximum total travel distance per shift that a worker wants to perform. This is a preference and can be violated for other preferences or restrictions. |
| maxDesiredSingleDistance | number (Number_u64) [ 0 .. 1.7e+308 ] The maximum travel distance for each individual travel that a worker wants to perform. This is a preference and can be violated for other preferences or restrictions. |
| dontVary | boolean Default: false A worker with This is a strict restriction and might fail validation if it is impossible to keep. |
| dontAlter | boolean Default: false Workers with This is a strict restriction and might fail validation if it is impossible to keep. |
| expectedWorkingMinutes | integer (Integer_u32) [ 0 .. 2147483647 ] The target value for working time ( This is a preference and can be violated for other preferences or restrictions. |
| maxAssignableTasks | integer (Integer_u32) [ 0 .. 2147483647 ] The maximum number of tasks that can be assigned to this worker. This is a strict restriction and might fail validation if it is impossible to keep. |
| minAssignableTasks | integer (Integer_u32) [ 0 .. 2147483647 ] Default: 0 The minimum number of tasks that must be assigned to this worker. This is a strict restriction and might fail validation if it is impossible to keep. |
{- "workerID": 2147483647,
- "shiftID": 2147483647,
- "externalID": "string",
- "startLocation": {
- "lat": -90,
- "lng": -180
}, - "startLocationSiteID": 2147483647,
- "endLocation": {
- "lat": -90,
- "lng": -180
}, - "endLocationSiteID": 2147483647,
- "shiftDate": "2020-04-10",
- "shiftStart": "07:25",
- "shiftEnd": "07:25",
- "shiftPriority": 3,
- "hoursPerWeek": 1,
- "capacity": 1.7e+308,
- "capacityInitial": 1.7e+308,
- "capacityResetLocationSiteIDs": [
- 2147483647
], - "capacityResetDuration": 2147483647,
- "maxResets": 2147483647,
- "volume": 1.7e+308,
- "volumeInitial": 1.7e+308,
- "weight": 1.7e+308,
- "weightInitial": 1.7e+308,
- "finalCapacityResetThreshold": 1.7e+308,
- "finalVolumeResetThreshold": 1.7e+308,
- "finalWeightResetThreshold": 1.7e+308,
- "qualification": 2147483647,
- "categories": [
- 2147483647
], - "desiredCategory": 2147483647,
- "prefCategories": [
- 2147483647
], - "breakLocationSiteID": 2147483647,
- "breakStartEarliest": "07:25",
- "breakEndLatest": "07:25",
- "breakDuration": 2147483647,
- "noAutomaticBreak": false,
- "vehicleType": 4,
- "gender": 3,
- "costsPerKM": 1.7e+308,
- "costsPerMinute": 1.7e+308,
- "costsInitial": 1.7e+308,
- "maxDesiredTotalDistance": 1.7e+308,
- "maxDesiredSingleDistance": 1.7e+308,
- "dontVary": false,
- "dontAlter": false,
- "expectedWorkingMinutes": 2147483647,
- "maxAssignableTasks": 2147483647,
- "minAssignableTasks": 2147483647
}| locationSiteID required | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the location site. IDs need to be unique among all |
required | object (GeoCoord) Coordinates of the location site. |
| externalID | string A string to identify the location site in the solution. Cannot be used for reference in the input data or the optimizer, it only serves as a helping tool for integrations. |
{- "locationSiteID": 2147483647,
- "location": {
- "lat": -90,
- "lng": -180
}, - "externalID": "string"
}| date required | string (Date) ^[0-9]{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2][0-9... Date this assignment was on. |
| baseScheduleTime | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ A baseline orientation when the corresponding task was supposed to be scheduled. |
| baseWorker | integer (Integer_u32) [ 0 .. 2147483647 ] A baseline orientation for the worker to be assigned. |
| timeScheduled | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The time the corresponding task was scheduled (meaning the time the final plan had this task scheduled on, not to be confused with |
| assignedWorker | integer (Integer_u32) [ 0 .. 2147483647 ] The worker the corresponding task was assigned to in the final planned version. |
| timeVariance | integer (Integer_u32) [ 0 .. 2147483647 ] The time variance the corresponding task was scheduled with at the time. |
| timePriority | integer (Integer_0_5) [ 0 .. 5 ] The |
| timeScheduledAutomatically | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The time the corresponding task was scheduled on by the optimizer at the time. |
| assignedWorkerAutomatically | integer (Integer_u32) [ 0 .. 2147483647 ] The worker the corresponding task was assigned to by the optimizer at the time. |
| actualStartTime | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The time the task was actually started, for instance as determined by mobile tracking. |
| actualWorker | integer (Integer_u32) [ 0 .. 2147483647 ] The worker the task was actually carried out by, for instance as determined by mobile tracking. |
| prevTask | integer (Integer_u32) [ 0 .. 2147483647 ] The task that was assigned directly before this task at the time. (If that task is present in either history or planning tasks). |
| prevTaskAutomatically | integer (Integer_u32) [ 0 .. 2147483647 ] Unsigned 32 bit integer with the upper limit of a signed 32bit integer |
| prevActualTask | integer (Integer_u32) [ 0 .. 2147483647 ] The task that was carried out directly before this task at the time. (If that task is present in either history or planning tasks) |
{- "date": "2020-04-10",
- "baseScheduleTime": "07:25",
- "baseWorker": 2147483647,
- "timeScheduled": "07:25",
- "assignedWorker": 2147483647,
- "timeVariance": 2147483647,
- "timePriority": 5,
- "timeScheduledAutomatically": "07:25",
- "assignedWorkerAutomatically": 2147483647,
- "actualStartTime": "07:25",
- "actualWorker": 2147483647,
- "prevTask": 2147483647,
- "prevTaskAutomatically": 2147483647,
- "prevActualTask": 2147483647
}| taskID required | integer (Integer_u32) [ 0 .. 2147483647 ] Task ID for referencing task in planning tasks. |
| clientID required | integer (Integer_u32) [ 0 .. 2147483647 ] Client ID for referencing tasks in planning tasks. |
required | Array of objects (MixedPlannerHistoryAssignment) All considered historical assignments of this task. |
{- "taskID": 2147483647,
- "clientID": 2147483647,
- "scheduling": [
- {
- "date": "2020-04-10",
- "baseScheduleTime": "07:25",
- "baseWorker": 2147483647,
- "timeScheduled": "07:25",
- "assignedWorker": 2147483647,
- "timeVariance": 2147483647,
- "timePriority": 5,
- "timeScheduledAutomatically": "07:25",
- "assignedWorkerAutomatically": 2147483647,
- "actualStartTime": "07:25",
- "actualWorker": 2147483647,
- "prevTask": 2147483647,
- "prevTaskAutomatically": 2147483647,
- "prevActualTask": 2147483647
}
]
}| workerID required | integer (Integer_u32) [ 0 .. 2147483647 ] ID of a worker that is not present in the input data. Has to be unique among all history workers. |
| gender | integer (GenderType) [ 0 .. 3 ] Same as in input worker. |
| qualification | integer (Integer_u32) [ 0 .. 2147483647 ] Same as in input worker. |
| categories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] Same as in input worker. |
{- "workerID": 2147483647,
- "gender": 3,
- "qualification": 2147483647,
- "categories": [
- 2147483647
]
}required | Array of objects (MixedPlannerHistoryTask) All tasks that are connected to tasks in the optimization either by |
required | Array of objects (MixedPlannerHistoryWorker) Workers that are not included in the optimization but are referenced in history-tasks, e.g. as |
{- "tasks": [
- {
- "taskID": 2147483647,
- "clientID": 2147483647,
- "scheduling": [
- {
- "date": "2020-04-10",
- "baseScheduleTime": "07:25",
- "baseWorker": 2147483647,
- "timeScheduled": "07:25",
- "assignedWorker": 2147483647,
- "timeVariance": 2147483647,
- "timePriority": 5,
- "timeScheduledAutomatically": "07:25",
- "assignedWorkerAutomatically": 2147483647,
- "actualStartTime": "07:25",
- "actualWorker": 2147483647,
- "prevTask": 2147483647,
- "prevTaskAutomatically": 2147483647,
- "prevActualTask": 2147483647
}
]
}
], - "workers": [
- {
- "workerID": 2147483647,
- "gender": 3,
- "qualification": 2147483647,
- "categories": [
- 2147483647
]
}
]
}Array of objects (MixedPlannerTravelOverrideDense) Dense travel override to set distance matrix for the entire data set. | |
Array of objects (MixedPlannerTravelOverrideSparse) Sparse travel override to set individual distance matrix override for a few travels. |
{- "dense": [
- {
- "vehicleTypes": [
- 4
], - "travelTime": [
- 1.7e+308
], - "travelDistance": [
- 1.7e+308
]
}
], - "sparse": [
- {
- "sourceIDs": [
- 2147483647
], - "targetIDs": [
- 2147483647
], - "vehicleTypes": [
- 4
], - "travelTime": [
- 1.7e+308
], - "travelDistance": [
- 1.7e+308
]
}
]
}| type required | string Enum: "polygon" "polyline" Obstacle type, can be either a 1D-polyline or a 2D-polygon. Value: "polyline" |
required | Array of objects >= 2 items Coordinates of the polygon/polyline. |
| description | string Textual information to this obstacle. |
| factor | number (Number_u64) [ 0 .. 1.7e+308 ] Travel through this obstacle creates travel time increase by this factor. |
| restriction | number (Fraction) [ 0 .. 1 ] Travel through this obstacle is forbidden, regardless of which value is set. Should be used with 1.0. |
| travelTimeIncrease | number (Number_u64) [ 0 .. 1.7e+308 ] Flat travel time increase in minutes when traveling through obstacle. |
{- "type": "polygon",
- "points": [
- {
- "lat": -90,
- "lng": -180
}
], - "description": "string",
- "factor": 1.7e+308,
- "restriction": 1,
- "travelTimeIncrease": 1.7e+308
}object (Client) Contains information about the client which sends this request. | |
required | object (MixedPlannerMeta) Meta information about what to consider in the optimization. |
required | object (MixedPlannerOptimizationParameters) Parameters for the optimizer. |
required | Array of objects (MixedPlannerInputTask) Array of tasks to be planned by the optimizer. |
required | Array of objects (MixedPlannerInputWorker) Array of available workers. |
Array of objects (MixedPlannerLocationSite) Array of available location sites. | |
object (MixedPlannerHistory) History data the optimizer can learn from to apply to the current request. History analysis is done differently for each of our customers, if you know what issues you want to address/ what results you want to see from such methods, please contact us so we can set up a solution. | |
object (MixedPlannerTravelOverride) Manual distance matrix data | |
Array of objects or objects (MixedPlannerObstacle) Deprecated Obstacles for the travel calculation. | |
| recovery | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] This is a field only used for debugging by internal developers. Content in this field may change depending on the application, input-data and version. The output values can be used as input values. |
{- "client": {
- "clientID": "logisticscenter_a"
}, - "meta": {
- "dateFrom": "2020-04-10",
- "dateTo": "2020-04-10",
- "resCapacity": false,
- "resCategory": false,
- "resQualification": false,
- "postProcessing": false,
- "accuracyMode": 1.7e+308,
- "outputLanguage": 1,
- "tightSchedule": false,
- "tourStartsOnShiftStart": false,
- "minTravelTime": 2147483647,
- "travelTimeMin": 2147483647,
- "integrateDurationExtensions": true,
- "integrateGermanBreakRegulations": false,
- "enablePlanSplitting": true,
- "allowUnassignedTasks": false,
- "removeInvalidTasks": true,
- "useInitialClustering": false,
- "dontOptimizeResets": false,
- "minConcurrentSolutions": 1,
- "minTaskDuration": 2147483647,
- "useDensityClustering": false,
- "disableTaskTimeWindowRelaxation": false
}, - "parameters": {
- "preset": 4,
- "fairDistribution": 9,
- "localityClustering": 9,
- "shortPaths": 9,
- "timeliness": 9,
- "travelTimeRelax": 9,
- "workerPrefs": 9,
- "workerReduction": 9,
- "workTimeRelax": 9,
- "genderPref": 9,
- "profitability": 9
}, - "tasks": [
- {
- "taskID": 2147483647,
- "externalID": "string",
- "clientID": 2147483647,
- "baseScheduleTime": "07:25",
- "date": "2020-04-10",
- "duration": 2147483647,
- "durationInSeconds": 2147483647,
- "timeEarliest": "07:25",
- "timeLatest": "07:25",
- "forbTimeEarliest": "07:25",
- "forbTimeLatest": "07:25",
- "timePriority": 5,
- "location": {
- "lat": -90,
- "lng": -180
}, - "locationSiteID": 2147483647,
- "finishLocation": {
- "lat": -90,
- "lng": -180
}, - "finishLocationSiteID": 2147483647,
- "rotatable": false,
- "description": "string",
- "prefWorkers": [
- 2147483647
], - "unpreferredWorkers": [
- 2147483647
], - "antiWorkers": [
- 2147483647
], - "forbWorkers": [
- 2147483647
], - "capacity": -1.7e+308,
- "weight": -1.7e+308,
- "volume": -1.7e+308,
- "qualification": 2147483647,
- "categories": [
- 2147483647
], - "antiCategories": [
- 2147483647
], - "exchangeableCategories": [
- 2147483647
], - "twinCategories": [
- 2147483647
], - "preassignedWorker": 2147483647,
- "preassignedOrder": -2147483648,
- "desiredWorker": 2147483647,
- "initassignedOrder": 2147483647,
- "initassignedWorker": 2147483647,
- "initassignedShiftID": 2147483647,
- "prefGender": 3,
- "precedingTasks": [
- 2147483647
], - "predecessorTasks": [
- 2147483647
], - "revenue": 1.7e+308,
- "travelTimeExtra": 2147483647,
- "group": 2147483647,
- "predecessorGroup": 2147483647,
- "assignmentPriority": 5,
- "ignoreHistory": false
}
], - "workers": [
- {
- "workerID": 2147483647,
- "shiftID": 2147483647,
- "externalID": "string",
- "startLocation": {
- "lat": -90,
- "lng": -180
}, - "startLocationSiteID": 2147483647,
- "endLocation": {
- "lat": -90,
- "lng": -180
}, - "endLocationSiteID": 2147483647,
- "shiftDate": "2020-04-10",
- "shiftStart": "07:25",
- "shiftEnd": "07:25",
- "shiftPriority": 3,
- "hoursPerWeek": 1,
- "capacity": 1.7e+308,
- "capacityInitial": 1.7e+308,
- "capacityResetLocationSiteIDs": [
- 2147483647
], - "capacityResetDuration": 2147483647,
- "maxResets": 2147483647,
- "volume": 1.7e+308,
- "volumeInitial": 1.7e+308,
- "weight": 1.7e+308,
- "weightInitial": 1.7e+308,
- "finalCapacityResetThreshold": 1.7e+308,
- "finalVolumeResetThreshold": 1.7e+308,
- "finalWeightResetThreshold": 1.7e+308,
- "qualification": 2147483647,
- "categories": [
- 2147483647
], - "desiredCategory": 2147483647,
- "prefCategories": [
- 2147483647
], - "breakLocationSiteID": 2147483647,
- "breakStartEarliest": "07:25",
- "breakEndLatest": "07:25",
- "breakDuration": 2147483647,
- "noAutomaticBreak": false,
- "vehicleType": 4,
- "gender": 3,
- "costsPerKM": 1.7e+308,
- "costsPerMinute": 1.7e+308,
- "costsInitial": 1.7e+308,
- "maxDesiredTotalDistance": 1.7e+308,
- "maxDesiredSingleDistance": 1.7e+308,
- "dontVary": false,
- "dontAlter": false,
- "expectedWorkingMinutes": 2147483647,
- "maxAssignableTasks": 2147483647,
- "minAssignableTasks": 2147483647
}
], - "locationSites": [
- {
- "locationSiteID": 2147483647,
- "location": {
- "lat": -90,
- "lng": -180
}, - "externalID": "string"
}
], - "history": {
- "tasks": [
- {
- "taskID": 2147483647,
- "clientID": 2147483647,
- "scheduling": [
- {
- "date": "2020-04-10",
- "baseScheduleTime": "07:25",
- "baseWorker": 2147483647,
- "timeScheduled": "07:25",
- "assignedWorker": 2147483647,
- "timeVariance": 2147483647,
- "timePriority": 5,
- "timeScheduledAutomatically": "07:25",
- "assignedWorkerAutomatically": 2147483647,
- "actualStartTime": "07:25",
- "actualWorker": 2147483647,
- "prevTask": 2147483647,
- "prevTaskAutomatically": 2147483647,
- "prevActualTask": 2147483647
}
]
}
], - "workers": [
- {
- "workerID": 2147483647,
- "gender": 3,
- "qualification": 2147483647,
- "categories": [
- 2147483647
]
}
]
}, - "travelOverride": {
- "dense": [
- {
- "vehicleTypes": [
- 4
], - "travelTime": [
- 1.7e+308
], - "travelDistance": [
- 1.7e+308
]
}
], - "sparse": [
- {
- "sourceIDs": [
- 2147483647
], - "targetIDs": [
- 2147483647
], - "vehicleTypes": [
- 4
], - "travelTime": [
- 1.7e+308
], - "travelDistance": [
- 1.7e+308
]
}
]
}, - "obstacles": [
- {
- "description": "string",
- "factor": 1.7e+308,
- "restriction": 1,
- "travelTimeIncrease": 1.7e+308,
- "type": "polyline",
- "points": [
- {
- "lat": -90,
- "lng": -180
}
]
}
], - "recovery": [
- 2147483647
]
}| keyword required | string Validation keyword. |
| instancePath required | string JSON Pointer to the location in the data instance (e.g., |
| schemaPath required | string JSON Pointer to the location of the failing keyword in the schema |
| params required | object Params property is the object with the additional information about error. It can be used to generate error messages (e.g., using ajv-i18n package). |
| propertyName | string Set for errors in |
| message | string The error message. |
| schema | any The value of the failing keyword in the schema. |
| parentSchema | object The schema containing the keyword. |
| data | any The data validated by the keyword. |
{- "keyword": "string",
- "instancePath": "string",
- "schemaPath": "string",
- "params": { },
- "propertyName": "string",
- "message": "string",
- "schema": null,
- "parentSchema": { },
- "data": null
}| taskID required | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of this task. Task IDs need to be unique for all tasks in the input data |
| externalID | string A string to identify the task in the solution. Cannot be used for reference in the input data or the optimizer, it only serves as a helping tool for integrations. |
| clientID | integer (Integer_u32) [ 0 .. 2147483647 ] A unique id to identify a client to whom different tasks can be attributed. Only use when instructed to do so. |
| baseScheduleTime | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ A time for identifying history assignments. Only use when instructed to do so. |
| date required | string (Date) ^[0-9]{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2][0-9... The date for the day to be planned. |
| duration | integer (Integer_u32) [ 0 .. 2147483647 ] The time in minutes it takes to complete this task. Exactly one of |
| durationInSeconds | integer (Integer_u32) [ 0 .. 2147483647 ] The time in seconds it takes to complete this task. Exactly one of |
| timeEarliest required | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The earliest possible starting time of this task. This is a preference and can be violated for other preferences or restrictions. Its importance depends on the parameter |
| timeLatest required | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The latest time at which this task should be finished. This is a preference and can be violated for other preferences or restrictions. Its importance depends on the parameter |
| forbTimeEarliest | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The start of the forbidden time window. Tasks will not be carried out in the forbidden time window and will be scheduled either completely before or after integrations. This is a strict restriction and might fail validation if it is impossible to keep. |
| forbTimeLatest | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The end of the forbidden time window. Tasks will not be carried out in the forbidden time window and will be scheduled either completely before or after it. This is a strict restriction and might fail validation if it is impossible to keep. |
| timePriority | integer (Integer_0_5) [ 0 .. 5 ] Default: 1 The priority of the time window:
Tasks with high time priority are more likely to get scheduled inside their given time window. Tasks with time priority 0 completely ignore their given time window. For tasks with a |
object (GeoCoord) The coordinates where the task has to be performed. Not defining a location will allow the task to be performed anywhere. | |
| locationSiteID | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the location site that will be used as |
object (GeoCoord) The coordinates where the task will end. Moving between | |
| finishLocationSiteID | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the location site that will be used as |
| rotatable | boolean Default: false If set to true, the algorithm can swap |
| description | string Deprecated |
| prefWorkers | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] The IDs of preferred workers. This is a preference and can be violated for other preferences or restrictions. Its importance depends on the parameter |
| unpreferredWorkers | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] The IDs of workers to which an assignment is undesirable but not forbidden. This is a preference and can be violated for other preferences or restrictions. Its importance depends on the parameter |
| antiWorkers | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] Deprecated Alias for |
| forbWorkers | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] The IDs of forbidden workers. This is a strict restriction and might fail validation if it is impossible to keep. |
| capacity | number (Number_s64) [ -1.7e+308 .. 1.7e+308 ] Default: 0 The capacity requirement of this task, which the assigned worker will need to provide. This is a strict restriction and might fail validation if it is impossible to keep. |
| weight | number (Number_s64) [ -1.7e+308 .. 1.7e+308 ] Default: 0 The weight requirement of this task, which the assigned worker will need to provide. This is a strict restriction and might fail validation if it is impossible to keep. |
| volume | number (Number_s64) [ -1.7e+308 .. 1.7e+308 ] Default: 0 The volume requirement of this task, which the assigned worker will need to provide. This is a strict restriction and might fail validation if it is impossible to keep. |
| qualification | integer (Integer_u32) [ 0 .. 2147483647 ] The minimum qualification of the employee required to perform the task (e.g. years of experience). The algorithm tries to avoid high discrepancies between worker and task qualification. The importance of avoiding overqualification depends on the parameter This is a strict restriction and might fail validation if it is impossible to keep. |
| categories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] A suitable worker has to fulfill all of these categories This is a strict restriction and might fail validation if it is impossible to keep. |
| antiCategories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] Categories of other tasks which exclude joint performance with this task. This is a strict restriction and might fail validation if it is impossible to keep. |
| exchangeableCategories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] A suitable worker has to fulfill at least one of these categories. This is a strict restriction and might fail validation if it is impossible to keep. |
| twinCategories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] The assigned worker will need to perform at least two tasks with each of these categories. This is a strict restriction and might fail validation if it is impossible to keep. |
| preassignedWorker | integer (Integer_u32) [ 0 .. 2147483647 ] The This is a strict restriction and might fail validation if it is impossible to keep. |
| preassignedOrder | integer (Integer_s32) [ -2147483648 .. 2147483647 ] Tasks with a value > 0 will be assigned to the start of the tour of the This is a strict restriction and might fail validation if it is impossible to keep. |
| desiredWorker | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the worker who is desired (strong preference) to take over this task. This is a preference and can be violated for other preferences or restrictions. |
| initassignedOrder | integer (Integer_u32) [ 0 .. 2147483647 ] The order within the initially assigned worker's tour. Requires |
| initassignedWorker | integer (Integer_u32) [ 0 .. 2147483647 ] A hint for large optimization data sets, e.g. solution data from a previous optimization request. The field can also be used for |
| initassignedShiftID | integer (Integer_u32) [ 0 .. 2147483647 ] A |
| prefGender | integer (GenderType) [ 0 .. 3 ] The assigned worker needs to have this gender. This is a weak restriction and will be considered only if it is possible to keep it. It will not fail the validation if it is impossible to keep it. |
| precedingTasks | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] Tasks in this list and this task will be performed by the same worker and all listed tasks will have to be finished before this task starts. This is a strict restriction and might fail validation if it is impossible to keep. |
| predecessorTasks | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] One of these tasks has be carried out right before this task by the same worker. Putting multiple values in the array does not mean they are carried out in that order - if you want to have a predecessor-chain, you need to set the direct predecessor on each task in the chain (see examples). Do not put redundant values in here, as having more than one value in the array has negative impact on performance and solution quality. This is a strict restriction and might fail validation if it is impossible to keep. |
| revenue | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The revenue which will be achieved with this task. |
| travelTimeExtra | integer (Integer_u32) [ 0 .. 2147483647 ] Default: 0 Fixed amount of time added to this task's travel time. |
| group | integer (Integer_u32) [ 0 .. 2147483647 ] A group ID. Tasks with the same group ID get assigned to the same worker. This is a strict restriction and might fail validation if it is impossible to keep. |
| predecessorGroup | integer (Integer_u32) [ 0 .. 2147483647 ] Tasks with the same 'predecessorGroup' ID will be scheduled as a single batch of tasks without any tasks with different or no predecessorGroupIDs scheduled between them. The order of tasks within a batch can vary. This is a strict restriction and might fail validation if it is impossible to keep. |
| assignmentPriority | integer (Integer_0_5) [ 0 .. 5 ] Default: 1 A priority for assignment (see
If For tasks with an |
| ignoreHistory | boolean Default: false If true, this tasks get ignored in all history analysis |
| timeScheduled required | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The planned time to start this task by the assigned worker. |
| timeWindowViolation | integer (Integer_s32) [ -2147483648 .. 2147483647 ] If the task is scheduled outside its time window, this value displays the discrepancy in minutes - the value is < 0 if the task was scheduled earlier than its time window and > 0 otherwise. If the task is scheduled within its time window, the field does not get added. Examples:
|
| travelTime required | integer (Integer_u32) [ 0 .. 2147483647 ] The time in minutes needed to travel from the previous task to this task. If a reset is performed ( |
| travelDistance required | number (Number_u64) [ 0 .. 1.7e+308 ] The distance in km needed to travel from the previous task to this task. The same rules as |
| assignedWorker required | integer (Integer_u32) [ 0 .. 2147483647 ] The ID ( |
| assignedShiftID | integer (Integer_u32) [ 0 .. 2147483647 ] The |
| finalassignedOrder required | integer (Integer_u32_1) [ 1 .. 2147483647 ] The order number within the assigned tour.. |
| info required | string Additional information about the task. |
| allowedWorkers | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] A list of all workers ( |
| profit required | number (Number_s64) [ -1.7e+308 .. 1.7e+308 ] The profit the task creates (revenue - costs). |
| performResetBeforeAtID | integer (Integer_u32) [ 0 .. 2147483647 ] The id of the location site which will be visited to reset |
| travelTimeToReset | integer (Integer_u32) [ 0 .. 2147483647 ] If a capacity reset is performed right before this task ( |
| travelDistanceToReset | number (Number_u64) [ 0 .. 1.7e+308 ] If a capacity reset is performed right before this task ( |
| rotated | boolean If true, the rotation described in |
| gapBeforeTask | integer (Integer_u32) [ 0 .. 2147483647 ] The "empty" time between this task and the one before it (time not covered by the task, travel, capacity reset or break). If this task is the first on the assigned worker and |
{- "taskID": 2147483647,
- "externalID": "string",
- "clientID": 2147483647,
- "baseScheduleTime": "07:25",
- "date": "2020-04-10",
- "duration": 2147483647,
- "durationInSeconds": 2147483647,
- "timeEarliest": "07:25",
- "timeLatest": "07:25",
- "forbTimeEarliest": "07:25",
- "forbTimeLatest": "07:25",
- "timePriority": 5,
- "location": {
- "lat": -90,
- "lng": -180
}, - "locationSiteID": 2147483647,
- "finishLocation": {
- "lat": -90,
- "lng": -180
}, - "finishLocationSiteID": 2147483647,
- "rotatable": false,
- "description": "string",
- "prefWorkers": [
- 2147483647
], - "unpreferredWorkers": [
- 2147483647
], - "antiWorkers": [
- 2147483647
], - "forbWorkers": [
- 2147483647
], - "capacity": -1.7e+308,
- "weight": -1.7e+308,
- "volume": -1.7e+308,
- "qualification": 2147483647,
- "categories": [
- 2147483647
], - "antiCategories": [
- 2147483647
], - "exchangeableCategories": [
- 2147483647
], - "twinCategories": [
- 2147483647
], - "preassignedWorker": 2147483647,
- "preassignedOrder": -2147483648,
- "desiredWorker": 2147483647,
- "initassignedOrder": 2147483647,
- "initassignedWorker": 2147483647,
- "initassignedShiftID": 2147483647,
- "prefGender": 3,
- "precedingTasks": [
- 2147483647
], - "predecessorTasks": [
- 2147483647
], - "revenue": 1.7e+308,
- "travelTimeExtra": 2147483647,
- "group": 2147483647,
- "predecessorGroup": 2147483647,
- "assignmentPriority": 5,
- "ignoreHistory": false,
- "timeScheduled": "07:25",
- "timeWindowViolation": -2147483648,
- "travelTime": 2147483647,
- "travelDistance": 1.7e+308,
- "assignedWorker": 2147483647,
- "assignedShiftID": 2147483647,
- "finalassignedOrder": 1,
- "info": "string",
- "allowedWorkers": [
- 2147483647
], - "profit": -1.7e+308,
- "performResetBeforeAtID": 2147483647,
- "travelTimeToReset": 2147483647,
- "travelDistanceToReset": 1.7e+308,
- "rotated": true,
- "gapBeforeTask": 2147483647
}| taskID required | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of this task. Task IDs need to be unique for all tasks in the input data |
| externalID | string A string to identify the task in the solution. Cannot be used for reference in the input data or the optimizer, it only serves as a helping tool for integrations. |
| clientID | integer (Integer_u32) [ 0 .. 2147483647 ] A unique id to identify a client to whom different tasks can be attributed. Only use when instructed to do so. |
| baseScheduleTime | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ A time for identifying history assignments. Only use when instructed to do so. |
| date required | string (Date) ^[0-9]{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2][0-9... The date for the day to be planned. |
| duration | integer (Integer_u32) [ 0 .. 2147483647 ] The time in minutes it takes to complete this task. Exactly one of |
| durationInSeconds | integer (Integer_u32) [ 0 .. 2147483647 ] The time in seconds it takes to complete this task. Exactly one of |
| timeEarliest required | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The earliest possible starting time of this task. This is a preference and can be violated for other preferences or restrictions. Its importance depends on the parameter |
| timeLatest required | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The latest time at which this task should be finished. This is a preference and can be violated for other preferences or restrictions. Its importance depends on the parameter |
| forbTimeEarliest | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The start of the forbidden time window. Tasks will not be carried out in the forbidden time window and will be scheduled either completely before or after integrations. This is a strict restriction and might fail validation if it is impossible to keep. |
| forbTimeLatest | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The end of the forbidden time window. Tasks will not be carried out in the forbidden time window and will be scheduled either completely before or after it. This is a strict restriction and might fail validation if it is impossible to keep. |
| timePriority | integer (Integer_0_5) [ 0 .. 5 ] Default: 1 The priority of the time window:
Tasks with high time priority are more likely to get scheduled inside their given time window. Tasks with time priority 0 completely ignore their given time window. For tasks with a |
object (GeoCoord) The coordinates where the task has to be performed. Not defining a location will allow the task to be performed anywhere. | |
| locationSiteID | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the location site that will be used as |
object (GeoCoord) The coordinates where the task will end. Moving between | |
| finishLocationSiteID | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the location site that will be used as |
| rotatable | boolean Default: false If set to true, the algorithm can swap |
| description | string Deprecated |
| prefWorkers | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] The IDs of preferred workers. This is a preference and can be violated for other preferences or restrictions. Its importance depends on the parameter |
| unpreferredWorkers | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] The IDs of workers to which an assignment is undesirable but not forbidden. This is a preference and can be violated for other preferences or restrictions. Its importance depends on the parameter |
| antiWorkers | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] Deprecated Alias for |
| forbWorkers | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] The IDs of forbidden workers. This is a strict restriction and might fail validation if it is impossible to keep. |
| capacity | number (Number_s64) [ -1.7e+308 .. 1.7e+308 ] Default: 0 The capacity requirement of this task, which the assigned worker will need to provide. This is a strict restriction and might fail validation if it is impossible to keep. |
| weight | number (Number_s64) [ -1.7e+308 .. 1.7e+308 ] Default: 0 The weight requirement of this task, which the assigned worker will need to provide. This is a strict restriction and might fail validation if it is impossible to keep. |
| volume | number (Number_s64) [ -1.7e+308 .. 1.7e+308 ] Default: 0 The volume requirement of this task, which the assigned worker will need to provide. This is a strict restriction and might fail validation if it is impossible to keep. |
| qualification | integer (Integer_u32) [ 0 .. 2147483647 ] The minimum qualification of the employee required to perform the task (e.g. years of experience). The algorithm tries to avoid high discrepancies between worker and task qualification. The importance of avoiding overqualification depends on the parameter This is a strict restriction and might fail validation if it is impossible to keep. |
| categories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] A suitable worker has to fulfill all of these categories This is a strict restriction and might fail validation if it is impossible to keep. |
| antiCategories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] Categories of other tasks which exclude joint performance with this task. This is a strict restriction and might fail validation if it is impossible to keep. |
| exchangeableCategories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] A suitable worker has to fulfill at least one of these categories. This is a strict restriction and might fail validation if it is impossible to keep. |
| twinCategories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] The assigned worker will need to perform at least two tasks with each of these categories. This is a strict restriction and might fail validation if it is impossible to keep. |
| preassignedWorker | integer (Integer_u32) [ 0 .. 2147483647 ] The This is a strict restriction and might fail validation if it is impossible to keep. |
| preassignedOrder | integer (Integer_s32) [ -2147483648 .. 2147483647 ] Tasks with a value > 0 will be assigned to the start of the tour of the This is a strict restriction and might fail validation if it is impossible to keep. |
| desiredWorker | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the worker who is desired (strong preference) to take over this task. This is a preference and can be violated for other preferences or restrictions. |
| initassignedOrder | integer (Integer_u32) [ 0 .. 2147483647 ] The order within the initially assigned worker's tour. Requires |
| initassignedWorker | integer (Integer_u32) [ 0 .. 2147483647 ] A hint for large optimization data sets, e.g. solution data from a previous optimization request. The field can also be used for |
| initassignedShiftID | integer (Integer_u32) [ 0 .. 2147483647 ] A |
| prefGender | integer (GenderType) [ 0 .. 3 ] The assigned worker needs to have this gender. This is a weak restriction and will be considered only if it is possible to keep it. It will not fail the validation if it is impossible to keep it. |
| precedingTasks | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] Tasks in this list and this task will be performed by the same worker and all listed tasks will have to be finished before this task starts. This is a strict restriction and might fail validation if it is impossible to keep. |
| predecessorTasks | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] One of these tasks has be carried out right before this task by the same worker. Putting multiple values in the array does not mean they are carried out in that order - if you want to have a predecessor-chain, you need to set the direct predecessor on each task in the chain (see examples). Do not put redundant values in here, as having more than one value in the array has negative impact on performance and solution quality. This is a strict restriction and might fail validation if it is impossible to keep. |
| revenue | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The revenue which will be achieved with this task. |
| travelTimeExtra | integer (Integer_u32) [ 0 .. 2147483647 ] Default: 0 Fixed amount of time added to this task's travel time. |
| group | integer (Integer_u32) [ 0 .. 2147483647 ] A group ID. Tasks with the same group ID get assigned to the same worker. This is a strict restriction and might fail validation if it is impossible to keep. |
| predecessorGroup | integer (Integer_u32) [ 0 .. 2147483647 ] Tasks with the same 'predecessorGroup' ID will be scheduled as a single batch of tasks without any tasks with different or no predecessorGroupIDs scheduled between them. The order of tasks within a batch can vary. This is a strict restriction and might fail validation if it is impossible to keep. |
| assignmentPriority | integer (Integer_0_5) [ 0 .. 5 ] Default: 1 A priority for assignment (see
If For tasks with an |
| ignoreHistory | boolean Default: false If true, this tasks get ignored in all history analysis |
| info required | string May contain some information about the task, will give a reason as to why this task is unassigned. |
| allowedWorkers | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] A list of all workers ( |
{- "taskID": 2147483647,
- "externalID": "string",
- "clientID": 2147483647,
- "baseScheduleTime": "07:25",
- "date": "2020-04-10",
- "duration": 2147483647,
- "durationInSeconds": 2147483647,
- "timeEarliest": "07:25",
- "timeLatest": "07:25",
- "forbTimeEarliest": "07:25",
- "forbTimeLatest": "07:25",
- "timePriority": 5,
- "location": {
- "lat": -90,
- "lng": -180
}, - "locationSiteID": 2147483647,
- "finishLocation": {
- "lat": -90,
- "lng": -180
}, - "finishLocationSiteID": 2147483647,
- "rotatable": false,
- "description": "string",
- "prefWorkers": [
- 2147483647
], - "unpreferredWorkers": [
- 2147483647
], - "antiWorkers": [
- 2147483647
], - "forbWorkers": [
- 2147483647
], - "capacity": -1.7e+308,
- "weight": -1.7e+308,
- "volume": -1.7e+308,
- "qualification": 2147483647,
- "categories": [
- 2147483647
], - "antiCategories": [
- 2147483647
], - "exchangeableCategories": [
- 2147483647
], - "twinCategories": [
- 2147483647
], - "preassignedWorker": 2147483647,
- "preassignedOrder": -2147483648,
- "desiredWorker": 2147483647,
- "initassignedOrder": 2147483647,
- "initassignedWorker": 2147483647,
- "initassignedShiftID": 2147483647,
- "prefGender": 3,
- "precedingTasks": [
- 2147483647
], - "predecessorTasks": [
- 2147483647
], - "revenue": 1.7e+308,
- "travelTimeExtra": 2147483647,
- "group": 2147483647,
- "predecessorGroup": 2147483647,
- "assignmentPriority": 5,
- "ignoreHistory": false,
- "info": "string",
- "allowedWorkers": [
- 2147483647
]
}| workerID required | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the worker. Multiple workers with identical ID are allowed, those represent multiple "shifts" of the same person. |
| shiftID | integer (Integer_u32) [ 0 .. 2147483647 ] A second ID in case there are multiple workers with the same |
| externalID | string A string to identify the worker in the solution. Cannot be used for reference in the input data or the optimizer, it only serves as a helping tool for integrations. |
object (GeoCoord) The location where the worker begins their working day. Leaving it empty means the worker starts on the location of their first task, this can be used in situations where workers start their day at home and any travel time to their first client does not count as working time. | |
| startLocationSiteID | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the location site that will be used as startLocation. |
object (GeoCoord) The location where the worker finishes their working day. Leaving it empty means the worker will end their tour at their last task, this can be used in situations where travel time home does not count as working time. | |
| endLocationSiteID | integer (Integer_u32) [ 0 .. 2147483647 ] The ID of the location site that will be used as |
| shiftDate required | string (Date) ^[0-9]{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2][0-9... The date of this shift. |
| shiftStart required | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The time this shift starts. This is a preference and can be violated for other preferences or restrictions. |
| shiftEnd required | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The time this shift ends. This is a preference and can be violated for other preferences or restrictions. |
| shiftPriority | integer (Integer_0_3) [ 0 .. 3 ] Default: 1 The priority to keep the defined shift start and end times:
|
| hoursPerWeek | integer [ 1 .. 90 ] Deprecated |
| capacity | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The available capacity of the worker or their vehicle. |
| capacityInitial | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The initially occupied capacity on shift start of this worker or their vehicle. |
| capacityResetLocationSiteIDs | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] If during the tour the worker capacity gets filled up and this field is set, the worker will travel to the best available location sites in the given list and unload all their stored |
| capacityResetDuration | integer (Integer_u32) [ 0 .. 2147483647 ] Default: 0 The time in minutes needed for a capacity reset. |
| maxResets | integer (Integer_u32) [ 0 .. 2147483647 ] The maximum number of allowed capacity resets on this worker. This is a strict restriction and might fail validation if it is impossible to keep. |
| volume | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The available volume of the worker or their vehicle. |
| volumeInitial | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The initially loaded volume on shift start of this worker or their vehicle. |
| weight | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The weight the worker or their vehicle is able to handle. |
| weightInitial | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The initially loaded weight on shift start of this worker or their vehicle. |
| finalCapacityResetThreshold | number (Number_u64) [ 0 .. 1.7e+308 ] If at the end of the worker's tour the current capacity exceeds this threshold, a final reset is automatically added. |
| finalVolumeResetThreshold | number (Number_u64) [ 0 .. 1.7e+308 ] If at the end of the worker's tour the current weight exceeds this threshold, a final reset is automatically added. |
| finalWeightResetThreshold | number (Number_u64) [ 0 .. 1.7e+308 ] If at the end of the worker's tour the current volume exceeds this threshold, a final reset is automatically added. |
| qualification | integer (Integer_u32) [ 0 .. 2147483647 ] The qualification of the worker. Workers can perform any task with equal or lower qualification requirement, the optimizer tried to not "overqualify" workers for tasks by keeping worker and task qualification close. |
| categories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] The worker can only carry out tasks if he has each category the task requires. |
| desiredCategory | integer (Integer_u32) [ 0 .. 2147483647 ] The worker has a strong preference towards tasks with this category. The categories listed here is automatically considered valid as if they're listed in This is a preference and can be violated for other preferences or restrictions. |
| prefCategories | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] Tasks with any of these categories will be preferred by this worker. Categories listed here are automatically considered valid as if they're listed in This is a preference and can be violated for other preferences or restrictions. Its importance depends on the parameter |
| breakLocationSiteID | integer (Integer_u32) [ 0 .. 2147483647 ] Deprecated Unsigned 32 bit integer with the upper limit of a signed 32bit integer |
| breakStartEarliest | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The earliest start of the break a worker has to do. This is a preference and can be violated for other preferences or restrictions. |
| breakEndLatest | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The latest end of the break a worker has to do. This is a preference and can be violated for other preferences or restrictions. |
| breakDuration | integer (Integer_u32) [ 0 .. 2147483647 ] The duration in minutes of the break. |
| noAutomaticBreak | boolean Default: false If |
| vehicleType | integer (MixedPlannerVehicleType) [ 0 .. 4 ] Default: 0 The vehicle type used by this worker. |
| gender | integer (GenderType) [ 0 .. 3 ] The gender type of the worker. |
| costsPerKM | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The costs per km for this worker (e.g. fuel costs). |
| costsPerMinute | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 The costs per minute working time (carrying out tasks) for this worker (e.g. monthly salary converted to minutes). |
| costsInitial | number (Number_u64) [ 0 .. 1.7e+308 ] Default: 0 Costs that occur if there is at least one task assigned to the worker. |
| maxDesiredTotalDistance | number (Number_u64) [ 0 .. 1.7e+308 ] The maximum total travel distance per shift that a worker wants to perform. This is a preference and can be violated for other preferences or restrictions. |
| maxDesiredSingleDistance | number (Number_u64) [ 0 .. 1.7e+308 ] The maximum travel distance for each individual travel that a worker wants to perform. This is a preference and can be violated for other preferences or restrictions. |
| dontVary | boolean Default: false A worker with This is a strict restriction and might fail validation if it is impossible to keep. |
| dontAlter | boolean Default: false Workers with This is a strict restriction and might fail validation if it is impossible to keep. |
| expectedWorkingMinutes | integer (Integer_u32) [ 0 .. 2147483647 ] The target value for working time ( This is a preference and can be violated for other preferences or restrictions. |
| maxAssignableTasks | integer (Integer_u32) [ 0 .. 2147483647 ] The maximum number of tasks that can be assigned to this worker. This is a strict restriction and might fail validation if it is impossible to keep. |
| minAssignableTasks | integer (Integer_u32) [ 0 .. 2147483647 ] Default: 0 The minimum number of tasks that must be assigned to this worker. This is a strict restriction and might fail validation if it is impossible to keep. |
| breakScheduled | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The time a break was scheduled on this worker. |
| info | string Some textual information about the worker, e.g., for delays. |
| travelHomeTime required | integer (Integer_u32) [ 0 .. 2147483647 ] Time in minutes needed to get to the end location from the last task. The same rules as for the output-task's |
| travelHomeDistance required | number (Number_u64) [ 0 .. 1.7e+308 ] Distance in km between the last task and the end location. The same rules as for the output-task's |
| performFinalResetAtID | integer (Integer_u32) [ 0 .. 2147483647 ] The id of the location site at which a capacity reset was performed after the last task and before returning to a depot. |
| travelTimeToFinalReset | integer (Integer_u32) [ 0 .. 2147483647 ] If the worker performs a reset right before the end of their tour ( |
| travelDistanceToFinalReset | number (Number_u64) [ 0 .. 1.7e+308 ] If the worker performs a reset right before the end of their tour ( |
| tourStart | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The actual time this worker starts their tour. The value is set only if the worker has a task assigned. If the worker has a task assigned and |
| tourEnd | string (Time) ^[-]?([0-9]{1,9}):([0-5][0-9]|[0-9])$ The actual time this worker ends their tour, including travel to its |
| totalTravelTime required | integer (Integer_u32) [ 0 .. 2147483647 ] The sum of all travel times of this worker. Does not include reset durations, neither from reset between tasks nor the final reset, but travel to and from reset locations is included. |
| totalTravelDistance required | number (Number_u64) [ 0 .. 1.7e+308 ] The sum of all travel distances of this worker. |
| totalTaskTime required | integer (Integer_u32) [ 0 .. 2147483647 ] The sum of all task durations on this worker. Does not include breaks or capacity reset duration. |
{- "workerID": 2147483647,
- "shiftID": 2147483647,
- "externalID": "string",
- "startLocation": {
- "lat": -90,
- "lng": -180
}, - "startLocationSiteID": 2147483647,
- "endLocation": {
- "lat": -90,
- "lng": -180
}, - "endLocationSiteID": 2147483647,
- "shiftDate": "2020-04-10",
- "shiftStart": "07:25",
- "shiftEnd": "07:25",
- "shiftPriority": 3,
- "hoursPerWeek": 1,
- "capacity": 1.7e+308,
- "capacityInitial": 1.7e+308,
- "capacityResetLocationSiteIDs": [
- 2147483647
], - "capacityResetDuration": 2147483647,
- "maxResets": 2147483647,
- "volume": 1.7e+308,
- "volumeInitial": 1.7e+308,
- "weight": 1.7e+308,
- "weightInitial": 1.7e+308,
- "finalCapacityResetThreshold": 1.7e+308,
- "finalVolumeResetThreshold": 1.7e+308,
- "finalWeightResetThreshold": 1.7e+308,
- "qualification": 2147483647,
- "categories": [
- 2147483647
], - "desiredCategory": 2147483647,
- "prefCategories": [
- 2147483647
], - "breakLocationSiteID": 2147483647,
- "breakStartEarliest": "07:25",
- "breakEndLatest": "07:25",
- "breakDuration": 2147483647,
- "noAutomaticBreak": false,
- "vehicleType": 4,
- "gender": 3,
- "costsPerKM": 1.7e+308,
- "costsPerMinute": 1.7e+308,
- "costsInitial": 1.7e+308,
- "maxDesiredTotalDistance": 1.7e+308,
- "maxDesiredSingleDistance": 1.7e+308,
- "dontVary": false,
- "dontAlter": false,
- "expectedWorkingMinutes": 2147483647,
- "maxAssignableTasks": 2147483647,
- "minAssignableTasks": 2147483647,
- "breakScheduled": "07:25",
- "info": "string",
- "travelHomeTime": 2147483647,
- "travelHomeDistance": 1.7e+308,
- "performFinalResetAtID": 2147483647,
- "travelTimeToFinalReset": 2147483647,
- "travelDistanceToFinalReset": 1.7e+308,
- "tourStart": "07:25",
- "tourEnd": "07:25",
- "totalTravelTime": 2147483647,
- "totalTravelDistance": 1.7e+308,
- "totalTaskTime": 2147483647
}required | Array of objects The applied optimizer configuration as fractions. |
required | Array of objects The workload per worker for each hour of the day as fractions. The first value is fraction of working time between 00:00 - 01:00 (1.0: worked 60 minutes, 0.0: worked 0 minutes), the second value is the working time between 01:00 - 02:00, etc. |
required | Array of objects The total time in minutes each worker spends traveling. Capacity reset durations (but not the drive to and from a reset location) are excluded. |
required | Array of objects The distance in km each worker drives for this plan. |
required | Array of objects The time in minutes each worker spends on working on tasks (sum of durations). |
required | Array of objects Proportion of working time to shift time. |
required | Array of objects Proportion of travel time to shift time. Capacity reset durations (but not the drive to and from a reset location) are excluded. |
required | Array of objects The time in minutes spent on different actions summed up. Capacity resets are counted towards travel time. |
required | Array of objects Sum of fulfilled (type matched) as well as unfulfilled (type unmatched) worker preferences. |
required | Array of objects Sum of fulfilled (type 'matched') as well as unfulfilled (type 'unmatched') gender preferences. |
required | Array of objects Sum of tasks assigned to desired workers (type 'matched') and sum of tasks assigned to another worker (type 'unmatched'). |
Array of objects A number-based summary of total distance for each MixedPlannerVehicleType. | |
required | Array of objects Contains all restriction types and gives a percentage (0.0-1.0) evaluation of each restriction's final influence on the algorithmic optimization and plan result. |
| unassignedTaskIDs | Array of integers (Integer_u32) [ items [ 0 .. 2147483647 ] ] taskIDs of all tasks that were not assigned during optimization. |
| unassignableTaskIDs | Array of integers (Integer_u32) [ items [ 0 .. 2147483647 ] ] taskIDs of all tasks that were not assigned during optimization because there is no assignment possible. |
| timeWindowViolationTaskIDs | Array of integers (Integer_u32) [ items [ 0 .. 2147483647 ] ] taskIDs of all tasks are not assigned within their given time window. |
| routeLength required | number (Number_u64) [ 0 .. 1.7e+308 ] The driven distance in km summed up over all workers. |
| onTime required | integer (Integer_0_100) [ 0 .. 100 ] Percentage for tasks scheduled perfectly inside the desired time windows (0 to 100). |
| planProfitability required | number (Number_s64) [ -1.7e+308 .. 1.7e+308 ] The profitability this plan archives based on worker costs and task revenues. |
object Data analyzed from history. |
{- "configuration": [
- {
- "label": "Kurze Wege",
- "value": 1
}
], - "workload": [
- {
- "workerID": 2147483647,
- "values": [
- 1
]
}
], - "travelTimes": [
- {
- "workerID": 2147483647,
- "time": 2147483647
}
], - "travelDistances": [
- {
- "workerID": 2147483647,
- "distance": 1.7e+308
}
], - "taskTimes": [
- {
- "workerID": 2147483647,
- "time": 2147483647
}
], - "taskBusyness": [
- {
- "workerID": 2147483647,
- "busyness": 1.7e+308
}
], - "travelBusyness": [
- {
- "workerID": 2147483647,
- "busyness": 1.7e+308
}
], - "workTimeDistribution": [
- {
- "type": "Arbeitszeit",
- "time": 2147483647
}
], - "preferredWorkers": [
- {
- "type": "matched",
- "count": 2147483647
}
], - "preferredGender": [
- {
- "type": "matched",
- "count": 2147483647
}
], - "desiredWorkers": [
- {
- "type": "matched",
- "count": 2147483647
}
], - "vehicleTypeDistances": [
- {
- "vehicleType": 4,
- "distance": 1.7e+308
}
], - "impact": [
- {
- "label": "string",
- "value": 1
}
], - "unassignedTaskIDs": [
- 2147483647
], - "unassignableTaskIDs": [
- 2147483647
], - "timeWindowViolationTaskIDs": [
- 2147483647
], - "routeLength": 1.7e+308,
- "onTime": 100,
- "planProfitability": -1.7e+308,
- "history": {
- "tasks": [
- {
- "taskID": 2147483647,
- "preassignedWorker": 2147483647,
- "timeEarliest": "07:25",
- "timeLatest": "07:25",
- "timeEarliestLimit": "07:25",
- "timeLatestLimit": "07:25",
- "preferenceWeights": [
- {
- "workerID": 2147483647,
- "value": 1.7e+308
}
], - "genderWeights": [
- {
- "gender": 3,
- "value": 1.7e+308
}
], - "prefGender": 3,
- "group": 2147483647,
- "desiredGroup": 2147483647,
- "timePriority": 5,
- "initassignedWorker": 2147483647,
- "weakPredecessorTasks": [
- 2147483647
], - "taskGaps": [
- {
- "taskID": 2147483647,
- "minGap": -2147483648,
- "maxGap": -2147483648
}
]
}
], - "workers": [
- {
- "workerID": 2147483647,
- "hasShortHistory": true,
- "hasNoHistory": true
}
]
}
}| text required | string Some general information about the plan. Contains warnings for some strict restrictions. |
| balance required | string Statistics about the workload of the workers and the distribution of tasks among them. |
| dist required | string Distance in km driven by the workers. |
| pref required | string Information about preferred workers matches. |
| relax required | string Information about delayed tasks grouped by delay amount 5-30 minutes, 30+ minutes and information about exceeded worker shifts. |
| time required | string Total and average travel time. |
| feasible required | boolean Set to false if any restrictions are violated in the solution. |
| constructionSites | any Deprecated |
{- "text": "string",
- "balance": "string",
- "dist": "string",
- "pref": "string",
- "relax": "string",
- "time": "string",
- "feasible": true,
- "constructionSites": null
}A version consisting of the date of release [0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]+, which can have a patch suffix p[0-9]+.
"1970-01-01_0p0"See https://semver.org/ for a full description of semantic versioning. The regex here is a subset of allowed semantic versions.
"v1.2.3"| version | any Deprecated Value: "v1.0.0" |
| optVersion | string (FieldPlacerVersion) ^[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]+(p[0-9]+)?$... The version of the algorithm used for calculating the result. |
| rev | string >= 7 characters An internal identifier for the algorithm version. |
| schema required | string (SemanticVersion) ^(v)?(0|([1-9][0-9]{0,4}))(\.(0|([1-9][0-9]{0... The version of the schema used for validating both request data sent via the PUT request as well as response data gotten from the GET request. |
{- "version": "v1.0.0",
- "optVersion": "1970-01-01_0p0",
- "rev": "strings",
- "schema": "v1.2.3"
}| requestID | string The identifier that allows finding input/output data, logs and more. This ID will be asked for in most non-trivial support cases so it should be stored when receiving the data. |
object (Client) Contains information about the client, which sent this request. | |
required | object (MixedPlannerMeta) Meta-information about what to consider in the optimization. |
required | object (MixedPlannerOptimizationParameters) Parameters for the optimization. |
required | Array of MixedPlannerOutputTaskAssigned (object) or MixedPlannerOutputTaskUnassigned (object) (MixedPlannerOutputTask) Array of assigned and unassigned tasks. |
required | Array of objects (MixedPlannerOutputWorker) Array of available workers. |
Array of objects (MixedPlannerLocationSite) Array of available location sites. | |
Array of objects or objects (MixedPlannerObstacle) Deprecated | |
required | object (MixedPlannerStatistics) Some statistics about the plan. |
required | object (MixedPlannerInfo) Some textual information about the plan. |
Array of objects (Anomalies) non-empty List of all anomalies found in solution. | |
required | object (BackendVersion) Used validation/ calculation version. |
| recovery | Array of integers (IDReferences) [ items [ 0 .. 2147483647 ] ] This is a field only used for debugging by internal developers. Content in this field may change depending on the application, input-data and version. The output values can be used as input values. |
{- "requestID": "string",
- "client": {
- "clientID": "logisticscenter_a"
}, - "meta": {
- "dateFrom": "2020-04-10",
- "dateTo": "2020-04-10",
- "resCapacity": false,
- "resCategory": false,
- "resQualification": false,
- "postProcessing": false,
- "accuracyMode": 1.7e+308,
- "outputLanguage": 1,
- "tightSchedule": false,
- "tourStartsOnShiftStart": false,
- "minTravelTime": 2147483647,
- "travelTimeMin": 2147483647,
- "integrateDurationExtensions": true,
- "integrateGermanBreakRegulations": false,
- "enablePlanSplitting": true,
- "allowUnassignedTasks": false,
- "removeInvalidTasks": true,
- "useInitialClustering": false,
- "dontOptimizeResets": false,
- "minConcurrentSolutions": 1,
- "minTaskDuration": 2147483647,
- "useDensityClustering": false,
- "disableTaskTimeWindowRelaxation": false
}, - "parameters": {
- "preset": 4,
- "fairDistribution": 9,
- "localityClustering": 9,
- "shortPaths": 9,
- "timeliness": 9,
- "travelTimeRelax": 9,
- "workerPrefs": 9,
- "workerReduction": 9,
- "workTimeRelax": 9,
- "genderPref": 9,
- "profitability": 9
}, - "tasks": [
- {
- "taskID": 2147483647,
- "externalID": "string",
- "clientID": 2147483647,
- "baseScheduleTime": "07:25",
- "date": "2020-04-10",
- "duration": 2147483647,
- "durationInSeconds": 2147483647,
- "timeEarliest": "07:25",
- "timeLatest": "07:25",
- "forbTimeEarliest": "07:25",
- "forbTimeLatest": "07:25",
- "timePriority": 5,
- "location": {
- "lat": -90,
- "lng": -180
}, - "locationSiteID": 2147483647,
- "finishLocation": {
- "lat": -90,
- "lng": -180
}, - "finishLocationSiteID": 2147483647,
- "rotatable": false,
- "description": "string",
- "prefWorkers": [
- 2147483647
], - "unpreferredWorkers": [
- 2147483647
], - "antiWorkers": [
- 2147483647
], - "forbWorkers": [
- 2147483647
], - "capacity": -1.7e+308,
- "weight": -1.7e+308,
- "volume": -1.7e+308,
- "qualification": 2147483647,
- "categories": [
- 2147483647
], - "antiCategories": [
- 2147483647
], - "exchangeableCategories": [
- 2147483647
], - "twinCategories": [
- 2147483647
], - "preassignedWorker": 2147483647,
- "preassignedOrder": -2147483648,
- "desiredWorker": 2147483647,
- "initassignedOrder": 2147483647,
- "initassignedWorker": 2147483647,
- "initassignedShiftID": 2147483647,
- "prefGender": 3,
- "precedingTasks": [
- 2147483647
], - "predecessorTasks": [
- 2147483647
], - "revenue": 1.7e+308,
- "travelTimeExtra": 2147483647,
- "group": 2147483647,
- "predecessorGroup": 2147483647,
- "assignmentPriority": 5,
- "ignoreHistory": false,
- "timeScheduled": "07:25",
- "timeWindowViolation": -2147483648,
- "travelTime": 2147483647,
- "travelDistance": 1.7e+308,
- "assignedWorker": 2147483647,
- "assignedShiftID": 2147483647,
- "finalassignedOrder": 1,
- "info": "string",
- "allowedWorkers": [
- 2147483647
], - "profit": -1.7e+308,
- "performResetBeforeAtID": 2147483647,
- "travelTimeToReset": 2147483647,
- "travelDistanceToReset": 1.7e+308,
- "rotated": true,
- "gapBeforeTask": 2147483647
}
], - "workers": [
- {
- "workerID": 2147483647,
- "shiftID": 2147483647,
- "externalID": "string",
- "startLocation": {
- "lat": -90,
- "lng": -180
}, - "startLocationSiteID": 2147483647,
- "endLocation": {
- "lat": -90,
- "lng": -180
}, - "endLocationSiteID": 2147483647,
- "shiftDate": "2020-04-10",
- "shiftStart": "07:25",
- "shiftEnd": "07:25",
- "shiftPriority": 3,
- "hoursPerWeek": 1,
- "capacity": 1.7e+308,
- "capacityInitial": 1.7e+308,
- "capacityResetLocationSiteIDs": [
- 2147483647
], - "capacityResetDuration": 2147483647,
- "maxResets": 2147483647,
- "volume": 1.7e+308,
- "volumeInitial": 1.7e+308,
- "weight": 1.7e+308,
- "weightInitial": 1.7e+308,
- "finalCapacityResetThreshold": 1.7e+308,
- "finalVolumeResetThreshold": 1.7e+308,
- "finalWeightResetThreshold": 1.7e+308,
- "qualification": 2147483647,
- "categories": [
- 2147483647
], - "desiredCategory": 2147483647,
- "prefCategories": [
- 2147483647
], - "breakLocationSiteID": 2147483647,
- "breakStartEarliest": "07:25",
- "breakEndLatest": "07:25",
- "breakDuration": 2147483647,
- "noAutomaticBreak": false,
- "vehicleType": 4,
- "gender": 3,
- "costsPerKM": 1.7e+308,
- "costsPerMinute": 1.7e+308,
- "costsInitial": 1.7e+308,
- "maxDesiredTotalDistance": 1.7e+308,
- "maxDesiredSingleDistance": 1.7e+308,
- "dontVary": false,
- "dontAlter": false,
- "expectedWorkingMinutes": 2147483647,
- "maxAssignableTasks": 2147483647,
- "minAssignableTasks": 2147483647,
- "breakScheduled": "07:25",
- "info": "string",
- "travelHomeTime": 2147483647,
- "travelHomeDistance": 1.7e+308,
- "performFinalResetAtID": 2147483647,
- "travelTimeToFinalReset": 2147483647,
- "travelDistanceToFinalReset": 1.7e+308,
- "tourStart": "07:25",
- "tourEnd": "07:25",
- "totalTravelTime": 2147483647,
- "totalTravelDistance": 1.7e+308,
- "totalTaskTime": 2147483647
}
], - "locationSites": [
- {
- "locationSiteID": 2147483647,
- "location": {
- "lat": -90,
- "lng": -180
}, - "externalID": "string"
}
], - "obstacles": [
- {
- "description": "string",
- "factor": 1.7e+308,
- "restriction": 1,
- "travelTimeIncrease": 1.7e+308,
- "type": "polyline",
- "points": [
- {
- "lat": -90,
- "lng": -180
}
]
}
], - "statistics": {
- "configuration": [
- {
- "label": "Kurze Wege",
- "value": 1
}
], - "workload": [
- {
- "workerID": 2147483647,
- "values": [
- 1
]
}
], - "travelTimes": [
- {
- "workerID": 2147483647,
- "time": 2147483647
}
], - "travelDistances": [
- {
- "workerID": 2147483647,
- "distance": 1.7e+308
}
], - "taskTimes": [
- {
- "workerID": 2147483647,
- "time": 2147483647
}
], - "taskBusyness": [
- {
- "workerID": 2147483647,
- "busyness": 1.7e+308
}
], - "travelBusyness": [
- {
- "workerID": 2147483647,
- "busyness": 1.7e+308
}
], - "workTimeDistribution": [
- {
- "type": "Arbeitszeit",
- "time": 2147483647
}
], - "preferredWorkers": [
- {
- "type": "matched",
- "count": 2147483647
}
], - "preferredGender": [
- {
- "type": "matched",
- "count": 2147483647
}
], - "desiredWorkers": [
- {
- "type": "matched",
- "count": 2147483647
}
], - "vehicleTypeDistances": [
- {
- "vehicleType": 4,
- "distance": 1.7e+308
}
], - "impact": [
- {
- "label": "string",
- "value": 1
}
], - "unassignedTaskIDs": [
- 2147483647
], - "unassignableTaskIDs": [
- 2147483647
], - "timeWindowViolationTaskIDs": [
- 2147483647
], - "routeLength": 1.7e+308,
- "onTime": 100,
- "planProfitability": -1.7e+308,
- "history": {
- "tasks": [
- {
- "taskID": 2147483647,
- "preassignedWorker": 2147483647,
- "timeEarliest": "07:25",
- "timeLatest": "07:25",
- "timeEarliestLimit": "07:25",
- "timeLatestLimit": "07:25",
- "preferenceWeights": [
- {
- "workerID": 2147483647,
- "value": 1.7e+308
}
], - "genderWeights": [
- {
- "gender": 3,
- "value": 1.7e+308
}
], - "prefGender": 3,
- "group": 2147483647,
- "desiredGroup": 2147483647,
- "timePriority": 5,
- "initassignedWorker": 2147483647,
- "weakPredecessorTasks": [
- 2147483647
], - "taskGaps": [
- {
- "taskID": 2147483647,
- "minGap": -2147483648,
- "maxGap": -2147483648
}
]
}
], - "workers": [
- {
- "workerID": 2147483647,
- "hasShortHistory": true,
- "hasNoHistory": true
}
]
}
}, - "info": {
- "text": "string",
- "balance": "string",
- "dist": "string",
- "pref": "string",
- "relax": "string",
- "time": "string",
- "feasible": true,
- "constructionSites": null
}, - "anomalies": [
- {
- "anomalyKey": "string",
- "severity": "high",
- "text": "string",
- "taskID": 2147483647,
- "workerID": 2147483647
}
], - "backendVersion": {
- "version": "v1.0.0",
- "optVersion": "1970-01-01_0p0",
- "rev": "strings",
- "schema": "v1.2.3"
}, - "recovery": [
- 2147483647
]
}| schema | string Schema version against which input and output data are validated |
| version | string Version of the application that calculates solutions |
| meta_data | string Meta data version |
| api_scripts | string Version of the scripts handling requests |
{- "schema": "v1.7.0",
- "version": "2024-10-01_0",
- "meta_data": "v19",
- "api_scripts": "v1.6.2"
}| Name required | string Package name to use in the |
| LastModified | string Modification timestamp of the package, usually of the time it was uploaded at |
object (VersionInfo) |
[- {
- "Name": "a6b69c77bedb7",
- "LastModified": "2024-08-16T12:41:09.000Z",
- "Content": {
- "schema": "v2.7.0",
- "version": "2024-10-01_0",
- "meta_data": "v26"
}
}, - {
- "Name": "d63ca460db7bc",
- "LastModified": "2024-08-16T09:16:09.000Z",
- "Content": {
- "schema": "v2.3.0",
- "version": "2024-10-01_0p0",
- "meta_data": "v26"
}
}
]MixedPlannerOptimizationParameters: Deprecated field genderPrefMixedPlannerStatisticsHistoryTask: Deprecated field genderWeightsMixedPlannerInputPlan: Updated description for history.MixedPlannerInputTask: Updated description for preassignedWorker, initassignedWorker, predecessorTasks.MixedPlannerOptimizationParameters: Updated description for preset.PredecessorChain for POST /description endpointMixedPlannerInputTask: Changed description of qualification to represent new dependency on parameter profitabilityaccept and accept-encoding headers to GET /version, GET /packages-list endpoints, added 406 response code409 response code to all GET endpointsPackagesList and VersionInfo componentMixedPlannerOutput:MixedPlannerOutputPlan and ErrorPlan into one definition to use as schema in /plan GET responseMixedPlannerConstructionSiteMixedPlannerInfo:constructionSites to deprecated.content-type options in POST requests:application/vnd.adiutabyte.adiutaopt.json+gzipapplication/vnd.adiutabyte.adiutaopt.json+deflateapplication/vnd.adiutabyte.adiutaopt.json+braccept-encoding in GET requests with allowed values:identitydeflategzipaccept in GET requests with allowed values:application/jsonapplication/vnd.adiutabyte.adiutaopt.json+gzipapplication/vnd.adiutabyte.adiutaopt.json+deflateapplication/vnd.adiutabyte.adiutaopt.json+brversion to adiutaopt-versionBackendVersion:version to be constant "v1.0.0", marked as deprecatedoptVersion, has the same properties as version did in v4OPTIONS requestsOPTIONS requestsVersion to paths /description and /version/packages-listNumber_u32, replaced all occurrences with Number_u64. Those are:MixedPlannerInputTask, MixedPlannerOutputTask:revenueMixedPlannerInputWorker, MixedPlannerOutputWorker:capacitycapacityInitialvolumevolumeInitialweightweightInitialfinalCapacityResetThresholdfinalVolumeResetThresholdfinalWeightResetThresholdcostsPerKMcostsPerMinutecostsInitialNumber_s64Number_s32, replaced all occurrences with Number_s64. Those are:MixedPlannerInputTask, MixedPlannerOutputTask:capacityweightvolumeMixedPlannerOutputTaskAssigned:profitMixedPlannerStatistics:planProfitabilityMixedPlannerInputTask:unpreferredWorkersantiWorkers as deprecatedErrorEntryMixedPlannerInputTask, MixedPlannerInputWorkerErrorPlanMixedPlannerConstructionSiteMixedPlannerHistoryAssignmentMixedPlannerHistoryTaskMixedPlannerHistoryWorkerMixedPlannerLocationSiteMixedPlannerOutputPlanMixedPlannerStatisticsHistoryTaskMixedPlannerStatisticsHistoryWorkerMixedPlannerTravelOverrideDenseMixedPlannerOutputTaskAssignedMixedPlannerOutputTaskUnassignedMixedPlannerOutputWorker