Step Group and Step Configuration


Step Group Configuration

To configure Step Group we need to go Breezz SetupSteps GroupsNew Group or simple Create Group from Dashboard. After clicking New Group we can see the form to create configuration.

New Step Group New Step Group

Details:

  • Name - the name of configuration.
  • Description - A description of the logic of the functionality should be entered in this field.
  • Is Active - Determines if a Step Group is active.
  • Feature Availability - This is special metadata that tells us when the functionality is active. In this field you must enter the name of the created Breezz Feature Toogle.
  • Record Level Security - Specifies in which context (Record Level Security) the DML operations contained in this steps group are to be performed. There are three options to choose with sharing, without sharing and inherited sharing.
    Notice

    If the user does not have access to the object on which the DML operation is performed, and inherited sharing is selected here, the operation will fail. To find out more about these three options, we recommend looking at the Salesforce documentation.

  • All Or None - Specifies whether the operation allows partial success. If the checkbox is not selected for this parameter and a record fails, the remainder of the DML operation can still succeed. If the checkbox is selected, it means that if the processing of at least one record fails, then none of the records will be processed successfully. Data Loaders Configuration
  • Type - Determines Group type, which can be:
    • Trigger - steps within Trigger group are executed in trigger context
    • Custom - steps withing Custom group are executed Steps in different scenarios than trigger context, such as when a developer wants to perform this directly in the code, or through a flow. Also Custom group is required when a step’s type is Step Group.
  • Object Name - Mandatory for Trigger group type to specify the object. However, for Custom type, while it’s optional, developers can choose to input a value to identify the associated object or leave it blank.
  • Data Loaders Configuration: Data Loader 1-8 - Class name determines Data Loaders related to this action. The Data Loader is used to load data for processing in Step Group and Step. Inside the Data Loader classes are the queries to the database. The DataStore class is responsible for managing them correctly.
Object Relationships

Object Relationships Object Relationships

Object Relationships

This card is accessible only when the Group is configured as follows:

  • Type is set to either Trigger
  • All Or None is set to Partial success
  • Object Name is populated.

Object Relationships section allows setting objects whose records are related to the record within the context. In case of errors originating from DML operations performed through the ModificationContext on these related records, the exception handling will work in a way that addError method will be used on the context record, enabling graceful error handling instead of a having just an exception.

Input details:

  • Field Name - points to a lookup field from the context record
  • Related Object Name - it has to be an Object matching a chosen lookup field
  • Field Name - field from related Object for which any dml error will results in addError message on context record

Step Configuration

To configure Step we need to go Breezz SetupSteps GroupsChoose one of existing GroupsNew Step. After clicking New Step we can see the form to create configuration.

Configure New Step Configure New Step

Configure New Step etails:

  • Name - name of the configuration. Generated automatically once Action Configuration and Parent Group are populated.
  • Description - Functionality logic description.
  • Steps Group - Related Breezz Step Group Configuration.
  • Order - Determines order of execution.
  • Is Active - Determines if a Step is active.
  • Feature Availability - This is special metadata that tells us when the functionality is active. In this field you must enter the name of the created Breezz Feature Toogle. For more details see also Feature Availability
  • Action Configuration:
    • Type Step type. Available types:
      • Custom - allows to run Apex code,
      • Flow - allows to run Salesforce Flow,
      • Step Group - executes Step Group,
      • Roll-up-Summary Field - calculates roll-up-summary field value and stores it on the parent record,
      • Create Record - allows creating a record of any object, context record field values can be used in new record,
      • Modify Context Record - allows modification of context record,
      • Modify Record - allows modification of related record,
      • Text Field Cleanup - allows text fields modifications, available functions are: truncate, trim, uppercase, lowercase, capitalize, uncapitalize, delete whitespaces
      • Custom Validation - either plain text or custom label can be used as an error message
  • Is Async - Determine if action can be executed asynchronously. If ‘Asynchrounus’ two additional card become available: Async Configuration and Advanced Async Job Configuration
  • Data Loaders Configuration
    • Data Loader 1-2 - Class name determines Data Loaders related to this action. Class names need to implement SObjectChangeModule.DataLoader interface. Data loaded is shared in all actions. Step Data Loaders Configuration Step Data Loaders Configuration
Async Configuration

Step Async Configuration Step Async Configuration

Async Configuration

This card is accessible only when the step’s Is Async input is set to Asynchronous.

Async Configuration card provides control over the following settings:

  • Async Strategy - Determines async execution strategy:
    • Multi Queueable - process will use multiple Queueable jobs to process requests (can be configured in Async Job Settings).
    • Direct - process will be executed synchronously in Platform Event trigger (user it only for simple logic).
    • Future - process will be executed in Salesforce Future method.
    • Queueable - process will be executed in Salesforce Queueable.
    • Batch - process will be executed in Salesforce Batch.
    • Custom - provide a custom execution strategy name.
  • Is Queued - This checkbox determines if requests need to be stored in the queue before execution. This flag needs to be checked when processes require fail safe logic.
  • Async Threshold - Determines minimal number of records which need to be added to async context to run processes in async scope.
  • Realtime Processing - runs process execution automatically after adding a job to the Async Job Queue.
Advanced Async Job Configuration

Advanced Async Job Configuration Advanced Async Job Configuration

Advanced Async Job Configuration

This card is accessible only when the step’s Is Async input is set to Asynchronous.

Advanced Async Job Configuration card provides control over the following settings:

  • Process Chunk Size - Determines number of records which could be executed in a single Future, Queueable or Batch Chunk job.
  • Query Limit - A maximum number of records that could be queried in the single processing iteration. 0 value means that the System will try to query All records.
  • Async Limit Threshold - Async Apex job will be executed only when the actual Platform Async Limit is lower than the provided threshold.
  • Is Active - Determines if the process is active.
  • Enable Default Queueable Finalizer - Enables default Queueable finalizer which saves Unhandled Apex exceptions in the Async Jobs.
  • Async Job Queue Query Strategy - defines the way how Async Job Queue will be processed.
  • Max. number of Async Jobs reprocessing - Maximal number of Async Jobs reprocessing, after reaching Max Failed Tries value Async Job will change status to Error and will require manual intervention.
  • Async Retries Execution Delay [min] - Delay between Async Job processing retries in minutes
  • Async Queue Platform Event - name of platform async queue platform event.
  • Async Queue Object - Salesforce object which will be used to store/queue Async Jobs
  • Delayed Queue Object - Salesforce object which will be used to store/queue Delayed Async Jobs