assignPerformersToVehicles


Метод assignPerformersToVehicles

Метод для назначения водителей на автомобили. Если автомобиль уже занят, предыдущий водитель снимается и назначается новый, указанный в запросе. В случае, если на определенную дату хотя бы на один из ресурсов (автомобиль/водитель) назначено расписание, то указанные водитель и машина на этот день не меняются.

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


URL: [account-name].maxoptra.com/rest/2/distribution-api/objects/assignPerformersToVehicles 


Поддерживаемые атрибуты:

Название поляОбязательностьОписание
1performerName

Да,

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

Имя водителя
2performerExternalId

Да,

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

Идентификатор водителя во внешней системе
3

vehicleName

Да,

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

Имя автомобиля
4vehicleExternalId

Да,

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

Идентификатор машины во внешней системе
5dateНет

Дата, на которую водитель назначается на автомобиль. Дата не может быть указана в прошлом.

Примечание Дату обязательно указывать в том случае, если назначение водителя на машину должно быть отражено на Экране планирования (назначение на конкретный день). Если не указать дату в запросе, назначение водителя на машину произойдет только в дефолтных настройках (Водители, /wiki/spaces/MAX/pages/3608188).

Примечания

Если поле performerExternalId заполнено, оно будет использовано для идентификации водителя, если нет - водитель будет идентифицирован по имени (performerName). Если заполнены оба поля, то водитель будет идентифицирован по связке имени и внешнего идентификатора.

Та же логика работает для полей vehicleName и vehicleExternalID.

Пример запроса:

<?xml version="1.0" encoding="UTF-8"?>
<apiRequest>
   <sessionID>545d1a3f6b2445019a369c9477c6dc36</sessionID>
   <allocationsDetails>
      <allocations>
         <allocation performerName="Виктор Иванов" vehicleName="А 609 КМ" performerExternalId ="Водитель 4" vehicleExternalId="Машина 4" date="24.02.2016" />
      </allocations>
   </allocationsDetails>
</apiRequest>


Пример ответа:

<?xml version="1.0" encoding="UTF-8"?>
<apiResponse version="1.0">
   <objects>
      <updatedObject>
         <name>Виктор Иванов - А 609 КМ</name>
      </updatedObject>
   </objects>
</apiResponse>

Возможные ошибки:

причина

ошибка

При указании некорректного sessionID

1009 - "Provided credentials are invalid"

При вводе некорректного имени водителя

1206 - "Performer is not found"

При попытке назначить водителя на машину из другого депо

1234 - "Performer and vehicle have different areas of control"

При попытке назначить водителя, который имеет не уникальное имя в системе

1302 - "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: performerName"

При вводе некорректного имени автомобиля

1304 - "Vehicle is not found"

При попытке назначить машину, которая имеет не уникальное имя в системе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" 

При попытке привязать водителя/машинку, связанных с ДС, на который у пользователя нет прав

1019 - "User with provided credentials doesn't have AoC access or AoC doesn't exist"

При попытке задать прошлую дату1214 - "Invalid value for parameter: date has already passed"
При попытке назначить водителя, имя которого не соответствует значению driverExternalID2022 - "The driver is not found by same name and external id: performerExternalID<=>Performer"
При попытке назначить машину, имя которой не соответствует значению vehicleExternalID2023 - "При попытке назначить машину, имя которой не соответствует значению vehicleExternalID"
При попытке назначить водителя с уже запланированным расписанием на другую машину.2028 - "The selected driver has allocated orders"