мета-данные страницы
Действия
Действия имеют два смысла в рамках интеграции с Альбато:
- Это операции, которые нужно осуществить В системе Агбис по данным, которые получены из сторонней системы;
- Это получение дополнительной информации о той или иной сущности (получение статуса заказа, получение информации по контрагенту).
В целом, настройка действий происходит аналогично настройке триггеров
Но т.к. обычно действия представляют собой передачу данных В Агбис, т.е. один нюанс, связанный с тем, что мы должны передать данные в URLEncoded-формате. Обычно эти данные должны быть в теле как JSON (в разделе триггеров уже было упомянуто, что Albato не умеет "из коробки" сочетать JSON и URLEncoded), поэтому обычно на вкладке Request нужно настроить preScript для осуществления URLEncoded:
if(data){ Object.entries(data).forEach(([key, value]) => { if(value){ data[key] = encodeURI(value) } }) }
Ну и не всегда нужно делать URLDecode при обработке ответа. Тут уже смотреть по контексту команды. Если всё же нужно, ниже продублирован код:
function decodeData(item) { if (Array.isArray(item)) { // Если это массив, обрабатываем каждый элемент item.forEach(decodeData); } else if (typeof item === 'object' && item !== null) { // Если это объект, проходим по его ключам for (const key in item) { if (Object.prototype.hasOwnProperty.call(item, key)) { const value = item[key]; if (typeof value === 'string') { // Если значение - строка, декодируем ее item[key] = decodeURIComponent(value); } else if (typeof value === 'object' && value !== null) { // Если значение - объект или массив, рекурсивно вызываем функцию decodeData(value); } } } } } // Запускаем декодирование для всего массива data decodeData(data);