Example

For top-level and child components the input and output method arguments for the method hooks are described here using examples.

In these examples we assume that the following structure exists:

  • Component Order
    • Attribute orderNumber
    • Group Customer
      • Attribute name
    • Component Line
      • Attribute lineNumber
      • Attribute item

Let's furthermore assume that the orderNumber is a calculated attribute and internally two attribute implementations exist: orno1 and orno2

The following attribute implementations are listed as method argument implementations:

Component List Show
Order Input: none

Output: orderNumber, Customer_name

Input/output: orderNumber

Output: Customer_name

Line Input: orno1, orno2 (*) Output: lineNumber, item Input: orno1, orno2 (*)

Output: lineNumber, item

(*) Do not use orderNumber here!

If two orders exist, where the first one has two lines and the second one has no lines, the hooks will be invoked as follows:

Component - Hook Notes
Order - Before execute
Order - On execute Fetches first order
Line - Before execute
Line - On execute Fetches first line
Line - After execute
Line - Before execute
Line - On execute Fetches second line
Line - After execute
Line - Before execute
Line - On execute Fetches nothing
Line - After execute
Order - After execute
Order - Before execute
Order - On execute Fetches second order
Line - Before execute
Line - On execute Fetches nothing
Line - After execute
Order - After execute
Order - Before execute
Order - On execute Fetches nothing
Order - After execute

The 'after execute' hook is invoked even though nothing is fetched, to enable cleaning up any data or state that was initialized in the 'before execute' or 'on execute' hook.

Details on the before, on and after execute hook are described in the following section.
Note: A subset of the hooks can be implemented. Implementing an on execute hook for one component doesn't mean it has to be done for the other components as well. And implementing an on execute hook doesn't always mean you also must implement a before execute hook.