Skip to content

Release Notes v2.3

Doug Ayers edited this page Jul 23, 2019 · 17 revisions
Clone this wiki locally

Home > Release Notes > Upgrading to Release 2.3

鈿狅笍 When upgrading, please review all release notes between the version you're upgrading from through to the version you're upgrading. First, to be familiar with the changes, and second, because occasionally there are manual steps required to use the new features.


Check Deployment Settings Before Upgrading

Before upgrading, if you have actively scheduled configurations then you may need to enable the Deployment Setting to Allow deployments of components when corresponding Apex jobs are pending or in progress. It's also recommended to upgrade during a time when no configurations are running to reduce risk of job failures during the upgrade. You may disable this setting after installing the package if you wish.


Check Apex Settings Before Installing or Upgrading

When the package is installed, it automatically configures the page layout for the Mass Action Configuration object to swap out to a new Mass Action Logs related list and ensures both the Run and Quick Edit buttons are on the layout.

Since the managed package will be updating a page layout for an object also within the same namespace, there shouldn't be any issues. However, if the installation fails with error "Post install script failed", then you may need to enable Apex Setting to Deploy Metadata from Non-Certified Package Versions via Apex. You may disable this setting after installing the package if you wish.



Update Named Credential URLs to only be the My Domain with no path

Closes #103

Mass Action Scheduler now uses REST API or SOAP API when invoking different actions. For example, SOAP API is used instead of REST API for anonymous Apex scripts because the SOAP API supports larger script sizes.

Therefore, the URL field of any Named Credentials you use with Mass Action Configuration records must be updated to only be your org's My Domain URL without any path afterwards because now the app dynamically determines the path for which API to invoke at runtime.

For example, in versions prior to 2.3, a Named Credential's URL needed to be in the format<version>. In versions 2.3 or later, a Named Credential's URL needs to be in the format, without the /services/data/<version> path.

Additionally, Named Credentials now require both the Allow Merge Fields in HTTP Header and Allow Merge Fields in HTTP Body options checked so that the oauth token can be included in the SOAP session header when the app invokes the SOAP API, such as to run anonymous Apex actions.

Learn more about creating Named Credentials for Mass Action Scheduler in the Specify the Running User via Named Credentials page.


Get greater insight to job runs with real-time Mass Action Logs

Closes #6, #55, #98

In prior versions of the app, the Mass Action Logs object only contained records that represented when a batch job failed. Aside from monitoring the Apex Jobs page in Setup, there was no insight into a Mass Action Configuration's progress, success rate, and detailed information about the source records that were processed or failed.

In this version of the app, Mass Action Logs has received a significant overhaul to provide you more actionable information, including the job scope--a JSON serialization of the source records for an execution so you can see which records were processed or failed.

Mass Action Logs now have two record types: Child Log and Parent Log. A parent log is created when a Mass Action Configuration runs, either on demand or on a schedule. Exactly one parent log record should exist per batch job id. Status updates as the job runs, such as when the job starts, finishes, and whether each batch execution processed successfully or not, are logged as child logs related to the parent log.

Because the logs are created asynchronously, their autonumber names and create dates are not reliable for sorting logs chronologically of when they actually occurred. Sort the "Related Logs" related list of a parent log by the Timestamp field to sort child logs chronologically.


When upgrading, the package updates existing log records to have the Child Log record type and creates a Parent Log log record to group the child logs by their Batch Apex Job ID. However, the package is unable to automatically configure Search Layouts on the Mass Action Log object. If you are upgrading the package, you will need to manually configure the Search Layouts as follows:

  • From Setup, click Object Manager.
  • Enter mass action log in the Quick Find box, then click Mass Action Log.
  • Click Search Layouts.
  • For each of Lookup Dialogs, Lookup Phone Dialogs, Search Results, and Tab, choose these fields:
    • Mass Action Log Number
    • Mass Action Configuration
    • Job ID
    • Message Type
    • Message
    • Record Type
    • Timestamp


Know when jobs complete with real-time notifications

In prior versions of the app, when a Mass Action Configuration job completed then two fields were updated on the configuration record:

  • Last Run Completed Date (datetime)
  • Last Run Completed With Errors (checkbox)

This allowed admins to know when a job had completed so that you could chain jobs. A process on Mass Action Configuration object could invoke another configuration or some other logic when either of those two fields changed to meet your criteria.

However, to actually know that the job completed then you needed to actually refresh the configuration record to see if the field value changed.

In this version of the app, a process named MAS: Mass Action Configuration is provided and active by default. When the "Last Run" field values change, the process publishes a custom notification to let the configuration record's owner know.


Click the notification event to navigate to the Mass Action Configuration record page. Click the "Logs" tab on the record to review details about the job run.

If you prefer not to receive these real-time notifications, deactivate the MAS: Mass Action Configuration process. However, the process MAS: Batch Apex Error Event must be active for error Mass Action Log records to be created.

Learn more about In-App Notifications in the Get #Buildspiration with Summer 鈥19 Notification Builder blog post.

Write more SOQL queries with fewer parse errors

Closes #89, #100, #105

For SOQL source type, when entering a SOQL query the Validate SOQL Query button has been removed and a much less rigid query parsing validation is performed. If you previously were unable to use a SOQL query as a source for a Mass Action Configuration in prior versions of the app, this version should let those queries be saved.

Continue to test and validate your SOQL queries using a tool such as Developer Console, Workbench, or Data Loader before automating them with Mass Action Scheduler.

Query more data with SOQL query sources using lookup field relationships

Closes #106

For SOQL source type, select fields from lookup and master-detail relationship fields in SOQL queries without the need of custom formulas.

For example, a Contact query can include fields from its parent account and created by user, and then those fields can be mapped as inputs to the chosen action:

  Id, FirstName, LastName, Email,
  Account.Name, Account.Type,
FROM Contact

Choose List Views more efficiently by choosing only from objects with them

Closes #104

For List View source type, prior versions of the app listed all objects in the org regardless if an object had a SOQL-compliant list view eligible for selection. This would lead to users choosing an object then unable to choose a list view. It also made the page load a bit slower and the user needed to scroll through many, many options.

In this version of the app, only objects that have SOQL-compliant list views are shown in the Object picklist, making it much easier for admins to choose the object and list view to use for their data source.


Receive fewer access restrictions as a non-Admin Mass Action Admin with a more complete permission set

Closes #96

All Visualforce pages and Apex classes part of the Mass Action Scheduler package are now granted to the Mass Action Admin permission set. This resolves an "insufficient privileges" error that non system admins of an org who had been granted this permission set would get when trying to use the app.

Configuration wizard remembers your selected action time and time again

Closes #94

In prior versions of the app, when editing a Mass Action Configuration record occasionally the selected Action picklist on the Choose Action step would not default select the preconfigured option and the user had to rechoose it. This led to confusion to admins on what the selected action was supposed to be.

This was due to a race condition of multiple async operations firing out of order on page load. The problematic operations are now synchronous and consistent.


Configuration wizard remembers it supports List View source type

Closes #114

In versions 2.3 and 2.3.1, users would receive the error "Error Getting Object Names. Attempt to de-reference a null object." when choosing the List View source type and unable to select an object or list view. Version 2.3.2 fixes the issue.

Report Service Apex tests support multiple languages

Closes #101

Thanks to Renato Oliveira for their contribution to the MA_ReportServiceTest.cls and MA_ReportSourceBatchableTest.cls classes to support multiple languages.

You can now deploy the project's source code into an org whose primary language is other than English and the tests will pass.