Разработайте поток Logic Apps в Azure, который отслеживает версии файлов SharePoint. При обнаружении существенного изменения версии сохраните файл в хранилище BLOB-объектов Azure

Я пытаюсь создать поток приложений логики в Azure, где, если файл в определенной папке сайта SharePoint обновляется, мне нужно проверить версию этого файла. Разделите основную и второстепенную версию. Если произошло изменение только второстепенной версии файла, нам не нужно ничего делать, но если основная версия файла изменена/обновлена, нам нужно сохранить файл в хранилище BLOB-объектов Azure.

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

Я создал поток приложения логики:

  1. Триггер для обнаружения создания или изменения какого-либо файла.
  2. Получение содержимого файла
  3. В функции составления я добавил функцию для извлечения основной версии файла SharePoint следующим образом: Split(triggerBody()?['{VersionNumber}'],'.')[0]
  4. В разделе условий первый параметр — это результат функции компоновки.

Проблема в том, что мне нужно получить предыдущую версию файла, чтобы я мог сравнить старую и новую версию файла из SharePoint, и если будет обнаружена более новая версия, сохранить ее в хранилище BLOB-объектов Azure.

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
73
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

По определению, любая версия, которая не заканчивается на .0, является второстепенной версией.

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

int(split(triggerBody()?['{VersionNumber}'],'.')[1])

Вот файл, который я только что изменил, это версия 1.1.

А вот файл опубликован как основная версия 2.0

Редактировать: Другой способ добиться того же результата — использовать в триггере условие триггера. Условие на скриншоте ниже использует формулу

@contains(triggerBody()?['{VersionNumber}'],'.0')

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

Спасибо @teylyn за ваш вклад. Решение сработало. Не могли бы вы также предложить какой-либо способ запускать приложения логики только тогда, когда пользователь нажимает кнопку публикации/повторной публикации на сайте SharePoint? Потому что сейчас мой триггер срабатывает каждый раз, когда в файл вносятся какие-либо изменения. Таким образом, даже если в документе происходит незначительное изменение, приложения логики срабатывают. Я хочу, чтобы он срабатывал только при обновлении основной версии.

raman 17.04.2024 03:13

Триггер When a file is created or modified (properties only) не сработает, если редактируется только содержимое документа. Он будет работать только в том случае, если одно из свойств изменилось. Триггера, связанного с публикацией документа, нет.

teylyn 17.04.2024 23:02

Есть ли другой способ заставить этот поток работать, используя любую другую платформу??

raman 18.04.2024 00:07

Вы можете использовать условие триггера. Я отредактировал свой ответ и добавил описание этого.

teylyn 18.04.2024 00:40

Я не вижу никакой опции в разделе «Массив» как @triggerOutputs()?[body/value] в функции триггера: «Когда файл создается или изменяется (только свойства)»

raman 23.04.2024 14:11

Я не знаю, что ты имеешь в виду. Вам необходимо открыть настройки триггера, добавить условие и ввести условие вручную. Он не отображается ни в одном диалоге. Как на скриншоте.

teylyn 25.04.2024 02:41

Другие вопросы по теме