Работа со справочниками
После того как клиент авторизован и получил ключ нужного справочника и его структуру, программа-клиент может обращаться к сервису Process Insight для получения полного перечня элементов справочника, для создания или изменения элементов справочников.
При получении элементов справочников, при создании или их изменении Process Insight проверяет права авторизованного пользователя на все действия: Система выводит только те элементы справочников, к которым у пользователя есть права доступа на чтение. Система позволяет изменять только те элементы, для которых у пользователя есть права на изменения. Система также не позволяет создавать новые элементы, если у пользователя нет соответствующих прав.
Список элементов справочника
Для получения всех элементов справочника клиент должен отправить на сервер Process Insight GET-запрос следующего вида:
https://budgetform.appspot.com/x?command=analytics&analytics=XXX, где XXX — ключ справочника
Пример результата (справочник содержит один элемент):
<analytics> <item base='agpidWRnZXRmb3JtclwLEgROb2RlIiQyMTg5MGUwYi1iNjJmLTQwYjAtODc2Mi00YTM5YTY2OTE3OGQMCxIETm9kZSIkZjVhYTU2M2YtZjc4Yy00Nzc5LTgyOWMtY2ZmNTU2NTIwNGFjDA' key='agpidWRnZXRmb3Jtci4LEgROb2RlIiQyM2I2OWIxOS1kY2YxLTQzY2EtYTBkNi1iODRmM2E3OTE0ZTkM' name='Uber Москва' sortCode='0' visible='true'/> </analytics>
Выводятся следующие поля:
- base — обязательное поле для всех элементов всех справочников — ключ справочника
- key — идентификатор (ключ) элемента справочника
- прочие атрибуты элемента справочника
Если названия содержат недопустимые для xml символы, то они заменяются escape-последовательностями.
Изменение и создание элементов справочника
Для изменения существующих и создания новых элементов справочника клиент должен направить на сервер Process Insight POST-запрос вида
https://budgetform.appspot.com/x?command=update
Тело запроса должно содержать xml-файл в кодировке UTF-8. Структура файла должна быть аналогична стуктуре файла, возвращаемого при запросе элементов справочника.
Если xml-элемент item содержит атрибует key, то это будет являться для Системы командой на обновление элемента справочника с соответствующим идентификатором. Если атрибут key отсутствует, то это будет командой для создания нового элемента справочника.
При обновлении и создании элементов состав полей может быть шире, чем это предусмотрено настройкой Process Insight: Система будет сохранять и впоследствие возвращать все переданные значения полей. Это позволяет, в частности, сохранять в Process Insight внутренние идентификаторы элементов в сторонних системах.