Рабочий процесс Sharepoint 2013 обновить все элементы в словаре

Можно ли создать словарь, а затем выполнить фактическое действие (например, установить значение поля) для каждого элемента в этом словаре?

Цель - у меня есть список, в котором можно сказать «Тестовый список» (для простоты предположим, что в нем 4 столбца), и я запускаю рабочий процесс по пункту 1.

Пример "списка тестов"

Теперь, когда поле «Стоимость» обновляется для элемента с идентификатором 1, стоимость поиска изменится для элементов с идентификатором 3 и 5, но вычисленные поля в 3 и 5 не будут обновляться до тех пор, пока элементы не будут изменены каким-либо образом.

Решение на данный момент. Итак, что я сделал, это создал строковую переменную «domain / site / _api / web / lists ('test list') / items? $ Filter = Lookup on ID eq '([% CurrentItem: ID)»

для создания моего вызова "domain / site / _api / web / lists ('test list') / items? $ filter = Lookup on ID eq '1"

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

Проблема - теперь я видел много сообщений, показывающих, как вы можете перебирать этот словарь, чтобы получить из него значения, а затем регистрировать их в переменной, которую затем можно использовать для входа в историю или отправки электронной почты. Однако я действительно хочу что-то сделать с этими элементами в словаре, например установить 5-й столбец «скажем, дата изменена» на сегодняшний день, чтобы обновить вычисляемое поле.

после того, как мой словарь будет построен, можно, например, подсчитать цикл в моих словарных элементах (который в данном случае будет равен 2, это я уже достиг)


Первый цикл Получить следующий идентификатор из словаря> (3) обновить столбец 5 с сегодняшней датой (например, не обязательно должна быть дата, просто чтобы обновить ее) в элементе с идентификатором (3)

Второй цикл Получить следующий идентификатор из словаря> (5) обновить столбец 5 сегодняшней датой в элементе с идентификатором (5)


Я также думал об этом с помощью элемента обновления в цикле или If lookup ID = CurrentItem: ID, но я столкнулся с проблемами там. Я поднял еще один вопрос об использовании «ЕСЛИ» и «Обновить элемент», поскольку это действительно другой вопрос, и было бы полезно узнать, возможен ли какой-либо метод и как выполнять каждый метод отдельно. Итак, если вы могли бы решить эту проблему с помощью обновления или если, пожалуйста, найдите мой вопрос ниже

https://sharepoint.stackexchange.com/questions/187618/sharepoint-2013-workflow-update-all-items-with-value-using-if-or-update

Заранее спасибо


person Paul    schedule 25.07.2016    source источник


Ответы (1)


В итоге я ответил на свой вопрос. так что это только вежливо, я добавляю сюда свой ответ (так просто, когда я перечитываю то, что написал здесь)

Итак, первое, что вам нужно сделать, это создать цикл, используя вызов веб-служб http, вы можете найти множество примеров того, как это сделать. например http://weblogs.asp.net/ricardoperes/looping-through-list-items-in-sharepoint-2013

поэтому в моем списке давайте просто посмотрим на три столбца

ID - LookupID - обновлен (на изображении ниже поле "Text3" - мой обновленный столбец)

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

https: // domain / site / _api / web / lists / getbytitle ('TESTLIST') / items? $ filter = LOOKUPID eq '[% Current Item: ID%]' (удалите пробел между https: и //)

Затем следуйте инструкциям с указанного выше сайта, пока не дойдете до раздела, в котором вы «Получить поля» внутри цикла.

мой рабочий процесс

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

Как видите, у меня есть два поля обновления (второе устанавливает для Text3 значение «Второе обновление» для целей тестирования), однако я сохранил его, так как не был уверен, действительно ли обновление обновит мой элемент, если оно уже содержит это значение.

Большое спасибо за все вопросы и ответы по обмену стеками, которые привели меня на путь к этому решению.

person Paul    schedule 25.07.2016