Professional Documents
Culture Documents
VERSION 1.54
Table Of Contents
SERVER............................................................................................................................................................................. 3
Introduction .................................................................................................................................................................................. 4
Requirements ............................................................................................................................................................................... 5
Installation ..................................................................................................................................................................................... 6
Server Configurator .................................................................................................................................................................... 7
Server Service............................................................................................................................................................................... 8
Licensing ........................................................................................................................................................................................ 9
Templates ................................................................................................................................................................................... 10
Calendars ................................................................................................................................................................................... 19
CLIENT ........................................................................................................................................................................... 20
Introduction ............................................................................................................................................................................... 21
Requirements ............................................................................................................................................................................ 22
Installation .................................................................................................................................................................................. 23
Troubleshooting ....................................................................................................................................................................... 24
Mail Recipients .......................................................................................................................................................................... 25
Preparation Actions ................................................................................................................................................................. 26
.NET Expressions ...................................................................................................................................................................... 28
Document Definitions ............................................................................................................................................................. 30
Schedules ................................................................................................................................................................................... 31
Schedule Groups ...................................................................................................................................................................... 38
Staged Templates .................................................................................................................................................................... 41
Dynamic Values ........................................................................................................................................................................ 43
APPENDIX ...................................................................................................................................................................... 45
Appendix A: Execution Overview ........................................................................................................................................ 46
Appendix B: Editions ............................................................................................................................................................... 49
Appendix C: Tutorials ............................................................................................................................................................. 50
Appendix D: Contact, Website, Support ........................................................................................................................... 51
-2-
SECTION 1
SERVER
-3-
INTRODUCTION
Mail & Deploy consists of two applications; the server, which will be described in this section of the
manual, and the client (see section Client).
The server is responsible for the actual schedule execution, report creation, communication with
QlikView, etc. The client, in contrast, is more or less only a user interface for the server and is not
involved in the actual report creation and distribution.
-4-
REQUIREMENTS
Mail & Deploy Server has certain requirements which need to be fulfilled in order to start and use
the server.
Technical Requirements
Microsoft .NET Framework 4.5
Please ensure, that Microsoft .NET Framework 4.5 is installed on the computer before installing
Mail & Deploy Server. If that is not the case, you can download an offline installer here:
http://www.microsoft.com/en-us/download/details.aspx?id=42642.
Other Requirements
QlikView License
The user account under which you want to run Mail & Deploy Server has to have a valid QlikView
license. If that is not the case, the server might not start or run properly.
SMTP Server
If you want to use the e-mail distribution functionality of Mail & Deploy Server, you have to have
access to an SMTP server (see chapter Server Configurator).
-5-
INSTALLATION
Before you start the installation of Mail & Deploy Server, please ensure that all requirements are
fulfilled (see chapter Requirements).
To start the installation, double-click the file Harrer Mail & Deploy Server Setup.exe. The following
dialog will appear:
If an error message appears after double-clicking the file, it may be because of a missing
Microsoft .NET Framework 4.5 installation (see chapter Requirements).
Click Next to configure your installation: please make sure that the user you enter to run the
service has a valid QlikView license.
-6-
SERVER CONFIGURATOR
Introduction
The server configurator is a tool that allows you to set up basic properties of Mail & Deploy
servers. It is explicitly not a tool to set up reports, schedules etc., because these kinds of
configurations can be done using Mail & Deploy Client (see section Client). Whenever you make a
change to the configuration, make sure to restart Mail & Deploy Server Service.
Configuration Sections
SMTP Settings
In order to use e-mail distribution features of Mail & Deploy, you have to enter SMTP
configuration details.
The Sender Address is the e-mail address from which e-mails should be sent when distributing
reports. After entering SMTP settings, you can click Send Test Mail to see it these settings work.
Port
Here you can specify the port on which Mail & Deploy Server should run and listen for Mail &
Deploy Clients to connect to them.
Various Settings
The Maximum File Size Limit is used for caching purposes; whenever you set up reports and
schedules with Mail & Deploy Client, information about the QlikView documents used and the
QlikView documents themselves will be cached by Mail & Deploy Server. This ensures that you
only have to wait for the document to load the first time you access it; after that, wait times will be
much less. This limit defines the size of this cache.
When Mail & Deploy creates PDF reports it uses a PDF printer to do so; you can specify its name
with the PDF Printer Name setting.
If you activate Log Debug Messages, you will have a more detailed log file.
Administrator Addresses
You can enter none or more e-mail addresses here; whenever a schedule or schedule group
cannot be executed successfully, these mail recipients will be notified of this issue so they can have
a closer look at the log file to check what went wrong. In addition to that, these mail recipients will
receive report distribution e-mails when using a certain mode for immediate execution of
schedules and schedule groups (in section Client: see chapter Schedules, sub-chapter Immediate
Execution and chapter Schedule Groups).
QlikView Server
This is an optional setting; if you specify details of a QlikView Server installation here, you can
browse all available documents when editing document definitions (see chapter Document
Definitions in section Client).
-7-
SERVER SERVICE
Introduction
The server does not contain any user interface and runs as windows service with the name Harrer
Mail & Deploy Server.
-8-
LICENSING
There are basically two editions of Mail & Deploy (see chapter Appendix B: Editions); the lite
edition is active if there is no valid license file installed.
Lite Edition
If you dont have any license file installed, you are limited to the lite edition. This edition contains
most of the features, but is limited to only one schedule.
-9-
TEMPLATES
Mail & Deploy supports numerous formats of templates; these templates can be used to export
data from QlikView to other supported file types (e.g. Microsoft Excel etc.). Templates are stored in
the Templates sub-directory of Mail & Deploy Server.
You can easily create your own templates by creating it with the application required (i.e.
Microsoft Excel if you want to create Excel templates) and placing them in the appropriate subdirectory under the Templates sub-directory of Mail & Deploy Server.
Mail & Deploy already comes with a set of templates that are designed to work with the Car
Statistics example QlikView document which is also used in our tutorials. We strongly recommend
having a look at these templates to see a working implementation.
We strongly recommend going through all tutorials of Mail & Deploy; these tutorials also cover
expressions and loop expressions in templates (see chapter Appendix C: Tutorials).
CSV
The data table of a QlikView document can be exported to a CSV file by using CSV templates.
Staged templates (see chapter Staged Templates), however, are not supported for CSV files. CSV
templates are simple text files that contain three parameters (one in each line beginning in the first
line of the file).
<object_id>
<include_headers>
<field_separator>
Parameter
Description
<object_id>
The ID of the object in the QlikView document (the ID is displayed when you go into the
properties dialog of the object in QlikView Desktop Client).
<include_headers >
<field_separator>
The character that should be used to separate field values from each other (e.g. ;).
HTML
In order to export data from QlikView to an HTML file, you need to create an HTML file that
contains the layout of your report; wherever you want Mail & Deploy to insert data from the
QlikView document, you can insert expressions; the following types of expressions are available:
Field Value
This type of expression will be replaced by the value(s) of a specific field of the QlikView document
at the time of report creation; all selections will already be applied at this stage (thus, only values
compatible to the current selection will be exported).
[[<expression_key>;field;<field_name>]]
- 10 -
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<field_name>
The name of the field in the data model of the QlikView document whose value(s) you want to
replace the expression with.
Variable Value
This type of expression will be replaced by the value of a specific variable of the QlikView
document at the time of report creation; all selections will already be applied at this stage.
[[<expression_key>;variable;<variable_name>]]
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<variable_name>
The name of the variable of the QlikView document whose value you want to replace the
expression with.
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see
Staged Templates). If you dont want to create a staged template or this expression will be
replaced by the first schedule acting on the template, use expression key none.
<expression_variable_name>
The variable name of the .NET Expression whose value you want to replace the expression
with.
Chart Image
This type of expression will be replaced by the actual chart image of a QlikView object at the time
of the report creation.
[[<expression_key>;image;<object_id>;<pixel_width>;<pixel_height>]]
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<object_id >
The ID of the object in the QlikView document (the ID is displayed when you go into the
properties dialog of the object in QlikView Desktop Client).
<pixel_width>
<pixel_height>
The height (in pixel) that you want to the chart to have.
Table
This type of expression will be replaced by the table of data that lies behind a QlikView object at
the time of the report creation. The cell that contains the expression is the upper left cell of the
table.
- 11 -
[[<expression_key>;table;<object_id>;<include_headers>;<table_class>;<header
cell_class>;<cell_class>]]
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<object_id >
The ID of the object in the QlikView document (the ID is displayed when you go into the
properties dialog of the object in QlikView Desktop Client).
<include_headers >
<table_class>
<headercell_class>
<cell_class>
Loopover Expression
This type of expression allows you to repeat contents of an HTML file for a certain array of values;
the structure of this expression looks like this:
<<#<expression_key>;loopover;<field_name>;<sort_type>;<sort_direction>;<include_all_values>#>>
... Content (with or without Expressions)
>>#<<
The first row contains the beginning of the loopover block. It contains the following parameters:
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<field_name >
The name of the field in the QlikView document data model that contains the values to loop over.
<sort_type>
<sort_order>
<include_all_values>
true All values of that field in the QlikView document will be used
false Only selected values of that field in the QlikView document will be used.
The last row contains the end of the loopover block that contains no parameters. In between these
two rows any content can be placed. The content can also contain expressions. During the
execution of such a loop expression, the following steps will be processed:
The array of values to loop over will be evaluated by reading the values of the specified
field in the QlikView document data model. Please note that the QlikView data model is in
a state where it is already affected by preparation actions that were executed during the
schedule execution.
For every value, the QlikView data model will be filtered to this value; then, the content
between the beginning and the end of the loop will be copied and all expressions within
that content will be replaced (with the QlikView data model being filtered to the current
value of the loop).
- 12 -
Microsoft PowerPoint
In order to export data from QlikView to Microsoft PowerPoint, you need to insert expressions into
cells of your PowerPoint document wherever you want Mail & Deploy to insert data from the
QlikView Document.
Please note that Microsoft PowerPoint must be installed on the computer that runs Mail &
Deploy Server in order to make PowerPoint templates work.
Field Value
This type of expression will be replaced by the value(s) of a specific field of the QlikView document
at the time of report creation; all selections will already be applied at this stage (thus, only values
compatible to the current selection will be exported).
[[<expression_key>;field;<field_name>]]
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<field_name>
The name of the field in the data model of the QlikView document whose value(s) you want to
replace the expression with.
Variable Value
This type of expression will be replaced by the value of a specific variable of the QlikView
document at the time of report creation; all selections will already be applied at this stage.
[[<expression_key>;variable;<variable_name>]]
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<variable_name>
The name of the variable of the QlikView document whose value you want to replace the
expression with.
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see
Staged Templates). If you dont want to create a staged template or this expression will be
replaced by the first schedule acting on the template, use expression key none.
<expression_variable_name>
The variable name of the .NET Expression whose value you want to replace the expression
with.
- 13 -
Chart Image
This type of expression will be replaced by the actual chart image of a QlikView object at the time
of the report creation. In order to add this expression, you have to add a textbox in PowerPoint
which will then be replaced by a graphic by Mail & Deploy.
[[<expression_key>;image;<object_id>;<pixel_width>;<pixel_height>]]
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<object_id >
The ID of the object in the QlikView document (the ID is displayed when you go into the
properties dialog of the object in QlikView Desktop Client).
<pixel_width>
<pixel_height>
The height (in pixel) that you want to the chart to have.
Loopover Expression
This type of expression allows you to repeat slides of a PowerPoint presentation for a certain array
of values; the structure of this expression looks like this:
<<#<expression_key>;loopover;<field_name>;<sort_type>;<sort_direction>;<include_all_values>#>>
... Content (with or without Expressions)
>>#<<
The first row contains the beginning of the loopover block. It contains the following parameters:
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<field_name >
The name of the field in the QlikView document data model that contains the values to loop over.
<sort_type>
<sort_order>
<include_all_values>
true All values of that field in the QlikView document will be used
false Only selected values of that field in the QlikView document will be used.
<number_of_slides>
The number of slides that you want to copy for each loop value.
Microsoft Word
In order to export data from QlikView to Microsoft Word, you need to insert expressions into cells
of your Word document wherever you want Mail & Deploy to insert data from the QlikView
document.
Please note that Microsoft Word must be installed on the computer that runs Mail & Deploy
Server in order to make Word templates work.
- 14 -
Field Value
This type of expression will be replaced by the value(s) of a specific field of the QlikView document
at the time of report creation; all selections will already be applied at this stage (thus, only values
compatible to the current selection will be exported).
[[<expression_key>;field;<field_name>]]
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<field_name>
The name of the field in the data model of the QlikView document whose value(s) you want to
replace the expression with.
Variable Value
This type of expression will be replaced by the value of a specific variable of the QlikView
document at the time of report creation; all selections will already be applied at this stage.
[[<expression_key>;variable;<variable_name>]]
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<variable_name>
The name of the variable of the QlikView document whose value you want to replace the
expression with.
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see
Staged Templates). If you dont want to create a staged template or this expression will be
replaced by the first schedule acting on the template, use expression key none.
<expression_variable_name>
The variable name of the .NET Expression whose value you want to replace the expression
with.
Chart Image
This type of expression will be replaced by the actual chart image of a QlikView object at the time
of the report creation.
[[<expression_key>;image;<object_id>;<pixel_width>;<pixel_height>]]
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<object_id >
The ID of the object in the QlikView document (the ID is displayed when you go into the
properties dialog of the object in QlikView Desktop Client).
<pixel_width>
- 15 -
<pixel_height>
The height (in pixel) that you want to the chart to have.
Loopover Expression
This type of expression allows you to repeat contents of a Word document for a certain array of
values; the structure of this expression looks like this:
<<#<expression_key>;loopover;<field_name>;<sort_type>;<sort_direction>;<include_all_values>#>>
... Content (with or without Expressions)
>>#<<
The first row contains the beginning of the loopover block. It contains the following parameters:
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<field_name >
The name of the field in the QlikView document data model that contains the values to loop over.
<sort_type>
<sort_order>
<include_all_values>
true All values of that field in the QlikView document will be used
false Only selected values of that field in the QlikView document will be used.
The last row contains the end of the loopover block that contains no parameters. In between these
two rows any content can be placed. The content can also contain expressions. During the
execution of such a loop expression, the following steps will be processed:
The array of values to loop over will be evaluated by reading the values of the specified
field in the QlikView document data model. Please note that the QlikView data model is in
a state where it is already affected by preparation actions that were executed during the
schedule execution.
For every value, the QlikView data model will be filtered to this value; then, the content
between the beginning and the end of the loop will be copied and all expressions within
that content will be replaced.
Please note that nested loop expressions are not allowed in Microsoft Word templates.
Microsoft Excel
In order to export data from QlikView to Microsoft Excel, you need to insert expressions into cells
of your Excel workbook wherever you want Mail & Deploy to insert data from the QlikView
document.
Please note that Microsoft Excel must be installed on the computer that runs Mail & Deploy
Server in order to make Excel templates work.
- 16 -
Field Value
This type of expression will be replaced by the value(s) of a specific field of the QlikView document
at the time of report creation; all selections will already be applied at this stage (thus, only values
compatible to the current selection will be exported).
[[<expression_key>;field;<field_name>]]
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<field_name>
The name of the field in the data model of the QlikView document whose value(s) you want to
replace the expression with.
Variable Value
This type of expression will be replaced by the value of a specific variable of the QlikView
document at the time of report creation; all selections will already be applied at this stage.
[[<expression_key>;variable;<variable_name>]]
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<variable_name>
The name of the variable of the QlikView document whose value you want to replace the
expression with.
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see
Staged Templates). If you dont want to create a staged template or this expression will be
replaced by the first schedule acting on the template, use expression key none.
<expression_variable_name>
The variable name of the .NET Expression whose value you want to replace the expression
with.
Chart Image
This type of expression will be replaced by the actual chart image of a QlikView object at the time
of the report creation.
[[<expression_key>;image;<object_id>;<pixel_width>;<pixel_height>]]
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<object_id >
The ID of the object in the QlikView document (the ID is displayed when you go into the
properties dialog of the object in QlikView Desktop Client).
<pixel_width>
- 17 -
<pixel_height>
The height (in pixel) that you want to the chart to have.
Table
This type of expression will be replaced by the table of data that lies behind a QlikView object at
the time of the report creation. The cell that contains the expression is the upper left cell of the
table.
[[<expression_key>;table;<object_id>;<include_headers>;<insert_rows>]]
Parameter
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<object_id >
The ID of the object in the QlikView document (the ID is displayed when you go into the
properties dialog of the object in QlikView Desktop Client).
<include_headers >
<insert_rows>
True: Rows should be inserted in Excel instead of overwriting cells below the expression.
False: Rows should not be inserted; cells below the expression will be overwritten.
Loopover Expression
This type of expression helps you if you want to create one sheet per value in the QlikView
document (e.g. you want to have one worksheet per year etc.). In this case, you have to design the
worksheet you want to clone per value and give if a name in the following format:
#<expression_key>;<field_name>;<sort_type>;<sort_order>;<include_all_values>#
Description
<expression_key>
The expression key that determines which schedule should replace this expression (see Staged
Templates). If you dont want to create a staged template or this expression will be replaced by
the first schedule acting on the template, use expression key none.
<field_name >
The name of the field in the QlikView document data model that contains the values to loop over.
<sort_type>
<sort_order>
<include_all_values>
- 18 -
CALENDARS
Calendars are simple text files that contain one date (formatted YYYY-MM-DD) per line. These
dates can be used to either limit schedule executions to only these dates, or to prevent schedules
from executing on these days. Please see chapter Schedules for more details.
You can easily create your own calendars by putting raw text files (containing one date per line,
formatted as YYYY-MM-DD) into the Calendars sub-directory of Mail & Deploy Server.
- 19 -
SECTION 2
CLIENT
- 20 -
INTRODUCTION
Mail & Deploy Client is an application that allows you to manage document definitions, schedules
and report creations. It connects to an instance of Mail & Deploy Server and acts as a user
interface for the server.
- 21 -
REQUIREMENTS
Mail & Deploy Client has certain requirements which need to be fulfilled in order to start and use
the client.
Technical Requirements
Microsoft .NET Framework 4.5
Please ensure, that Microsoft .NET Framework 4.5 is installed on the computer before installing
Mail & Deploy Client. If that is not the case, you can download an offline installer here:
http://www.microsoft.com/en-us/download/details.aspx?id=42642.
- 22 -
INSTALLATION
Before you start the installation of Mail & Deploy Client, please ensure that all requirements are
fulfilled (see chapter Requirements).
To start the installation, double-click the file Harrer Mail & Deploy Client Setup.exe. The following
dialog will appear:
If an error message appears after double-clicking the file, it may be because of a missing
Microsoft .NET Framework 4.5 installation (see chapter Requirements).
First specify the Installation Path; this is the root directory to which all files of Mail & Deploy Client
will be copied.
The Server Details have to be set to the IP address / host and port on which Mail & Deploy Server
(see section Server) runs. If Mail & Deploy Server runs on a different computer, you have to specify
the IP address / hostname of that computer. The port is the one which can be configured with
Mail & Deploy Server Configurator (see section Server, chapter Server Configurator).
Please ensure that the chosen port is not blocked by a firewall. If that was the case, Mail & Deploy
Client might not be able to connect to Mail & Deploy Server.
Click Install Mail & Deploy Client to start the installation once you have entered all the necessary
information.
- 23 -
TROUBLESHOOTING
In some cases it can happen that the following error message appears when starting Mail &
Deploy Client:
If that is the case, please consult the QlikView License Troubleshooting Guide which can be found
in the installation package or in the documentation sub-folder of Mail & Deploy Client.
- 24 -
MAIL RECIPIENTS
Introduction
Mail recipients represent a pool of e-mail addresses that can be used to distribute reports to; the
actual assignment of mail addresses to report creations can be set up in the schedules (see
chapter Schedules).
Properties
Mail recipients have the following properties.
First Name
This is an optional field that contains the first name of the mail recipient.
Last Name
This is an optional field that contains the last name of the mail recipient.
E-Mail Address
This field contains the e-mail address of the mail recipient.
Match Code
This is an optional field that contains a match code. Match codes can be used if mail recipient
groups of schedules (see chapter Schedules, sub-chapter Send By E-Mail (Mail Recipient Groups))
make use of a dynamic evaluation of mail recipients.
- 25 -
PREPARATION ACTIONS
Introduction
Preparation actions are tasks that are executed after a QlikView document has been loaded and
before the report creation is initiated. In other words, preparation actions can be used to modify
the QlikView document for a specific report creation (e.g. by reloading it or filtering data etc).
Preparation actions do not change the saved version of the QlikView file; instead, they will be
executed in an in-memory version of the QlikView document, so the original file will not be
affected (unless you save the QlikView document back to this location).
Reload
This preparation action can be used to reload the data in the QlikView document; when this
preparation action is executed, it will run the standard load script (just as if you would click the
reload button in QlikView Desktop Client).
Reduce
When the QlikView document is reduced, all data that is not in accordance with the current
selection will be removed from the document.
Click Button
If you have buttons in a QlikView document, this preparation action allows you to simulate a click
on one or more of these buttons; this will then execute whatever code lies behind it (e.g. a macro
will be executed etc.). If you add this preparation action, you have to specify the Button ID, which is
the ID of the button in the QlikView document that you want to simulate a button click on.
Save Document
This preparation action saves the QlikView document to the location it was loaded from.
- 26 -
Select Bookmark
If you have bookmarks defined in the QlikView document, this preparation action allows you to
activate it (thus having selections applied as stored in the bookmark). If you add this preparation
action, you have to specify the Bookmark Name, which is the name of the bookmark in the
QlikView document.
Set Variable
This preparation action type allows you to set the value of a variable in the QlikView document.
You can either enter a fixed text to set the variable to, or select a .NET Expression or a group
parameters from the list.
- 27 -
.NET EXPRESSIONS
Introduction
In many scenarios, static values for the selection of data in a QlikView document are not enough;
for instance this is the case when you want to filter the current year (or month); this cant be
accomplished by a static select field values preparation action (see chapter Preparation Actions).
Therefore, Mail & Deploy offers the possibility to create dynamic expressions.
.NET Expressions are VB.Net methods (functions) that return a single value or a list of values. These
functions will be executed during the execution of a schedule and their return value(s) can then be
used to filter data in QlikView etc.
Examples
You can use the following expression to return the current year, formatted as a 4-digit string:
Return Date.Now.Year.ToString(0000)
If you want to return more than one value (e.g. the current and the previous year), you can create
a generic list of strings that contains all return values:
Dim lList As New System.Collections.Generic.List(Of String)
lList.Add(Date.Now.Year.ToString(0000))
lList.Add((Date.Now.Year-1).ToString(0000))
Return lList
- 28 -
- 29 -
DOCUMENT DEFINITIONS
Introduction
Document definitions are connections between Mail & Deploy and a certain QlikView document;
in other words: whenever you want to use a QlikView document in Mail & Deploy, you have to
create a document definition.
Properties
Name
The name only serves identification purposes and can be freely chosen by the user entering the
document definition; however, at no time can there be two document definitions with identical
names.
DocumentPath
This is the full path to the QlikView document file. You can either manually enter the path
(including the file name and extension), or if you have a QlikView server configured (see chapter
Server Configurator in section Server) you can choose to click the Browse QlikView Server
Documents button to get a tree view containing all documents registered on the server.
Section Access
If the document makes use of section access, you can specify the username and password to be
used by Mail & Deploy to open the document. If the document does not have section access, you
can leave these fields empty.
Preparation Actions
This list of preparation actions is always executed whenever this document is opened by Mail &
Deploy during a schedule execution, regardless of which schedule it is opened for (see chapter
Preparation Actions and Appendix A: Execution Overview).
A typical preparation action at this stage is the Remove all Selections action, so you can be sure
that there are no selections in the document before you apply report specific filtering.
- 30 -
SCHEDULES
Introduction
A schedule defines a specific execution of a report creation on either a regular or an on-demand
basis. Schedules can be executed on their own or within the context of a schedule group (see
chapter Schedule Groups).
Schedules can be set up by specifying general properties, including the document you want to
create a report from (see chapter Document Definition), the type of report you want to create
and how you want it to be distributed.
Schedules and schedule groups are a very powerful tool to create reports with custom selections,
templates, and parameters. We highly recommend consulting the included tutorials to get stepby-step introductions to schedules and schedule groups. Our tutorials cover a wide range of
examples, starting from simple reports to complex schedule groups (see chapter Appendix C:
Tutorials).
General Properties
Name
The name only serves identification purposes and can be freely chosen; however, at no time can
there be two schedules with identical names.
Group
The group only serves categorization purposes and can be freely chosen by the user entering the
schedule.
Document Definition
This is the document definition (see chapter Document Definitions) that defines the QlikView
document that contains the data required to create the report.
Regularity
The value of this field defines how often the schedule will be executed. The following values are
available:
Hourly
Daily
Daily (Weekdays)
Weekly
Monthly
Yearly
Weekdays
If you selected the regularity Daily, you have to specified all weekdays on which you want
the schedule group to be executed.
- 31 -
Next Execution
This date defines the next point in time at which the schedule shall be executed; from then on, all
other execution dates will be derived by using the regularity.
Calendar
You can specify a calender type; if you select (none), then the schedule will be executed at all times
defined by the regularity and next execution properties. If you select Execute Only, then the
execution will only take place if the current date is included in the calendar; selecting Dont Execute
means the exact opposite: the execution of the schedule will be cancelled if the current date is
included in the calendar.
Please see chapter Calendars to find out more about how to create calendars and where to store
them.
Retries
By specifying a retry count and a wait time you can configure how many times the execution of the
schedule should be repeated if an error occurred and how many seconds should be waited
between each execution.
QlikView Document
This report type does not creation a separate report file but rather uses the QlikView document
(QVW file) itself as the output. This can be used to distribute a manipulated version of the original
QlikView document by applying preparation actions (see chapter Preparation Actions).
Microsoft Word
This report type allows you to select a Microsoft Word template, which will then be parsed; all
expressions found in the document that have to be replaced by the schedule will then be replaced
with QlikView data, images etc. For more information about templates, see chapter Templates and
chapter Staged Templates. Word templates can not only be distributed as word documents, but
also as PDF file, that will be created after all replacements have taken place.
Microsoft Excel
This report type allows you to select a Microsoft Excel template, which will then be parsed; all
expressions found in the workbook that have to be replaced by the schedule will then be replaced
with QlikView data, images etc. For more information about templates, see chapter Templates and
chapter Staged Templates. You can also choose to create a PDF file by either printing the
complete workbook or a single worksheet to PDF.
- 32 -
CSV File
This report type allows you to export the data lying behind one of the QlikView document objects
to a CSV file. For more information about templates, see chapter Templates.
Preparation Actions
This list of preparation actions is always executed whenever this schedule is executed, directly after
the preparation actions of the document definition are (see chapter Preparation Actions and
Appendix A: Execution Overview).
A typical preparation action at this stage is the Remove all Selections action, so you can be sure
that there are no selections in the document before you apply report specific filtering.
Name
The name of a mail recipient group can be any name you want and is used for identification
purposes only.
File Name
This is the file name of the attachment (i.e. the report that will be attached to the e-mail). You can
use one or more dynamic values to create a dynamic file name (see chapter Dynamic Values).
Please note that the file extension (such as PDF or DOCX) must not be entered here, because they
are added automatically by Mail & Deploy according to the report type chosen.
- 33 -
Subject
This is the subject of the e-mail that will be sent to mail recipients. You can use one or more
dynamic values to create a dynamic subject (see chapter Dynamic Values).
Body
This is the body of the e-mail that will be sent to mail recipients. You can use one or more
dynamic values to create a dynamic body (see chapter Dynamic Values).
Condition
This allows you to select a variable from the QlikView document; if the variable returns 1 at the
time of the execution of the report creation of this mail recipient group (after preparation actions
of this group have already been executed), the report distribution will be performed. Otherwise,
the report distribution will be cancelled and no e-mails will be sent for this mail recipient group.
This allows you to create conditional report distributions, because you can set the expression that
determines the value of the variable in QlikView; this way you have access to all the data in the
QlikView document and can use all features QlikView expressions support.
This feature can for instance be used to only send a report to certain mail recipients, when a
value in the QlikView document exceeds a certain thresholds; for example you could set up a
condition that will only send the monthly sales report of a store to the managers of the sales
region of which the store is part of, if the turnover of the current month is less than the turnover
of the previous month. Only if this condition is fulfilled, the report will be sent to the managers.
Mail Recipients
There are two ways to define mail recipients.
By using an Expression you can define a dynamic value (see chapter Dynamic Values) that returns
e-mail addresses or match codes of mail recipients. If the option Match expression results with
match codes of mail recipients is not used, the values return by the expression will be used as email addresses (in other words: Mail & Deploy expects to get e-mail addresses as return values
from the chosen dynamic value). If the option Match expression results with match codes of mail
recipients is used, Mail & Deploy expects to get match codes as return values from the dynamic
value; all mail recipients that have one of the returned match codes (see chapter Mail Recipients)
will get an e-mail with the report.
In addition to that, you can also select Fixed Mail Recipients by statically choosing one or more
mail recipients.
Please note that you can also combine these two ways to define mail recipients; you can define
fixed mail recipients and an expression.
This feature can for instance be used in the following scenario: lets assume that you have a
QlikView document that contains sales persons. However, the document does not contain the email address of sales persons but rather a personnel number. In this case you could add the sales
persons as mail recipients in Mail & Deploy (see chapter Mail Recipients) by using their
personnel number as match code. In a schedule, you can then define an expression to evaluate
the mail recipients; this expression should target the field that contains the personnel number of
sales persons. By using the Match expression results with match codes of mail recipients
- 34 -
option, Mail & Deploy will go through all the personnel numbers and match them with a
mail recipient; this way, a list of mail recipients is generated which will be used to send
the e-mail with the report attached to it.
Please also consult the tutorials to find examples of this feature (see chapter Appendix C:
Tutorials).
Preparation Actions
These preparation actions (see chapter Preparation Actions) will be executed for this group only
and will therefore only affect the report creation of this group. The execution takes place just
before the report creation.
Name
The name of a report file output group can be any name you want and is used for identification
purposes only.
Condition
This allows you to select a variable from the QlikView document; if the variable returns 1 at the
time of the execution of the report creation of this report file output group (after preparation
actions of this group have already been executed), the report distribution will be performed.
Otherwise, the report distribution will be cancelled and no reports will be created and distributed
for this group.
- 35 -
This allows you to create conditional report distributions, because you can set the expression that
determines the value of the variable in QlikView; this way you have access to all the data in the
QlikView document and can use all features QlikView expressions support.
This feature can for instance be used to only send a report to certain mail recipients, when a
value in the QlikView document exceeds a certain thresholds; for example you could set up a
condition that will only send the monthly sales report of a store to the managers of the sales
region of which the store is part of, if the turnover of the current month is less than the turnover
of the previous month. Only if this condition is fulfilled, the report will be sent to the managers.
Output Paths
The list of output paths contains all paths (full file paths without file extension) to where the reports
of this report file output group should be saved to. Each output path can be constructed of fixed
text as well we dynamic values that will be replaced during runtime to allow the creation of
dynamic directories, paths, and file names (see chapter Dynamic Values).
Preparation Actions
These preparation actions (see chapter Preparation Actions) will be executed for this group only
and will therefore only affect the report creation of this group. The execution takes place just
before the report creation.
Immediate Execution
Schedules are normally executed according to their next execution date and regularity. However,
you sometimes want to execute a schedule only once (e.g. for testing purposes). This can be
achieved by selected the schedule in the list and clicking the Execute Immediately button in the
schedules section of Mail & Deploy Client.
- 36 -
Normal Mode
If you start an immediate execution in normal mode, the schedule will be executed exactly as
configured.
- 37 -
SCHEDULE GROUPS
Introduction
Schedule groups allow more complex report creations than schedules. This includes, but is not
limited to the following scenarios:
If you want to guarantee a specific order of schedule executions; in this case, you can add
these schedules to the schedule group and they will be executed sequentially when the
schedule group is being executed.
If you want to create loops over an array of values (that can also be derived from QlikView)
and you want to execute one or more schedules for each of these values (e.g. one
schedule execution for every sales person in the QlikView document).
Schedules and schedule groups are a very powerful tool to create reports with custom selections,
templates, and parameters. We highly recommend consulting the included tutorials to get stepby-step introductions to schedules and schedule groups. Our tutorials cover a wide range of
examples, starting from simple reports to complex schedule groups (see chapter Appendix C:
Tutorials).
General Properties
Name
The name only serves identification purposes and can be freely chosen; however, at no time can
there be two schedules with identical names.
Group
The group only serves categorization purposes and can be freely chosen by the user entering the
schedule.
Regularity
The value of this field defines how often the schedule will be executed. The following values are
available:
Hourly
Daily
Daily (Weekdays)
Weekly
Monthly
Yearly
Weekdays
If you selected the regularity Daily, you have to specified all weekdays on which you want the
schedule group to be executed.
- 38 -
Next Execution
This date defines the next point in time at which the schedule shall be executed; from then on, all
other execution dates will be derived by using the regularity.
Retries
By specifying a retry count and a wait time you can configure how many times the execution of the
schedule should be repeated if an error occurred and how many seconds should be waited
between each execution.
Members
Schedules groups do not create reports themselves; instead, they have one or more members that
take care of the creation of reports. Members of schedule groups are always executed sequentially
(from top to bottom).
All schedule group members within the loop (between the loop start and loop end) will be
executed for each value contained in the array of values. In addition to that, the current value of
the loop will be stored in a parameter which name you can define with the Parameter Name
property. You can access this parameter (e.g. to filter data in a QlikView document in a schedule
that is contained in the loop) when you insert dynamic values (see chapter Dynamic Values).
Its important to mention that the schedule group loop itself does not filter the QlikView
document to the current loop value; if you for example create a schedule group loop that
loops over years and you add a schedule to the group, the schedule will be executed for each
year in the array of values. However, when the schedule is executed, the QlikView document is
- 39 -
not automatically filtered to the current loop value. You would have to do that by adding a
preparation action at the schedule level (or below) where you can access the current loop
parameter in a dynamic value (see chapter Dynamic Values).
Schedule
Schedule groups can also contain schedules as members (see Schedules). A schedule group
without a schedule does not really make sense, because only schedules can actually create reports.
When a schedule is contained in a schedule group loop (i.e. its between the start and the end of
the loop) it will be executed once for each loop execution (i.e. once for each value of the array of
values of the schedule group loop).
Immediate Execution
Schedules groups are normally executed according to their next execution date and regularity.
However, you sometimes want to execute a schedule group only once (e.g. for testing purposes).
This can be achieved by selected the schedule group in the list and clicking the Execute
Immediately button in the schedules section of Mail & Deploy Client.
Normal Mode
If you start an immediate execution in normal mode, the schedule group will be executed exactly
as configured.
- 40 -
STAGED TEMPLATES
Introduction
Staged Templates can be used to combine data of different QlikView documents (or data from the
same QlikView document, but with different filtering criteria) into a single template. Information
about the basic structure and usage of templates can be found in chapter Templates in section
Server.
Please consult the tutorials that come with Mail & Deploy (see chapter Appendix C: Tutorials);
there is one specifically targeted to multi-stage templates.
Basic Principle
The following diagram shows the basic principle of multi-stage templates:
Template
Pre-Processed
Template
Schedule #1
This schedule takes the original template and replaces all
expressions with expression key none; it then savest he
pre-processed template in an internal cache.
Schedule #2
This schedule takes the pre-processed template (which
already contains data replaced by the previous schedule)
and replaces more expressions in the template
(expressions with the expression key defined in the
schedule). It then saves the report and distributes it.
The flow diagram above displays multi-stage templates processed by two schedules; however,
even more schedules could continue to work on the pre-processed template.
The second schedule (Schedule #2 in the diagram) has the option Use Pre-Processed Template
activated; this means that the schedule will not take a copy of the original template but will take
the pre-processed template that was already processed by the first schedule. The option
Expression Key is used to define which expressions in the template should be replaced by this
schedule; only expressions with the same expression key as the one defined when adding the
schedule will be replaced (all others will have to be replaced by other schedules to complete the
report). Since this is the last schedule working on this template (and all expressions will have been
replaced the report is completed), this schedule also contains distribution groups (e.g. to send
the report by e-mail etc.).
- 42 -
DYNAMIC VALUES
There are many scenarios where a static value cannot be used and access to dynamic values is
required for instance the subject of the e-mail to be sent to a mail recipient during schedule
execution (see chapter Schedules, sub-chapter Send By E-Mail (Mail Recipient Groups)) cannot
always be a static text; sometimes you want to have it to be created dynamically based on values
from the QlikView data model or the return value of a .NET expression etc.
Wherever Mail & Deploy supports the insertion of a dynamic value, the Insert Dynamic Value
button is displayed next to the input field.
Clicking this button opens up a dialog that allows the selection of the dynamic value you want to
be inserted.
.NET Expression
This dynamic value will consist of the return value(s) of the selected .NET expression (see chapter
.NET Expressions).
Variable
This dynamic value will contain the value of a variable in the QlikView document at the time of the
evaluation of the dynamic value. Depending on the context in which the dynamic value is used,
- 43 -
preparation actions will already be executed before the variable is read and these preparation
actions may influence the value of the variable.
If for instance the dynamic value is used in a mail recipient group of a schedule, all
preparation actions of this mail recipient group will already be executed before the variable is
read from the QlikView document. If these preparation actions change selections in the QlikView
document, this may affect the value of the variable when the dynamic value is evaluated.
Field Value
This dynamic value will contain the value(s) of a field in the QlikView document at the time of the
evaluation of the dynamic value. Depending on the context in which the dynamic value is used,
preparation actions will already be executed before the field value(s) are read and these
preparation actions may influence the value(s) of the field. The value(s) returned for that field will
not be the selected ones, but all values in accordance with the current selection in the QlikView
document (i.e. all selected or if no selection is active in that field all white values for that field).
If for instance the dynamic value is used in a mail recipient group of a schedule, all
preparation actions of this mail recipient group will already be executed before the field value(s)
are read from the QlikView document. If these preparation actions change selections in the
QlikView document, this may affect the value(s) of the field when the dynamic value is evaluated.
Group Parameter
If the dynamic value is evaluated in the context of a schedule group execution (see chapter
Schedule Groups) and the schedule group contains loops, group parameters can be used to
access the current value of loop variable.
- 44 -
SECTION 3
APPENDIX
- 45 -
Schedule Execution
This flow diagram shows how the execution of a schedule works.
Starting Schedule Execution
The schedule execution is being started either because an immediate execution was requested
or a regular execution is due.
Distribute Report
The created report will be distributed to all selected mail recipients as
well as to all e-mail addresses derived from the QlikView document by
using an expression for mail recipients (see chapter Schedules, subchapter Send By E-Mail (Mail Recipient Groups)).
- 46 -
Distribute Report
The created report will be saved to all select output paths. Dynamic
values in those output paths will be replaced, before the final paths are
determined.
Loop
Member Type
Schedule
Execute Schedule
The schedule will be executed as
described above (sub-chapter
Schedule Execution).
- 47 -
Execute Members
All members contained in the schedule group loop (between its start and
end) will be executed sequentially from top to bottom.
If the member is a schedule, then the schedule will be executed as
described before (see sub-chapter Schedule Execution).
If the member is another schedule group loop, it will be executed as
described in this chapter.
- 48 -
APPENDIX B: EDITIONS
This appendix contains an overview about the difference between the lite edition and a licensed
edition of Mail & Deploy.
Feature
Schedule Limit
Defines the maximum number of schedules / schedule groups that can be created.
Schedule Groups
This feature enables you to create schedule groups with loops and schedules.
Distribution: E-Mail
This feature enables you to distribute reports by e-mail.
Distribution: File System
This feature allows you to save created reports to the file system.
Report Type: QlikView Document Reports
This feature allows you to create PDF reports embedded QlikView document reports.
Report Type: QlikView Document
This feature allows you to save QlikView documents (manipulated by Mail & Deploy).
Report Type: Word Template
This feature allows you to fill Microsoft Word templates with QlikView data and charts.
Report Type: Excel Template
This feature allows you to fill Microsoft Excel templates with QlikView data and charts.
Report Type: CSV Template
This feature allows you to export QlikView data to CSV files.
Report Type: HTML Template
This feature allows you to fill HTML templates with QlikView data and charts.
Preparation Action: Reload
This feature allows you to reload QlikView documents before the creation of reports.
Preparation Action: Reduce
This feature allows you to reduce QlikView documents.
.NET Expressions
This feature allows you to create VisualBasic.NET expressions for dynamic filtering.
Multi-Installation
This feature allows you to install Mail & Deploy Server on as many servers you like.
Command Line Execution*
This feature allows you to execute schedules from the command line (without the Client).
- 49 -
APPENDIX C: TUTORIALS
Mail & Deploy comes with tutorials that range from simple PDF reports to complex multi-stage
templates. You can find these tutorials in the Documentation sub-directory of the installation
directory of Mail & Deploy Client.
Tutorial #01 Setting up a basic PDF report
This tutorial explains how to set up a simple PDF report, using the Car Statistics example.
Tutorial #02 Using .NET Expressions
This tutorial explains how to set up a simple PDF report, using the Car Statistics example; in addition to that, the concept of .NET
Expressions is explained.
Tutorial #03 Dynamic Mail Recipients and Schedule Groups
This tutorial explains how to create schedule groups (with loops) and distribute resulting reports to dynamic mail recipients
(where e-mail addresses will dynamically be derived from the QlikView data model instead of providing a fixed list of recipients).
Tutorial #04 Multi-Stage HML Templates
This tutorial explains how to create multi-staged HTML templates where two schedules will replace expressions of an HTML
template; the second schedule will use the template already processed by the first schedule to create the final report.
- 50 -
- 51 -