В моей практике был случай, когда накопленные данные в Excel нужно было перегнать в SharePoint List. Одна трудность состояла в том, что одно поле в List
должно быть типа MultiChoice
, а данные в Excel для этого поля хранились в виде строкового значения с разделителем /
, например "Вася/Петя/Маша/"
. В SharePoint List такие данные хранятся в формате (поле с типом MultiChoice
):
[{"Value":"Вася"},{"Value":"Петя"},{"Value":"Маша"}]
Задача решалась в рамках процесса переброски данных из одного списка SharePoint в другой, где для строки применили несколько инструкций Compose
.
В целом, для того, чтобы перегнать данные из Excel в SharePoint List достаточно воспользоваться функцией экспорта, но вы не сможете указать строго для всех полей типы данных и точно не получится задать те, что есть в SharePoint, но нет в Excel. Метод, который я использовал:
- Вычищаем от посторонних форматов таблицу Excel.
- Экспортируем таблицу в SharePoint List.
- Создаем SharePoint List с правильным списком с полной типизацией данных как нам надо.
- Создаем сценарий в Power Automate для перегона данных из сырого списка (п.2) в правильный (п.3).
Рассмотрим в данной статье частность преобразования строки в значения MultiChoice
для п.4. Общее представление сценария изображено на картинке:
Для разбора строки в Power Automate понадобится пара инструкций Compose
, где первый блок:
//Разбор строки по разделителю '/'
split(outputs('Get_item')?['body/SUPPLIER'],'/')
Во втором блоке Compose
понадобится превратить полученные значения массива в "правильную" запись JSON для значений MultiChoice
через функцию item()
:
{ "Value": @{item()} }
На этапе создания записи в "правильном" списке Power Automate "определяет тип" MultiChoice
и для корректной записи требуется нажать на кнопку Switch to detail inputs...
, что позволит внести запись в формате JSON и правильный формат этих данных находится в Output
от Select
.
Вот и всё, достаточно просто и эффективно получается создать записи в представлении MultiChoice
. Вот пример как это представлено при исполнении сценария:
И ЕЩЁ! Power APPS в компонентах СomboBox/DropDown
скорее всего не сможет прочесть/распарсить данные как надо и вы увидите кучу метаданных для представления значений в поле. Для этого придется дополнительно разобрать блок JSON данных поля со значениями. Увы, однозначности решения этой задачи нет. Если критично использование Power APPS, то я рекомендую MulticChoice
значения хранить в простой строке с разделителями и для чтения, и для записи использовать функции Concat/Concatenate
.