This new Datatable release includes two new features and a few minor bug fixes.
Because the outputEditedRows attribute is not Null even if no rows were edited nor included in the output collection variable, I’ve added a new output attribute numberOfRowsEdited that can be used to check if any rows were edited. I’ve also updated the component to take advantage of the new Automatic Output Variables feature so outputs from one Datatable can now be specified as inputs to another Datatable in the same Flow without have to manually assign the first Datatable’s outputs to a variable.
- New Output Attribute for the Number of Rows Edited (Because even when no rows are edited, the OutputEditedRows attribute is not null)
- The Datatable CPE now supports Automatic Output Variables in the Flow Builder
- Orgs with multi-currency enabled can now add currency rollup and currency formula fields to the datatable
- The edit picklist dropdown will overflow the displayed table if necessary (Only if the Table Height attribute is not set)
- The dropdown picklist values when editing will show the picklist labels instead of the picklist API names (The selected edit prior to selecting Save will show as the API name)
The Troubleshooting & Restrictions section of the documentation page has been updated as well.
- The datatable will only display the first 1000 records in the input collection. A collection passed in with more than 1000 records could cause an Apex CPU time limit exceeded error.
- When filtering rows in a datatable, any previously selected rows that are not part of the resulting filtered rows will be deselected.
- Some data types cannot yet be edited in a datable (lookup, location, time, encrypted, rich text, long text area).
- In order for a lookup or master/detail field to display as a link, it must be “reparentable”
- In order to have the Datatable display a Lookup field as a link to the record rather than just the recordId value in the field, the running User must have Edit access to the object whose records are being displayed in the Datatable. For example, if you have a Datatable for Contact records and include the AccountId(Lookup) field, the running User needs to have Edit access for the Contact object in order for the AccountId field to show as a clickable link with the Account’s Name. Without Edit access to the Contact record, the Datatable will display, as unclickable, the Account’s recordId value. For information on how you can temporarily add then remove Edit access in a Flow, read the referenced Help Article and/or complete the referenced Trailhead.
Help Article: Create a Flow That Can Activate or Deactivate a Session-Based Permission Set
Trailhead: Session-Based Permission Sets and Security
- With the update to selecting a record type for picklist field edits, the running User must have Read Access to the object being displayed in the Datatable. If they do not, any Record Type Id attribute will be ignored and all Picklist values will be available when editing a Picklist field.
- When editing Percent fields you must enter the true decimal value. Example: .25 for 25%
- 2 fewer decimal places will be available when editing than what has been defined for the percent field
- If you are selecting an Object that contains Geolocation fields (ie: Contact), you may experience a Salesforce Bug where the Flow will stop just before the Datatable should be displayed or the Flow will display an error when clicking Next and show another copy of the same datatable. If this happens, unselect “Automatically store all fields” in your Get Records and choose your fields manually.
- If you are editing, then updating records that contain a non-custom integer field (Account: NumberOfEmployees) you may experience a Salesforce Bug and see this error:
- This error occurred when the flow tried to update records: Argument must be a big decimal java.lang.Long.
- If you see this error when trying to Configure Columns, try going to Setup > Security > Session Settings and unchecking “Enable clickjack protection for customer Visualforce pages with headers disabled“. Also, in your Setup > User settings, make sure both Debug Mode and Development Mode are Unchecked.