У меня есть пользовательский объект с большим количеством переменных, и мне нужна его точная копия без необходимости определять все поля, полученные из элемента Get Records.

Есть ли способ клонировать запись в потоке вместо определения всех полей в новой переменной?

2
SachiDangalla 16 Мар 2020 в 02:11

3 ответа

Лучший ответ

По-видимому, решение состоит в том, чтобы вызвать подпоток для клонирования записи, передав запись для клонирования.

https://www.linkedin.com/pulse/clone-records-easily-spring-20-lightning-flow-adam-white/?trackingId=6w5pMUAsSPi7q5dXRpGmYg%3D%3D

0
SachiDangalla 16 Мар 2020 в 07:51

Просто назначьте исходную запись целевой записи. Используйте стандартный элемент присваивания с переменной типа записи для объекта. Например, sourceRecord (запись типа var, используя CustomObject (ваше имя) и targetRecord с тем же типом/объектом var.

В левой части присваивания находится targetRecord, операция присваивания — «равно», правая часть — исходная запись.

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

Совет 2: все копируется/клонируется как есть (полная реплика для всех полей, включая поиск), включая стандартные поля дата создания, кем создано, дата последнего изменения, последнее изменение по полям из исходной записи. Вам нужно будет обновить значения этих полей в следующем назначении, например, установить дату создания и дату последнего изменения в $Flow.CurrentDate.

0
Raoul 24 Янв 2021 в 13:52

Я не думаю, что есть встроенная функция клонирования. Объект может иметь до 800 полей, их клонирование путем добавления каждой переменной может быть неудобным в обслуживании.

Если вы можете использовать Apex, вы можете передать переменную из Flow в Apex Invocable. Апекс будет клонировать запись (опустить поля аудита, такие как CreatedDate, LastModifedBy и т. д.) и вернуть объект обратно к вам, чтобы вы могли вставить.

3
Pranay Jaiswal 16 Мар 2020 в 02:39