1

On standard Account object. We have a related list 'Account Address'. Account address is a custom object. There is a master-detail relationship from account address to account.

On the 'Account Address' there has been a Flow created when a user wants to create a new address or edit an existing one. Controlled by 2 custom buttons 'New Address' and 'Edit Address'. We have removed the standard new and edit buttons from the page layout. However, the standard link 'Edit' still exists on the related list of the 'Account Address' on the Account object. From what I have read there is no way to remove the 'edit' link and visualforce may be my best way to override this. I am an admin with little experience in creating apex triggers/class but no experience in visualforce so I am limited here. Can someone assist with helping me to understand how I can create a visualforce page for the related list that has no standard edit link.

su

1
  • 1
    I just wanted to make note that those actions appear on your records based on the CRED level access the currently logged in user has to those objects. So if the user has Edit and Delete access, those options appear. It might be possible to remove those permissions from users to get the outcome you want, but you will need to test that the Flow still works as expected given that it will be making data updates the user wouldn't normally be allowed to do. – nbrown May 7 '20 at 13:22
0

To gain full control over the behavior of the standard New and Edit buttons, no matter in which variation they're used (page layouts, related list links), you'll need to use them and not custom buttons. If using the flow is the only desired path for creating and editing Account Addresses, you should go to the Buttons, Links and Actions section of that custom object, and override the New and Edit buttons behavior to initiate a VF page that contains and initiates the flow, instead of the standard behavior. To do this you will need to create a very basic VF page that initiates the flow. This can be as simple as this:

<apex:page standardController="Account_Address__c">    
   <flow:interview name="flowAPIName">
      <apex:param name="accountId" value="{!Account_Address__c.Account__c}"/>
   </flow:interview>
</apex:page>

Setting the page's standardController property to your custom object's API name will ensure you're able to replace a standard button of that object with this VF page.

Once done, this will replace the functionality of the standard New and Edit buttons everywhere, including within the related lists.

Remember then to put back the standard New and Edit buttons to your page layout, and also you may then delete the custom buttons you've created.

2
  • Okay so I can call a flow using VF. How would I pass through my parameters eg:Account ID through the flow? I am planning on creating an apex class to collect my Account ID information. – Shamiala Ahmed May 7 '20 at 14:34
  • No problem, use an <apex:param> tag to pass parameters into the flow. Since your standard controller is set to the object, the page already "knows" the specific record in context, and you can send its related account ID into the flow. Make sure to also add a variable in the flow that's open for receiving input, and assign it the same name as you used in the <apex:param> tag. I've updated my response to demonstrate that. – EranV May 7 '20 at 14:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.