Advanced ETl Processor's "Is In list" validation function is used to check if value exists in the database or file.
![]()

But In some situations it is not very efficient.
In this case there is better alternative "Is value in database" and "If value in database" transformation functions
![]()

The way it works is very simple: during execution <value> is replaced with actual value If number of records returned is more than zero it returns success otherwise failure

Based on the customer feedback in the latest version of Advanced ETL Processor we have introduced support for the web services
The simplest way to describe it as a way of communicating with the web servers. The application sends a request to the web server using XML and receives back a reply as XML. One of the examples would be converting Fahrenheit to Celsius or getting current currency exchange rate. A lot of modern websites such as Ebay, Amazon are using web services as a standard API for developers.
In order to communicate with temperature conversion web service we need to build HTTP Request Header and HTTP Request Body dynamically, There are several ways of doing it the easiest way is to use "In Place Replace transformation" function

During execution #value# is replaced with body length

During execution #value# is replaced with temperature


Note: There is a detailed example in the default repository
We have a scenario where we have a large datasource that is currently used to produce a single QVW. What we would like to do is produce a number of smaller QVWs using e.g. Publisher - however, we would like to define the reload schedule and destination folders that these smaller QVWs end up in from an external MySQL table (or config file or similar), rather than through the Publisher GUI. Has anyone done anything similar, or got any recommendations on how to approach this?
Package is executed from the lef to the right starting from "Init Variables" object

First of all we've created the following table to store parameters, it can be extended if necessassry

Table data:

Variables are used to replace one string with another, for example anywhere in the package where <RoorDirectory> is found it will be repalced with c:\Customers.

This script ins increasing variable <loop variable> by one (two times)

This step executes the following SQL to get variables form the databases, before execution <loop variable> is replaced with actual value


This step creates directory if it does not exists

This step copies Dashboard to just created directory, so it is easy to distribute updates

This step is used to create QVD file, if it necessary to create several files we can just add more Export steps or for complex cases we can use transformation object to create QVD files


This step is used to Refresh QlikView dashboard, data is loaded from the same directory where dashboard is stored



Back to Step 1
We did spend 40 minutes designing this package, so can you
![]() |
![]() |
![]() |


IP address of data reader must be the same as the computer it is being run on.
Use ipconfig to get IP Address


Click plus
Select transformation to run
Enter correct computer name
Select how often -> once


To run HL7 Transformation Press green arrow.
Note:
Only one HL7 transformation can listen to the port at the same time.

Status must be running
Check “Abort Execution” wait for the transformation to abort
To apply changes stop and start execution again.
Writing Thousands of HL7 messages into same directory can slow down the process.
Creating new folder for every day or hour will help to keep performance high
Disk space/database space usage must be contantly monitored
First of all, we do have documentation and recommended settings are described in the documentation, plus we have online tutorials.
The most important thing is to follow the rules and provide all necessary information first time.
Bad support request example:
Hi,
We have just downloaded your software and we have an error message.
Please help it is urgent
Which software? Which Error?
Problem: Strange access violations when executing the packages
We do not recommend using MS Access Repository for production. It works fine for development, but over time it tends to get corrupted. Plus it has 2 GB database limit. When Access Repository is corrupted users may get strange access valuations. If you wish to use Access as Repository do compact and repair once a week.
Problem: Some of the data is not being saved into the repository when working with MySQL repository
Check settings for ODBC Dsn and described in the documentation
Increase max_allowed_paket_size
Problem: Not able to use PostreSQL repository
Check settings for ODBC Dsn and described in the documentation and make sure that they are exactly the same.
Problem: We have added new field to the table and now our mapping is invalid and nothing work. Do we have to remap everything?
The mapping is position based to solve the problem you can
Problem: Not able to load data into Date fields.
We use standard ODBC format for date fields ‘yyyy-dd-mm hh:mm:ss’
If the data is already in this format no modifications are required.
If not use “Format Date” function in Advanced ETL Processor or apply format in Visual Importer
Problem:I am working with bad data and transformation is very slow my logs are huge.
Too much logging slows down transformation.
Here are some examples:
SUB INSPECT (T)
LET LocalAppDataPath = GetRegistryString('HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion', 'ProgramFilesDir');
LET QViewerPath = '$(LocalAppDataPath)\DB Software Laboratory\Q-Eye\QEye.exe';
STORE $(T) into [$(QvWorkPath)\~$(T).qvd] (qvd);
EXECUTE "$(QViewerPath)" "$(QvWorkPath)\~$(T).qvd";
EXECUTE cmd /c del "$(QvWorkPath)\~$(T).qvd";
ENDSUB
SUB EDIT (T)
LET LocalAppDataPath = GetRegistryString('HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion', 'ProgramFilesDir');
LET QViewerPath = '$(LocalAppDataPath)\DB Software Laboratory\Q-Eye\QEye.exe';
STORE $(T) into [$(QvWorkPath)\~$(T).qvd] (qvd);
EXECUTE "$(QViewerPath)" "$(QvWorkPath)\~$(T).qvd";
DROP TABLE $(T);
LOAD * FROM [$(QvWorkPath)\~$(T).qvd] (qvd);
EXECUTE cmd /c del "$(QvWorkPath)\~$(T).qvd";
ENDSUB
If we want to edit the table we just
CALL EDIT('Log');
Or if we want to view the table we use this code
CALL INSPECT('Log');
Note: By default Q-Eye uses partial load, to avoid problems load entire QVD file before editing it
This example is based on:
http://bi-review.blogspot.co.uk/2012/12/how-to-look-inside-resident-tables-at.html
Date/Time format strings control the conversion of strings into date time type.
Date Time Format Strings are composed from specifies that describe values to be converted into the date time value.
In the following table, specifies are given in lower case. Case is ignored in formats, except for the "am/pm" and "a/p" specifies.
Specifier Description
d Day as a number without a leading zero (1-31).
dd Day as a number with a leading zero (01-31).
m Month as a number without a leading zero (1-12).
mm Month as a number with a leading zero (01-12).
mmm Month as an abbreviation (Jan-Dec).
mmmm Month as a full name (January-December).
yy Year as a two-digit number (00-99).
yyyy Year as a four-digit number (0000-9999).
h Hour without a leading zero (0-23).
hh Hour with a leading zero (00-23).
n Minute without a leading zero (0-59).
nn Minute with a leading zero (00-59).
s Second without a leading zero (0-59).
ss Second with a leading zero (00-59).
zzz Fraction of Second with a leading zero (000-999).
(Works only for oracle time stamp fileds)
tt Uses the 12-hour clock for the preceding h or hh specifier, 'am' for any hour before noon, and 'pm' for any hour after noon.
![]() |
|
|
|
|
|
|
|
|
![]() |
![]() |