Let’s now get to know the entities that make up the product. These concepts are very important so that we can, later on, understand how the tool works.


The first entity is the Provider, which organizes all other entities. Any entity to be created, later on, will always have to be associated with a Provider.


The next entity is the Driver.



The Driver is the connection to a source or destination data source. It would be as if it were the gateway to a database, an external file directory, a webservice site or an FTP server. Finally, Drivers provide access to the data source.


Let's get to know another entity, the Container.



The Container must always be associated with a Driver. Corresponds to the data being returned by the source input port, that is, the Driver.


For example, if the Driver is a database, the Container is the SQL query. If the Driver is an FTP directory, the Container is a file contained there. If the Driver is a web address, the Container is the webservice.


Depending on the type of Container, we may need to associate it with another Container.



For example, a Container that returns XML, whether from a webservice or an external XML file stored in a directory, can result in several tables. These individual tables coming from XML will be other Containers.


However, the data does not always come in the desired format. Most of the time, we need to generate transformations to convert data from one format to another. The product offers a number of ready-made integration methods, and you can also create your own transformation functions programmatically.



The languages used internally by the product are C-Sharp or VB.NET. We arrive at entities called Boxes. One of them is Automatic Box.



It is so named because the association between source fields that come from a Container or a transformation must be of the same name and type as that of the target driver. Automatic Box can also generate output in Containers other than databases, such as Excel files or JSON files.


Manual Box is another entity in the Boxes family. It allows the association between source and destination fields to be done manually.



However, the association is not made directly from the Driver, but from another Container. The limitation of this structure is that the destination Container must be for database only. We have other Boxes, such as the Single Box.



This entity is associated with a process carried out within the source itself, without transferring data to a different source. An example: an SQL update command on a database is executed by Single Box, because it is an internal action. Another case is copying a text file from one directory to another.


Process Box are programs created within product transformations that return a logical value.



It can be a process or a customized action performed internally by programming created and stored in the product's methods, returning a success status. There are other types of Process Box, associated with Web Services, table transformations, generation of external files and much more.


Common Box executes an external command from the operating system.



It is capable of running an executable program or a batch file, passing parameters to these programs if necessary.


There are more Boxes, not mentioned above, such as the Environment Box, the Container Box and the OLAP Box, each with its specific purpose. All Boxes can be orchestrated to execute their processes, using a sequence that can be changed depending on the outcome of the process. These sets of Boxes orchestrated in an execution sequence are stored in a Flow.



Executing a Flow corresponds to executing a complete data integration process. Sets of tasks performed within a Flow can be converted to other Flows.



This means we can drill down into processes and then call them through larger flows.


Associated with the tasks of a flow, or the flow itself, or the environment as a whole, we have PromptVars.



These are parameters that can be passed to associated entities, allowing flexibility in the execution of integration processes. PromptVars are of several types.


They can be a single value, the result of a transformation function, standard or customized, a connection to a Driver or the result of a Container.


If the PromptVars are the result of a Container, it may have more than one response element.



This internally creates an array in memory that allows flow tasks to be executed through loops.


Flow can be scheduled to run once a month, once a day, or every minute. There are several ways to execute it. We can also run it through an external event or leave it running for a period of time without stopping.


This facilitates the execution of integration processes between systems. When configuring web services, a Flow, a Container, a Driver or the set of these three entities, as shown above, can be transformed into an API simply through a few clicks, without the need for any line of code. This makes the integrator a powerful tool for creating sets of APIs available for integration with external tools.