Задача очень типичная:
нужно сделать условно рендерящиеся секции на стандартной лейауте.
то есть нужно сделать стандартный классик UI максимально удобным (без "лишних секций") с минимальными усилиями.
условия для рендеринга секций будут двух типов:
- данные на самой записи (это "нередактируемые" данные которые приходят по связи с другой записи, и если там например "Да", то потом рендерии соответствующую секцию с доп вопросами по теме для текущего пользователя);
- в зависимости от того, кто пользователь.
сразу скажу, что:
- использование разнообразных РТ и лейаутов с теми или иными секциями возможно, но все же давайте попробуем решить это проще.
- привязать разные лейауты к разным пользователям не получится, так как пользователи под одним и тем же профайлом. Также скажу, что все вовлеченные в процесс пользователи указываются в несколько Юзер Лукапах на самой записи;
- можно делать вставки в лейауте с ВФ страницами (а на них делай любую рендер логику), но опять таки сложновато для ограниченного времени
Пока мой ответ: условно рендерить секции на стандартном лейауте не возможно, их даже "закрыть-схлопнуть" программно не получится без диких хаков.
Тем не менее вот как можно облегчить участь пользователя:
(1) для каждой секции сделать формульное поле с лейблом "Инструкции для заполнения секции" и далее формула чекает условия (данные на записи и кто пользователь - сравнивая последнего с лукапами на записи) и рендерит: "Пропустите данную секцию", "Ответте на вопросы 2 и 4", "Ответте на все вопросы". То есть для каждой секции будут инструкции "адаптирующиеся как к содержанию записи, так и к пользователю;
(2) Плюс ко всеми, конечно, Валидейшн Рулы, которые чекают те же условия и не дают или дают пользователю что-то апдатировать на записи
Вроде это все делается просто атрибутами rendered и reRender
вот тут пример https://developer.salesforce.com/forums?id=906F000000097h9IAA
На стандартном layout? ![]()
вставить visualforce в стандартный layout
Во первых тут надо уже конкретизировать вопрос. Classic или Lightning.
На счет классик скажу что ничего на нем программно/условно не сделаешь. Нужна кастомная логика - Visualforce вместо стандарт лайаут. Лучше сразу отказаться от такой задачи чтобы не вводить клиента в заблуждение, не пилить костыли которые в любой момент могут отвалиться или следующий программист не сможет их поддерживать. Поиграться можно, но клиенту ни в коем случае. Хочет клиент чтобы страница бибикала и моргала в зависимости от условий - милости просим в мир Visualforce.
Делать нужно на основе требований ![]()
Делать нужно на основании здравого смысла :-)
Вы, наверное, решили, что здесь никто не знает варианта с visualforce?
Никто не писал, т.к. оценивали точно по требованиям. Поэтому и был выше вариант:
Кстати косвенный вопрос к специалистам Lightning.
Можно ли как-то внедрить свой JS в стандартный Layout в режиме Lightning UI?
Можно ли как-то внедрить свой JS в стандартный Layout в режиме Lightning UI?
Нет. Но Lightning UI более гибкий, чем classic. Можно добавлять компоненты (в разные мечта на странице), табы