Поделиться через


Создание переменных для хранения значений и управления ими в Azure Logic Apps

Область применения: Azure Logic Apps (Потребление + Стандартный)

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

Вы можете создавать переменные для таких типов данных, как integer, float, boolean, string, array и object. После создания переменной вы можете выполнять другие задачи, например:

  • Получить значение переменной или сослаться на него.
  • Увеличивать или уменьшать переменную на постоянное значение, также известное как приращение и уменьшение.
  • Назначать другое значение переменной.
  • Вставлять или добавлять значение переменной как последний элемент в строке или массиве.

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

Внимание

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

Необходимые компоненты

Следующие действия используют портал Azure, но с соответствующим расширением Azure Logic Apps можно также использовать следующие средства для создания рабочих процессов приложения логики:

В зависимости от того, есть ли у вас рабочий процесс "Потребление" или "Стандартный", выполните соответствующие действия.

Инициализация переменной

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

  1. В портал Azure откройте рабочий процесс в конструкторе.

  2. В конструкторе выполните следующие общие действия, чтобы добавить действие с именем Initialize переменной.

  3. Укажите следующие сведения о переменной:

    Свойство Обязательное поле значение Описание
    Полное имя Да <имя-переменной> Имя переменной, которую требуется увеличить
    Тип Да <тип-переменной> Тип данных для переменной
    Значение No <начальное-значение> Начальное значение переменной

    Совет. Хотя необязательно, задайте значение в качестве рекомендации, чтобы всегда знать начальное значение переменной.

    В следующем примере показаны начальные значения для этой выборки переменной:

    Снимок экрана: портал Azure, рабочий процесс потребителя и действие с именем инициализация переменной.

  4. Теперь продолжайте добавлять необходимые действия для вашего сценария. По завершении на панели инструментов конструктора выберите Сохранить.

При переходе с конструктора на представление кода в следующем примере показано, как действие инициализации переменной отображается в определении рабочего процесса, которое находится в формате нотации объектов JavaScript (JSON):

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [ 
            {
               "name": "Count",
               "type": "Integer",
               "value": 0
            }
         ]
      },
      "runAfter": {}
   }
},

Примечание.

Хотя действие инициализации переменной "variables" имеет объект, структурированный как массив, действие может создавать только одну переменную в один раз. Каждая новая переменная требует индивидуального действия Инициализировать переменную.

В следующих примерах показаны другие типы переменных:

Логическая переменная

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myBooleanVariable",
               "type": "boolean",
               "value": false
            }
         ]
      },
      "runAfter": {}
   }
},

Переменная с плавающей запятой

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myFloatVariable",
               "type": "float",
               "value": 1.99999
            }
         ]
      },
      "runAfter": {}
   }
},

Строковая переменная

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myStringVariable",
               "type": "string",
               "value": "lorem ipsum"
            }
         ]
      },
      "runAfter": {}
   }
},

Переменная объекта

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "MyObjectVariable",
               "type": "object",
               "value": {
                  "ProductItem": {
                     "Name": "myProductName",
                     "ProductID": "000000"
                  }
               }
            }
         ]
      },
      "runAfter": {}
   }
},

Массив с целыми числами

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myArrayVariable",
               "type": "array",
               "value": [1, 2, 3]
            }
         ]
      },
      "runAfter": {}
   }
},

Массив со строками

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myArrayVariable",
               "type": "array",
               "value": ["red", "orange", "yellow"]
            }
         ]
      },
      "runAfter": {}
   }
},

Получение значения переменной

Чтобы получить или ссылаться на содержимое переменной, можно использовать функцию переменных () в конструкторе рабочих процессов и редакторе представления кода. Когда вы ссылаетесь на переменную, используйте имя переменной в качестве токена, а не имя действия, что является обычным способом ссылки на выходные данные действия.

Например, следующее выражение получает элементы из переменной массива, созданной variables() в этом руководстве с помощью функции. Функция string() возвращает содержимое переменной в строковом формате: "1, 2, 3, red"

@{string(variables('myArrayVariable'))}

Увеличение переменной

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

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

  2. Укажите следующие сведения для этого действия:

    Свойство Обязательное поле значение Описание
    Полное имя Да <имя-переменной> Имя переменной, которую требуется увеличить
    Значение Нет <величина-увеличения> Значение, используемое для увеличения переменной. Значение по умолчанию — 1.

    Совет. Хотя это необязательно, задайте это значение в качестве рекомендации, чтобы вы всегда знали конкретное значение для увеличения переменной.

    В следующем примере показаны примеры значений для этого действия:

    Снимок экрана: портал Azure, рабочий процесс потребления и действие с именем добавочной переменной.

  3. Закончив работу, сохраните свой рабочий процесс. На панели инструментов конструктора выберите Сохранить.

При переходе из конструктора в представление кода в следующем примере показано, как действие добавочной переменной отображается в определении рабочего процесса, которое находится в формате JSON:

"actions": {
   "Increment_variable": {
      "type": "IncrementVariable",
      "inputs": {
         "name": "Count",
         "value": 1
      },
      "runAfter": {}
   }
},

Пример: создание счетчика цикла

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

  1. В портал Azure создайте ресурс приложения логики потребления с пустым рабочим процессом. Добавьте триггер, который проверяет наличие нового сообщения электронной почты и любых вложений.

    В этом примере используется триггер Office 365 Outlook для события Когда приходит новое сообщение электронной почты. Вы можете настроить этот триггер так, чтобы он срабатывал, только если в сообщении электронной почты есть вложения. Однако вы можете использовать любой соединитель, который проверяет наличие новых сообщений электронной почты с вложениями, например соединитель Outlook.com.

  2. Чтобы проверить наличие вложений и передать эти вложения в рабочий процесс, выберите "Да " для следующих свойств:

    • Только с вложением
    • Включить вложения

    Снимок экрана: портал Azure, рабочий процесс потребления и свойства, выбранные для проверки и включения вложений.

  3. Добавьте действие инициализации переменной, чтобы создать целочисленную переменную с именем Count с начальным значением0.

  4. Чтобы выполнить итерацию по каждому вложению, выполните следующие общие действия, чтобы добавить действие с именем "Для каждого цикла".

  5. В цикле выберите внутри поля с именем Select an output from previous steps. После появления списка динамического содержимого в разделе "Когда появится новое сообщение электронной почты", выберите "Вложения".

    Снимок экрана: рабочий процесс потребления, для каждого цикла открывается список динамического содержимого и выбранные выходные данные вложения.

    Свойство Attachments передает массив, содержащий вложения электронной почты из выходных данных триггера в цикл, чтобы рабочий процесс переитерировался.

  6. В цикле For each выберите Добавить действие.

  7. Выполните следующие общие действия, чтобы добавить действие с именем добавочной переменной в цикл.

    Примечание.

    Убедитесь, что действие Увеличение переменной отображается в цикле. Если действие отображается за пределами цикла, перетащите действие в цикл.

  8. В действии Увеличить переменную в списке Имя выберите переменную Счетчик. Задайте для свойства Value значение 1.

    Снимок экрана: рабочий процесс потребления с выбранной переменной с именем Count.

  9. Под циклом добавьте любое действие, которое отправляет вам количество вложений. В своем действии включите значение из переменной Счетчик, например:

    Снимок экрана: рабочий процесс потребления и действие, которое отправляет результаты.

  10. Закончив работу, сохраните свой рабочий процесс. На панели инструментов конструктора выберите Сохранить.

Тестирование рабочего процесса

  1. Чтобы вручную активировать рабочий процесс, выполните соответствующий шаг:

    Рабочий процесс потребления

    На панели инструментов рабочего процесса конструктора нажмите кнопку "Запустить триггер">, чтобы вручную запустить рабочий процесс.

    Стандартный рабочий процесс

    В меню "Рабочий процесс" выберите пункт Обзор. На панели инструментов нажмите кнопку "Выполнить".>

  2. Отправьте электронное сообщение с одним или несколькими вложениями по электронному адресу, используемому в этом примере.

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

При переходе с конструктора на представление кода в следующем примере показано, как появляется цикл для каждого цикла вместе с действием добавочной переменной в определении рабочего процесса, которое находится в формате JSON:

"actions": {
   "For_each": {
      "type": "Foreach",
      "actions": {
         "Increment_variable": {
           "type": "IncrementVariable",
            "inputs": {
               "name": "Count",
               "value": 1
            },
            "runAfter": {}
         }
      },
      "foreach": "@triggerBody()?['Attachments']",
      "runAfter": {
         "Initialize_variable": [ "Succeeded" ]
      }
   }
},

Уменьшение переменной

Чтобы уменьшить или уменьшить переменную по определенному константном значению, выполните действия по добавке переменной , за исключением того, что вы добавляете действие переменной Decrement в рабочий процесс. Это действие работает только с целочисленными переменными и переменными с плавающей запятой.

В следующей таблице описываются сведения о действии переменной Decrement:

Свойство Обязательное поле значение Описание
Полное имя Да <имя-переменной> Имя переменной, которую требуется уменьшить
Значение Нет <величина-увеличения> Значение для уменьшения переменной. Значение по умолчанию равно единице.

Совет. Хотя это необязательно, рекомендуется установить это значение, чтобы вы всегда знали конкретное значение для уменьшения своей переменной.

Если перейти от конструктора к представлению кода, в следующем примере показано, как действие переменной Decrement отображается в определении рабочего процесса, которое находится в формате JSON:

"actions": {
   "Decrement_variable": {
      "type": "DecrementVariable",
      "inputs": {
         "name": "Count",
         "value": 1
      },
      "runAfter": {}
   }
},

Задать переменную

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

  1. Найдите и выберите действие Задать переменную.

  2. Укажите имя переменной и значение, которое вы хотите присвоить. И новое значение, и переменная должны иметь один и тот же тип данных. Значение является обязательным, поскольку у этого действия нет значения по умолчанию.

В следующей таблице описываются сведения о действии "Задать переменную ".

Свойство Обязательное поле значение Описание
Полное имя Да <имя-переменной> Имя переменной, которую требуется изменить
Значение Да <новое-значение> Значение, которое требуется присвоить переменной. Оба должны иметь один и тот же тип данных.

Примечание.

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

  1. В цикле найдите и откройте параметры цикла.

  2. На основе типа рабочего процесса выполните соответствующие действия.

    • Потребление: измените параметр элемента управления параллелизмом с выключения на "Вкл.".

    • Стандартный: в разделе "Общие" измените параметр "Элемент управления параллелизмом" с "Выкл." на "Вкл.

  3. Перетащите ползунок Степень параллелизма на значение 1.

Если перейти от конструктора к представлению кода, в следующем примере показано, как действие set переменной отображается в определении рабочего процесса, которое находится в формате JSON:

В следующем примере текущее значение переменной Count изменяется на другое значение:

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [ {
               "name": "Count",
               "type": "Integer",
               "value": 0
          } ]
      },
      "runAfter": {}
   },
   "Set_variable": {
      "type": "SetVariable",
      "inputs": {
         "name": "Count",
         "value": 100
      },
      "runAfter": {
         "Initialize_variable": [ "Succeeded" ]
      }
   }
},

Добавление к переменной

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

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

    • Добавление к строковой переменной
    • Добавление к переменной-массиву
  2. Укажите значение для добавления в качестве последнего элемента в строке или массиве. Это значение обязательно.

В следующей таблице описаны сведения о действиях "Добавление к... ".

Свойство Обязательное поле значение Описание
Полное имя Да <имя-переменной> Имя переменной, которую требуется изменить
Значение Да <добавляемое-значение> Значение, которое вы хотите добавить, может иметь любой тип

Если перейти от конструктора к представлению кода, в следующем примере показано, как действие "Добавление к переменной массива " отображается в определении рабочего процесса, которое находится в формате JSON.

В следующем примере создается переменная массива и добавляется другое значение в качестве последнего элемента в массиве. В результате получится обновленная переменная, содержащая следующий массив: [1,2,3,"red"]

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [ {
            "name": "myArrayVariable",
            "type": "Array",
            "value": [1, 2, 3]
         } ]
      },
      "runAfter": {}
   },
   "Append_to_array_variable": {
      "type": "AppendToArrayVariable",
      "inputs": {
         "name": "myArrayVariable",
         "value": "red"
      },
      "runAfter": {
        "Initialize_variable": [ "Succeeded" ]
      }
   }
},

Следующие шаги