GetReferenceData: CargoStates — Состояния грузов
Функция позволяет получить список доступных состояний грузов.
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| login | string | логин | |
| password | string | пароль | |
| parameters | Element | список параметров |
Параметр parameters содержит настройки запроса в виде иерархической структуры, соответствующей XML-представлению.
Он должен включать:
Key: строка со значением parameters (обязательное);
List: непустой массив элементов, каждый из которых представляет отдельный параметр и сам является структурой с тремя полями:
- Key: имя параметра (например, Reference);
- Value: значение параметра указывающая на то какой parameters описывается;
- ValueType: тип значения — строка, указывающая тип Value(string, int и т.д.).
Пример одного элемента из List:
<car:List>
<car:Key>Reference</car:Key>
<car:Value>CargoStates</car:Value>
<car:ValueType>string</car:ValueType>
</car:List>Каждый такой элемент — независимый узел внутри parameters. Если List отсутствует или пуст — запрос отклоняется.
Иерархия структуры parameters:
parameters→ List (массив) → каждый элемент List→ Key, Value, ValueType.
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| Reference | string | Имя справочника, должно быть равно «CargoStates» | |
| DocumentType | string |
Тип документа, для которого необходимо получить список статусов (order, waybill, trace). По умолчанию «order» |
Параметр Element в ответе содержит информацию о списке возможных состояний грузов.
Он включает элементы справочника:
Key: идентификатор справочника, строка со значением CargoStates;
List: массив элементов справочника.
Каждый блок List описывает описывает один возможный статус груза и содержит в себе:
- Key: уникальный идентификатор состояния(например, 8c9ab389-4ef8-4d6c-99d4-c0bb2c62a623);
- Value: наименование состояния (например, Отправление забрано);
- ValueType: тип значения — строка, указывающая тип Value (string, dateTime и т.п.);
- Fields: массив дополнительных атрибутов состояний.
Структура ответа иерархична:
Element→ Key + List (массив) → каждый элемент List→ Key + Value +ValueType +Fields→ каждый элемент Fields → Key, Value, ValueType.
Если во время запроса произошла ошибка, информация о ней будет отражена в свойстве Properties (см. метод GetReferenceData: ErrorCodes — Коды ошибок).
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| Key | string | Уникальный номер элемента справочника в формате GUID (Globally Unique Identifier) | |
| Value | string | Наименование состояния | |
| Fields | Element | Другие свойства элемента справочника |
Каждый блок Fields позволяет передавать метаданные о состоянии (является ли оно папкой (группой), ссылку на родительский статус, уровень в иерархии) и содержит в себе элементы:
- Key: идентификатор поля (например, IsFolder);
- Value: значение поля;
- ValueType: тип значения — строка, указывающая тип Value (string, boolean и т.п.).
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| IsFolder | boolean |
Признак папки. true - состояние является группой (папкой), содержит дочерние статусы; false - состояние является конечным (листовым), не содержит дочерних. |
|
| Parent | string |
Уникальный номер родителя элемента справочника в формате GUID (Globally Unique Identifier). Если строка пустая, то состояние является корневым (верхнего уровня). |
|
| Level | string |
Уровень в структурированном справочнике (0 — корневой уровень). |
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:car="http://www.cargo3.ru">
<soap:Header/>
<soap:Body>
<car:GetReferenceData>
<car:login>test</car:login>
<car:password>2016</car:password>
<car:parameters>
<car:Key>parameters</car:Key>
<car:List>
<car:Key>Reference</car:Key>
<car:Value>CargoStates</car:Value>
<car:ValueType>string</car:ValueType>
</car:List>
<car:List>
<car:Key>DocumentType</car:Key>
<car:Value>order</car:Value>
<car:ValueType>string</car:ValueType>
</car:List>
</car:parameters>
</car:GetReferenceData>
</soap:Body>
</soap:Envelope> <soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<m:GetReferenceDataResponse
xmlns:m="http://www.cargo3.ru">
<m:return
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<m:Key>CargoStates</m:Key>
<m:List>
<m:Key>8c9ab389-4ef8-4d6c-99d4-c0bb2c62a623</m:Key>
<m:Value xsi:type="xs:string">Отправление забрано</m:Value>
<m:ValueType>string</m:ValueType>
<m:Fields>
<m:Key>IsFolder</m:Key>
<m:Value xsi:type="xs:boolean">false</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Parent</m:Key>
<m:Value xsi:type="xs:string"/>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Level</m:Key>
<m:Value xsi:type="xs:decimal">0</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
</m:List>
<m:List>
<m:Key>c46daf14-0ae8-4881-a7ad-152a05f59227</m:Key>
<m:Value xsi:type="xs:string">Отправление получено курьером</m:Value>
<m:ValueType>string</m:ValueType>
<m:Fields>
<m:Key>IsFolder</m:Key>
<m:Value xsi:type="xs:boolean">false</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Parent</m:Key>
<m:Value xsi:type="xs:string"/>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Level</m:Key>
<m:Value xsi:type="xs:decimal">0</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
</m:List>
<m:List>
<m:Key>73fb7129-f4f6-11e4-a887-001e67086478</m:Key>
<m:Value xsi:type="xs:string">Заказ подтвержден клиентом</m:Value>
<m:ValueType>string</m:ValueType>
<m:Fields>
<m:Key>IsFolder</m:Key>
<m:Value xsi:type="xs:boolean">false</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Parent</m:Key>
<m:Value xsi:type="xs:string"/>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Level</m:Key>
<m:Value xsi:type="xs:decimal">0</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
</m:List>
<m:List>
<m:Key>c67e692c-6d2a-4be4-a15b-6c12fc4307df</m:Key>
<m:Value xsi:type="xs:string">Заказ проверяется.</m:Value>
<m:ValueType>string</m:ValueType>
<m:Fields>
<m:Key>IsFolder</m:Key>
<m:Value xsi:type="xs:boolean">false</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Parent</m:Key>
<m:Value xsi:type="xs:string"/>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Level</m:Key>
<m:Value xsi:type="xs:decimal">0</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
</m:List>
<m:List>
<m:Key>d6031139-b443-11e8-80c1-7cd30aec6901</m:Key>
<m:Value xsi:type="xs:string">Изменение параметров забора отправления</m:Value>
<m:ValueType>string</m:ValueType>
<m:Fields>
<m:Key>IsFolder</m:Key>
<m:Value xsi:type="xs:boolean">false</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Parent</m:Key>
<m:Value xsi:type="xs:string"/>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Level</m:Key>
<m:Value xsi:type="xs:decimal">0</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
</m:List>
<m:List>
<m:Key>4a39268e-d5a9-44b1-9255-3296d48df57f</m:Key>
<m:Value xsi:type="xs:string">Курьер уже в пути</m:Value>
<m:ValueType>string</m:ValueType>
<m:Fields>
<m:Key>IsFolder</m:Key>
<m:Value xsi:type="xs:boolean">false</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Parent</m:Key>
<m:Value xsi:type="xs:string"/>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Level</m:Key>
<m:Value xsi:type="xs:decimal">0</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
</m:List>
<m:List>
<m:Key>6d63f79d-28ca-11e5-86ab-001e67086478</m:Key>
<m:Value xsi:type="xs:string">На утверждении клиента</m:Value>
<m:ValueType>string</m:ValueType>
<m:Fields>
<m:Key>IsFolder</m:Key>
<m:Value xsi:type="xs:boolean">false</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Parent</m:Key>
<m:Value xsi:type="xs:string"/>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Level</m:Key>
<m:Value xsi:type="xs:decimal">0</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
</m:List>
<m:List>
<m:Key>6f2c0759-4b35-40d2-ae35-7e72cc43f267</m:Key>
<m:Value xsi:type="xs:string">Назначен курьер</m:Value>
<m:ValueType>string</m:ValueType>
<m:Fields>
<m:Key>IsFolder</m:Key>
<m:Value xsi:type="xs:boolean">false</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Parent</m:Key>
<m:Value xsi:type="xs:string"/>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Level</m:Key>
<m:Value xsi:type="xs:decimal">0</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
</m:List>
<m:List>
<m:Key>6c7f342b-6949-4cc3-9992-8daf98e2084c</m:Key>
<m:Value xsi:type="xs:string">Отмена заказа</m:Value>
<m:ValueType>string</m:ValueType>
<m:Fields>
<m:Key>IsFolder</m:Key>
<m:Value xsi:type="xs:boolean">false</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Parent</m:Key>
<m:Value xsi:type="xs:string"/>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Level</m:Key>
<m:Value xsi:type="xs:decimal">0</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
</m:List>
</m:return>
</m:GetReferenceDataResponse>
</soap:Body>
</soap:Envelope> 