Using advanced Virtualization configuration

<< Click to Display Table of Contents >>

Navigation:  Bizagi Studio > Process wizard > Data Modeling > Connecting to external data sources > Data Virtualization >

Using advanced Virtualization configuration

Overview

Bizagi presents a Virtualization Wizard which will assist the configuration to connect to an external SQL Server or Oracle database (and automatically create any necessary components).

 

However, for more sophisticated scenarios, you may want to use the Advanced configuration option, which is an alternative way to set Virtualization in your project.

 

Such scenarios involve mainly: 

The use of a data source which is not SQL Server or Oracle (using Custom Virtualization).

The requirement for advanced configuration (e.g. wanting to use an Oracle column which has an unsupported data-type).

The need to manually adjust the configuration. This may happen in sophisticated scenarios where you have a whole set of tables which are related to each other. This may involve relationships with virtualized entities, and therefore this configuration requires that all of these tables are replicated and virtualized with some considerations. 

 

The following article illustrates how to set Virtualization in Bizagi by using the Advanced configuration options. 

 

If you wish to view further detail and an example about visualizing a MySQL data source, refer to Customizing Virtualization.

 

Take into account that support for any other database engine, applies to Bizagi .NET edition.

 

Using the Advanced configuration options

In order to set Virtualization through the Advanced options, ensure that you have already created the necessary Master Entities and their attributes (to store the incoming values from the external data source).

For further information about creating entities in Bizagi, refer to the Creating your data model article.

 

Notice that the entities created in Bizagi should have a similar data structure to those in the external data source (for example, the corresponding data types to store the columns' values of the external tables).

 

To use the Advanced options for Virtualization, go to the Systems module view in Bizagi Studio.

 

SystemsModule

 

 

What you need to do

Configuring Virtualization through the Advanced options is done by:

 

1. Creating the entities in Bizagi with their attributes to match data at the source.

This is done through Data modeling

 

2. Defining a System.

Define the information for the system where the external data source is found.

 

3. Defining a Data Provider.

Specify details for the Data Provider (the connection information to the external data source).

 

4. Registering the Virtualization class (the component having the implementation)

We need to explicitly define if we will be using a custom implementation.

 

5. Including Master Entities for the Replication.

Include one by one, each of the Master Entities to be replicated for this connection (Data Provider).

 

6. Matching attributes in Bizagi to the sources' columns.

Map each of the attributes in the virtualized entity to correspond to a column at the source.

 

7. Using additional configuration options.

Finally, there is the possibility to use additional options for each virtualized entity set, such as: Defining filters for records incoming from the external table, indicating if an attribute (column) of those entities will be disregarded, etc.

 

Once we have done these configuration steps, we may also run an initial import for these tables or views, so that we can test that the integration was properly set (checkpoint).

 

Example

In this example, we will virtualize the Employees and PurchaseOrder tables of a Southwind database in Oracle.

 

HowToIntegrateBizagiWithAnExternalDataSource_Image054

 

Our first step is to ensure that these tables have been previously created in Bizagi as Master Entities.

 

 

1. Creating the entities in Bizagi with their attributes to match data at the source.

We create Employees and PurchaseOrders as Master Entities in Bizagi.

 

Employee entity and attributes in Bizagi:

 

HowToIntegrateBizagiWithAnExternalDataSource_Image050

 

PurchaseOrder entity and attributes in Bizagi:

 

HowToIntegrateBizagiWithAnExternalDataSource_Image051

 

 

2. Defining a System.

To define a new System to be used in this integration, right-click on Systems and select New System.

 

NewSystem

 

 

In the New System window, define the information for the system where the external data source is.

Enter the detail for this new system: Display Name and Description.

 

VR_Both03_SystemProps

 

Ensure you also check the Enable data providers for this System option.

Click on OK.

 

 

3. Defining a Data Provider.

Once you have defined and created the new system in Bizagi, we will enter the details for the Data Provider used by this System and its Virtualization configuration.

 

To do so, right-click on the Providers node located under the newly created system, and select the New Provider option.

 

VR_Both04_NewProvider

 

In the Provider Setup tab of the New Provider window, enter the detail for this new provider: Name, Display Name, and Description.

Ensure you mark the Enable data virtualization option.

 

VR_Both05_ProviderPropsVirt

 

Then, in the Provider Development Properties tab, click on the OLEDB Config button.

Notice you may set different values for your different project environments (Development, Test and Production).

 

In this example, we will set the Development Environment properties.

 

VR_Both06_ProviderOLEDB

 

 

If your external data source is in a SQL Server database, select the SQL Server radio button and specify the following details. 

Database Server: The name of the Database Server containing the SQL Server instance.

Login Name: A login account to access that Database. Take into account that this account requires read and write access to the tables or views to virtualize.

Password: The password for the previous Login Name.

Database: The name of the Database where the tables or views to virtualize are held.

 

SQLProviderProperties

 

Otherwise, and if your external data source is in an Oracle database, select the Oracle radio button and specify: 

Net Service Name: The connection string to your Oracle instance's service. This is specified as "databaseServer:port/serviceName". 

Notice that the default port for Oracle instances is usually 1521.

User Name: The name of the user schema.

Password: The password for this given User Name. 

 

In this example, we illustrate Virtualization configuration with an external data source in Oracle. 
In the Virtual Database Setup window, we enter the Net Service NameUser Name and Password information.

 

VR_Both07_ProviderConn

 

Click OK to save this connection. 

Click OK again when returned to the New Provider window.

 

 

note_pin

Take into account that you may define the properties and connection values for this integration for the different environments separately (Development, Test, Production).

However, the definition for the Test and Production environments can only be done before this system and provider is deployed into that target environment. Edition of the values in Test or Production has to be done after the first deployment by using the Management Console.

 

 

4. Registering the Virtualization class.

Next, we need to create a Virtualization class in Bizagi which can be defined to use Bizagi's default components (Implementation Class), or to use a custom component (e.g. to connect to MySQL, PostgreSQLl, DB2, etc). 

 

Here we need to define if we will be using a custom implementation.

 

In this example, we will use Bizagi's default components.

To do so, we define a Virtualization Entity Class by right-clicking on the Virtual Entities node and selecting the New Data Virtualization Class option.

 

Leave the defaults and click OK.

 

VR_Replication12_Virtual

 

 

5. Including Master Entities for Virtualization.

Now we will include our Bizagi Master Entities and match them to the external data source's tables.

 

To do this, include one by one each of the Master Entities used in this Data Provider's Virtualization.

For instance, we will add our PurchaseOrder entity and match it to the Orders table from the source.

 

Right-click on the newly created Virtualization Class, and select the Add Entity to Virtualization... option. 

 

 

VR_Virtualization14_AddEntityVirtual

 

 

In this step, along with the source's table definition, you may also define which of the source's columns will be taken as business keys for the values in the entity.

 

note_pin

The business keys should correspond to the primary key of the source's table.

 

Do this for each of the Master Entities (Employees and PurchaseOrder in our example).

 

Orders table mapped for Virtualization (added as PurchaseOrder entity):

 

HowToIntegrateBizagiWithAnExternalDataSource_Image053

 

Employees table mapped for Virtualization (added as Employee entity):

 

HowToIntegrateBizagiWithAnExternalDataSource_Image052

 

 

When adding entities to Virtualization, in that same window you may define additional cache settings, as specified below:

 

Entity: Entity to be virtualized.

External Source: Table or view at the source to be virtualized.

Business KeyAttribute or attributes that make up the primary key for that table or view.

By using the >> button, select into the right-hand list the definition of the values' business key.

Instance (Cache Timeout): The quantity set in seconds, that indicates the time that must be met before Bizagi looks up for a value at the source. This works as an optimization parameter, useful when having recently queried information for a given record (so that Bizagi uses the cached information for that record). When specified as zero, there will be no cache used for instances (queried records).

Global (Cache Timeout): The quantity set in seconds, that indicates the time that must be met before Bizagi performs a search in that table or view. This works as an optimization parameter, useful when having recently queried that table or view (so that Bizagi uses the information stored in its cache). When specified as zero, there will be no cache used for that table or view.

 

 

6. Matching attributes in Bizagi to the sources' columns.

Once we have added entities to Virtualization, they will be listed under the Provider.

By clicking on a specific entity (in our example, we need to do this for both of our 2 Master Entities), in the right panel you will be presented with the entities' current attributes.

 

Map each of the attributes in the replicated entity to correspond to a column at the source, by right-clicking on the attribute to be configured and choosing the Properties option.

 

HowToIntegrateBizagiWithAnExternalDataSource_Image057

 

In the Edit Attribute window, type the name of the column in the External Source that will match to that attribute in Bizagi. 

For the Employee Code, we enter that its source is EmployeeID.

 

HowToIntegrateBizagiWithAnExternalDataSource_Image058

 

Repeat this for all attributes in each virtualized entity.

 

Configured attributes for Employees are:

 

HowToIntegrateBizagiWithAnExternalDataSource_Image059

 

Configured attributes for PurchaseOrder are:

 

HowToIntegrateBizagiWithAnExternalDataSource_Image060

 

 

Should there be any attribute which you don't want to consider in the Virtualization, refer to the next section.

Notice that all listed attributes need to have matching information in their External Source property.

 

At this point, we completed the Virtualization setup done through the Advanced configuration options.

You may use additional configuration options as described in the section below, and verify that the values for these Master Entities are properly synchronized.

 

7. Using additional configuration options.

Finally, there is the possibility to use additional options for each configured virtualized entity, such as: Defining filters for the records in those tables to be replicated, defining if an attribute (column) of those entities will be disregarded, etc.

 

View more information about these options at the Additional configuration options article.

 

To view a specific example on configuring Virtualization for a set of tables which are related, refer to how to configure Virtualization for related entities.

 

 

Verifying Virtualization (Checkpoint)

Once Virtualization is set, you may choose to verify that it properly synchronizes the Master Entities with the external tables.

 

Take into account that with Virtualization, Processes in Bizagi access information stored across multiple data sources in execution time (run-time).

This functionality is transparent to end users in the Work Portal; therefore you need to verify that Virtualization is working correctly.  This is done by checking that the Activity's form in your Processes use information from virtualized entities. 

 

In addition to this, to explicitly check that the values are being synchronized with the source, you may choose to see these values displayed in the specific entities through the Entities module (available for the Development environment).

 

To view how to verify that the Virtualization was set up correctly (it is running properly), refer to Verifying Virtualization.