Перейти к основному содержимому
Версия: 8.8

Операции с данными: структуры, массивы, преобразования, regex

Этот раздел содержит описание функций, предназначенных для работы с различными типами данных: объектами, структурами, массивами и строками.

Функции позволяют выполнять операции преобразования, объединения, поиска, разбиения и итерации, а также работать с регулярными выражениями.


Функции для работы с объектами

BreakDynamic

Описание: Функция позволяет разложить произвольный объект на составные элементы.

  1. На вход всегда принимается произвольный объект типа Dynamic. Для выхода пользователь создает пины, задает их типы и указывает, какие предполагаемые поля войдут в его состав.
  2. В случае если для данного объекта существует такое поле, то его значение передается на выход.

Inputs

НазваниеТипОписание
ObjectWildcard:Dynamic singleПринимает любой объект

Outputs

НазваниеТипОписание
НастраиваемыйНастраиваемыйПользователь может добавить и настроить Пины в инспекторе. Пины могут быть массивом

BreakStruct

Описание: Функция автоматически раскладывает структуру на ее свойства при установлении входящей связи. Свойства первого уровня вложенности отражаются в виде исходящих пинов.

Inputs

НазваниеТипОписание
ValueWildcard:Struct singleПринимает любую структуру

Outputs

НазваниеТипОписание
-Тип и количество пинов зависят от состава входящей структурыПины добавляются автоматически, при установке входящей связи

ConvertToDynamic

Описание: Преобразует объекты типа Struct, а так же массив Dynamic в Dynamic single (JSON)

Inputs

НазваниеТипОписание
ValueWildcard: Any Struct single/array, Dynamic ArrayИсходное значение. Структура или массив структур.

Outputs

НазваниеТипОписание
ResultDynamicВозвращает преобразованное значение

DynamicMerge

Описание: Функция принимает на вход два объекта типа Dynamic и выполняет объединение их содержимого.

  • Объединение происходит путем слияния второго объекта с первым.
  • При слиянии осуществляется проверка на уникальность полей. В случае если в объединяемых объектах существуют одинаковые поля, значение исходного поля заменяется значением второго объекта.
  • Слияние строк происходит в порядке расположения пинов сверху вниз.

Inputs

НазваниеТипОписание
ObjectDynamicИсходный объект
ValueDynamicОбъект, который планируется слить с исходным объектом

Outputs

НазваниеТипОписание
ResultDynamicРезультат объединения двух объектов

DynamicContains

Описание: Функция осуществляет проверку на наличие заданного поля в объекте и активирует последовательность Contains, если поле найдено, или NotContains если не найдено.

Inputs

НазваниеТипОписание
InОбщие параметры для функций
ObjectDynamicОбъект, в котором будет выполнена проверка наличия поля FieldName
ValueStringНазвание проверяемого поля

Outputs

НазваниеТипОписание
ContainsExecПоследовательность активна, если поле найдено
NotContainsExecПоследовательность активна, если поле НЕ найдено

MakeStruct

Описание: Функция устанавливает исходящую связь со структурой и позволяет задать значения ее свойств. Свойства первого уровня вложенности отражаются в виде входящих пинов.

Inputs

НазваниеТипОписание
*Типы и количество пинов зависят от состава конкретной структурыПины добавляются автоматически, при установке исходящей связи.

Outputs

НазваниеТипОписание
ResultWildcard: Any struct (single)Устанавливает связь с пинами типа "Struct"

ReturnNull

Описание: Функция возвращает Null для пинов, с которым будет установлена связь.

В случае с блоками автоматизации, если для входящих пинов не указано значение, то будет передано значение по умолчанию для указанного типа: "", "0" и т.д.
Однако некоторые запросы к API ожидают получить в модели именно Null, для этого понадобится данная функция.

Outputs

НазваниеТипОписание
NullWildcard: any array, Dynamic:Single, String:Single, Struct:SingleВозвращает Null в качестве значений пина

SetMembersInStruct

Описание: Функция позволяет внести изменение в значение конкретных свойств структуры.

  • Блок создается с доступным для выбора типом структуры
  • На вход функции принимается вся структура. В инспекторе пользователь может указать, для каких свойств структуры нужно задать собственное значение
  • Выбранные пользователем свойства отображаются, как входящие пины функции, с которыми можно установить связь или задать контрол
  • На выходе функции будет представлена структура с измененными значениями

Inputs

НазваниеТипОписание
InОбщие параметры для функций
ValueWildcard: Struct singleПринимает на вход структуру
--По умолчанию, пины свойств структуры будут отсутствовать. Их нужно указать в настройках конфигурации в инспекторе.

Outputs

НазваниеТипОписание
OutExecПин вызова функции
ResultStructНа выходе будет указанный тип структуры с обновленными значениями указанных свойств

Функции для работы с массивами

ArrayAddElement

Описание: Функция добавляет элемент к входящему массиву и возвращает обновленный массив.

Inputs

НазваниеТипОписание
InОбщие параметры для функций
ArrayWildcard: Any arrayПринимает и изменяет массив. Тип пина для wildcard устанавливается на все пины.
ElementWildcard: Any singleПринимает на вход элемент, который будет добавлен в массив. Тип пина для wildcard устанавливается на все пины.

Outputs

НазваниеТипОписание
OutExecПин вызова функции
ResultWildcard: Any arrayВозвращает измененный массив. Тип пина для wildcard устанавливается на все пины.

ArrayAny

Описание: Функция принимает на вход массив и возвращает true, если массив содержит хотя бы один элемент.

Inputs

НазваниеТипОписание
ArrayWildcard: Any arrayПринимает на вход массив для проверки на наличие в нем элементов

Outputs

НазваниеТипОписание
ResultBoolВозвращает значение по результатам проверки

ArrayContains

Описание: Функция принимает массив любого типа и одно значение того же типа, проверяет наличие этого значения среди элементов массива и возвращает булево значение true/false.

Inputs

НазваниеТипОписание
ArrayWildcard: Any arrayПринимает на вход массив для проверки на наличие в нем элементов
ElementWildcard: SingleИскомый элемент массива с тем же типом

Outputs

НазваниеТипОписание
ResultBoolВозвращает значение по результатам проверки

ArrayCreate

Описание: Функция инициализации и наполнения массива

Inputs

НазваниеТипОписание
aWildcard: SingleЭлемент, который будет добавлен в состав массива

Outputs

НазваниеТипОписание
ResultWildcard: ArrayВозвращает созданный массив

ArrayExcept

Описание: Функция принимает на вход два Wildcard массива, возвращает массив, содержащий все элементы первого массива, которых нет во втором массиве.

Тип наследуется для всех 3-х пинов при установке/снятии связи.

Inputs

НазваниеТипОписание
FirstWildcard: Any arrayПринимает любой массив, тип устанавливается на все пины блока, если еще не был установлен.
SecondWildcard: Any arrayПринимает любой массив, тип устанавливается на все пины блока, если еще не был установлен.

Outputs

НазваниеТипОписание
ResultWildcard: Any arrayВозвращает массив элементов первого массива, которых нет во втором массиве.

ArrayIntersect

Описание: Функция принимает на вход два Wildcard массива, вычисляет пересечение массивов и возвращает массив элементов, присутствующих во всех переданных в функцию массивах.

Тип наследуется для всех 3-х пинов при установке/снятии связи.

Inputs

НазваниеТипОписание
FirstWildcard: Any arrayПринимает любой массив, тип устанавливается на все пины блока, если еще не был установлен.
SecondWildcard: Any arrayПринимает любой массив, тип устанавливается на все пины блока, если еще не был установлен.

Outputs

НазваниеТипОписание
ResultWildcard: Any arrayВозвращает массив элементов первого массива, которых нет во втором массиве.

ArrayFirst

Описание: Функция принимает на вход массив и возвращает первый по счету элемент.

Inputs

НазваниеТипОписание
ArrayWildcard: Any arrayПринимает на вход массив. Значение wildcard устанавливается парно на входящий и исходящий пин.

Outputs

НазваниеТипОписание
ResultWildcardВозвращает первый по счету элемент. Значение wildcard устанавливается парно на входящий и исходящий пин.

ArrayGetValue

Описание: Функция принимает на вход массив и возвращает элемента массива по указанному индексу.

Inputs

НазваниеТипОписание
ArrayWildcard: Any arrayПринимает на вход массив. Значение wildcard устанавливается парно на входящий и исходящий пин.
ElementNumberIntegerИндекс элемента массива

Outputs

НазваниеТипОписание
ResultWildcardВозвращает элемент массива по указанному индексу. Значение wildcard устанавливается парно на входящий и исходящий пин.

ArrayTryGetValue

Описание: Функция принимает на вход массив и возвращает элемента массива по указанному индексу с возможностью обработать исключение, если элемент по указанному индексу не найден.

Inputs

НазваниеТипОписание
InОбщие параметры для функций
ArrayWildcard: Any arrayПринимает на вход массив. Значение wildcard устанавливается парно на входящий и исходящий пин.
ElementNumberIntegerИндекс элемента массива

Outputs

НазваниеТипОписание
Ok, FailedОбщие параметры для функций
ResultWildcardНайденный элемент массива
IsSuccessBooleanРезультат исполнения функции в виде логического значения

ArrayLength

Описание: Принимает на вход любой массив и возвращает количество элементов в массиве.

Inputs

НазваниеТипОписание
ValueWildcard: Any arrayПринимает на вход любой массив

Outputs

НазваниеТипОписание
ResultIntВозвращает количество элементов в массиве

ArraySelect

Описание: Функция принимает на вход массив структур и создает массивы элементов данных структур

Inputs

НазваниеТипОписание
ValueWildcard:Struct: Any arrayИсходная структура

Outputs

НазваниеТипОписание
Названия пинов берутся из исходной структурыТип и количество пинов зависят от свойств исходной структурыПины создаются автоматически, в зависимости от свойств исходной структуры

ArraySplit

Описание: Функция принимает на вход любой массив и размер массивов для деления. Затем в цикле проходит по исходному массиву и итеративно возвращает новые массивы с указанным кол-вом элементов.

Inputs

НазваниеТипОписание
InОбщие параметры для функций
ArrayWildcard: Any arrayИсходный массив, который необходимо разбить на подмассивы
SizeIntegerКоличество элементов в подмассивах

Outputs

НазваниеТипОписание
LoopExecПин вызова, который активируется каждую итерацию цикла
SubArrayWildcard: Any arrayНовые массивы с заданным кол-вом элементов, создаваемые итеративно в результате выполнения функции
CompletedWildcard: Any arrayПин вызова, который активируется по завершению работы цикла

ArrayUnion

Описание: Возвращает массив элементов в объединении данных двух и более массивов, без дубликатов

Inputs

НазваниеТипОписание
aWildcard: Any arrayМассив
bWildcard: Any arrayМассив

Outputs

НазваниеТипОписание
ResultWildcard: Any arrayИтоговый объединенный массив

Функции итераций

ForEach

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

  • При каждой итерации отдает элемент массива и его индекс ElementIndex.
  • При каждой итерации цикла вызывается последовательность Loop.
  • После прерывания цикла вызывается последовательность Completed.

Тип пина обоюдно наследуется между Array и ArrayElement. Массив/сингл закреплен, наследуется именно тип.

Inputs

НазваниеТипОписание
InОбщие параметры для функций
ArrayWildcard: Any arrayПринимает на вход любой массив для дальнейшей работы с ним. Тип данного пина связан с типом пина Array Element.

Outputs

НазваниеТипОписание
LoopExecПоследовательность, вызываемая каждую итерацию
ArrayElementWildcard: Any singleПринимает тип данных от входящего массива или от установки связи. Тип данного пина связан с типом пина Array. При выполнении итерации отдает на выход элемент массива.
Element IndexIntegerИндекс элемента для данной итерации
CompletedExecПоследовательность вызываемая по завершению цикла

ForEachWithBreak

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

  • При каждой итерации отдает элемент массива и его индекс ElementIndex.
  • При каждой итерации цикла вызывается последовательность Loop.
  • После прерывания цикла вызывается последовательность Completed.
  • Если Condition == True вызывается последовательность Completed.

Тип пина обоюдно наследуется между Array и ArrayElement. Массив/сингл закреплен, наследуется именно тип.

Inputs

НазваниеТипОписание
InОбщие параметры для функций
ArrayWildcard: Any arrayПринимает на вход любой массив для дальнейшей работы с ним. Тип данного пина связан с типом пина Array Element.
ConditionBooleanЗначение переменной для остановки цикла

Outputs

НазваниеТипОписание
LoopExecПоследовательность, вызываемая каждую итерацию
ArrayElementWildcard: Any singleПринимает тип данных от входящего массива или от установки связи. Тип данного пина связан с типом пина Array. При выполнении итерации отдает на выход элемент массива.
Element IndexIntegerИндекс элемента для данной итерации
CompletedExecПоследовательность вызываемая по завершению цикла

DoWhile

Описание: Цикл, гарантированно вызывающий последовательность хотя бы один раз.

  • При каждой последующей итерации проверяется значение входящего boolean условия. Если оно истинно - цикл продолжается. Если нет - прекращается.
  • После прерывания цикла вызывается последовательность Complete.

Inputs

НазваниеТипОписание
InОбщие параметры для функций
ConditionBooleanЗначение, определяющее, зацикливается последовательность или нет.

Outputs

НазваниеТипОписание
LoopExecВызывает последовательность, пока условие Condition == True.
CompletedExecВызывает последовательность, если условие Condition == False

WhileDo

Описание: Цикл, вызывающий последовательность

  • Функция циклично вызывает последовательность до тех пор, пока условие, принимаемое на вход - истинно.
  • После прерывания цикла вызывается последовательность Complete.

Отличается от DoWhile тем, что проверяет принимаемое на вход значение ДО первой итерации. И если входящее значение было false - не выполняется ни разу.

Inputs

НазваниеТипОписание
InОбщие параметры для функций
ConditionBooleanЗначение, определяющее, зацикливается последовательность или нет.

Outputs

НазваниеТипОписание
LoopExecВызывает последовательность, пока условие Condition == True.
CompletedExecВызывает последовательность, если условие Condition == False

Функции для работы со строками

ConvertToString

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

Inputs

НазваниеТипОписание
ValueWildcard: Any singleПринимает на вход любое значение

Outputs

НазваниеТипОписание
ResultStringПриведенное к строке входящее значение

StringConcat

Описание: Функция принимает на вход строковые значения, конкатенирует их и возвращает получившуюся строку в результате слияния.

  • Пользователь может добавить и удалить дополнительные входящие пины через карточку функции
  • Слияние строк происходит в порядке расположения пинов сверху вниз

Inputs

НазваниеТипОписание
ValueStringСтрока

Outputs

НазваниеТипОписание
ResultStringРезультат конкатенации

StringContains

Описание: Функция позволяет определить, встречается ли указанная подстрока внутри заданной строки.

Функция осуществляет проверку, и активирует последовательность Contains, если подстрока найдена, или NotContains если не найдена.

Inputs

НазваниеТипОписание
InОбщие параметры для функций
StringStringИсходная строка
SubstringStringПодстрока

Outputs

НазваниеТипОписание
ContainsExecПоследовательность активна, если подстрока найдена
NotContainsExecПоследовательность активна, если подстрока НЕ найдена

Parse

Описание: Преобразует строковое значение в эквивалентное ему значение другого базового типа

Если преобразование невозможно - в качестве результата будет возвращено значение по умолчанию для данного типа.

Inputs

НазваниеТипОписание
ValueStringСтрока, подлежащая преобразованию

Outputs

НазваниеТипОписание
ResultWildcard: SingleПреобразованное значение

TryParse

Описание: Преобразует строковое значение в эквивалентное ему значение другого базового типа

  • Возвращает boolean значение, указывающее, успешно ли выполнено преобразование, и активирует последовательность в зависимости от результата парсинга
  • Если преобразование невозможно - в качестве результата будет возвращено значение по умолчанию для данного типа

Inputs

НазваниеТипОписание
InОбщие параметры для функций
ValueStringСтрока, подлежащая преобразованию

Outputs

НазваниеТипОписание
Ok, FailedОбщие параметры для функций
ResultWildcard: SingleПреобразованное значение
IsSuccessBooleanВозвращает значение, указывающее, успешно ли выполнено преобразование

ToLower

Описание: Преобразует строковое значение в эквивалентное ему значение в нижнем регистре символов

Inputs

НазваниеТипОписание
SourceStringСтрока, подлежащая преобразованию

Outputs

НазваниеТипОписание
ResultSourceПреобразованное значение в нижнем регистре символов

ToUpper

Описание: Преобразует строковое значение в эквивалентное ему значение в верхнем регистре символов

Inputs

НазваниеТипОписание
SourceStringСтрока, подлежащая преобразованию

Outputs

НазваниеТипОписание
ResultSourceПреобразованное значение в верхнем регистре символов

Trim

Описание: Функция принимает на вход строку и возвращает новую строку, в которой удалены все начальные и конечные символы пробела

Inputs

НазваниеТипОписание
SourceStringСтрока, подлежащая преобразованию

Outputs

НазваниеТипОписание
ResultSourceПреобразованное значение

RegexReplace

Описание: Заменяет все совпадения регулярного выражения в строке на указанный текст

Inputs

НазваниеТипОписание
ValueStringСтрока для поиска соответствия в ней
PatternStringШаблон регулярного выражения (справка по регулярным выражениям .NET (C#))
ReplacementStringСтрока, которой будет заменено совпадение
OptionsStringПараметры для регулярных выражений. Если требуется несколько, то параметры перечисляются через запятую.

Outputs

НазваниеТипОписание
ResultStringРезультат замены значения в строке

RegexEscape

Описание: Используется для экранирования специальных символов в строке, чтобы они могли быть использованы в регулярных выражениях, как обычные символы. Функция возвращает строку, в которой специальные символы преобразуются в экранированный формат, который можно использовать для точного сопоставления в регулярных выражениях.

Inputs

НазваниеТипОписание
ValueStringСтрока для экранирования

Outputs

НазваниеТипОписание
ResultStringРезультат экранирования

RegexUnescape

Описание: Используется для отмены экранирования, выполненного функцией RegexEscape. Принимает строку с экранированными специальными символами, восстанавливая их оригинальное значение. Метод возвращает строку, в которой экранированные символы возвращаются к их исходному виду, что удобно при работе с регулярными выражениями.

Inputs

НазваниеТипОписание
ValueStringСтрока для отмены экранирования функцией

Outputs

НазваниеТипОписание
ResultStringРезультат восстановления

RegexIsMatch

Описание: Функция принимает на вход строку для проверки, шаблон и опции шаблона, чтобы проверить на совпадение строки с шаблоном.

Inputs

НазваниеТипОписание
ValueStringСтрока для поиска соответствия в ней
PatternStringШаблон регулярного выражения (справка по регулярным выражениям .NET (C#))
OptionsStringПараметры для регулярных выражений. Если требуется несколько, то перечисляются через запятую.

Outputs

НазваниеТипОписание
ResultBooleanЗначение true, если регулярное выражение обнаруживает хотя бы одно соответствие. В противном случае - значение false.

RegexMatch

Описание: Ищет первое вхождение регулярного выражения в указанной строке и возвращает структуру, содержащую информацию о найденном совпадении

Inputs

НазваниеТипОписание
ValueStringСтрока для поиска соответствия в ней
PatternStringШаблон регулярного выражения (справка по регулярным выражениям .NET (C#))
OptionsStringПараметры для регулярных выражений. Если требуется несколько, то перечисляются через запятую.

Outputs

НазваниеТипОписание
MatchStruct:RegexMatchРезультат поиска

Struct - RegexMatch

Описание структуры Struct:RegexMatch:

ПараметрыТипОписание
NameStringИмя группы совпадения в регулярном выражении. Оно используется в случае, если в регулярном выражении используются именованные группы для определения совпадений
GroupsStruct (array)Коллекция объектов, представляющих группы совпадений в регулярном выражении, включая всё совпадение в целом и каждую отдельную группу.
Структура Groups
- Дублирует структуру RegexMatch за исключением параметра Groups
- Все пины в ней являются массивом
- Все параметры относятся к каждой конкретной группе
CapturesStruct (array)Коллекция объектов, представляющая все захваченные под-совпадения внутри найденного совпадения.
Параметры
- Index (Integer): Функционал поименно совпадает с описанным в родительской структуре, но все параметры относятся к под-совпадениям
- Length (Integer)
- Value (String)
SuccessBooleanПоле, показывающее, было ли найдено хотя бы одно совпадение с регулярным выражением в строке.
ValueStringНайденное совпадение с регулярным выражением
IndexIntegerИндекс первого символа совпадения в исходной строке
LengthIntegerДлинна найденного совпадения в символах

RegexMatches

Описание: Дублирует функционал RegexMatch, но возвращает все совпадения регулярного выражения в указанной строке и возвращает коллекцию из объектов.

RegexSplit

Описание: Разбивает входную строку на подстроки, используя регулярное выражение как разделитель.

Inputs

НазваниеТипОписание
ValueStringСтрока для поиска соответствия в ней
PatternStringШаблон регулярного выражения (справка по регулярным выражениям .NET (C#))
OptionsStringПараметры для регулярных выражений. Если требуется несколько, то перечисляются через запятую.

Outputs

НазваниеТипОписание
ResultString (array)Результат разбиения строки

Список опций функций Regex

ПараметрОписание
CompiledОптимизирует регулярное выражение для повышения производительности. При использовании этой опции регулярное выражение будет скомпилировано во время создания экземпляра Regex.
CultureInvariantУказывает игнорирование региональных языковых различий (инвариантного языка и региональных параметров).
ECMAScriptВключает синтаксис ECMAScript. Данный синтаксис более строгий и соответствует стандарту ECMAScript.
ExplicitCaptureПо умолчанию каждая скобочная группа в регулярном выражении создает захватывающую группу в результате. Эта опция позволяет создавать только захватывающие группы, обозначенные знаком вопроса ?.
IgnoreCaseИгнорировать регистр символов при сопоставлении.
IgnorePatternWhitespaceИгнорировать пробелы и знаки табуляции в регулярном выражении, позволяя форматировать его более удобным образом.
MultilineМультилайновый режим, в котором символы начала и конца строки ^ и $ соответствуют началу и концу каждой строки, а не всего ввода.
NonBacktrackingВключает сопоставление с использованием подхода, который избегает возврата к предыдущим шагам и гарантирует линейную обработку относительно длины ввода. Некоторые возможности недоступны при установке этой опции, включая балансирующие группы, обратные ссылки, положительные и отрицательные опережающие и ретроспективные проверки, атомарные группы. Группы захвата также игнорируются, таким образом, доступен только захват для верхне-уровневого сопоставления.
RightToLeftИспользовать поиск справа налево, а не слева направо.
SingleLineОднострочный режим, в котором символ новой строки игнорируется и точка . соответствует любому символу, включая символ новой строки.

Функции генерации данных

NewGuid

Описание: Функция генерации уникального GUID

Outputs

НазваниеТипОписание
GuidGuidПри выполнении генерируется уникальный идентификатор типа GUID