Let's review the initial steps and concepts that we need to create web automation solutions.
This is the simplest step: open the Denodo Control Center as you did in the other data integration tutorials, but this time click on the ITP tab on the left side. That will display all the components of ITPilot - ignore them for the moment, just click on the start button of the first component of the list, then launch the Wrapper Generation Tool.
The first Denodo Platform tutorial showed how to organize our work in databases and folders. The WGT provides a similar concept of projects that we will use to separate wrappers into different sets.
Let's start by creating a new project named “webautomationtutorial”:
New ... > Project.
After these steps are completed the WGT will open the recently created wrapper and display it in the main workspace.
Now that we have open a blank wrapper we can start building a web integration solution. A wrapper is defined as a flow of components; each component is responsible for executing a specific action. Usual components include:
Each component can be added to the wrapper by dragging it from the left menu onto the main workspace, and they are configured through a graphical wizard. Open this wizard by double-clicking on each component.
Components are linked to each other like so:
Drag the link from the little square (outbound knob) of the first component onto the second component (either the component itself or the circular inbound knob). This makes these components to be executed sequentially.
Some components have two nodes because they represent loops:
These components can link to a collection of components between these two nodes and that will make these inner components to be executed on each iteration. For example, in this situation:
You may have noticed that the link between the two nodes of the Iterator component is automatically created for you when you drop the Iterator on the workspace. This link cannot be deleted, and represents the control flow from the end of an iteration to the beginning of the next.
Apart from the order of execution we can define for each component a set of input parameters and an output result. The input parameters are configured in the “Inputs” tab of the panel at the bottom of the workspace.
Inputs are split in two types, mandatory and optional; the way of telling them apart is that mandatory inputs will not have the “-” symbol on the right side, so they cannot be removed.
A component also has three states: configuration, inputs and output states. Each one of them will be marked as white if everything is ok, red if there is any problem or yellow if the configuration should be reviewed and confirmed.
The last concept that we need to review before starting to create wrappers is the inputs and outputs of the wrapper itself.
Wrappers can receive input parameters so the actual execution of the wrapper depends on the query we send to Denodo (for example, if we want a wrapper to execute a search on a web site, we can specify the search term as an input parameter of the wrapper).
The output result of a wrapper is specified as a list of records. Each record has a set of named fields, each one with a type and a value. The whole list of records can be seen as a relational table, and Denodo Virtual DataPort will display the wrapper as a table when deployed in the Denodo server.