Drawloop - Create Mass Button in Lightning

Topic

How to create Mass Button in Lightning
Note: The Mass DocGen Feature is required 

Instructions

Note: This button is a Sample for the ability to specify a contact to meet the Salesforce Contact Email validation requirement and run mass from Custom Objects in lightning.

Below is a Visualforce page sample referencing the Opportunity object in the ‘standardController’. Replace the Opportunity object with the desired object's API name.

 See Additional Customization Configurations section for additional parameters.
<apex:page standardController="Opportunity" recordSetVar="units">
<script src="/soap/ajax/26.0/connection.js"> </script>
<script src="/support/console/26.0/integration.js"> </script>

<apex:dataTable value="{!selected}" var="un">
    <apex:column >
        <apex:outputLabel styleClass="ids">{!un.Id}</apex:outputLabel>
    </apex:column>
</apex:dataTable>
<style>
.ids{visibility : hidden}
</style>

<script type="text/javascript">
    document.addEventListener("DOMContentLoaded", function(event) { 
        var elems = document.body.getElementsByClassName("ids");
        var ids = new Array();

        for (var i = elems.length - 1; i >= 0; i--) {
            ids[i] = elems[i].innerHTML;    
        }
        console.log(ids);
        if (!ids || ids.length < 1)
            alert('Please select at least one record.');
        else
        {
             var instanceName = window.location.hostname;
            var newLocation = '/apex/loop__jobqueuestatus';
            console.log(instanceName+newLocation);
            var redirectUrl = '/apex/loop__masslooplus?';
            
            redirectUrl += '&recordIds='+ids.join(',');
            redirectUrl += '&sessionId={!$Api.Session_ID}';
            redirectUrl += '&retURL='+newLocation;
            if (sforce && sforce.one && sforce.one.navigateToURL) {
    sforce.one.navigateToURL(redirectUrl);
} else {
    window.location.href = redirectUrl;
}
        }
    });
      
</script>
</apex:page>

1. Create a new Visualforce page:
    1. Navigate to Salesforce setup
    2. Quick Find search: Visualforce Pages
    3. Click ‘New’
This is a article attached imageThis is a article attached image

             iv. Create a unique name “MassLightning{object}”.
              v. Checkbox: ‘Available for Lightning Experience’.
             vi. Paste the sample into the ‘Visualforce Markup’ Section.
            vii. Add the desired object API name for the ‘standardController’.
           viii. Click Save.

This is a article attached imageThis is a article attached image


 2. Create a New Button:
    1. Navigate to Salesforce Setup:
    2. Select Object from ‘Object Manager’.
    3. Select ‘Button, Links, and Actions’ section.
    4. Click New Button or Link
This is a article attached imageThis is a article attached image

3. Button Configuration:
    1. Create Label Name.
    2. Display Type: List Button with Display Checkboxes.
    3. Behavior: Select desired behavior.
    4. Content Source: Visualforce Page
    5. Content: Select the created Visualforce Page from the list.
    6. Click Save.
This is a article attached imageThis is a article attached image

4. Add button to the layout:
    1. Navigate to Salesforce Setup:
    2. Select Object from ‘Object Manager’.
    3. Select ‘Search Layouts’ or 'Search Layouts for Salesforce Classic' Section.
    4. Select ‘Edit’ on the List View Layout.
This is a article attached imageThis is a article attached image
Or
This is a article attached imageThis is a article attached image
  1.    v. Select the button from the ‘Available Buttons’ list.
  2.   vi. Add it to the ‘Selected Buttons’ list.
  3.  vii. Click Save.
This is a article attached imageThis is a article attached image

5. Executing Mass via List View:
    1. Navigate to the Object List View.
    2. Select desired records.
    3. Click the List View Button.
    4. Select DocGen Package and Delivery Option.
    5. Click Run.
This is a article attached imageThis is a article attached image

Additional Information

Additional Customization Configurations:

Parameter Documentation: Click Here

Add additional parameters below the {'redirectUrl += '&sessionId={!$Api.Session_ID}';} line.

Email with Mass:
  1. If the delivery option is Email, a contact field will need to be configured in the Visualforce page.
      1. redirectUrl += “&contactfield=APINAME_OF_FIELD”;
      2. Replace the APINAME_OF_FIELD with the desired contact field API.
Specify Document Packages and Delivery Options:
  1. To specify Document Packages and Delivery Option, add the following line and parameters.
      1. redirectUrl += "&ddpIds=PACKAGE_ID&deploy=DELIVERY_ID";
      2. Replace the PACKAGE_ID & DELIVERY_ID with the desired record ids.
Run Automatically:
  1. To bypass the user selection page, add the &autorun=true parameter.
      1. redirectUrl += "&autorun=true";
This is a article attached imageThis is a article attached image

Redirect after generation:
By default, the Job Queue Status has been chosen to be the redirect location. 
A Salesforce Lightning List View can be chosen as an alternative. This can not be dynamic unless you wish to develop the code and button independently.

1. Navigate to the desired List View in Lightning and copy the information after the ".com". 
2. Replace /
apex/loop__jobqueuestatus in line 28 of the Visualforcepage with the desired URL. See example below:

1. Get the URL:
This is a article attached imageThis is a article attached image


2. Add to the Visualforce Page:
This is a article attached imageThis is a article attached image

 

Labels: (1)
Version history
Revision #:
256 of 256
Last update:
‎11-17-2020 06:34 PM
Updated by:
 
Contributors