Создание действия
1. В настройках пространства Центр администрирования в разделе Списки по двойному клику ЛКМ перейти на список Действия
2. Создать элемент с типом Вызов внешнего сервиса
3. На вкладке Информация заполнить Атрибуты:
- Название
- URL - url сервиса. Пример: https://api.vitrocad.ru/publish
- Права - права, требуемые пользователю для выполнения действия
Привязка действия к типу элемента
1. В настройках пространства Центр администрирования в разделе Списки по двойному клику ЛКМ перейти на список Действие типа элемента
2. Создать элемент с типом Действие типа элемента
3. На вкладке Информация заполнить атрибуты:
- Название
- Действие - из списка выбрать действие, которое необходимо привязать к типу элемента
- Тип элемента - из списка выбрать тип элемента, к которому привязывается действие
- Изображение - иконка действия
- Подтверждение - требует ли действие подтверждение пользователя
- Показать после действия - отображать ли сообщение об успешности выполнения действия
- Показать прогресс - отображать ли прогресс выполнения действия
- Контекст - отображать ли действие в контекстном меню
- Дополнение - отображать ли действие в дополнительной кнопке "Действия" в командном меню
- Если атрибуты "Контекст" и "Дополнение" имеют значение false, действие будет отображаться отдельной кнопкой в командном меню
Вызов действия
При вызове действия отправляется POST запрос на указанный в действии URL.
В заголовке Authorization передается токен пользователя.
В теле запроса передается JSON вида:
{
itemIdList: [...] - массив id выбранных элементов
}
Обработка ответа
Доступны два варианта обработки полученного при вызове сервиса ответа:
1. Отображение информации об ошибке
Для отображения текста ошибки, ответ должен приходить в виде строки, либо в формате JSON вида:
{
exception: {
message: 'Текст ошибки'
}
}
2. Переход по ссылке
Для перехода по ссылке в ответе должно соблюдаться два условия:
- Код ответа должен 200 ОК
- В заголовках ответа должен присутствовать один из двух вариантов:
- Link-Open + ссылка (откроется в этой же вкладке)
- Link-Open-New-Tab + ссылка (откроется в новой вкладке)
Если в браузере вызывается сервис, который расположен на хосте отличном от хоста страницы, то в браузере включается механизм CORS (Cross-Origin Resource Sharing). Этот механизм накладывает ряд ограничений, в частности не позволяет со страницы прочитать заголовки ответа. В этом случае нужно на внешнем сервере явно указать, какие именно заголовки будут доступны. Для этого в заголовке ответа от внешнего сервиса нужно добавить:"Access-Control-Expose-Headers": "Link-Open, Link-Open-New-Tab"
"Access-Control-Allow-Origin": "адрес портала, с которого вызывается внешний сервис"





