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

How do you pass a collection of strings created in a Salesforce Lightning Flow to a LWC you're embedding in a flow screen?

Звучит как что-то, что должно работать OOB, просто настройте LWC так, чтобы он принимал тип данных String[] в качестве входных данных, но на самом деле, глядя на документы на сегодняшний день, это недоступно….

Типы данных, которые могут быть переданы в LWC, являются логическими, целочисленными или строковыми. Если ваш LWC включен для Flow Screens, вы получаете несколько дополнительных типов:

  • apex://namespace.Classname — класс Apex, используемый для типа данных, определенного Apex.
  • Date — дата в формате ISO 8601.
  • DateTime — дата и время в формате ISO 8601.
  • @salesforce/schema/namespace__Objectname или @salesforce/schema/Objectname — именованный объект из схемы Salesforce.

Но нет списка строк!

Так что я поиграл и придумал пару вариантов

Свести к одной строке

Это выглядит как хак, но мы можем передать нашу коллекцию Flow String в LWC, представленную в виде одной строки, поскольку String является допустимым типом данных. Затем в контроллере LWC мы можем выполнить некоторые манипуляции со строками, чтобы преобразовать их обратно в массив.

Поток

В своем потоке создайте формулу типа данных «Текст», которая возвращает вашу переменную коллекции строк потока. Он вернет строку формата «[Astro,Codey,Einstein,Cloudy,Appy]»

Передать строку в LWC

LWC

Результат

Тип данных, определенный Apex

Этот метод, как мне кажется, немного чище, мы можем передать коллекцию Flow String в LWC на ​​борту типа данных, определенного Apex. Этот тип данных определяется вами через класс Apex. Этому классу требуется только одно публичное свойство @AuraEnabled для хранения вашего списка строк, которые необходимо передать в LWC.

Высший класс

LWC

Настройте, как ваш LWC будет передавать данные в Lightning Flow и обратно через файл .js-meta.xml. Установите в качестве целевого типа свойства класс Apex, используемый для определения типа данных, определенного Apex выше.

Поток

Создайте переменную для хранения коллекции строк, передаваемой в LWC.

Передайте всю переменную потока определенного Apex типа данных в LWC:

Результат