Power Automate: Обновление списка Microsoft с высшими значениями столбцов из CSV без дубликатов

Вопрос или проблема

У меня есть список Microsoft, который обновляется с помощью Power Automate. Когда создается или изменяется файл CSV, срабатывает поток, чтобы проверить, существует ли уже соответствующая запись. Если да, поток обновляет существующую запись; если нет, он создает новую запись.

введите описание изображения здесь

Текущая настройка:

В моем Get Items я использую фильтр запроса: Title eq ‘concat(items(‘Apply_to_each’)[‘X’], ‘|’, items(‘Apply_to_each’)[‘Y’])’

В моем условии я проверяю, если длина возвращаемых элементов больше нуля: length(outputs(‘Get_items’)?[‘body/value’]) is greater than 0

Желаемые изменения:

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

Столбец X Столбец Y Столбец Z
123456 10 456789
123456 10 456789
123456 10 789456
789456 30 852047

Цель:

Я хочу, чтобы мой поток создавал две записи в списке Microsoft, так как есть только два уникальных заголовка. Если запись уже существует, она должна обновляться на основе наибольшего значения в Столбце Z.

Столбец X Столбец Y Столбец Z
123456 10 789456
789456 30 852047

Я пытался изменить поток следующим образом:

Инициализация переменных

  • CurrentItemTitle (Строка)
  • CurrentDelivery (Целое число)
  • BestItemID (Целое число)
  • BestMatchDelivery (Целое число)

Применить ко всем (Строки CSV)

  • Установить CurrentItemTitle
  • Установить CurrentDelivery
  • Получить элементы
  • Условие: Проверить, существуют ли элементы
    • Если Да:
      • Применить ко всем (Существующие элементы)
        • Условие: Проверить, если Delivery > BestMatchDelivery
          • Если Да:
            • Установить BestMatchDelivery
            • Установить BestItemID
          • Если Нет: Ничего не делать
    • Если Нет: Ничего не делать

Условие: Проверить, если BestItemID > 0

  • Если Да: Обновить элемент в списке
  • Если Нет: Создать новый элемент в списке

Ответ или решение

Обновление Microsoft List с использованием Power Automate для получения максимальных значений столбца из CSV без дубликатов

Ваша задача — использовать Power Automate для обновления Microsoft List на основе данных из CSV-файла, следуя принципам, касающимся уникальности записей и максимальных значений в определенном столбце. Рассмотрим, как оптимизировать существующий поток для достижения этой цели.

Текущая конфигурация потока

На данном этапе вы уже создали поток, который срабатывает при создании или изменении CSV-файла. Этот поток выполняет следующие действия:

  1. Соединение с CSV-файлом и извлечение данных.
  2. Получение элементов Microsoft List с использованием фильтрации по заголовку.
  3. Проверка существования записей и их обновление или создание.

Желаемая модификация потока

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

1. Инициализация переменных

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

  • CurrentItemTitle (String): для хранения текущего заголовка, сформированного из столбцов X и Y.
  • CurrentDelivery (Integer): для хранения значения, соответствующего столбцу Z.
  • BestItemID (Integer): для хранения идентификатора записи с наибольшим значением столбца Z.
  • BestMatchDelivery (Integer): для хранения наибольшего значения, найденного в процессе.

2. Применение цикла "Для каждого" (CSV Rows)

Переберите строки из CSV:

  1. Установите CurrentItemTitle: задайте заголовок, объединяя значения из столбцов X и Y.

    CurrentItemTitle = concat(items('Apply_to_each')['X'], '|', items('Apply_to_each')['Y'])
  2. Установите CurrentDelivery: присвойте значение из столбца Z текущему элементу.

3. Получение элементов

Используйте действие Get Items с фильтом, чтобы получить записи, соответствующие текущему заголовку:

Filter Query: Title eq 'CurrentItemTitle'

4. Проверка существования записей

Условие: Существует ли элемент?

Если запись найдена, выполните вложенный цикл Для каждого по всем полученным элементам:

  • Проверка: доставлено ли текущее значение больше BestMatchDelivery?

    • Если да:
    • Установите BestMatchDelivery: текущий элемент.
    • Установите BestItemID: идентификатор текущего элемента.

Иначе оставьте значения без изменений.

Условие: BestItemID больше 0?

  • Если да: обновите элемент списка с использованием BestItemID и BestMatchDelivery.
  • Если нет: создайте новый элемент с использованием текущих значений.

5. Итоговая структура

Ваш поток Power Automate будет выглядеть следующим образом:

  1. Инициализация переменных.
  2. Применение цикла для обхода CSV-файла.
  3. Получение элементов из списка.
  4. Проверка существования элементов и обновление/создание новых записей.

Заключение

Данная модификация потока Power Automate позволит вам эффективно обновлять Microsoft List, избегая дубликатов и гарантируя, что для каждой уникальной записи будет установлено максимальное значение из столбца Z. Подобный подход не только оптимизирует ваш процесс обработки данных, но и обеспечивает точность и актуальность информации в вашем списке.

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

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

Капча загружается...