Всем привет!
Занимаюсь настройкой портального функционала и постоянно сталкиваюсь с множеством Object Security Level, FSL, RSL нюансов, требующих внимания и понимания. И потихоньку разбираюсь с этим.
Но вот столкнулся с очередной ситуацией, в которой не вижу очевидного решения.
На портале для профайла выведен объект в Табе. Используются только стандартные лейауты. Пользователь создает запись, в которой есть лук-апы на аккаунт и контакт, где он может выцепить по-крайней мере свои собственные контакт и аккаунт.
Но когда запись сохранется, то значение в лук-апном поле становится ссылкой, которая веден на дитейл пейдж данного контакта или аккаунта. А это совсем не нужно знать и вообще делать портальному юзеру. И как отключить возможность ссылочного ухода на дитейл пейдж связанной (пусть в принципе и доступной) записи? я не знаю.
сделать спец лайаут на связанном объекте для данного профайла, где не выведено ни одного поля? но это не то.
Всем привет! Занимаюсь настройкой портального функционала и постоянно сталкиваюсь с множеством Object Security Level, FSL, RSL нюансов, требующих внимания и понимания. И потихоньку разбираюсь с этим. Но вот столкнулся с очередной ситуацией, в которой не вижу очевидного решения. На портале для профайла выведен объект в Табе. Используются только стандартные лейауты. Пользователь создает запись, в которой есть лук-апы на аккаунт и контакт, где он может выцепить по-крайней мере свои собственные контакт и аккаунт. Но когда запись сохранется, то значение в лук-апном поле становится ссылкой, которая веден на дитейл пейдж данного контакта или аккаунта. А это совсем не нужно знать и вообще делать портальному юзеру. И как отключить возможность ссылочного ухода на дитейл пейдж связанной (пусть в принципе и доступной) записи? я не знаю. сделать спец лайаут на связанном объекте для данного профайла, где не выведено ни одного поля? но это не то.
тебя спасет JavaScript
[quote="Den Brown"]Всем привет! Занимаюсь настройкой портального функционала и постоянно сталкиваюсь с множеством Object Security Level, FSL, RSL нюансов, требующих внимания и понимания. И потихоньку разбираюсь с этим. Но вот столкнулся с очередной ситуацией, в которой не вижу очевидного решения. На портале для профайла выведен объект в Табе. Используются только стандартные лейауты. Пользователь создает запись, в которой есть лук-апы на аккаунт и контакт, где он может выцепить по-крайней мере свои собственные контакт и аккаунт. Но когда запись сохранется, то значение в лук-апном поле становится ссылкой, которая веден на дитейл пейдж данного контакта или аккаунта. А это совсем не нужно знать и вообще делать портальному юзеру. И как отключить возможность ссылочного ухода на дитейл пейдж связанной (пусть в принципе и доступной) записи? я не знаю. сделать спец лайаут на связанном объекте для данного профайла, где не выведено ни одного поля? но это не то.[/quote] тебя спасет JavaScript
Еще как вариант - FORMULA field. Скрыть на layout сами lookup и вывести поля, которые через формулу выводят Name объекта в lookup. Но проблема в том, что если убрать сами lookup поля с layout, то они пропадут и с edit (new) страницы и заполнить из не получится.
Еще как вариант - FORMULA field. Скрыть на layout сами lookup и вывести поля, которые через формулу выводят Name объекта в lookup. Но проблема в том, что если убрать сами lookup поля с layout, то они пропадут и с edit (new) страницы и заполнить из не получится.
По-моему заменить View стандартный на visualforce страницу. ИМХО лучше чем добавлять поля в объект.
По-моему заменить View стандартный на visualforce страницу. ИМХО лучше чем добавлять поля в объект.
это конечно выход, вот только изначальное условие звучит:
Кстати я до недавних пор недооценивал значение стандартных layout. Но их использование - это так сказать SF way. Layout меняются вместе с самим SF и если в ближайшем будущем что-то изменится, то стандартные лайауты будут работать правильно. А страница будет всегда такой, как ты ее закодил. Плюс очень существенный фактор. Стандартные лайауты работают в Salesforc1 на моюильных устройстах, причем из коробки и смотрятся очень отлично что нельзя сказать о VF страницах, которые надо оптимизировать(переписывать)
[quote="vkappie"]По-моему заменить View стандартный на visualforce страницу. ИМХО лучше чем добавлять поля в объект.[/quote] это конечно выход, вот только изначальное условие звучит: [quote]На портале для профайла выведен объект в Табе. Используются только стандартные лейауты.[/quote] Кстати я до недавних пор недооценивал значение стандартных layout. Но их использование - это так сказать SF way. Layout меняются вместе с самим SF и если в ближайшем будущем что-то изменится, то стандартные лайауты будут работать правильно. А страница будет всегда такой, как ты ее закодил. Плюс очень существенный фактор. Стандартные лайауты работают в Salesforc1 на моюильных устройстах, причем из коробки и смотрятся очень отлично :) что нельзя сказать о VF страницах, которые надо оптимизировать(переписывать)
Привет Денис,
да, мне тоже приходила идея сделать все в виде кастомной ВФ страницы.
в одной из тем, мы даже обсудили, как можно сделать выводимое лук-ап поле некликабельным - надо указывать его "по-имени": лукАпПоле__r.name.
Но руководство сразу напомнило мне главное правило Сэйлсфорс клуба - используй стандарный функционал везде где только это возможно и не возможно. Иногда мне кажется, что это очень разумное правило, иногда - кажется, что это перегиб.
так что пока все на стандарном лейауте. лук-ап поле кликабельно - юзер проваливается на спец лайаут где есть только пара полей. Но это запись стандартного аккаутна и там есть еще и ссылка на Иерархию - юзер может пройти дальше. и хотя record security не позволит ему увидеть дерево иерархии, но вот имя создателя записи (которую он может видеть) в иерархической такблица например видно... вобщем как-то не очень хорошо.
[quote="vkappie"]По-моему заменить View стандартный на visualforce страницу. ИМХО лучше чем добавлять поля в объект.[/quote] Привет Денис, да, мне тоже приходила идея сделать все в виде кастомной ВФ страницы. в одной из тем, мы даже обсудили, как можно сделать выводимое лук-ап поле некликабельным - надо указывать его "по-имени": лукАпПоле__r.name. Но руководство сразу напомнило мне главное правило Сэйлсфорс клуба - используй стандарный функционал везде где только это возможно и не возможно. Иногда мне кажется, что это очень разумное правило, иногда - кажется, что это перегиб. так что пока все на стандарном лейауте. лук-ап поле кликабельно - юзер проваливается на спец лайаут где есть только пара полей. Но это запись стандартного аккаутна и там есть еще и ссылка на Иерархию - юзер может пройти дальше. и хотя record security не позволит ему увидеть дерево иерархии, но вот имя создателя записи (которую он может видеть) в иерархической такблица например видно... вобщем как-то не очень хорошо.
думал как же засадить JS на стандартный лейаут без помощи кнопки, и кажется нашел ответ:
Well, you can hide the 'Save & New' buttons using a script (ex: s-control).In the script, get the id if the button and On page load event, set the display of that button as 'none'. The S-control should be placed in the sidebar as homepage component. With this, you can even control whether you want to hide 'Save & New' on one particular page or on all pages.
найдено здесь:
https://developer.salesforce.com/forums?id=906F00000008nYGIAY
[quote="wilder"]тебя спасет JavaScript[/quote] думал как же засадить JS на стандартный лейаут без помощи кнопки, и кажется нашел ответ: [code]Well, you can hide the 'Save & New' buttons using a script (ex: s-control). In the script, get the id if the button and On page load event, set the display of that button as 'none'. The S-control should be [b]placed in the sidebar as homepage component[/b]. With this, you can even control whether you want to hide 'Save & New' on one particular page or on all pages.[/code] найдено здесь: [url]https://developer.salesforce.com/forums?id=906F00000008nYGIAY[/url]
s-control в sidebar - идея хорошая, но надо быть внимательным с этим. Правильно отмечено в ответе что этот javascript будет грузиться на всех! страницах где есть sidebar. придется отслеживать что сейчас за страница, чтобы нечаянно не убрать лишнего с другой страницы.
А так же мой совет - обернуть этот кусок js в try/catch на всякий случай чтобы лишних конфликтов не вызвать. Был у меня интересный опыт - ломали голову почему у клиента на всех страницах кастомая JS ошибка валится и ломает наш JS на наших страницах. Тогда опыта было мало, поэтому найти ошибку и найти где она прячется ушло уйма времени.
s-control в sidebar - идея хорошая, но надо быть внимательным с этим. Правильно отмечено в ответе что этот javascript будет грузиться на всех! страницах где есть sidebar. придется отслеживать что сейчас за страница, чтобы нечаянно не убрать лишнего с другой страницы. А так же мой совет - обернуть этот кусок js в try/catch на всякий случай чтобы лишних конфликтов не вызвать. Был у меня интересный опыт - ломали голову почему у клиента на всех страницах кастомая JS ошибка валится и ломает наш JS на наших страницах. Тогда опыта было мало, поэтому найти ошибку и найти где она прячется ушло уйма времени.
Если я правильно помню, то если sidebar изначально скрыт, то никакие скрипты не вызываются, так что помните об этом.
[quote="Dmitry Shnyrev"]s-control в sidebar - идея хорошая, но надо быть внимательным с этим. Правильно отмечено в ответе что этот javascript будет грузиться на всех! страницах где есть sidebar. придется отслеживать что сейчас за страница, чтобы нечаянно не убрать лишнего с другой страницы. А так же мой совет - обернуть этот кусок js в try/catch на всякий случай чтобы лишних конфликтов не вызвать. Был у меня интересный опыт - ломали голову почему у клиента на всех страницах кастомая JS ошибка валится и ломает наш JS на наших страницах. Тогда опыта было мало, поэтому найти ошибку и найти где она прячется ушло уйма времени.[/quote] Если я правильно помню, то если sidebar изначально скрыт, то никакие скрипты не вызываются, так что помните об этом.
Wilder, спасибо за хорошую подсказку, что-то я про это не подумал.
[quote="wilder"]Если я правильно помню, то если sidebar изначально скрыт, то никакие скрипты не вызываются, так что помните об этом.[/quote] Wilder, спасибо за хорошую подсказку, что-то я про это не подумал.