5

I see some helpful articles that dance around this idea, but do not see reference on how to actually do it (if it is even possible).

A typical Account URL in Salesforce.

  • TYPICAL:   salesforce.com/001ABC000000123

What I'd like to accomplish.

  • MOCKUP:   salesforce.com/001ABC000000123 ? PageLayout=XYZ000000000789

Any ideas? A URL which opens a record using an alternate Page Layout?

Any ramifications (such as Users who maybe should NOT see certain Page Layouts and figure out the ID to that layout?)


UPDATE 1:   The need is to be able to show the same record with different page layouts, to the same users, for various circumstances. Changing the Record Type is not viable.

1

3 Answers 3

7

You basically have three options:

  1. Change the RecordType of the record in question.
  2. Change the Profile of the running User
  3. Implement a Visualforce override

Likely, only door number 3 is viable here. If you want to go that far, you could parse the existing layouts using the Metadata API and then use the page parameter to query for the correct one. You could also pursue simpler implementations like Field Sets.

2
  • I just ran across this, which MAY give me a solution and apparently is your #3.... help.skuid.com/m/page-assignments-and-overrides/l/… ....checking it out. Thanks.
    – AMM
    Feb 28, 2017 at 15:10
  • I am writing the solution I ended u using, but this was very helpful - thanks.
    – AMM
    Mar 14, 2017 at 17:25
1

You can exclude users who you don't want to have access to the custom page by not giving them permission in their profile or not adding them to a permission set that gives them access to that page name. You then do a visualforce override on the new custom page that you want to have the page displayed on. Those who don't have permission to view that page, will only see the default page.

You can use a button to go to the override page or to the default page. Or, you can navigate according to your navigation choices provided in your controller if the controller is custom or an extension. Again, if the user doesn't have permission to see the new custom page, they'll only see the default page.

If you don't want to do record types, that would seem to be the only way I know of to do what you're asking. Again, with the buttons, users who don't have the permissions, either wouldn't see them, or wouldn't get the redirect.

1

Our solution involved simply using the "nooverride" URL reference.

  • cs99.salesforce.com/aBc000000000987 ? nooverride=1

This causes the Salesforce standard layout to be shown versus the managed package Visualforce pages that we cannot manipulate.

Further, by putting a Formula on the "related SF object" (Account in one case) that is the URL above, we were able to customize the HOVER (mini) LAYOUT on the Account object, so when you hover on the Account lookup field ON THE VISUALFORCE PAGE, you have a link to the "same record" but in a standard SF layout. Not as elegant, but actually works great, because we keep the standard layout READ ONLY so users MUST edit on the VF page so all logic is applied. Even if they had the Edit button there, it takes them BACK to the VF page.

Hover Account info on VF managed page

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .