Требование такое:
нужно создать запись одновременно с ее дочерней записью (т.е. запись изначально должна иметь хотя бы одну дочернюю запись)
как я понимаю, добиться это стандартными (т.е. поинт-энд-клик) средствам невозможно.
тем не менее Lightning Builder довольно интересная штука, возможно ли совместить в нем два стандартных лейаута для обеих записей? может кто пробовал
как вариант, можно поместить поля Дочерней записи и на Родительской записи, в момент создания Родительской записи создавать (первую) дочернюю запись и двигать в нее данные из родительской записи. Но не понятно, что потом делать с этими полями на родительской записи содержащие данные про дочернюю запись, они уже ни к чему. создавать новый рекортТайп/лейаут чтоб их скрыть - ну слишком мудрено
клиент также согласен на такую вещь: когда кликаешь на кнопку СОЗДАТЬ на стандартном лейауте родительской записи, поднимать модальное окно с просто напоминанием про необходимость создания дочерней записи. Так просто! Но как это сделать со стандартной кнопкой. С кастомной тоже все сложно: не факт что она вообще будет рендерится на стандартном лейауте когда он в EDIT mode, плюс как в кастомной кнопке спровоцировать сработку стандартного SAVE метода...
понятно, что можно запилить ВФ страницу или лайтнинг компонент и делай там что хочешь, но интересно как это можно решить стандартными средствами, LUX все же более flexable чем Классик, а оба требования не сказать чтоб очень экстраординарные, и их успешное решение стандартными средствами вполне может еще не раз пригодится
кстати, не знаете как в лайтнинг компонент получать URL parameters страницы?
Требование такое: нужно создать запись одновременно с ее дочерней записью (т.е. запись изначально должна иметь хотя бы одну дочернюю запись) как я понимаю, добиться это стандартными (т.е. поинт-энд-клик) средствам невозможно. тем не менее Lightning Builder довольно интересная штука, возможно ли совместить в нем два стандартных лейаута для обеих записей? может кто пробовал как вариант, можно поместить поля Дочерней записи и на Родительской записи, в момент создания Родительской записи создавать (первую) дочернюю запись и двигать в нее данные из родительской записи. Но не понятно, что потом делать с этими полями на родительской записи содержащие данные про дочернюю запись, они уже ни к чему. создавать новый рекортТайп/лейаут чтоб их скрыть - ну слишком мудрено клиент также согласен на такую вещь: когда кликаешь на кнопку СОЗДАТЬ на стандартном лейауте родительской записи, поднимать модальное окно с просто напоминанием про необходимость создания дочерней записи. Так просто! Но как это сделать со стандартной кнопкой. С кастомной тоже все сложно: не факт что она вообще будет рендерится на стандартном лейауте когда он в EDIT mode, плюс как в кастомной кнопке спровоцировать сработку стандартного SAVE метода... понятно, что можно запилить ВФ страницу или лайтнинг компонент и делай там что хочешь, но интересно как это можно решить стандартными средствами, LUX все же более flexable чем Классик, а оба требования не сказать чтоб очень экстраординарные, и их успешное решение стандартными средствами вполне может еще не раз пригодится кстати, не знаете как в лайтнинг компонент получать URL parameters страницы?
[url=https://salesforce.stackexchange.com/questions/165650/getting-the-url-parameter-into-lightning-component-using-the-paramname-exp]Параметры[/url]
решено так:
сделана ВФ страница, стили указаны для Лайтнинга, использован стандартный контроллер с расширением, после создания дочерних записей страница делает редирект на созданную родительскую запись, и страница использована для замены стандартного NEW метода/кнопки. Все отлично работает в Лайтнинге, страница выглядит хорошо и делает редирект куда надо.
Но без сюрпризов и тут не обошлось: страница выглядит как LEX а вот поп-ап окно для лук-ап поля открывает в Классик дизайне :)
решено так: сделана ВФ страница, стили указаны для Лайтнинга, использован стандартный контроллер с расширением, после создания дочерних записей страница делает редирект на созданную родительскую запись, и страница использована для замены стандартного NEW метода/кнопки. Все отлично работает в Лайтнинге, страница выглядит хорошо и делает редирект куда надо. Но без сюрпризов и тут не обошлось: страница выглядит как LEX а вот поп-ап окно для лук-ап поля открывает в Классик дизайне :)
тот же функционал пытаюсь сделать в виде Lightning web components,
вроде компонент в самом драфтовом виде готов, пытаюсь в настройках стандартного NEW метода/кнопки сделать оверрайт на мой компонент, а тут
сюрприз опять!
Lightning web components еще нельзя использовать для этого!
нужно его оборачивать в Аура компонент с implements="lightning:actionOverride,force:hasRecordId"
ладно, можно и сделать, но вот в чем же хорошая сторона такого оверрайда (когда он работает): когда кликаешь на кнопку NEW на рел листе дочерних записей, то при открытии такого компонента лукап-поле родительской записи автозаполняется, что критически важно.
как в таком ауре компоненте получить ID родительской записи, чтоб далее передать его в lwc, я не знаю
как вариант, если удастся сделать оверрайт NEW на мой компонент, но при этом при открытии с рел листа лукап-поле родительской записи не автозаполняется, то отказаться от стандартной NEW кнопке на рел листе вообще, а добавить компонент на стандартный дитейл лейаут родительской записи и в нем получать ID родительской записи и автозаполнять лук-ап
тот же функционал пытаюсь сделать в виде Lightning web components, вроде компонент в самом драфтовом виде готов, пытаюсь в настройках стандартного NEW метода/кнопки сделать оверрайт на мой компонент, а тут сюрприз опять! Lightning web components еще нельзя использовать для этого! нужно его оборачивать в Аура компонент с implements="lightning:actionOverride,force:hasRecordId" ладно, можно и сделать, но вот в чем же хорошая сторона такого оверрайда (когда он работает): когда кликаешь на кнопку NEW на рел листе дочерних записей, то при открытии такого компонента лукап-поле родительской записи [b]автозаполняется[/b], что критически важно. как в таком ауре компоненте получить ID родительской записи, чтоб далее передать его в lwc, я не знаю как вариант, если удастся сделать оверрайт NEW на мой компонент, но при этом при открытии с рел листа лукап-поле родительской записи не автозаполняется, то отказаться от стандартной NEW кнопке на рел листе вообще, а добавить компонент на стандартный дитейл лейаут родительской записи и в нем получать ID родительской записи и автозаполнять лук-ап
апдейт:
создал аура компонент-обертку:
<aura:component implements="lightning:actionOverride,force:hasRecordId,force:hasSObjectName"><c:createTwoRecords record-id="{!v.recordId}"/>
</aura:component>
теперь работает как оверрайт, но при использовании на рел листе родительский лукап пустой и @api recordId - undefined в LWC контроллере
но к счастью, если сам LWC забросить на стандартный дитейл лейаут родительской записи, то родительский лукап автозаполняется и в таком случае остается только убрать кнопку NEW c рел листа
PS: оказывается он не "автозаполняется" сам в примере чуть выше, просто у меня в LWC был @api recordId который ставился как value={recordId} на том родительском лукапе, и поэтому тот "автозаполнялся" при добавлении LWC на дитейл страницу в билдере.
апдейт: создал аура компонент-обертку: [code] <aura:component implements="lightning:actionOverride,force:hasRecordId,force:hasSObjectName"> <c:createTwoRecords record-id="{!v.recordId}"/> </aura:component> [/code] теперь работает как оверрайт, но при использовании на рел листе родительский лукап пустой и @api recordId - undefined в LWC контроллере но к счастью, если сам LWC забросить на стандартный дитейл лейаут родительской записи, то родительский лукап автозаполняется :) и в таком случае остается только убрать кнопку NEW c рел листа PS: оказывается он не "автозаполняется" сам в примере чуть выше, просто у меня в LWC был @api recordId который ставился как value={recordId} на том родительском лукапе, и поэтому тот "автозаполнялся" при добавлении LWC на дитейл страницу в билдере.