Solutions are collections of flows, usually linked to a required piece of automation or test data activity.

Example Solution to manage Messages.  The Solution refers to specific VIP flows (components).

Solution can be submitted from VIP Executor or as part of a model and will be executed as part of a job submitted to create code or execute TDA activities.

Solutions can be made up of several phases that can then be linked together.

Running Solutions from VIP Executor

Often you may wish to process files or databases and create configuration files that are then used by subsequent processes.   In this example.

A spread sheet formula is analyzed and returned in phase 1.  You can save the returned excel results, add in some values to test the expression and then submit the new Excel sheet to phase 2.  You can then add in and select Gherkin scenarios and submit to phase 3.

All three forms roll up to a solution.  The solution is shipped as standard inside AutomationControllerMasterTemplate.xlsx

For further details – see the Solution Parsing and Testing Excel Expressions.

Running Solutions as part of models

When creating solutions associated with a model, there are a few core concepts that need to be understood.

Working Directories

When a job is submitted to a server it gets assigned a job id.  Each job will also create a unique folder on the server containing any files that are created or modified during the process.
For example, once you submit a job look in the folder and you will see various files have been added.  An example folder name would be:
C:\VIPExcelWork\TestAutomation\Work\6795 – 39672

This folder can be used by groups of components to sequentially process different automation activities.  So for example if you are creating various csv files in that folder using one Component, you could use another component to read these created csv later in the process.

When you add a component to a server you can assign variables to this folder by assigning ?workdir you can also use the job id as a variable by assigning ?jobid

Example assignment of variables to components

The Ordering of Jobs Paths

When you are building a solution you can break the automation activities down into three types

  1. Pre process

  2. The path – data creation and data finding

  3. Post process

 
In the example below we have created some additional paths to manage the automation.  In this case we wish to perform some sweeper activities after each of the unique combinations of data has been created.

In order to set this up, create new Start/End journeys with Test Data Catalogue activities attached to the path.  Once you have created your test cases (Paths) rename the paths to start with  @Pre or @Post – if you wish to perform multiple pre or post – assign the test names alphabetically, for example @Pre-01-, @Pre-02- . These activities will then be run separately from the main data find or data creation paths.

In this example we have added in two extra paths with four post steps

  1. Resolve the csv, copy the csvs to a specific network folder, upload the data in that folder to neo4j

  2. Export the csv data to Kafka

The resulting process in this example will take the csv – created by the multiple paths, resolve it (post process), then create json messages for each row in the csv (post process)

When designing solutions and components try and use common components across different solutions.  If the process requires differing combinations of data finds and makes then use the pre and post process features to complete the automation activities.