This article applies to BackOffice Associates® Solutions versions 6.3 and later.
Bulk Execution Overview
The Bulk Execution feature allows users to run a validation event on a DSP® page for all records or a subset of those records via a simple, guided user experience.
Enabling Bulk Execution involves:
- Identifying or creating the page in which the intent is to implement Bulk Execution
- Ensuring an OnValidate event is present on the page
Additional information about using and configuring Bulk Execution is available in the Product help and the System Administration help.
The audience of this article is developers who are implementing Bulk Execution on a page or programmatically. This manual assumes advanced knowledge of DSP® navigation and functionality.
Custom application pages deployed at customer sites by page designers are permitted but they are not covered by standard Product Support. Please refer to a page designer for customization troubleshooting. If you believe there is a bug in the feature as implemented in the delivered product, report the bug to Product Support using the standard support notification process.
Bulk Execution is enabled for a page by configuring a setting on the validation event on that page.
NOTE: The page-level OnValidate event must have been written and registered to the page before Bulk Execution can be enabled for it.
To enable Bulk Execution on a page:
- Navigate to the desired page and click Design Page > Design.
- Click the Events icon.
- Click the Vertical View of the OnValidate event.
- Click the Advanced Properties tab.
- Check the Support Bulk Execution check box.
Once the Support Bulk Execution check box is enabled, the Bulk Execution tab displays. Return to the original page, refresh the page and access the Bulk Execution panel by selecting Bulk Execution from the page gear menu.
After enabling Bulk Execution on the Page Events Vertical View, a Bulk Execution tab displays. Here, the following options can be set:
- Exclude Business Rule Default – Determines whether the Exclude Business Rules check box on the Bulk Execution panel is checked or unchecked by default when the panel opens.
- Exclude Business Rule Option – Determines whether the user can exclude business rules or not by clicking the Exclude Business Rules check box. If this options is checked, the check box displays on the Bulk Execution panel; however, the check box does not change if the user clicks on it.
Bulk Execution can be invoked via a Public WebApp Event on a custom designed page, which allows a developer to provide a mechanism of implicit validation. A user will not have to access each page individually and use the Bulk Execution panel. The Public WebApp event can also allow non-direct access users to invoke Bulk Execution via the Services user (Background Service).
NOTE: If the Public WebApp Event is foreground, the current user is utilized. This is important to note as users may not have access to the page specified.
Bulk Execution is executed on the targeted page with the associated event with environment criteria as defined by the optional parameters.
Results are stored in a result table within the framework’s database to be accessed by the calling application. The results themselves are not accessible via boa* views as this is a not a definitive access method and may be changed in the future.
NOTE: The page-level OnValidate event must have been written before Bulk Execution can be configured for it.
To set up the Public WebApp Event:
- Navigate to the page where the Public WebApp Event is to be used.
- Click Design Page > Design.
- Select a page and click the Events icon.
- Select the event to which the Public WebApp Event will be added.
- Click the Business Rules icon.
- Add a new business rule where the PROCEDURE TYPE is WebAppEvent.
- Choose System Administration: Bulk Execution as the EventPageID.
- Choose Invoke as the Event Name.
Configure the usage of a Public WebApp Event by creating a parameter view and defining each field for each parameter as needed.
This plugin executes Bulk Execution based on the criteria provided.
- Event [Key] - Name of the event to be Bulk Executed. This event must have Support Bulk Execution checked.
- PageID [Key] - Page which hosts the event that will be bulk executed.
- BindingCriteria [Optional] - Binding criteria which should be included in the context of the Bulk Execution. This is bound against the source record.
- ExcludeBusinessRules [Optional] - Whether business rules should be considered when executing the Page Event.
- SharedCriteria [Optional] - Shared criteria which should be included in the context of the Bulk Execution. This is bound against the source record.
Results generated during an event that includes the invocation of the Bulk Execution: Invoke Public WebApp Event are stored in both the BulkExecutionResult and BulkExecutionValidationRuleResult tables within the framework database. The results from the bulk execution that are stored in the table are kept for a few hours. As a best practice, the records from those tables should be copied to a data store in the custom application to work with and reference.
BulkExecutionResult stores the event parameters as well as the metrics about the execution. This includes time to complete [ExecutionTimeSeconds], [RecordsFailed], [RecordsSkipped], [RecordsUnknown], [RecordsPassedWithMessage], [RecordsPassedWithNoMessage], and [RecordsThrewErrors].
BulkExecutionValidationRuleResult stores the validations associated with the Bulk Execution event. This includes [ForcedFail], [ForcedPass], and [Count].
These resultant records are identified by a BulkExecutionResults ID. The calling event is informed of the relevant ID via a callback mechanism implemented with this feature. Any subsequent event rules run after the Bulk Execution Invoke Public WebApp Event are given the BulkExecutionResults ID if the reserved parameters @ boaActionResultsIdentifier is included in the parameter view.
BulkExecutionResults ID is also available from within plugins under the host object accessible via Host.ActionResultsIdentifier. When available, the values reflect that of the previous invocation of “Bulk Execution : Invoke.” The ID can then be used to access the data to copy it where needed, as these result are not guaranteed to last indefinitely.