Справка

Обмен данными между полями формы Pyrus и внешним сервисом

Чтобы расширение работало, необходимо определить, какая информация будет попадать из внешнего сервиса в поля формы Pyrus и/или наоборот. Для этого нужно задать перечень полей для обмена данными между полями формы Pyrus и данными из внешнего сервиса.

Для настройки такого перечня доступны следующие типы полей в Pyrus: текст, число, файлы, эл. почта, дата, время, выбор, телефон, деньги, таблица.

Подробнее о типах полей формы

При установке расширения пользователь сможет указать поля формы, в которые будет попадать информация из внешней системы, например, Имя отправителя, Ссылка на пост и т. д.

При этом каждому полю расширения соответствует определенный код — постоянный идентификатор, который не видят пользователи, но может изменять разработчик расширения, и который сохраняется при переименовании поля. В приведенном примере — это SenderName и PostUrl.

Подробнее о кодах полей

Подсказка 1: мы рекомендуем использовать стандартные коды полей: они облегчают настройку новых расширений, так как при совпадении кодов с полями, у которых уже настроен перечень полей для обмена данными, Pyrus автоматически предложит подходящий перечень при подключении новой интеграции.

Как настроить перечень полей для обмена данными в расширении

  1. Чтобы настроить обмен данными между данными внешнего сервиса и полями в Pyrus, войдите в раздел Расширения.

  2. Откройте вкладку Разработка расширений.

  3. Откройте ваше расширение.

  4. Выберите шаг Обмен данными с формой.

  5. Настройте перечень полей, которые расширение будет заполнять или принимать. Например, можно задать правило, что данные клиента (имя, проблема, контакты, канал обращения и т.д.), который обратился в вашу службу поддержки по телефону, будут попадать в соответствующие поля формы Pyrus для обработки клиентских заявок.

  6. Отметьте обязательные для заполнения и опциональные поля в форме Pyrus, а затем сохраните настройки.

  7. В настройках расширения перейдите к шагу 3, в раздел Информация о расширении. Задайте локализацию — укажите языки, которые поддерживает ваше расширение, для обмена данными между сервисами.

Пример заполнения полей расширения

  • mappings — необязательный параметр. Данные для автоматического заполнения полей формы. Массив объектов вида:
    • code — строка. Символьный код поля расширения Pyrus.
    • value — строка. Значение для поля в Pyrus (не заполняется для поля типа Таблица). Максимальная длина — 300 символов.
    • rows — заполняется только для полей типа Таблица. Представляет собой массив массивов объектов вида:
      • code — строка. Символьный код поля расширения Pyrus.
      • value — строка. Значение для поля в Pyrus. Максимальная длина — 300 символов.

Подробнее о вебхуках для сервиса расширения

Табличные поля

В заявку Pyrus, в поле типа Таблица, можно загружать данные таблиц из внешнего сервиса, в том числе выборочно обновлять значения и удалять отдельные строки и ячейки.

Подробнее о поле типа Таблица

Например, из таблицы в системе ЭДО можно передавать новые значения колонки с подписью контрагентов по мере смены статуса согласования документов.

Как настроить обмен данными между таблицами

  1. Добавьте поле типа Таблица, а также код поля.

  2. После добавления поля Таблица под ним откроются вложенные поля (столбцы таблицы). Заполните их, указав поля, которые должны подгружаться в таблицу из внешнего сервиса или передаваться в него.

Подсказка 2: в перечне полей для обмена данными между таблицами должно присутствовать хотя бы одно обязательное вложенное поле.

Подсказка 3: если поле типа Таблица отмечено как опциональное, то пользователь при установке расширения может не привязывать это поле к данным внешнего сервиса, при этом вложенные поля-столбцы таблицы тоже не будут привязаны к нему, даже если они отмечены как обязательные.

Пример отправки значений табличных полей

mappings: [
	{
		code: "TableFieldCode",
		rows: [
			[	
				{
					code: "DocumentNumber",
					value: "doc123/1"
				},
				{   // обновляем статус документа (файл уже приложен, не трогаем)
					code: "Status",
					value: "Signed"
				},
			],
			[
				{
					code: "DocumentNumber",
					value: "doc123/2"
				},
				{   // добавляем новый документ
					code: "Attachment",
					value: "f8c594bf-9ca4-44f1-9483-1c2932a1b291"
				},
			],
		]
	}
]

Параметры

  • mappings — необязательный параметр. Данные для автоматического заполнения полей формы. Массив объектов вида:
    • code — строка. Символьный код поля расширения.
    • value — строка. Значение для поля в Pyrus. Максимальная длина — 300 символов.
    • rows — заполняется только для полей типа Таблица. Представляет собой массив массивов объектов вида:
      • code — строка. Символьный код поля расширения.
      • value — строка. Значение для поля в Pyrus. Максимальная длина — 300 символов.

Важно:

  • расширение должно передавать все строки таблицы одним запросом: если строка не передана, то она удаляется;
  • в одной строке можно передать часть полей: если поле не передано, оно сохраняет предыдущее значение;
  • при частичном обновлении таблицы для сохранения логической целостности данных рекомендуется сохранять изначальный порядок строк.

Примеры запросов

Заполнение таблицы

Данный запрос заполнит таблицу, состоящую из двух столбцов, тремя строками.

mappings: [
	{
		code: "TableFieldCode",
		rows: [
			[	
				{
					code: "Document",
					value: "doc1"
				},
				{
					code: "SignatureStatus",
					value: "Signed"
				},
			],
			[	
				{
					code: "Document",
					value: "doc2"
				},
				{
					code: "SignatureStatus",
					value: "Signed"
				},
			],
			[	
				{
					code: "Document",
					value: "doc3"
				},
				{
					code: "SignatureStatus",
					value: "Signed"
				},
			],
		]
	}
]

Модификация таблицы

Данный запрос обновит таблицу из предыдущего запроса: первая строка неизменна (передается пустой массив), во второй строке изменена ячейка 2 (ячейки, коды полей которых не были переданы в рамках строки, не изменяют своего значения), а третья строка будет удалена, так как не было передано ни нового значения ячеек, ни пустого массива для сохранения данных.

mappings: [
	{
		code: "TableFieldCode",
		rows: [
			[],
			[	
				{
					code: "SignatureStatus",
					value: "Declined"
				},
			]
		]
	}
]

Была ли эта статья полезной?