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

Создать запись одновременно с дочерней записью: может лайтнинг чем поможет?

Требование такое:
нужно создать запись одновременно с ее дочерней записью (т.е. запись изначально должна иметь хотя бы одну дочернюю запись)

как я понимаю, добиться это стандартными (т.е. поинт-энд-клик) средствам невозможно.

тем не менее 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 на дитейл страницу в билдере.