import
запрос import
Запрос используется для импорта готового расписания в систему. Для импорта готового расписания по API используется структура application/xml и HTTP-метод POST
URL: [account-name].maxoptra.com/rest/2/distribution-api/schedules/import
Примечание Прежде чем загружать расписание с помощью этого метода, необходимо сначала загрузить в систему сами заказы с помощью метода save.
Возможные поля для расписания:
№ | Название поля | Тип | Длина | Обязательное | Пример | Описание |
1 | run | Блок информации о рейсе | ||||
1.1 | vehicleName | Текст | 255 | Обязательное, если не указан vehicleExternalId | Машина 1 | Имя машины |
1.2 | vehicleExternalId | Текст | 255 | Обязательное, если не указан vehicleName | Машина 1 | Внешний идентификатор машины |
1.3 | driverName | Текст | 255 | Обязательное, если не указан driverExternalId | Сергей Исаев | Имя водителя |
1.4 | driverExternalId | Текст | 255 | Обязательное, если не указан driverName | Сергей Исаев | Внешний идентификатор водителя |
1.5 | allocationDate | Дата | Да | 12.12.2019 | Дата, на которую будет запланировано расписание. Формат: ДД.ММ.ГГГГ, пример: 21.05.2015 | |
1.6 | number | Текст | Обязательное, если указан номер у первого рейса | 1 | Номер рейса в маршруте | |
2 | order | Блок информации о заказе | ||||
2.1 | reference | Текст | 64 | Да | Заказ 001 | Номер заказа |
2.2 | sequence | Текст | Нет | 1 | Порядок заказа в рейсе |
Примечания
Если поле driverExternalId заполнено, оно будет использовано для идентификации водителя, если нет - водитель будет идентифицирован по имени (driverName). Если заполнены оба поля, то водитель будет идентифицирован по связке имени и внешнего идентификатора.
Та же логика работает для полей vehicleName и vehicleExternalId.
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?> <apiRequest> <sessionID>9d15ef712f274c7eb0bd3f4ed47d6967</sessionID> <runs> <run vehicleName="AZ234 8218" driverName="Bernardo Emes" allocationDate="21.05.2015" number="1"> <order reference="001" sequence="1" /> <order reference="002" sequence="2" /> </run> <run vehicleName="AZ 8218" driverName="Bernardo Emes" allocationDate="21.05.2015" number="2"> <order reference="005" sequence="1" /> </run> <run vehicleName="AZ 2108" driverName="Fanny Gems" allocationDate="21.05.2015" number="1"> <order reference="004" sequence="1" /> </run> </runs> </apiRequest>
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?> <apiResponse version="1.0"> <runs> <run vehicleName="AZ 2108" driverName="Fanny Gems" allocationDate="21.05.2015" number="1"> <orders> <order reference="004" status="ALLOCATED" /> </orders> </run> <run vehicleName="AZ 8218" driverName="Bernardo Emes" allocationDate="21.05.2015" number="1"> <orders> <order reference="005" status="ALLOCATED" /> </orders> </run> <run vehicleName="AZ 8218" driverName="Bernardo Emes" allocationDate="21.05.2015" number="2"> <orders> <order reference="002" status="ALLOCATED"> <order reference="001" status="ALLOCATED" /> </order> </orders> </run> </runs> </apiResponse>
Возможные ошибки:
Ошибка | Описание |
---|---|
1316 - "There are more than one vehicle with the same name. Please rename the vehicles or use the External ID field to reference the vehicle. Vehicle name: vehicleName" | При попытке задать имя машины, уже имеющееся в системе. В это случае необходимо переименовать машину, либо использовать внешний идентификатор. |
2000 - "A resource is required" | Не указаны ни водитель, ни автомобиль |
2001 - "The driver is not found" | Водитель не найден |
2002 - "The vehicle is not found" | Автомобиль не найден |
2003 - "The driver is assigned to a different vehicle" | Водитель и автомобиль не соответствуют друг другу |
2004 - "The allocation date is invalid" | Некорректно указана дата планирования |
2005 - "The run can not be re-planned because it is already locked" | Рейс не может быть перепланирован, так как он уже зафиксирован |
2006 - "The order is not found. The run was created skipping this order" | Заказ не найден. При планировании рейса данный заказ был пропущен |
2007 - "An allocation date is required" | Требуется указать дату планирования |
2008 - "The order can not be allocated because it is already allocated to a different run" | Заказ не может быть запланирован, так как он уже запланирован на другой рейс |
2009 - "The run was auto-resequenced because not all of the orders had a sequence number" | Рейс был автоматически перепланирован, так как не у всех заказов есть порядковый номер в рейсе |
2010 - "The run could not be created because all orders had errors" | Все заказы в рейсе некорректны |
2011 - "The vehicle is spare" | Автомобиль не задействован |
2012 - "The vehicle is suspended" | Автомобиль временно отключен |
2013 - "The driver is not available" | Водитель недоступен |
2014 - "The order can not be allocated due to allocation error: it has not time window" | Заказ не может быть запланирован из-за ошибки планирования: у заказа отсутствуют временные окна. |
2015 - "The run can not be allocated due to allocation error" | Рейс не может быть запланирован из-за ошибки планирования |
2016 - "The order can not be allocated because it is already allocated to a different day" | Заказ не может быть запланирован, так как он уже запланирован на другой день |
2017 - "The order and the vehicle are from different DCs" | Заказ и автомобиль относятся к разным распределительным центрам. |
2018 - "The order already exists in this schedule" | Заказ уже существует в данном расписании. |
2019 - "The run already exists in this schedule" | Рейс уже существует в данном расписании. |
2020 - "The vehicle has no driver" | Автомобиль не имеет водителя. |
2021 - "The driver has no vehicle" | У водителя нет автомобиля. |
2022 - "The driver is not found by same name and external id: performerExternalId<=>Performer" | При попытке назначить водителя, имя которого не соответствует значению driverExternalID |
2023 - "The vehicle is not found by same name and external id: vehicleExternalId<=>vehicleName" | При попытке назначить машину, имя которой не соответствует значению vehicleExternalID |
2030 -"There are more than one performer with the same name. Please rename the performers or use the External ID field to reference the performer. Performer name: driverName" | При попытке задать имя водителя, уже имеющееся в системе. В это случае необходимо переименовать водителей, либо использовать внешний идентификатор. |
См. также
Импорт расписания из CSV-файла в Максоптру
Импoрт заказов. Параметры и требования к файлу импорта.