Copyright © Novulo R&D 2018-2024
Architect 3.9
With the release of Architect 3.9 the business & test processes which were introduced in 3.7 with the use of plugins have been fully integrated into the Architect.
This integration provides developers to add, create, update & maintain documentation and tests within components to increase quality.
In the following document the technology will be discussed, provide an explanation on how to build business processes and tests, and run them with the Headless Test Runner in your generated application.
Chapter 1: Getting Started
Glossary
Business Process
Describes what a process in your component does and what kind of choices the user can make
Test process
Tests if your business process in your component works
Structure & APQC
The terms for the business process, business activity and business task are lent from the process framework of the APQC (The American Productivity and Quality Centre).
A process framework is essentially a list of all the key processes performed in an organization, grouped hierarchically to show how they relate to each other.
Level 3, 4 & 5 are now modellable in the Architect and Level 1 represents the domains in Novulo.
The process framework is written out in this document:
This might be of help to decide what the business processes and business activities are in your component.
Chapter 2: Quick guide
How to build a business process
To show existing (converted) business and test processes in the explorer, you need to click the business and test process icon:
Via the right mouse menu on the model node in the explorer you can quickly add business and test processes:
The properties dialog for the new business process is opened and you can set the domain and the title in the desired languages.
You can now drag in existing business activities (1), add a new business activity in this business process (2) or control the process flow (3):
If you drag in a new business activity the properties dialog of it will be opened.
Set the domain, title and validation condition if desired.
The validation condition is an expression which will be evaluated after an activity has ran in a test, and the test fails and stops if this expression evaluates to false.
If you click OK in the dialog, the business activity is added to the business process.
In order to model the business activity you need to open it, this can be done via the right mouse menu of the business activity by clicking “Edit component”:
When you open a business activity you get a split screen with on the left side the business activity and on the right side the page on where the business activity is.
If you open an empty business activity the page on the right side is not set.
If you click on the page icon (1) you can select the start page:
Now you can drag in any element with which you as a user can interact with, for example an add button on a grid or text fields on a record page.
You can start your business activity with clicking an add button from a grid, after which you arrive on the records page of which you can drag in the fields you want to fill in.
If this business activity will be used in a test process you need to give the values with which the fields are set.
It is good practice to make those values parameters of the business activity.
When adding a record, do not forget to drag in the Ok (add) button. For that, check as well that the page is shown in the correct page mode (1):
You can repeat the above for the desired business activities you want in your business process. If you have done that your business process is ready:
How to build a test process
You can add a new test process with the right mouse menu on the model node in the explorer:
The properties dialog for the new test process is opened and you can set the domain, title, tested processes and the validation condition.
For a test process you have to set which business processes you are going to test, most of the times this will be one business process.
The validation condition is an expression which will be evaluated at the end of the test, if it returns false the test fails.
You can now drag in the business activities of the business process you are testing:
One can add Should run's
or new Business Activities
. Do not forget to add the business activity to the Business Process you are about to test. The problem visitor will remind you of that.
When the business activities have parameters, these should be set within the component, this will help with further configuration after rollout.
Chapter 3: In depth
Business process
In a business process you can describe what a process can do in your component. For a definition of what a business process is, one can take a look at the process framework of the APQC for reference.
A business process:
- Can contain business activities,
- Can contain consumed business activities,
- Can contain descisions,
- Can contain for-each’s,
- Can be produced,
- Can be consumed,
- Must have a title (translated),
- Can have a domain (recommended),
- Title is its documentation,
- Does not use parameters, therefor not supported.
Business activity
A business activity is the process that explains all the tasks (actions) from start to finish to perform a certain activity.
A business activity:
- Has its own unique split view
- Process is on the left, while page associated with the activity is on the right.
- It is not possible to close the page view or process without closing the entire panel.
- The split between is static and cannot be moved.
- Can be compared with older versions of the same business activity with compare mode.
- Contains business tasks (
single actions
that an employee can use to complete the activity from start to finish), - Can be part of business processes,
- Can be part of test processes,
- Can contain business sub-activities,
- Should contain / use parameters (not mandatory, but highly recommended),
- Has a ‘global’ (Architect) context, therefor its capable of seeing / using all existing sub-activities,
- Is often performed on a single page, only the initial starting task is on a different page.
- Starting task might be the ‘add’ button on a grid.
- The next tasks are related to creating a new record on the data page.
- Can have ‘should runs’
- A should run (decision) is a unique decision for tests to perform different tasks depending on the condition.
- Only one return can exist,
- All ‘exits’ should be connected to the single return.
- Must have a title (should be translated),
- Can have a domain (recommended),
- Can have a validation condition,
- The validation condition is an expression which will be evaluated after the activity completed whilst running in a test, and the test fails and stops if this expression evaluates false.
- Should hold documentation for everything to do within the process,
- Introduction, Afterword, and every ‘configured’ task should have documentation in all the languages configured within the component.
Initial split view for a new Business Activity the start page is empty:
If you click on the page icon (1) you get a dialog to select your starting page.
After setting the starting page:
Unique split view features:
- Page elements can be dragged from the page editor & dropped into the process editor.
- Only page elements that are supported by the Business Activity can be turned into tasks.
- It is not adviced to use this page editor as a design tool.
- Process elements (tasks) cannot be dragged into the page editor.
- The palette is associated with the process editor, not the page editor.
- The tasks set the corresponding page in the page editor.
- When a task is selected within the process editor, the page will be shown where the element of the task is on.
- When a task is selected within the process editor, the element will be scrolled into view on the page editor.
- When a task is selected within the process editor, the element will be highlighted on the page editor.
Business sub-activities
A business sub-activity is an activity which can only be used in other business activities.
A business sub-activity:
- Can be produced and -/ or consumed,
- Allowing execution of certain business tasks that do not exist within the component, but come from others.
An example:You have a business activity where you add a person in the component 'Novulo Relatiebeheer'. In this activity you also want to set the marital status of that person from the component 'Novulo Huwelijke staat bij Persoon'. In the component 'Novulo Huwelijke staat bij Persoon' create a business sub-activity which sets the field marital status. Produce this sub-activity Now consume the sub-activity in 'Novulo Relatiebeheer' and incoorporate it.
- Allowing execution of certain business tasks that do not exist within the component, but come from others.
- Can be reused, simplifying process building,
- Can contain a certain set of business tasks in different business activities, but the business tasks on their own does not justify a business activity.
- Can have parameters (recommended for autotest),
- Has a domain,
- Has a name (unlike the title property this name is not multilingual)
- Has a validation condition,
- A validation condition is an expression which will be evaluated after the sub-activity was performed in a test. The test fails and stops if this expression evauluates false.
Business tasks
Business tasks are the green blocks within your business activity / sub-activities and are an individual action the user can do in the generated application(s).
Some examples:
Click a button
Fill in a field
Click a column
and so on
There are five different tasks available from the palette, but most of the time you will be dragging elements from the page editor (right view) to the process editor (left view) and this will create the corresponding business task
Click button or tile task
With this task it is possible to click a form button, page button or a tile.
When you drag a click button or tile task from the business activity page editor (right view) into the business activity process editor (left view) a “Click on button or tile” task will be configured.
The properties for the click button or tile task:
Test element:
references what will be clicked.End page:
references which page will be used after the button or tile is clicked. The Architect will try to determine this automatically.- If different pages could be loaded in the process behind the button or tile, you can choose the correct page for the End page property.
- If the Architect cannot automatically determine the end page, this could be caused by a consumed process within the button process.
- When this occurs, you can enable the
Free page selection
property. Now you can select any page for the End page property.
- When this occurs, you can enable the
When you have the task of clicking an Ok(add) page button it is possible that the page on the business activity page editor (right view) changes to the following message:
As the message explains this happens when an OK (add) page button is clicked on a details page without a grid present, but the record type of the page is produced.
When you click on OK (add) page button in the generated application the page will be closed if that page has no grids on it, otherwise you stay on the record page (in view mode).
For this business activity we do not know what the page will be after the OK (add) button click is clicked, because it is possible that other components add grids on the page during integration.
You can use this business activity normally in your business processes and tests.
Click grid element task
With the grid element task it is possible to do one of the following grid tasks:
- Perform a click on a row in a grid,
- Perform a click on a grid button,
- Perform a column click.
When you drag a grid from the business activity page editor (right view) into the business activity process editor (left view) a “Click on row in grid” will be configured.
The properties for the grid element task:
Test element:
references the grid.End page:
references which page will be used after the click on the grid row. The Architect will try to determine this automatically.- If different pages could be loaded in the process behind row click, you can choose the correct page for the End page property.
- If the Architect cannot automatically determine the end page, this could be caused by a consumed process within the button process.
- When this occurs, you can enable the
Free page selection
property. Now you can select any page for the End page property.
- When this occurs, you can enable the
Search column:
references the column where a search query can be performed on the grid.Search value:
references the value which will be search by the search query.- If both the search column and the search value are used, the Headless Test Runner will perform a search and click the found result. If multiple results are found, it will generally click the first row.
- If neither the search column and the search value are used, the Headless Test Runner will click the first row.
Additionally (situation dependent):
- When you drag in a column, which does not have a column click, a “Click on row in grid” task will be created with the dragged in cloumn set as its Search Column.
- When the dragged in element or tested element is a grid button, the properties “End page” and “Free page selection” become available.
- If the grid button uses “grid row selection in process”, it is also required to set the Search column and Search value.
- The first row is then selected when the Headless Test Runner click the grid button.
- When the dragged in element or tested element is a “column with a column click”, the properties “End page”, “Free page selection”, “Search column” and “Search value” all become available.
Enter value task
When you drag in any input element from a form in your page editor (right view) to the process editor (left view) an “Enter value task” will be created.
The properties for the Enter value task:
Test element:
references the element that was either dragged & dropped or provided by the user.Test value:
is the value the Headless Test Runner will fill in when this business activity is tested.- Best practice: Add a parameter to the business activity, which can than be references in the test value (trigger.name_of_parameter)
End page:
references which page will be used after the tested element & test value is completed. In most cases this will be the same page as the test element is on. The Architect will try to determine this automatically.- If the element has an on-change process it might occur that the Architect cannot determine the page.
- When this occurs, you can enable the
Free page selection
property. Now you can select any page for the End page property.
- The
Search column
andSearch value
need to be set when your tested element is an autocomplete field / search link field.- With these properties the search pop up will be filtered if the Test value triggers the search popup. The first row in the search grid will be selected as the value for the Test element.
Call plug-in test function task
You need to use this business task whenever you want or have to click on a button of a dialog (from a Show dialog process action) or a message (from a Show message process action) or if you want to test another plug-in.
Due to limitations, the call plug-in test function task has to be dragged in from the palette to the process editor (left view)
With this business task it is possible to interact with plugins in your application.
The Headless Test Runner will execute the Javascript function which is defined in the component.
Example of clickShowDialogButton:
When using the clickShowDialogButton plug-in action “Show Dialog” the function name and parameters will be preset for you.
Example of clickShowMessageButton:
When using the clickShowMessageButton plug-in action “Show Message” the function name and parameters will be preset for you.
For the Show dialog & Show message plugin type the End page cannot be set and it will be the page on which you currently are in the business activity.
Example of other plug-in actions:
When using other plug-ins in your application, you need to contact the plug-in team to inquire which functions are available to call in your tests (in the future it should be possible to directly set it in the Architect yourself).
- If the Call plugin type is set to ‘Other plugin’, you’ll need to give the Javascript function name.
- If the Function accepts parameters, you should enter them in the “Function Parameters”.
- The first parameter in the list, will be the first parameter entered in the Javascript function, etc.
- The Expression type provides the ability to make the value of the parameter dynamic.
- The FClass type provides the ability to select an element on your current page.
- As the last property you need to set the End page and here you can select any page in your component.
Navigate to page task
You’ll need to use this business task only in the situation you are creating a business activity which starts with a business sub-activity.
This business task is required to first set the correct page load.
You can now select each page in your component to which you can navigate to in your component after you login into your application.
If for any reason the Headless Test Runner is already on the configured page during the test, it will not initiate a page reload.
Test Process
With a test process you can test a business process in your component.
Where a business process can have decisions and for each’s, the test process is one straight line through your business process.
A Test process:
- Has a domain,
- Has a title,
- Requires the ‘To be tested’ Business processes,
- Has a validation condition,
- Can have parameters (best practice),
It is possible to test multiple business processes within one test process, but most of the time you only test a single business process.
The available business activities in your test context are also filtered on the selected business process in your properties.
The validation condition is an expression which will be evaluated after the test process has been performed.
- If the evaluation returns false, the test fails and will stop.
It is possible to give your test process parameters (best practice), to pass these parameters along to the tested business activities.
The test process parameters can be set when the test process is used in a test scenario or you can set the test process parameters in your generated application for when you run individual test processes with the Headless Test Runner.
Test scenario
With a test scenario you can execute different tests and repeat the same test with different parameters.
A Test scenario:
- Has a domain,
- Has a title,
A test scenario can be executed by the headless test runner.
Chapter 4: After Deployment
Deployed:
When your application is installed, and you’ve logged in, go to ‘all apps’ and click the ‘Generate documentation and tests’ (if your application is Dutch: Genereer documentatie en tests).
When this process is finished, there is a possibility of you getting an ‘Error(s)’ dialog where you can find all ‘errors’, ‘inconsistencies’ etc. that the generation has run into.
You can easily download as File to keep track without the dialog opened.
Process documentation within application:
The ‘Business processes’ (found under all views > business processes) gives you an overview of all existing Business processes within the application. By opening a record, one can then use the button ‘Open’ to see the instructions the end user will see when attempting the process.
Make sure that you have completed the Instruction generation, and avoid as many errors as possible. Especially any of the ‘red X’ marked issues.
Whenever an error like this existed, fix the error / issue before test configuration etc.
1). Find the view for the Test process
or Test scenario's
Test processes
are pre-set tests where one can adjust the values of the parameters. This is used or useful for tests where the input values do not change or do not require changing.
Test scenario's
are sets (form of compilations of multiple tests) where the input values can be altered depending on the requirements. This is used or useful for running the same tests where input can change depending on the situation(s) or the requirements of the tests in general.
The following flow describes the Test processes
. Test scenario's
are just an additional record ontop of Test processes
.
This can be found within all views (through metro). The grid should look something like this:
2). Find the actual test process you want to configure and click it.
3). Test Process page
Page information
1). Standard, description etc.
2). Actual activities that will be performed by / during the run of this test.
3). Test data grid is an overview of all ‘linked activities’ and shows which expression values it will use to run the test.
4). Parameters & returns. These should be here, generated from the component / model. If you do not have anything here, there is a high possibility your test that you’ve build in the component will not work or work as intended. This is not something that can be fixed from within the application, this requires Architect work
5).Business processes. The business process or processes being tested with this test.
6). Test results for this test.
Requirements for the test runner:
Seen in image: 7, 8 and 9.
Add the following panel / tab if missing, can be found under ‘More’ (top right):
- Configuration data (on the page this is indicated as ‘Data for testrunner’).
In this panel one can generate step file and generate data file, which are required for the test runner to use to run your test.
However, one does need to specificy a few things:
-
Application url: This is the page you’re at. So copy the url from the application, and paste it here. Add the default.aspx if this is missing to the end (to be sure).
-
Account (username & password): Provide a username & password, so that the test runner knows with which account it should login.
-
Web service account (username & password): Provide this (if any) to allow the headless test runner to perform a validation check with a different account.
Why is this needed:
The test runner is acting as an active user, which means, it requires atleast an account to login to your application. Depending on the requirements of your test, one can opt for admin which will have all the rights, however, if things are behind rights profiles or seperated, one can opt for a different account.
The test runner also has no idea which application it has to run, meaning, without an application url, it cant tell the browser where it should go, therefor the application url has to be provided.
10). Run condition and validation expression.
Running my Test
Depending on where you are within the application. Once you’ve finished to setup your Configuration in regards toin regard to your test data.
You can either use the Generate Step File & the Generate Data File from within the test process.
Or if you are no longer here, you can use the ‘All apps > Get data for Headless Test Runner’ to get everything that was configured in a zip. (in Dutch: Alle apps > Geef data voor Headless Test Runner)
If you have an older version of the Headless Test Runner installed, open the application, if an Update is available, you will be automatically prompted to update.
If you do not have the Headless Test Runner installed, you can download it from here:
https://headlesstestrunner.novulo.com/downloads/HeadlessTestSetup_1.6.0.2.msi
Latest version of Headless Test Runner (v1.6.0.2)
Or you can go to our website and grab the latest or an older version of the Headless Test Runner, or go through all the changes that have been made to it in the past: https://headlesstestrunner.novulo.com/
Chapter 5: Architect Errors, Warnings and Solutions
No title has been set:
Set a title in the properties on the reported object.
A business subactivity is not allowed in a business process:
Remove the business subactivity.
The start page is incompatible with the end page(s) of the previous business activity:
click for solution
In your business process, the reported business activity has an incorrect start page because of the end page of a previous business activity.
Check if you have the business activity in the right place or should the first business task in that activity be done on another page?
It is also possible that you know it is correct, but the Architect cannot check this situation correctly. In that case you can also perform the associated quick fix. Or open the properties of the business activity in the business process (this is also called the proxy of a process component or business activity) where you can set this overrule as well.
This process type is not allowed in a business process:
Remove the referenced object.
This action type is not allowed in a business process:
Remove the referenced object.
A business activity is not allowed in a business activity:
Remove the referenced business activity.
Subactivity has a different startpage:
click for solution
The start page of the subactivity does not connect to the end page of the previous business task.
Correct the first business task of the subactivity or correct the previous business task.
It is also possible that you know it is correct, but the Architect cannot check this situation correctly. In that case you can also perform the associated quick fix. Or open the properties of the business subactivity in the business activity (this is also called the proxy of a process component or business activity) where you can set this overrule as well.
Subactivity has a different endpage:
click for solution
The end page of the subactivity does not connect to the (start) page of the successive business task in the business activity.
Correct the last business task in the subactivity or correct the successive business task.
The process is not a business subactivity:
Remove the referenced object in the business activity.
Action type is not allowed in a business activity:
Remove the referenced object in the business activity.
Only one return action allowed for a business activity:
Remove the return actions in your business activity until you are left with one return action.
This business task should not have an end page set. Unset this with the quick fix:
Apply the quick fix. This can happen when the tested field is being set to not editable.
The end page needs to be set by hand in the properties, so the problem visitor can do the checks if the test is correct:
Set the end page in the properties.
It is unknown what the end page of this add button will be, because we do not have grids on the page and are mapped to the reference architecture. Please unset the end page with the quick fix:
Apply the quick fix.
The selected end page is not a page:
Set the correct end page in the properties of the reported object.
Only pages (and which are not virtual pages) directly below a visible module are allowed for NavigateToPage tasks:
Set the correct page for the NavigateToPage task in the properties (only pages (and which are not virtual pages) directly below a visible module).
The end page is not part of the process behind the selected test element:
Set the correct end page for the business task in the properties.
No element selected to test:
Set a test element in the properties of the business task.
FClassToTestProperty should be only set for business tasks:
Unset the tested element in the properties of the business task.
The tested element belongs to a page which is not in the test scope. Select an element from the correct test page:
Set the correct test element in the business task, or is the previous business task incorrectly configured?
The tested element is not of the correct type:
Select the correct test element in the business task, the reported error should tell you what type it should be of.
The tested element is never editable, but the business activity is produced or is in a test which means the test will fail:
Remove the business task or select a different tested element.
The tested element is never editable, but the business subactivity is produced or is in a business activity which is produced or in a test. This means the test will fail:
Remove the business task or select a different tested element.
A search column is required:
Set a search column in the properties of the business task.
A search column is not required, but we strongly recommend to fill it:
Set a search column in the properties of the business task.
For a search link it’s only required to fill the search column if your test will open the search page:
You only need to set a search column if the search link will open the search page based on your test value.
Search column does not belong to the tested overview:
Set a correct search column in the properties of the business task.
No search expression is set, although a search column is set:
Set a search expression in the properties of the business task.
A search expression is set, although no search column is set:
Remove the search expression or set a search column in the properties of the business task.
This business task should not have a start page set. Unset this with the quick fix:
Apply the quick fix.
No start page selected:
Set a start page for the business task in the properties.
No test value expression set, are you sure this is correct?:
Set a test value expression in the properties of the business task if you want to use the business activity in a test process.
Business task is not on all startpages:
The business task does not connect with the previous business subactivities in the business activity. Correct/remove the business task or correct/remove the previous business subactivities.
The type of a plugin business task should be set:
Set the type in the properties of the business task.
No plugin function name set:
Set the name of the plugin function in the properties of the business task.
Value expression not set for parameter:
Set the value for the parameter of the plugin function in the properties of the business task.
FClass not set for parameter:
Set the FClass for the parameter of the plugin function in the properties of the business task.
FClass for parameter does not belong to the test page of the task:
Set the correct FClass for the parameter of the plugin function in the properties of the business task.
Type not set for parameter:
Set the type of the parameter of the plugin function in the properties of the business task.
TestFunctionName for a NetShowMessageAction should be clickShowMessageButton:
Switch the type of the plugin to something else and back. Now the TestFunctionName should be correct.
TestFunctionName for a NetShowDialogAction should be clickShowDialogButton:
Switch the type of the plugin to something else and back. Now the TestFunctionName should be correct.
A navigate to page business task may only occur as first action in a business activity:
Remove the navigate to page business task or place it at the start of the business activity.
A navigate to page business task may only occur in a business activity:
Remove navigate to page business tasks until you are left with one.
No business processes to be tested are selected:
Select business processes to test in the properties of the test process.
The business activity is not part of the business process(es) being tested:
The business activity should be part of the business process(es) that is set as ‘Tested processes’ in the properties of the test:
Add the corresponding business activity to the business process.
Or add the correct business process to the test in the properties of the test process.
Or remove the business activity from the test process.
The referenced component is a business subactivity:
Remove the business subactivity, since they are not allowed in business processes and test processes.
The start page is incompatible with the end page(s) of the previous activity:
click for solution
In your business test, the reported business activity has an incorrect start page because of the end page of a previous business activity.
Check if you have the business activity in the right place or should the first business task in that activity be done on another page?
It is also possible that you know it is correct, but the Architect cannot check this situation correctly. In that case you can also perform the associated quick fix. Or open the properties of the business activity in the test process (this is also called the proxy of a process component or business activity) where you can set this overrule as well.
The referenced component is not a business activity:
Remove the referenced object.
Action type is not allowed in a test process:
Remove the referenced object.
Only one return action allowed for a test process:
Remove the return actions in your test process until you are left with one return action.
The referenced component is not a test process:
Remove the referenced object
Action type is not allowed in a test scenario:
Remove the referenced object
Only one return action allowed for a test scenario:
Remove the return actions in your test scenario until you are left with one return action.
Removed should-run-expression:
click for solution
During conversion the “should run” expression has been removed, check if the business process or test process is still correct.
Apply the quick fix when you are done, this will remove the info report.
This X was documented more than once. Only the first occurrence is migrated:
click for solution
During conversion it was detected a field was documented more than once. Only the first occurrence is migrated.
Check if this is correct and apply the quick fix when you are done, this will remove the info report.
This X contained documentation, but it’s not possible to document it in the Architect:
click for solution
During conversion it was detected that something invalid was documented. Check if no documentation is missing (look in the previous 3.8 revision).
If everything is correct or is corrected apply the quick fix, this will remove the info report.
During conversion, no title was found for the following languages: X. To prevent the loss of these languages, the value of Y was filled in. Please verify manually:
click for solution
During conversion it was detected that the title was not set in every language. Set the correct title in the missing language in the properties of the referenced object.
When everything is corrected apply the quick fix, this will remove the info report.