import


запрос import

Запрос используется для импорта готового расписания в систему. Для импорта готового расписания по API используется структура application/xml и HTTP-метод POST

URL: [account-name].maxoptra.com/rest/2/distribution-api/schedules/import

Примечание Прежде чем загружать расписание с помощью этого метода, необходимо сначала загрузить в систему сами заказы с помощью метода save.


Возможные поля для расписания:

Название поляТипДлинаОбязательноеПримерОписание
1run



Блок информации о рейсе
1.1

vehicleName

Текст255

Обязательное,

если не указан vehicleExternalId

Машина 1Имя машины
1.2vehicleExternalIdТекст255

Обязательное,

если не указан vehicleName

Машина 1Внешний идентификатор машины
1.3driverNameТекст255

Обязательное,

если не указан driverExternalId

Сергей ИсаевИмя водителя
1.4driverExternalIdТекст255

Обязательное,

если не указан driverName

Сергей ИсаевВнешний идентификатор водителя
1.5allocationDate Дата
Да12.12.2019Дата, на которую будет запланировано расписание. Формат: ДД.ММ.ГГГГ, пример: 21.05.2015
1.6numberТекст

Обязательное,

если указан номер у первого рейса

1Номер рейса в маршруте
2order



Блок информации о заказе
2.1referenceТекст64ДаЗаказ 001Номер заказа
2.2sequenceТекст
Нет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"При попытке задать имя водителя, уже имеющееся в системе. В это случае необходимо переименовать водителей, либо использовать внешний идентификатор.



См. также

Методы API. Расписания

save

Импорт расписания из CSV-файла в Максоптру

Импoрт заказов. Параметры и требования к файлу импорта.

Коды ошибок и предупреждений