Выходные поля и их использованиеBETA
Выходные поля используются для описания данных, которые блок интеграции возвращает после выполнения. Они позволяют системе и следующим блокам понимать структуру и тип результатов, полученных на выходе.
В каждом блоке выходные данные описываются с помощью массива output_variables.` Он определяет, какие переменные будут доступны после выполнения блока и какого они типа.
- Выходные данные должны быть консистентны. Это означает, что тип данных каждой выходной переменной должен оставаться неизменным при каждом выполнении блока.
- Если переменная объявлена как строка — она всегда должна возвращать строку
- Если объявлено число — возвращается только числовое значение
- Типы, указанные в
output_variables, задаются один раз и не могут изменяться динамически в зависимости от данных
Описание output_variables
Массив output_variables используется для явного описания структуры выходных данных блока. Каждый элемент массива соответствует одной выходной переменной и содержит ее тип и имя. В зависимости от типа данных, описание может быть простым или расширенным.
- Для примитивных типов (
Long,Double,Boolean,String) и массивов примитивов (LongArray,DoubleArrayи т.д.) достаточно указать тип и имя переменной. - Для объектов (
Object) и массивов объектов (ObjectArray) необходимо дополнительно описать структуру вложенных полей с помощью struct.
Простые типы
Простые типы используются для передачи одиночных значений без вложенной структуры.
| Тип | Описание | Пример |
|---|---|---|
BigDecimal | Десятичное число с высокой точностью | 123456.789123456789 |
BigInteger | Целое число произвольной длины | 123456789123456789123456789 |
Boolean | Логическое значение | true/false |
DateTime | Дата и время, аналог Instant в Java/Kotlin | 2024-12-31T23:59:59Z |
Double | 64-битное число с плавающей точкой | 1.02 |
Long | Целое 64-битное число | 1234 |
String | Строка | 'example' |
Массивы простых типов
Массивы позволяют возвращать набор однотипных значений. Для некоторых типов допускается наличие null для обозначения отсутствующих данных.
| Тип | Описание | Пример |
|---|---|---|
BigDecimalArray | Массив десятичных чисел высокой точности | [123.456789, 987654.3210001] |
BigIntegerArray | Массив больших целых чисел | [123456789123456789, 999999999999999999] |
BooleanArray | Массив логических значений, может содержать null | [true, null, false] |
DateTimeArray | Массив объектов даты-времени Instant | ['2023-01-01T10:00:00Z', '2023-01-02T15:30:00Z'] |
DoubleArray | Массив чисел с плавающей точкой, может содержать значения null | [1.01, null, 1.02] |
LongArray | Массив целых 64-битных чисел, может содержать значения null для пропущенных данных | [12, null, 34, 56] |
StringArray | Массив строк, может содержать null | ['one', null, 'two'] |
Специальные/сложные типы
Сложные типы применяются, когда необходимо вернуть структурированные данные или файлы.
| Тип | Описание | Пример |
|---|---|---|
File | Файл, представленный как поток данных | Бинарный поток файла PDF или CSV |
Object | Объект с вложенными полями | Пример представлен ниже |
ObjectArray | Массив объектов, где каждый объект может иметь вложенные поля разных типов | Пример представлен ниже |
Общая структура выходных полей
Ниже приведен пример описания output_variables, включающий простые типы, массивы и вложенные структуры объектов.
output_variables: [
{
type: "Long";
name: "var_long";
},
{
type: "LongArray";
name: "var_long_array";
},
{
type: "Double";
name: "var_double";
},
{
type: "DoubleArray";
name: "var_double_array";
},
{
type: "Boolean";
name: "var_boolean";
},
{
type: "BooleanArray";
name: "var_boolean_array";
},
{
type: "String";
name: "var_string";
},
{
type: "StringArray";
name: "var_string_array";
},
{
type: "Object";
name: "var_object";
struct: [
{
type: "String";
name: "field1";
},
{
type: "Long";
name: "field2";
},
];
},
{
type: "ObjectArray";
name: "var_objects";
struct: [
{
type: "Object";
name: "field1";
struct: [
{
name: "field1_1";
type: "String";
},
{
name: "field1_2";
type: "Stringer";
},
];
},
{
type: "String";
name: "field2";
},
];
},
];
Была ли статья полезна?