manually-removing-concurrency-control-flow-a-power-automate-flow

Ручное снятие ограничений контроля параллелизма с потока Power Automate

Ana NetoTechnical 2 Comments

Ключевой особенностью Flows является возможность ограничить количество потоков, которые могут выполняться одновременно для данного конкретного потока. Степень параллелизма может быть установлена в диапазоне от 1 до 100, что позволяет предотвратить перегрузку API, повысить производительность и улучшить целостность данных. Это особенно полезно для предотвращения дублирования триггеров. Например, если ваш триггер представляет собой веб-хук, который может срабатывать несколько раз, и нет уникальных идентификаторов для отсеивания дубликатов веб-хуков, вы можете включить ограничения параллелизма в сочетании с записью информации из веб-хука в файл Excel или базу данных и создать условие для проверки наличия этих данных перед продолжением потока.
Image

Однако, как только эта функция включена, нет пути назад… до сих пор!

Возможно, вы уже сталкивались с этой проблемой и даже пытались удалить триггер и заменить его. Или вы могли подумать об экспорте потока и его повторном импорте. К сожалению, эти методы приводят к ужасной ошибке Сбой сохранения потока с кодом 'CannotDisableTriggerConcurrency' и сообщением 'Для триггера… указана конфигурация параллелизма выполнения. Конфигурация параллелизма выполнения триггера не может быть удалена после указания'.'

Возможно, вы также стали жертвой того, что поток больше не срабатывает после установки Concurrency Control в значение On, и вы просто хотите вернуть его к тому состоянию, в котором он будет срабатывать. Известны случаи, когда поток отмечался как потенциально содержащий круговой цикл, и при сохранении потока вы получали следующее уведомление: Your flow was saved, but with a warning: Ваш поток может иметь круговую петлю. Действия в этом потоке могут привести к бесконечному циклу срабатывания. Убедитесь, что вы добавили соответствующие условные проверки, чтобы предотвратить самопроизвольное срабатывание этого потока.

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

К счастью, есть решение, требующее минимальных усилий: вы можете экспортировать Flow в .zip-файл, вручную обновить файл definition.json и импортировать его как новый Flow.

Экспорт потока

Это довольно простой процесс, экспорт потока выполняется на странице подробностей самого потока. Выберите Экспорт затем Пакет (.zip).

Image
Дайте пакету имя и выберите Экспорт.
Image
Откройте файл .zip, загруженный на ваш компьютер, и Извлечь все содержимое в выбранное вами место.
Image

Редактирование потока

Из извлеченного содержимого перейдите в раздел Microsoft.Flow -> потоки -> уникальный идентификатор папки потока -> затем откройте definition.json.

ImageImageImageImage
Используя выбранную вами программу для изменения файла definition.json, вы можете выполнить поиск (Ctrl + F) термина “conditions”, а затем удалить из кода следующий фрагмент:
,
"условия": [],
"runtimeConfiguration": { "concurrency": { "runs": 1 } }

Сохраните файл definition.json, перезаписав извлеченный файл definition.json. Убедитесь, что изменения вступили в силу. Если нет, то, скорее всего, вы пытались сохранить поверх файла definition.json в .zip-файле, а не в файле, который был извлечено из файла .zip.

Теперь вернитесь к основному содержимому извлеченного файла .zip, выделите папку и файл, щелкните правой кнопкой мыши и выберите Сжать в ZIP-файл. Дайте только что созданному файлу .zip имя по своему усмотрению.

ImageImage

Импортирование потока

Теперь вы готовы импортировать исправленный поток без ограничений контроля параллелизма обратно в Power Automate.

Перейдите в раздел Мои потоки -> выберите Импорт выпадающий список -> затем выберите Пакет импорта (Legacy).

Image
Выберите Загрузить -> Выберите новый .zip-файл, который вы только что создали -> затем выберите Открыть.
Image
Пройдите все необходимые этапы импорта, чтобы убедиться, что все соединения установлены. Вам необходимо обратить внимание на все восклицательные знаки и преобразовать их в букву X, как показано ниже.
Image

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

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

Адам

Адам Маурер

Главный операционный директор в Connecting Software

Автор:

Я являюсь операционным директором компании Connecting Software, управляя повседневной деятельностью на различных предприятиях. Я увлечен постоянным совершенствованием и повышением эффективности. Если вы хотите присоединиться к нашей замечательной команде в Словакии или на Мадейре, пожалуйста, свяжитесь со мной.

Comments 2

  1. Аватар для Джей-Джея

    Я попробовал все вышеперечисленное, и JSON-файлы получились правильными, однако когда я попытался импортировать файл, он все равно не позволил мне отключить контроль параллелизма даже после удаления его из JSON-файла.

  2. Аватар для Аны Нето Post
    Author

    Мы полагаем, что вы пытаетесь отредактировать файл definition.json из самого zip-файла, а не извлекаете сначала файл definition.json, а затем редактируете его - обратитесь к словам Адама Маурера в статье: "Сохраните файл definition.json, перезаписав извлеченный файл definition.json. Убедитесь, что изменения вступили в силу. Если нет, то, скорее всего, вы пытались сохранить поверх файла definition.json в .zip-файле, а не в файле, который был извлечен из .zip-файла".

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.