Регистрация  |  Вход

Как скопировать значение picklist c Parent на Child, чтобы произошёл вызов Тригера (без Apex)

Есть Parent у которого есть picklist. Необходимо каждый раз при изменении значения в picklist переносить его на child таким образом, чтобы произошёл вызов тригера на данном child(т.е. обычный formula field не прокатывает) Мб кто-нибудь знает какое-нибудь решение без apex?

Есть Parent у которого есть picklist. Необходимо каждый раз при изменении значения в picklist переносить его на child таким образом, чтобы произошёл вызов тригера на данном child(т.е. обычный formula field не прокатывает) Мб кто-нибудь знает какое-нибудь решение без apex?

Пока придумал только создать два Process в Process Builder: один на создание child и один на изменение parent. Но не могу понять как оценить насколько это хорошее решение. Т.е. либо два процесса, либо дополнительный триггер на parent, но с почти полностью аналогичной логикой триггера на child.

Пока придумал только создать два Process в Process Builder: один на создание child и один на изменение parent. Но не могу понять как оценить насколько это хорошее решение. Т.е. либо два процесса, либо дополнительный триггер на parent, но с почти полностью аналогичной логикой триггера на child.

Если нужно просто проапдейтить child записи - то проще всего через триггер. Можно, конечно, сделать через Process Builder/ Flow, но, ИМХО, это не самый удобный и правильный путь.
Без конкретных business requirements сложно подсказать точно, но если нужно одну и ту же логику вызывать в триггере для двух объектов - то правильнее всего ее вытащить ее в отдельный метод хелпера и вызывать из обоих триггеров.

Если нужно просто проапдейтить child записи - то проще всего через триггер. Можно, конечно, сделать через Process Builder/ Flow, но, ИМХО, это не самый удобный и правильный путь.
Без конкретных business requirements сложно подсказать точно, но если нужно одну и ту же логику вызывать в триггере для двух объектов - то правильнее всего ее вытащить ее в отдельный метод хелпера и вызывать из обоих триггеров. 

Konstruktor
Необходимо каждый раз при изменении значения в picklist переносить его на child таким образом, чтобы произошёл вызов тригера на данном child(т.е. обычный formula field не прокатывает) Мб кто-нибудь знает какое-нибудь решение без apex?

Оставить формулу, но сделать на Parent триггер который вытягивает все child и просто делает им update.
2 строчки кода: SOQL + DML update.

[quote="Konstruktor"]Необходимо каждый раз при изменении значения в picklist переносить его на child таким образом, чтобы произошёл вызов тригера на данном child(т.е. обычный formula field не прокатывает) Мб кто-нибудь знает какое-нибудь решение без apex?[/quote]
Оставить формулу, но сделать на Parent триггер который вытягивает все child и просто делает им update.
2 строчки кода: SOQL + DML update.

да, все верно - можно сделать через process builder, но с его типичным уровнем стабильности я бы предпочел триггер.

ну и тут правильно подсказали - не понятно какое требование ты пытаешься таким образом покрыть - возможно есть другие альтернативы

да, все верно - можно сделать через process builder, но с его типичным уровнем стабильности я бы предпочел триггер. 

ну и тут правильно подсказали - не понятно какое требование ты пытаешься таким образом покрыть - возможно есть другие альтернативы

Ну и позвольте немного лирики.

Если вы взялись реализовывать бизнес логику на apex, то пожалуйста забудьте про process builder и наоборот. Мухи и котлеты должны жить отдельно. Я уже пару раз встречал отвратительный симбиоз двух этих инструментов - архитектурой не пахло вообще. Постоянно возникали проблемы с конфликтами в логике, которые очень тяжело было найти. Если сейчас все красиво и понятно на проекте, то это лишь временная иллюзия.

Ну и позвольте немного лирики.

Если вы взялись реализовывать бизнес логику на apex, то пожалуйста забудьте про process builder и наоборот. Мухи и котлеты должны жить отдельно. Я уже пару раз встречал отвратительный симбиоз двух этих инструментов - архитектурой не пахло вообще. Постоянно возникали проблемы с конфликтами в логике, которые очень тяжело было найти. Если сейчас все красиво и понятно на проекте, то это лишь временная иллюзия.