Руководство использования SOAP-сервера packe3d

SOAP-сервер packer3d предоставляет возможность расчёта оптимальной укладки ящиков в транспортные средства. Интерфейс SOAP-сервера расположен по адресу https://www.packer3d.ru/soap/packer3d.wsdl.
Все функции, реализуемые сервером, имеют 3 параметра типа строка и возвращают строку в качестве результата. Первые два параметра, определяют имя пользователя и пароль, а последний - зависит от вызываемой функции. SOAP-сервер packer3d предоставляет следующий набор функций:

Имя функции Описание
newCalc Запуск нового расчёта укладки ящиков в ТС. В качестве последнего аргумента передаются данные для расчёта в формате packer3d XML. Результатом работы функции является строка, содержащая уникальный ключ расчёта, которы используется в остальных функциях для получания статуса и результата расчёта. Первый аргумент может представлять из себя несколько имён пользователей, перечисленных через запятую. В этом случае, первое имя - пользователь выполняющий расчёт (он должен быть администратором), остальные - пользователи, которым расчёт будет доступен для просмотра.
getStatus Получить статус расчёта. В качестве последнего аргумента передаётся уникальный ключ расчёта, который вернула функция newCalc. Результатом работы функции является строка, содержащая число, обозначающее статус расчёта (см. ниже).
cancelCalc Остановка/удаление расчёта. В качестве последнего аргумента передаётся уникальный ключ расчёта, который вернула функция newCalc. Функция переводит расчёт в статус -3 (отменён) и сервер прекращает его выполнение. Для тех расчётов по которым работа была завершена, функция просто переводит их в статус -3. Результатом работы функции является пуста строка в случае успеха или идентификатор ошибки.
resumeCalc Перезапус отменённого расчёта. В качестве последнего аргумента передаётся уникальный ключ расчёта, который вернула функция newCalc. Функция запускает заново ранее отменённый или удалённый расчёт (см. функцию cancelCalc). Функция применима только к отмененным расчётам (тем, которые находятся в статусе -3). Результатом работы функции является пуста строка в случае успеха или идентификатор ошибки.
getRes Получить результат расчёта. В качестве последнего аргумента передаётся уникальный ключ расчёта, который вернула функция newCalc. Результат можно получить только для расчётов, который находятся в статусе >99 и <999 (см. ниже). Функция возвращает схему укладки в формате packer3d XML.
getVehicles Получить набор транспортных средств. Функция возвращает спискок параметров транспортных спредств в формате packer3d XML, в зависимости от параметров запроса функция может вернуть все ТС, доступные пользователю или только часть их. Обычно всесь список ТС является большим и недоступным для передачи по SOAP-протоколу, поэтому рекомендуется, считывать список ТС за несколько приёмов (вызовов функции). В качестве последнего аргумента передаются параметры запроса для список ТС в следующих:
  • all - получить все доступные ТС (общие и собственные);
  • com - получить все общие ТС;
  • own - получить все собственные ТС;
  • allN-M - получить доступные ТС от N до M;
  • comN-M - получить общие ТС от N до M;
  • ownN-M - получить собственные ТС от N до M;
Таким образом, для получения полного набора ТС, например, надо последовательно вызывать функцию со следующими параметрами all0-20, all20-40, all40-60, all60-80, ... до тех пор, пока функция не вернет пустую строку.
getOrders Получить список расчётов за указанный период. В качестве последнего аргумента передаётся список дат или периодов, для которых надо получить список расчётов. Даты и периоды должны идти через перевод строки в формате YYYY-MM-DD и YYYY-MM-DD/YYYY-MM-DD соответственно. Для периодов первая дата обозначает начало периода (включительно), а вторая конец (включительно). Если последний параметр пустая строка - функция возвращает все расчёты. Результат работы функции - это набор уникаьных ключей расчётов, отделённых переводом строки. Если к имени пользователя в конце добавлен символ *, то будут выведены расчёты сделанные для этого пользователя.

Возможные значения статуса расчёта:

Ниже приведены примеры обращения к различным функциям сервера на языке PHP.

Вызов getVehicles

Результат работы скрипта: vehicles.php

Вызов getOrders

Результат работы скрипта: orders.php

Вызов getRes

Результат работы скрипта можно посмотреть перейдя по ссылкам первого столбца таблицы: orders.php

Вызов getStatus

Результат работы скрипта можно посмотреть перейдя по ссылкам соответствующего столбца таблицы: orders.php