Skip to main content

How to use MABOs

Some background

Batch operations (BOs) have been integral to E2 since early on. Whether run manually or continuously, a BO executes a single task on documents returned by its linked query.
The query determines the result set, effectively controlling the scope of the operation.

Despite their power, BOs are constrained to executing only one task per document. This limitation led to the development of Batch Operation Groups. A Batch Operation Group contains a collection of individual BOs that are executed sequentially, in the defined order within the group. Batch Operation Groups support scheduled execution and can be configured to run daily, weekly, or monthly.

Although Batch Operation Groups allow multiple BOs to be executed in a defined sequence, the restriction to daily, weekly, or monthly schedules remains a drawback.
Despite this limitation, many Authorities are using Batch Operation Groups effectively, some batch operation groups containing over a thousand BOs.

Enters the Multi Action Batch Operations

What are Multi-Action Batch Operations (MABOs)?

Multi-Action Batch Operations (MABOs) combine the functionality of Batch Operation Groups and individual BOs. The query defined in the MABO determines the result set on which multiple actions can be executed.

What happens with the already existing BOs and BO Groups?

With the introduction of MABOs came a redesigned user interface. All existing BOs have been automatically migrated to align with the new interface.
This transformation requires no user intervention, BOs also remain within their original groups, and no additional action is needed from the user.

The MABO interface

There are 2 types of MABOs

·        Attribute MABOs

·        Report MABOs

Although both types are accessed in the same manner, they are mutually exclusive and cannot be combined within a single operation. Each MABO must operate independently as either an attribute or a report MABO.

The attribute MABO

The attribute MABO is used to change values of attributes based on conditions and restrictions

image.png

The interface can be broken down in 4 panels. Each panel will be further explained in detail:

1.       This panel describes the MABO properties.

2.       This panel defines the conditional logic for an entity for which certain actions are to be performed.

3.       This panel sets out which actions are to be performed on what attributes.

4.       This panel is the summary of all entities for which actions are to be executed.

 

MABO properties (1)

This panel describes the properties of a MABO. It defines what the batch operation is, where it is stored and upon which data the steps (4) are executed

image.png


a)       Batch operations can be performed on different taxonomies, this indicates for which taxonomy the MABO is created. The current taxonomies are either ECCAIRS or SRIS

b)      The status informs if the MABO is in draft, has been released or was archived

c)       Multi Action Batch Operations (MABOs) can be configured to run in two modes:

·        Manual: Execution must be initiated by a user.

·        Continuous: The MABO runs automatically whenever the specified conditions are met.

Switching Execution Mode:

·        You can switch between manual and continuous modes at any time.

·        This flexibility allows users to adapt operations to evolving business or data quality requirements.

Best Practice:

·        It is highly recommended to start with manual execution to:

o   Identify any latent issues or unexpected behaviours.

o   Safely verify the logic and results of the batch operation.

o   Build confidence in the MABO configuration.

Once the MABO performs reliably, you can transition to continuous execution.

d)      Although the name is a free text field, giving a MABO a meaningful name is important. In future a MABO may need to be modified according to business needs, having a meaningful name allows for finding it back easy
Best practice is to use a naming convention that includes key information such as the entity, action type, and target scope

e)      Report type, depending on the report type, whether it be an Original Report (OR), a Validated Report (VR), an Occurrence (OR) or a Safety Recommendation (SR), it will drive the allowed actions. Each document type has its own allowed actions that can be performed.
For example:

·        Some actions may only be allowed on Validated Reports, such as linking entities or updating attributes.

·        Other actions, like narrative merging or copying content, may be restricted for Original Reports.

f)        The Scope Query in a MABO defines the initial set of documents that will be retrieved from the database before the batch operation begins.

·        The result set is fetched once at the start of the MABO execution and is loaded into memory.

·        All processing and condition evaluation are performed only on this in-memory dataset.

·        If a MABO modifies an attribute that was part of the original scope query, the result set remains unchanged during that execution.

g)       MABOs are saved in a library. Organising MABOs into libraries can help to streamline managing multiple MABOs it will make it easier to find them.

Best practice is before starting to create MABOs, is to think about how to organise them in libraries, especially when working in teams.

h)      When modifying a MABO, it is good practice to provide a version number.

i)       The Undo feature provides a grace period during which the modifications made by a MABO are temporarily held and not yet committed to the database. This mechanism adds a safety net to MABO executions, allowing users to test logic in production-like settings while maintaining control and data integrity. The Undo option is available only for MABOs set to manual execution. It is not supported for continuously running MABOs.

·        During this period

o   All changes made by the MABO are stored temporarily.

o   The user who executed the MABO can review the results.

o   If the outcome is incorrect, the user can roll back the entire MABO operation.

Best practice

·        Set a sufficiently long grace period especially when

o   The MABO performs complex transformations.

o   The dataset being processed is large or sensitive.

o   Manual review is expected.

·        If unsure whether the grace period is long enough

o   Export the affected documents before the grace period ends.

o   This provides a backup reference for potential rollback or troubleshooting.

j)      j)     Setting this switch on will send an email when the MABO has finished

Source entity conditional logic (2)

In the properties the scope of the documents that are subject of the MABO are defined with the Scope query. In this panel the entity for which action are to be performed are specified. And which condition on that entity do apply

Examples can be found further down in the Step-by-Step section of this document

image.png

a)       All taxonomy entities can be selected. If an entity is selected which doesn’t exist in the occurrence, then the action will not be executed, and the MABO move to the next step

b)      Add Condition. This function allows to define a filter so that the associated actions are only executed if a specific attribute of the selected entity meets a defined condition. This ensures precise control over when actions are triggered, based on the entity's data?
Multiple condition can be added linking them with AND and OR operators. There is no possibility to have condition groups like in the query builder.

c)       AND and OR, allow to compose logical combined conditions.

Step actions (3)        

In this panel the actual actions are defined, this is where MABO gets its name, from Multi Action Batch Operation

Whereas in panel 1, the properties are defined and in panel 2 the entity conditions are set out, in this panel the actions are defined

Examples can be found further down in the Step-by-Step section of this document 

image.png

a)       The allowed actions depend on the selected report type in the MABO properties (part 1)

b)      On what entity are the actions to be performed. Depending on the selected action in a), the interface will change.

c)       Define Actions on Target Entities

In this section, you configure the actions to be executed on the selected target entities. The actions defined in step a) are applied here. The interface dynamically adapts based on the selected action type. For example, a Copy action will present a different interface than an Insert or Update Attribute action.

 Each action can be applied to multiple attributes of the chosen entity. Moreover, within the same block, the same type of action can also be applied to additional entities if needed.

 It is also possible to restrict the execution of an action by adding a condition based on an attribute of the target entity. For example, as in the image above, in the case of a Link action, it can be configured to execute only when the Airspace name is equal to "LEMD".

 Like the filtering options available for source entities, multiple conditions can be combined using logical operators such as AND and OR to provide greater flexibility and precision.

d)      clicking delete will clear all actions in the block

 Steps summary (4)

Not only gives this panel of the MABO configuration view a summary of all the steps, but it also allows to add new steps and to order the steps in a specific order.

image.png

 a)       clicking this button will add a new step to the MABO. Panels 2 and 3 will be cleared.

b)      per step a short description is automatically generated. Which Entity is concerned, what actions are performed and under which conditions.

c)       the steps can be reordered, either by drag and drop or by using the 2 small up/down arrows next to the step.

 The Report MABO

The report MABO is used to apply actions on the whole document. The actions that can be performed depend on the type of document.

On an Original Report (OR) the actions are

·        Validate report

·        Archive report

On a Validated Report (VR) the actions are

·        Integrate into Occurrence

·        Archive report

 On an Occurrence (OC) the actions are

·        Share document to ECR

·        Archive Document

·        Make a major version

·        Make a major version & share to ECR

·        Share Document with authorities

·        Make major version & Share with authorities

·        Unshare Occurrence

·        Report to

image.png

The interface can be broken down in 3 panels. 

1.       This panel describes the MABO properties

2.       This panel sets out which actions are to be performed on the document

3.       This panel is the summary of all actions that are to be executed

The detailed description of the panels is the same as written for the attribute MABO. The only difference is here that there are only 3 panels, the condition panel is not applicable for report MABOs

New BO actions

·        Update or insert attribute
if an attribute doesn’t exist in the entity, then it will be added and the value inserted. If the attribute exists, it will be updated.

·        Append Sub-Entity
This action allows the user to add a sub-entity to the entity defined in the code block.

image.png


this action allows to link the entity of the condition block

·        Delete Entity
This action allows to delete the entity defined in de condition block

Ordering Continuous MABO’s

In some cases, different continuous MABO’s are triggered by the same query (result set). MABO’s are executed in alphabetical order.

Adding a prefix to the MABO’s allows to order them in any specific order

Example:

01-update some attributes à creates a new version

02-perform some specific tasks on attributes  à creates a new version

03-perform some other tasks on attributes  à creates a new version

04-Make-major-and-share à version remains the same

 Continuous MABOs triggering other continuous MABOs

To avoid MABOs entering in endless loops, it is not possible for continuous attribute MABOs to trigger other continuous attribute MABOs
Abstract example

1.       MABO A is triggered when aircraft = A, and it changes aircraft to B.

2.       MABO B is triggered when aircraft = B, and it changes aircraft to A.

3.       This triggers MABO A again.

à Repeat infinitely…

Continuous Attribute MABOs Triggering Continuous Report MABOs Is Allowed

1.       Continuous Attribute MABO updates a value (e.g., Occurrence Status, Event Type…).

2.       That update could trigger a Continuous Report MABO.

3.       This doesn't re-trigger the attribute MABO, because:

a.       Report MABOs don’t change values, they work on the whole document.

b.       Therefore, no change is made that loops back to retrigger the original continuous attribute MABO.

Abstract Example

1.       Continuous (OR) Report MABO Validates an OR

2.       Continuous (VR) Attribute MABO updates certain values in that VR

3.       Continuous (VR) Report MABI integrates the VR into an OC

Building a MABO Step by step

Given that report MABOs closely resemble the more complex attribute MABOs in terms of functionality, and most features are shared or similar, the attribute MABO will be used as the primary focus in the example for simplicity and clarity.

Preparatory steps

Create a new MABO

image.png

Select the type of MABO

image.png

In the example scenario’s the focus will be on attribute processing

Select Manual or Continuous

image.png

In the example scenario’s the focus will be on the manual method. 
It is a good practice when starting to develop MABOs, to set a grace period. This is period is expressed in minutes. The execution of the MABO can be reverted during this period if the result is not correct.

Name, Library and Query

image.png

·        Give the MABO a meaning full name.

·        Indicate in which library it needs to be save

·        Select the query to be used. This query defines the documents that are targeted. None of the actions performed in the MABO do influence the result set returned by this query

Select the report type

image.png

MABOs can either be executed on Validated Reports or on Occurrences. The selection of the report type will define which actions that can be performed. In these scenario’s the focus will be on Validated reports

The bases

image.png

 

Scenario 1

The query of the MABO will return all Airbus aircraft

The goal is to complete as much information on the aircraft as possible

Determine the number of engines and propulsion type

Different Airbus types have a different number of engines.

Select the aircraft entity

image.png


Add a condition

image.png


Target the A400M

image.png


Also target A380 and A340 by adding a condition. Using the OR operator

image.png

The above conditions will target all Airbus aircraft having 4 engines.

In the actions 4 will be entered in the number of engines attribute

Add an action

image.png

Select the number of engines

image.png

By using the action update or insert, the attribute will either be updated or inserted if absent

As the A400 has propellers, we also add the propulsion type for that aircraft

Add an attribute

image.png


Add the propulsion type

image.png

If this query is executed, then A380, A340 and A400M will have 4 engines and have all the turbo prop as propulsion type. Which is wrong. Only the A400M should have the turbo prop as propulsion type

 Add a condition to only target the A400M

image.png

Target the A400M

image.png

The A380 and A340 have a turbofan as propulsion type. 


image.png


Add an attribute & add the condition to only apply to the A380 and A340. This can be done using the copy function

image.png


Executing this MABO, will assign 4 engines to A380/A340/A400M and will assign the correct propulsion type

Add landing gear type

Regardless of the type of airbus, the landing gear is always tricycle

The first action block limits the aircraft to A380/A340 and A400M. A new action block is needed

image.png


All Airbus Aircraft have a tricycle landing gear, so there is no need have a condition block.

image.png


It is possible to extend this block to other attributes

image.png