EOL: Bi xPress reached its end of life date on June 15, 2022. See the Solarwinds End of Life Policy for more information.
Auditing Framework
BI xPress Server's Auditing Framework allows you to add, remove, or edit the BI xPress package auditing feature for SSIS 2012 and higher packages stored within Project Deployment Files (ISPACs). The Auditing Framework also provides you with an easy way to obtain rich auditing information from package executions.
The BI xPress Server Auditing Framework tracks the activity of any SSIS packages where it's applied by capturing useful information such as errors, warnings, runtime details, and more. This detailed information is then stored within the BI xPress repository and saved for analysis using the Monitoring Console.
Feature Highlights
- Record critical performance data about SSIS packages
- Consists of native SSIS components
- Auditing is self-contained in each the package
Important: If you are attempting to apply or remove the Auditing Framework from an SSIS Package that contains Third-Party Component(s), you need to install the Third-Party components on the machine where the BI xPress Server Auditing Framework is installed.
The Auditing Framework makes the following changes to your selected SSIS Package(s):
Note: These changes are based on the options you've selected during the application of the Auditing Framework.
- A new BI xPress Connection Manager will be added that points to the BI xPress Database.
- New configuration(s) or Package / Project Parameter(s) may be created.
- Package level Event Handlers will be created to capture information within the OnError, OnWarning, OnPreExecute and OnPostExecute Events.
- Row Counts will be added after the source adapter and before the target adapter within every Data Flow task. These row counts will be used to track information regarding the extracted and loaded rows.
- Variables are added at package level scope to store row count for each Data Flow.
- Variables are added in the OnPostExecute event handler scope to store certain information regarding each Data Flow's source and target ( Query, TableName, etc.).
- Package layout and task lists are updated whenever the package is saved or closed within BIDS, Visual Studio, or SSDT. This helps to track executions within the Monitoring Console. Layout changes are only tracked if the BI xPress add-in is loaded.
Important: Altering any of the task names or descriptions created by BI xPress causes the Auditing Framework to not recognize any previously created tasks.
Navigating the Auditing Framework
BI xPress Server's Auditing Framework is divided between up to seven pages. These pages change depending on whether you select to add or remove the Auditing Framework. The following pages are available:
Page | Description |
---|---|
Upload | Use the Upload page to upload Integration Services Project Deployment files (ISPACs) to the BI xPress Server and add or remove the Auditing Framework from the uploaded packages. |
Action | Use the Action page to add or remove the Auditing Framework from the uploaded ISPACs. Depending on the action you choose, the available pages may change. |
Progress | The Progress page displays information, warnings, and errors that may occur during the application or removal of the Auditing Framework. |
Download | Use the Download page to download a re-compiled ISPAC that contains all of the packages with the addition or removal of the Auditing Framework. |
Adding the Auditing Framework
If you select to Add the Auditing Framework on the Actions page, the following pages are available:
Page | Description |
---|---|
Database | Use the Database page allows to configure your server information that's used to connect to the BI xPress Database. |
Connection | When adding the Auditing Framework, use the Connection to choose the scope (project or package) and name for the connection manager. |
Configure | Use the Configure page to configure in-depth options to fully customize the Auditing Framework. |
Removing the Auditing Framework
If you select to Remove the Auditing Framework on the Actions page, the following pages are available:
Page | Description |
---|---|
Connection | When removing the Auditing Framework, use the Connection page to choose the scope (project or package) and enter the name of the BI xPress connection manager that will be removed. If the packages use a project connection manager and parameters, it also provides you with the ability to not remove the project connection manager and parameters. |
Navigate between the available Auditing Framework pages with the Navigation panel, or the page buttons.
![]() | ![]() |
Uploading Packages
The Upload page is the starting point for the Auditing Framework. Use the Upload page to upload packages, configuration files, or ISPACs.
Button | Description |
---|---|
![]() | Select Start Over to reset the Auditing Framework, and restart the process of adding or removing the Auditing Framework. |
![]() | Select Clean Up to remove erroneous activities and files from the server. Note: The Clean Up button is only availalbe to users that have the administrators role. |
Note: BI xPress Server considers erroneous activities to be activities associated with missing files. Erroneous files are files located within the upload directory that are not associated with an activity.
To Upload a Package(s), complete the following steps:
1. Select your package SSIS version from the drop-down list. Note: It may take a few minutes for BI xPress Server to detect the versions of SSIS that your server connection has installed.
Important: BI xPress Server requires all versions of SSIS that you want to use installed on the server. If you upload files that are from a version that's not on the server, the following error occurs:
2. Select Select files... to open the directory browser window. Navigate to the desired file, and then select Open to add the file to the list of files to upload.
Note: BI xPress Server cannot access SSIS files set using the Encrypt all with user key protection level. Files set to Encrypt sensitive with User Key may experience unintended consequences. SSIS will associate these files to the user configured to run BI xPress Server's Application Pool's user key.
3. Set the password for any files that need a password. Repeat this step for each applicable file.
4. Once you've finished selecting the files to upload, select Upload files to begin the upload process.
5. Select the packages where you want to add / remove the Auditing Framework. Select Next or select Actions from the Navigation panel to continue to the Actions page.
Selecting your Action
Use the Action page to add or remove the Auditing Framework from the uploaded ISPACs. Depending on the action you choose, the available pages may change.
Option | Description | Image |
---|---|---|
Adding the Auditing Framework | Adding the Auditing Framework applies BI xPress Server's Auditing Framework to each selected Package contained within the uploaded ISPACs. You can access the Database, Connection, and Configure page to configure more advanced features present within applying the Auditing Framework. | ![]() |
Removing the Auditing Framework | Removing the Auditing Framework (if able) removes BI xPress Server's Auditing Framework from each selected Package contained within the uploaded ISPACs. You can access the Connection page to configure the Auditing Framework's behavior for the Auditing Framework's connection manager. | ![]() |
Database Connection
Use the Database page to configure the server information that's used by the Auditing Framework to connect to the BI xPress Database.
Note: This page is only visible if the user is adding the Auditing Framework to packages.
The following options are available:
Option | Description |
---|---|
Server | Enter the name of the Server where the BI xPress database is located. |
Database | Enter the name of the database that contains the BI xPress Framework Architecture. |
Database Authentication | Select between Windows Authentication or SQL Server Authentication. |
Username | If you select SQL Server Authentication, enter your SQL Server username that's used to connect to the BI xPress database. |
Password | If you selects SQL Server Authentication, enter your Password that's used to connect to the BI xPress database. |
Offline Mode | Select the checkbox to create the Auditing Framework Connect Manager and set it to Work Offline allowing you to browse and continue developing your package when the BI xPress database is not yet accessible. |
Continue package execution on Auditing Framework database connection failure | Select this checkbox to allow SSIS packages that contain the Auditing Framework to continue executing in the rare occurrence that the Auditing Framework fails. |
Do not report failure if Auditing Framework fails | Select this checkbox to hide all errors that occur due to the Auditing Framework. |
Connection Manager
The Connection page's behavior changes based on your selection from the Action page.
Adding Auditing Framework
When adding the Auditing Framework, the Connection page allows you to select the scope (project or package) and name for the connection manager.
Option | Description |
---|---|
Connection Scope | Select whether you want the BI xPress Connection manager to be saved as a Project or Package Connection Manager. |
Connection Manager Name | Specify a meaningful name for your BI xPress Connection Manager. |
Removing the Auditing Framework
When removing the Auditing Framework, use the Connection page to enter the details regarding the scope (project or package) and name of the BI xPress connection manager that will be removed. If the packages use a project connection manager and parameters, you can select not remove the project connection manager and parameters.
Option | Description |
---|---|
Remove project level connection manager and parameters | Explicitly specify not to remove the BI xPress Project Connection Manager. This is important if you are not removing the Auditing Framework from all of the packages within an ISPAC. |
Project Scope | If you specify to remove connection managers and parameters, the Project Scope switch specifies whether Project or Package Connection Managers were used when initially applying the Auditing Framework to these packages. |
Connection Manager Name | Specify the name of the Connection Manager that will be removed from each package. |
Configure Options
Use the Configure page to fully customize the behavior of the Auditing Framework.
Note: This page is only visible if you are adding the Auditing Framework to packages.
The following options are available:
Use Configuration
Option | Description |
---|---|
Use Configuration | Select the checkbox to begin selecting configuration options. |
Configure Scope | Select to save the parameters as Project or Package parameters. Project parameters control the behavior of the auditing framework for all packages within the ISPAC. Package parameters only control the behavior of the auditing framework for the packages on an individual basis. |
Add parameter to enable or disable the Auditing Framework | Allow users to manually turn off the Auditing Framework. |
Add parameter to enable or disable variable, parameter, and connection logging | Allows users to manually turn off the logging of variable, parameter, and connection managers. |
Add parameter to enable or disable real-time Data Flow monitoring | Allows users to manually turn off the Auditing Framework's real-time Data Flow monitoring. |
Add parameter to enable or disable logging of all warnings | Minimizes the amount of logging that occurs by not logging warnings that occur during execution. |
Add parameter to specify variable and connection log filtering | Allows users to manually mask sensitive values contained within variables from displaying when executions are viewed within the Monitoring Console. |
Package Groups
The package grouping helps create and associate packages to groups. Once associated with a group, the package execution panel can filter packages based on groups. Packages can belong to one or more groups. Select add package group to add new groups. Select an existing group's checkbox to include preexisting groups.
Switch | Description | Image |
---|---|---|
Script Language | Specify which programming language you want the Auditing Framework to use within Script Tasks. | ![]() |
Max Loop Iterations | Specify the number of loops within a For or For Each Loop you want to document. Setting this value to 0 logs all iterations. | ![]() |
Log Warnings | Specify whether to log warnings that are encountered during executions and store them on the BI xPress database. | ![]() |
Real-time Data Flow Monitoring | Specify whether to monitor your package's Data Flows in real-time. | ![]() |
Note: If real-time Data Flow monitoring is turned off, some of the features of Monitoring Console's Execution Diagram will be unavailable.
Row Count Logging
The Row Count Logging switch allows you to capture row counts flowing inside your Data Flows. When you enable row count logging, each data flow task is modified to track row count data.
Switch | Description |
---|---|
Source Row Count Logging | If row count logging is enabled, the Source Row Count Logging switch tracks the number of rows coming from source components. |
Destination Row Count Logging | If row count logging is enabled, the Destination Row Count Logging switch tracks the number of rows going to destination components. |
Source SQL Statement Logging | If row count logging is enabled, the Source SQL Statement Logging switch logs SQL Statements used to extract data. This information can be viewed using BI xPress' Extract / Load Detail Report found within the SentryOne Workbench. |
Connection Detail Logging | If row count logging is enabled, the Connection Detail Logging switch logs details for each source and destination component connections. |
Switch | Description | Image |
---|---|---|
Connection Logging | Allows you to log every connection manager connection string value during run-time. | ![]() |
Variable Logging
The Variable Logging switch logs variable values during an SSIS execution. If no other options are enabled, variable values are logged two times during package execution: when the package execution starts and when the package execution completes.
Switch | Description |
---|---|
Object Variable Logging | If variable logging is enabled, the Object Variable Logging switch logs object variables. |
Initial Parameter Value Logging | If variable logging is enabled, the Initial Parameter Value Logging option logs the initial values of parameters. |
Variable Logging Type | If variable logging is enabled, the Variable Logging Type logs all variables, or only variables used within For Each loops. |
Custom Package Variable Logging
The Custom Package Variable Logging switch allows you to explicitly specify the logging of specific variables within the Auditing Framework.
Option | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
Numeric Variables | If custom package variable logging is enabled, the Numeric Variable text boxes allow you to log up to three custom variables of a numeric data type. | ||||||||
String Variables | If custom package variable logging is enabled, the String Variable text boxes allow you to log up to three custom variables of the string data type. | ||||||||
Date Variables | If custom package variable logging is enabled, the Date Variable text boxes allow you to log up to three custom variables of a date data type. | ||||||||
Events to Log | If custom package variable logging is enabled, the Event Logs check boxes allows you to specify the event(s) you want to log for custom variables:
| ||||||||
Custom Logging Scope(s) | If custom package variable logging is enabled, the Custom Logging Scope(s) check boxes allows you to specify the scope of custom logging:
|
After selecting an action, setting up the database, connection manager, and configuration options, select the add or remove Auditing Framework button to continue to the Progress page.
Note: The add or remove Auditing Framework button that's visible is dependent on the action you've selected.
Progress Page
The Progress page contains an in-depth list of steps being taken to apply or remove the Auditing Framework from the selected packages. Once Auditing Framework has completed, select View Completed Items to open the Download Packages page.
Download Packages Page
The Download Packages page displays a historical list of each activity the Auditing Framework encountered and allows you to download the ISPAC that was generated as a result of that activity.
If the list of activities spans multiple pages, you can navigate from one page to the next until you find the desired activity. Each historical record contains details on the action taken, progress log, date last updated, status, and the ability to download the ISPAC associated with the activity.
After downloading the desired ISPAC(s), you can deploy the ISPACs using the SSIS built in Project Deployment Tool.
Performance optimizing N-Tier SSIS Packages to use with the Auditing Framework
When applying the Auditing Framework to packages that are a part of a Parent-Child relationship (one package uses an Execute Package task to execute the other package), you may notice a decrease in performance. Performance decreases worsen when using an N-Tier pattern for SSIS Packages (Master-Child0-Child1-...-ChildN) where all tiers contain the Auditing Framework. The performance decrease is due to the way the SSIS Runtime handles events, and the way they move up to their respected parent package(s).
Another issue with the SSIS Runtime is that when events move up the chain, each parent copies the event and adds it to the list of events that will move up. This issue causes an exponential increase in the number of events needing to be handled. For example, a single event at the lowest level generates eight events at the Master level when executing with four levels.
Follow these steps to design your parent package(s) for optimum performance when using the Auditing Framework:
1. Before applying or re-applying the Auditing Framework, wrap each Execute Package task inside of a Sequence Container.
2. For each Execute Package Task, go to the task's Event Handlers tab (not the Package Level Event Handlers) and create an empty event handler for OnPreExecute, OnPostExecute, OnWarning, and OnVariableValueChanged.
Important: You can also elect to create an empty event handler for the OnError event if the user does not wish for the Parent Package(s) to be notified of an error within the child package.
3. Within each of the empty Execute Package Task's event handlers that were just created in step 2, set the System::Propagate variable to False. This will prevent the event from being broadcast to all parents and logging the event as if the parent package actually generated the event.
4. Save the packages as well as the project, if applicable.
5. Apply the Auditing Framework normally to each package.
Warning: The advantage of this approach is that each package logs exactly what it generates and does not include any Auditing Framework details that belong to one of its child packages. This also lets you see all the details within the Monitoring Console, even if the package(s) were executed as a subset of the entire chain of packages.
The disadvantage of this approach is that because System::Propagate is set to False, we are hiding the events of each Execute Package Tasks. This prevents the Monitoring Console from being able to view the Execute Package Task start and end time and displays them as though they were not executed at all. The Sequence Container displays its status normally. This may be a small price to pay for an exponential increase in package performance.
Command Line
BI xPress Server also comes with the option to install the Auditing Framework command line tool, which utilizes the AuditingFramework.CommandLine.exe located within the Auditing Framework command line directory of the Workbench Server installation. The Auditing Framework command line tool can be found in the following location by default:
C:\Program Files (x86)\Pragmatic Works\Workbench Server\Auditing Framework Command Line\AuditingFramework.CommandLine.exe
Any framework (such as Scheduled Tasks, TFS Build Server, Microsoft Systems Center) that is capable of starting an application and passing parameters through a response file or command line arguments will be capable of utilizing the Auditing Framework command line to apply/re-apply or remove the Auditing Framework.
When you use AuditingFramework.CommandLine.exe to apply the Auditing Framework to packages, you can include several switches to specify various options to be included within Auditing Framework.
AuditingFramework.CommandLine.exe [<Action>] {<Items>} <Item Information> [<Options>] [<Configuration Information>] [<Connection Information>] [<Custom Variable Logging>]
The Auditing Framework can be used in the traditional sense by directly inputting each desired switch into the Command Prompt, or it can be used to reference a response file that contains all desired switches.
Response File
Switch | Description |
---|---|
@file | Insert all command-line switches to be executed against the Auditing Framework command line tool from a text file. The response file location must be surrounded by " (double-quotes) if it contains a space or special characters. |
Switch Arguments
To introduce a parameter argument to the AuditingFramework.CommandLine.exe, use a / (slash) followed immediately by either the parameter name or the parameter abbreviation. If the Parameter requires a value, a : (colon) or an = (equal) will be used to separate the parameter argument with the parameter value and must be surrounded by " (double-quotes) if the value contains a space or special character(s).
Below is a list of all Parameter Arguments grouped by their specific purpose:
Action
Switch | Shorthand | Description |
---|---|---|
/add | /a | This action adds the Auditing Framework to the specified item(s). If no Action switch is specified, AuditingFramework.CommandLine.exe uses the add switch by default. |
/remove | /r | This action removes the Auditing Framework from the specified item(s). |
Items
Switch | Shorthand | Description |
---|---|---|
[/item:]values | [/i:]values | The fully qualified location(s) of the package(s), project(s), or solution(s). This must include the full package name including the file extension if the location is FileSystem. If the location parameter is SqlServer or SsisStore, this location must include the full path to a package and start with a backslash "\". If specifying multiple targets, all items must be from the same location (FileSystem, SqlServer, or SsisStore) and use spaces in between values, as the following example shows: /item:"\SSIS\MasterPackage" "\SSIS\ETLPackage" Note: SQL 2005 packages must have the auditing framework applied or removed separate from SQL 2012 or SQL 2014 packages |
/itemPassword:value | /ip:value | The password for the SSIS project or package(s) that are being modified. No password is applied to the item(s) by default. If a password is present, this password is applied to each package. |
Item Information
Switch | Shorthand | Description |
---|---|---|
/location:value | /l:value | The location to all specified SSIS Item(s) referenced by the item switch. Users can specify the following values: FileSystem. SqlServer. Setting the location switch to SqlServer requires the locationVersion switch to be set. SsisStore. Setting the location switch to SsisStore requires the locationVersion switch to be set. By default, only administrators have access to the SSIS Package Store and the command prompt used to execute this process must be running with administrative privileges. |
/location Version:value | /lver:value | Required when setting the location switch to either SQL Server or SsisStore. The locationVersion switch directs the application to use a specific SSIS runtime to process the request. Users can specify the following values:
|
/dataSource:value | /ds:value | Required when setting the location switch to either SQL Server or SsisStore. The dataSource switch directs the application to the server name (and instance name if using SQL ServerServer) where the SSIS items are located. |
/userName:value | /u:value | If provided when setting the location switch to either SQL Server or SsisStore, the userName switch (alongside the password switch) sets Integrated Authentication to False and specifies the user name to be used in order to connect. |
/password:value | /p:value | If provided when setting the location switch to either SQL Server or SsisStore, the password switch (alongside the userName switch) sets Integrated Authentication to False and specifies the password to be used in order to connect. |
Add Only Arguments
The following arguments are used alongside the add switch and are ignored if used with the remove switch:
Switch | Shorthand | Description |
---|---|---|
/scriptLanguage:value | /sl:value | Specifies the script language that will be used when applying the Auditing Framework. The default value for SSIS 2008 and later items is CSharp. This switch will be ignored for SSIS 2005 items. Users can specify the following values:
|
/logRowCount:value | /lrc:value | Enables row count logging within Data Flows. The default value is True. Users can specify the following values:
|
/logRow CountSource:value | /lrcs:value | Enables row count logging for source components found within Data Flows. The logRowCountSource switch will be ignored if the logRowCount switch is set to False. The default value is True. Users can specify the following values:
|
/logRowCount Destination:value | /lrcd:value | Enables row count logging for destination components found within Data Flows. The logRowCountDestination switch will be ignored if the logRowCount switch is set to False. The default value is True. Users can specify the following values:
|
/logSqlStatements: value | /lsql:value | Enables logging of SQL Statements. The default value is True. Users can specify the following values:
|
/logConnectionStrings: value | /lconn:value | Enables logging of connection strings. The default value is True. Users can specify the following values:
|
/logWarnings:value | /lw:value | Enables logging of warnings issued during package execution. The default value is True. Users can specify the following values:
|
/logVariables:value | /lv:value | Enables logging of variable value changes during package execution. The default value is True. Users can specify the following values:
|
/logVariableType:value | /lvt:value | Enables logging of all variable value changes or only the variables used within ForEach tasks during package execution. The logVariableType switch will be ignored if the logVariables switch is set to False. The default value is All. Users can specify the following values:
|
/logInitialValues:value | /liv:value | Enables logging of initial variable values at the time of applying the Auditing Framework. The logInitialValues switch will be ignored if the logVariables switch is set to False. The default value is True. Users can specify the following values:
|
/logObjectVariables: value | /lov:value | Enables logging of variables with an Object data type. The logObjectVariables switch will be ignored if the logVariables switch is set to False. The default value is True. Users can specify the following values:
|
/logTasks:value | /lt:value | Enables logging of each task's start and stop times, which is essential for seeing package execution progress within the Monitoring Console. The default value is True. Users can specify the following values:
|
/logTaskType:value | /ltt:value | Enables logging of each task's type and parent object. The default value is True. Users can specify the following values:
|
/continueOnAfDb Failure:value | /coadf:value | Enables the continuation of package execution if there is an error connecting to the BI xPress database. The default value is False. Users can specify the following values:
|
/doNotReportAf Failure:value | /dnarf: value | Enables the silencing of Auditing Framework failure messages in the Auditing Framework execution history. The default value is False. Users can specify the following values:
|
/maxIterations:number | /mi:number | Specifies the maximum number of iterations to log within a For or Foreach loops. A value of 0 indicates that all iterations should be logged and only numbers greater than or equal to 0 are allowed. The default value is 0. The following example instructs AuditingFramework.CommandLine to only log the first 5 iterations within For and Foreach Loops: AuditingFramework.CommandLine.exe "C:\SSIS\MasterPackage.dtsx" /l:FileSystem /maxIterations:5 |
/logDataFlows:value | /ldf:value | Enables the logging of Data Flows. The default value is True. Users can specify the following values:
|
/logConnsFor SrcDest:value | /lcsd:value | Enables the logging of connection details for source and destination components within Data Flows. The logConnsForSrcDest switch will be ignored if the logDataFlow switch is set to False. The default value is True. Users can specify the following values:
|
Configuration Information
Switch | Shorthand | Description |
---|---|---|
/configType:value | /ct:value | Enables the use of configuration or parameters for externally setting Auditing Framework variables and property values. The use of Package and Project Parameters requires the SSIS Items to be SSIS 2012 or later. In addition, the use of Project Parameters require the SSIS Items to be SSIS project files. The default value is None. Users can specify the following values:
|
/configOverwrite:value | /co:value | Enables overwriting the configuration or parameters if they already exist. The default value is True. Users can specify the following values:
|
/configPath:value | /cp:value | When setting the configType switch to ConfigurationFile, the configPath switch directs the application to the directory location to place the configuration file. The directory must exist during application of the Auditing Framework. The configPath switch will be ignored if the configType switch is set to None, PackageParameters, or ProjectParameters. The default value is "C:\SSIS". |
/configProjConnMgr Overwrite:value | /cpcmo:value | Enables removing and replacing a package-level connection manager with a project-level connection manager when a connection manager with the same name exists in a package. The configProjConnMgrOverwrite switch will be ignored if the configType switch is set to None, ConfigurationFile, or PackageParameters. The default value is True. Users can specify the following values:
|
/configAudit Framework:value | /ca:value | Enables the inclusion of a configuration entry controlling the ability to enable and disable the Auditing Framework. The configAuditFramework switch will be ignored if the configType switch is set to None. The default value is True. Users can specify the following values:
|
/configDataFlows:value | /cdf:value | Enables the inclusion of a configuration entry controlling the ability to enable and disable Data Flow Row Count logging and Source Information logging. The configDataFlows switch will be ignored if the configType switch is set to None. The default value is True. Users can specify the following values:
|
/configWarnings:value | /cw:value | Enables the inclusion of a configuration entry controlling the ability to enable and disable the logging of SSIS Warnings. The configWarnings switch will be ignored if the configType switch is set to None. The default value is True. Users can specify the following values:
|
/configVarsParams Conns:value | /cvpc:value | Enables the inclusion of a configuration entry controlling the ability to enable and disable the logging of connection strings and variable logging. The configVarsParamsConns switch will be ignored if the configType switch is set to None. The default value is True. Users can specify the following values:
|
/configVarsConns Filtering:value | /cvcf:value | Enables the inclusion of a configuration entry controlling the ability to mask specific connection managers, variables, and parameters. The configVarsConnsFiltering switch will be ignored if the configType switch is set to None. The default value is True. Users can specify the following values:
|
Connection Information
Switch | Shorthand | Description |
---|---|---|
/bixExistingConnection: value | /bxec:value | Specifies whether an existing connection manager will be used or if the a new connection manager will be created when applying the Auditing Framework. The default value is False. Users can specify the following values:
|
/bixConnName:value | /bxcn:value | Specifies the name of the connection manager to be used by the Auditing Framework. If bixExistingConnection switch is set to False and a connection manager already exists with the same name, the existing connection manager will be used instead. If bixExistingConnection switch is set to True, the connection manager name is case-sensitive and must be entered exactly as it appears. The default value is "OLEDB_BIxPress". |
/bixDataSource:value | /bxds:value | Specifies the name of the server hosting the BI xPress database (and instance name if applicable). This is the same database that the Monitoring Console will use to display package execution information. |
/bixDatabase:value | /bxdb:value | Specifies the name of the database where the Auditing Framework data will be stored. This is the same database that the Monitoring Console will use to display package execution information. |
/bixUserName:value | /bxu:value | If provided, the bixUserName switch (alongside the bixPassword switch) sets Integrated Authentication to False and specifies the user name to be used in order to connect to the BI xPress database. |
/bixPassword:value | /bxp:value | If provided, the bixPassword switch (alongside the bixUserName switch) sets Integrated Authentication to False and specifies the user name to be used in order to connect to the BI xPress database. |
Custom Variable Logging
Switch | Shorthand | Description |
---|---|---|
/logCustVars:value | /lcv:value | Enables custom logging of specific variables. The default value is False. Users can specify the following values:
|
/custVarDate1:value | /cvdt1:value | Specifies the name of the first variable with a date data type to log during package execution. The custVarDate1 switch will be ignored if the logCustVars switch is set to False. The value may include the variable scope, for example "User::MyDateVariable1". |
/custVarDate2:value | /cvdt2:value | Specifies the name of the second variable with a date data type to log during package execution. The custVarDate2 switch will be ignored if the logCustVars switch is set to False. The value may include the variable scope, for example "User::MyDateVariable2". |
/custVarDate3:value | /cvdt3:value | Specifies the name of the third variable with a date data type to log during package execution. The custVarDate3 switch will be ignored if the logCustVars switch is set to False. The value may include the variable scope, for example "User::MyDateVariable3". |
/custVarNum1:value | /cvn1:value | Specifies the name of the first variable with a numeric data type to log during package execution. The custVarNum1 switch will be ignored if the logCustVars switch is set to False. The value may include the variable scope, for example "User::MyNumericVariable1". |
/custVarNum2:value | /cvn2:value | Specifies the name of the second variable with a numeric data type to log during package execution. The custVarNum2 switch will be ignored if the logCustVars switch is set to False. The value may include the variable scope, for example "User::MyNumericVariable2". |
/custVarNum3:value | /cvn3:value | Specifies the name of the third variable with a numeric data type to log during package execution. The custVarNum3 switch will be ignored if the logCustVars switch is set to False. The value may include the variable scope, for example "User::MyNumericVariable3". |
/custVarString1:value | /cvs1:value | Specifies the name of the first variable with a string data type to log during package execution. The custVarString1 switch will be ignored if the logCustVars switch is set to False. The value may include the variable scope, for example "User::MyTextVariable1". |
/custVarString2:value | /cvs2:value | Specifies the name of the second variable with a string data type to log during package execution. The custVarString2 switch will be ignored if the logCustVars switch is set to False. The value may include the variable scope, for example "User::MyTextVariable2". |
/custVarString3:value | /cvs3:value | Specifies the name of the third variable with a string data type to log during package execution. The custVarString3 switch will be ignored if the logCustVars switch is set to False. The default value is True. The value may include the variable scope, for example "User::MyTextVariable3". |
/custVarPackageScope: value | /cvps:value | Enables logging of the specified variable(s) at the package level during package execution. The custVarPackageScope switch will be ignored if the logCustVars switch is set to False. The default value is True. Users can specify the following values:
|
/custVarTaskScope:value | /cvts:value | Enables logging of the specified variable(s) at the task level during package execution. The custVarTaskScope switch will be ignored if the logCustVars switch is set to False. The default value is True. Users can specify the following values:
|
/custVarOnError:value | /cvoe:value | Enables logging of the specified variable(s) when the OnError event handler executes. The custVarOnError switch will be ignored if the logCustVars switch is set to False. The default value is True. Users can specify the following values:
|
/custVarOnWarning:value | /cvow:value | Enables logging of the specified variable(s) when the OnWarning event handler executes. The custVarOnWarning switch will be ignored if the logCustVars switch is set to False. The default value is True. Users can specify the following values:
|
/custVarOnPreExecute: value | /cvope:value | Enables logging of the specified variable(s) when the OnPreExecute event handler executes. The custVarOnPreExecute switch will be ignored if the logCustVars switch is set to False. The default value is True. Users can specify the following values:
|
/custVarOnPostExecute: value | /cvops:value | Enables logging of the specified variable(s) when the OnPostExecute event handler executes. The custVarOnPostExecute switch will be ignored if the logCustVars switch is set to False. The default value is True. Users can specify the following values:
|
Examples
The following example uses a response file that contains all of the necessary switches to apply the auditing framework.
AuditingFramework.CommandLine.exe @"C:\SSIS\AfResponseFile.txt"
The following example adds the Auditing Framework to two SSIS packages located on the File System and uses the BI xPress database named "ProdBIxPress" located on "ProductionServer". In addition, the logging of warnings is turned off.
AuditingFramework.CommandLine.exe /add "C:\SSIS\MasterPackage.dtsx" "C:\SSIS\Staging.dtsx" /location:FileSystem /bixDataSource:"ProductionServer" /bixDatabase:"ProdBIxPress" /logWarnings:False
The following example adds the Auditing Framework to one SSIS package located on the File System and uses the BI xPress database named "ProdBIxPress" located on "ProductionServer". In addition, the custom variable "User::MyDateVar1" will be included in the log, however, logging of the custom variable during the OnPreExecute event has been disabled.
AuditingFramework.CommandLine.exe /a "C:\SSIS\MasterPackage.dtsx" /l:FileSystem /bxds:"ProductionServer" /bxdb:"ProdBIxPress" /lcv:True /cvdt1:"User::MyDateVar1" /cvope:False
The following example removes the Auditing Framework from two SSIS 2012 packages located on the SQL Server named "ProductionServer".
AuditingFramework.CommandLine.exe /remove "\SSIS\MasterPackage.dtsx" "\MSDB\SSIS\Staging" /location:SqlServer /locationVersion:Sql2012 /dataSource:"ProductionServer"
Notification Engine
The Notification Engine allows you to connect and manage your packages' notification settings directly from within BI xPress Server. Use the Notification Engine to send rich, dynamic messages through E-mail, SMS, SQL, Text Files, Event Logs, and Twitter.
Feature Highlights
- Create highly customizable message templates
- Quickly develop complex notification events to handle a variety of scenarios
The Notification Engine harnesses the power of HTTP Requests to manage the notification events that trigger. Once BI xPress Server receives an HTTP Request, BI xPress Server handles the notification, sending all valid events using the event's corresponding provider(s).
Configuring the Notification Engine to be ready to receive HTTP Requests and send out notifications is simple. The following options are available:
Templates
Message Templates lend form and reason to the HTTP requests that are received by the Notification Engine. Templates are fully customizable and control what information is included within the notification.
Option | Description |
---|---|
Name | The name for the message template. |
No. of Notification | The amount of notification events assigned to the following message template. |
Content Type | The type of content contained within the message template. Currently only HTML and Plaintext are supported. |
Preview | Displays a preview of the message template. |
Edit | Manually update the message template. |
Delete | Delete the message template. |
Events
Notification Events manage the HTTP requests that are received by the Notification Engine and handle which Message Template(s) and Provider(s) send the notification based on the parameters from the HTTP request.
Option | Description |
---|---|
Notification | The name of the notification. |
Last Status | The data and time the notification was last sent and if it was sent successfully. |
No. of Executions | The number of times the notification ran. |
Priority | The priority level of the notification. Any Notification request sent with the same name and a priority greater than or equal to the listed priority triggers the notification event. |
Event Name | The name of the notification event. Only HTTP requests that are sent with this event name can trigger. |
Test | Sends a test notification to confirm the notification is properly configured. |
Edit | Manually update the notification event. |
Delete | Delete the message template. |
Notification Requests
Once the Notification Engine has been configured, you can request notifications through the BI xPress Notification Framework, Command Line, or HTTP Web Request.
Notification Template Advanced Syntax
Notification templates and events use a unique syntax for their notification structure. The syntax is case sensitive, and allows you to send data to the notification engine. Parameters sent alongside the event help change the structure of the notification.
There are two types of markup properties available for use within a message template:
Markup property | Description |
---|---|
Placeholders | Binds values passed in by the notification request to the template. Placeholders may display text when outputted. |
Tags | Manipulates how a message appears. Tags never display text when outputted. |
Both the placeholder and block properties provide you with complete control over your notifications.
Note: If you want to alter the HTML structure, you should surround the advanced syntax language with comments.
Placeholders
Most notifications need parameters sent alongside the request to function. Template and events use these parameters within placeholders. These placeholders provide substance to a message.
Syntax
{{ <Placeholder>[ | <Filter>[ : arguments,...n]...n] }}
Arguments
Argument | Description |
---|---|
Parameter | The name of the input parameter. If the parameter is not provided and there is no default filter, then the output is an empty string. |
Filter | Filters change the behavior of the parameter. Filters proceed the parameter name with pipe characters separating each filter. Some filters need extra arguments. These arguments proceed their respective filter by a colon and a comma-separated list. |
The following Placeholder filters are available:
Append
Adds the parameter to the beginning of the argument.
{{ <Parameter> | append: <String Value> }}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter that will be appended to the front. |
String Value | The string that the parameter appends to the front of. |
Example One
Input | {{ 'First' | append: 'Second'}} |
Output | 'FirstSecond' |
Example Two
InputParameter Value | 'input' |
Input | {{ InputParameter | append: 'Second'}} |
Output | 'inputSecond' |
Capitalize
Capitalizes words within the parameter.
Syntax
{{ <Parameter> | capitalize }}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter containing the string to capitalize. |
Example One
Input | {{ 'one two three four' | capitalize}} |
Output | 'One Two Three Four' |
Example Two
InputParameter Value | 'the quick brown fox' |
Input | {{ InputParameter | capitalize}} |
Output | 'The Quick Brown Fox' |
Ceil
Rounds a numerical parameter to the nearest integer.
Syntax
{{ <Parameter> | ceil }}
Arguments
Argument | Description |
---|---|
Parameter | A numerical value or name of the input parameter containing the number to be rounded to the nearest integer. |
Example One
Input | {{ 3.14 | ceil}} |
Output | 4 |
Example Two
Input Parameter Value | 19.7 |
Input | {{ InputParameter | ceil}} |
Output | 20 |
Date
Reformats a date parameter using specified format.
Syntax
{{ <Parameter> | date: <String Value> }}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter to be reformatted. |
String Value | The string that the contains the flags used to format the date. |
The following is a list of accepted flags:
Flag | Description |
---|---|
%a | Abbreviated Weekday |
%A | Full weekday Name |
%b | Abbreviated month name |
%B | Full month name |
%c | Preferred local date and time representation |
%d | Day of the month, zero-padded |
%-d | Day of the month, not zero-padded |
%D | Formats the date (dd/mm/yy) |
%e | Day of the month, blank-padded |
%F | Returns the date in ISO 8601 format (yyyy-mm-dd) |
%H | Hour of the day, 24-hour clock, zero-padded |
%I | Hour of the day, 12-hour clock |
%j | Day of the year |
%k | Hour of the day, 24-hour clock, non-zero-padded |
%m | Month of the year |
%M | Minute of the hour |
%p | Meridian indicator |
%r | 12-hour time without seconds |
%R | 24-hour time without seconds |
%T | 24-hour time with seconds |
%U | Week of the year starting with the first Sunday |
%W | Week of the year starting with the first Monday |
%w | Day of the week starting with Sunday |
%x | Preferred representation for the date |
%X | Preferred representation for the time |
%y | Year without century |
%Y | Year with century |
%Z | Time zone name |
Example One
Input | {{ '2015-06-25' | date: '%A, %B %d, %Y'}} |
Output | 'Thursday, June 25, 2015' |
Example Two
Input Parameter Value | '2009-05-08T10:30:00' |
Input | {{ InputParameter | date: 'The year was %Y, the month was %b, the day was %d and the time was %I''}} |
Output | 'The year was 2009, the month was May, the day was 08 and the time was 10:30' |
Default
Returns the provided value. If the parameter value is empty or not provided, then it will return the given default value.
Syntax
{{ <Parameter> | default: <String Value> }}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter to use. |
String Value | The string that the contains the default value to use if the parameter is either empty or not provided. |
Example One
Input | {{ InputParameter | default: 'This is a default value'}} |
Output | 'This is a default value' |
Example Two
Input Parameter Value | 'This is a custom value' |
Input | {{ InputParameter | default: 'This is a default value'}} |
Output | 'This is a custom value' |
Divided_by
Integer division. Divides the first integer parameter by the second value.
Syntax
{{ <Parameter> | divided_by: <Integer Value> }}
Arguments
Argument | Description |
---|---|
Parameter | An integer value or name of the input parameter that will be the dividend. |
Integer Value | An integer value that will be the divisor. |
Example One
Input | {{ 13 | divided_by: 5}} |
Output | 2 |
Example Two
Input Parameter Value | 42 |
Input | {{ InputParameter | divided_by: 8}} |
Output | 5 |
Downcase
Converts all letters within the parameter to lowercase
Syntax
{{ <Parameter> | downcase }}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter to convert to lowercase. |
Example One
Input Parameter Value | 'I DO NOT KNOW WHY I AM SCREAMING' |
Input | {{ InputParameter | downcase: 'This is a default value'}} |
Output | 'i do not know why i am screaming' |
Example Two
Input | {{ 'LOUD NOISES' | downcase: 'This is a default value'}} |
Output | 'loud noises' |
Floor
Rounds a numerical parameter down to the nearest integer.
Syntax
{{ <Parameter> | floor }}
Arguments
Argument | Description |
---|---|
Parameter | A numerical value or name of the input parameter containing the number to be rounded down to the nearest integer. |
Example One
Input | {{ 3.14 | floor}} |
Output | 3 |
Example Two
Input Parameter Value | 19.7 |
Input | {{ InputParameter | floor}} |
Output | 19 |
Istrip
Removes all whitespace from the beginning of the parameter
Syntax
{{ <Parameter> | lstrip }}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter to remove all whitespace from the beginning |
Example One
Input Parameter Value | ' Space, the final frontier ' |
Input | {{ InputParameter | lstrip}} |
Output | 'Space, the final frontier ' |
Example Two
Input | {{ ' These are the voyages of the starship Enterprise.' | lstrip}} |
Output | 'These are the voyages of the starship Enterprise.' |
Minus
Subtraction. Subtracts a numerical parameter with a second value.
Syntax
{{ <Parameter> | minus: <Numerical Value> }}
Arguments
Argument | Description |
---|---|
Parameter | A numerical value or name of the input parameter that will be the subtracted from. |
Numerical Value | A numerical value that will be subtracted. |
Example One
Input | {{ 13 | minus: 5}} |
Output | 8 |
Example Two
Input Parameter Value | 42 |
Input | {{ InputParameter | minus: 8}} |
Output | 34 |
Modulo
Remainder. Returns the remainder after dividing the integer parameter by the filter parameter
Syntax
{{ <Parameter> | modulo: <Numerical Value> }}
Arguments
Argument | Description |
---|---|
Parameter | A numerical value or name of the input parameter that will represent the dividend. |
Numerical Value | A numerical value that will represent the divisor. |
Example One
Input | {{ 13 | modulo: 5}} |
Output | 3 |
Example Two
Input Parameter Value | 42 |
Input | {{ InputParameter | modulo: 8}} |
Output | 2 |
Pluralize
Returns the second string if the parameter is greater than one. Otherwise returns the first string.
Syntax
{{ <Parameter> | pluralize: <Singular Value>, <Plural Value> }}
Arguments
Argument | Description |
---|---|
Parameter | An integer value or name of the input parameter to use. |
Singular Value | A string literal that the contains the value if the parameter value is 0 or 1. |
Plural Value | A string literal that the contains the value if the parameter value is greater than 1. |
Example One
Input Parameter Value | 3 |
Input | {{ InputParameter | pluralize: 'student', 'students'}} |
Output | students |
Example Two
Input | {{ 1 | default: 'sale', 'sales'}} |
Output | 'sale' |
Plus
Addition. Adds a numerical parameter with a second value.
Syntax
{{ <Parameter> | plus: <Numerical Value> }}
Arguments
Argument | Description |
---|---|
Parameter | A numerical value or name of the input parameter that will be the added to. |
Numerical Value | A numerical value that will be added. |
Example One
Input | {{ 13 | plus: 5}} |
Output | 18 |
Example Two
Input Parameter Value | 42 |
Input | {{ InputParameter | plus: 8}} |
Output | 50 |
Prepend
Adds the parameter to the end of the argument.
Syntax
{{ <Parameter> | prepend: <String Value> }}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter that will be added to the end of the string. |
String Value | The string that the parameter will be added to the end of. |
Example One
Input | {{ 'First' | prepend: 'Second'}} |
Output | 'SecondFirst' |
Example Two
Input Parameter Value | 'input' |
Input | {{ InputParameter | prepend: 'Second'}} |
Output | 'Secondinput' |
Remove_first
Removes the first occurrence of the string value found within the parameter.
Syntax
{{ <Parameter> | remove_first: <Search> }}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter that will be searched through. |
Search | The first occurrence of the supplied string literal will be removed from the parameter. |
Example One
Input Parameter Value | 'The following information has been REDACTED from view by the REDACTED' |
Input | {{ InputParameter | remove_first: 'REDACTED'}} |
Output | ''The following information has been from view by the REDACTED' |
Remove
Replaces all occurrence of the string value found within the parameter.
Syntax
{{ <Parameter> | remove: <Search> }}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter that will be searched through. |
Search | All occurrence of the supplied string literal will be removed from the parameter. |
Example One
Input Parameter Value | 'The following information has been REDACTED from view by the REDACTED' |
Input | {{ InputParameter | remove: 'REDACTED'}} |
Output | ''The following information has been from view by the ' |
Replace_first
Replaces the first occurrence of the string value found within the parameter with the replacement value.
Syntax
{{ <Parameter> | replace_first: <Search>, <Replacement> }}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter that will be searched through. |
Search | The first occurrence of the supplied string literal will be replaced from the parameter. |
Replacement | The value that will be inserted within the parameter in place of the first occurrence. |
Example One
Input Parameter Value | 'The following information has been REDACTED from view by the REDACTED' |
Input | {{ InputParameter | replace_first: 'REDACTED', 'censored'}} |
Output | 'The following information has been censored from view by the REDACTED' |
Replace
Replaces all occurrence of the string value found within the parameter with the replacement value
Syntax
{{ <Parameter> | replace: <Search>, <Replacement> }}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter that will be searched through. |
Search | All occurrence of the supplied string literal will be replaced from the parameter. |
Replacement | The value that will be inserted within the parameter in place of the all occurrence. |
Example One
Input Parameter Value | 'The following information has been REDACTED from view by the REDACTED' |
Input | {{ InputParameter | replace: 'REDACTED', 'censored'}} |
Output | 'The following information has been censored from view by the censored' |
Round
Rounds the numerical parameter to either the nearest integer or a specified number of decimals
Syntax
{{ <Parameter> | round: <Integer Value> }}
Arguments
Argument | Description |
---|---|
Parameter | A numerical value or name of the input parameter containing the number to be rounded to the nearest decimal place. |
Integer Value | An integer value represents the number of decimal places to round to. |
Example One
Input | {{ 3.14 | round: 1}} |
Output | 3.1 |
Example Two
Input Parameter Value | 19.759876 |
Input | {{ InputParameter | round: 5}} |
Output | 19.75988 |
Rstrip
Removes all trailing whitespace from the parameter.
Syntax
{{ <Parameter> | rstrip }}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter to remove all trailing whitespace. |
Example One
Input Parameter Value | ' Space, the final frontier ' |
Input | {{ InputParameter | rstrip}} |
Output | ' Space, the final frontier' |
Example Two
Input | {{ 'These are the voyages of the starship Enterprise. ' | rstrip}} |
Output | 'These are the voyages of the starship Enterprise.' |
Size
Returns the size of an array or string.
Syntax
{{ <Parameter> | size }}
Arguments
Argument | Description |
---|---|
Parameter | An array, string literal or name of the input parameter to use. |
Example One
Input | {{ InputParameter | size}} |
Output | 0 |
Example Two
Input Parameter Value | 'This is fifteen' |
Input | {{ InputParameter | size}} |
Output | 15 |
Slice
Returns a subset of the string parameter based on offset and length.
Syntax
{{ <Parameter> | slice: <Offset>, <Length> }}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter to be sliced. |
Offset | An integer value representing the starting place for the slice. If Offset is negative, slice starts that far back from the end of the string. |
Length | An integer value representing the total number of characters to include within the slice. |
Example One
Input Parameter Value | 'Four score and seven years ago' |
Input | {{ InputParameter | slice: 5, 15}} |
Output | 'score and seven' |
Example Two
Input | {{ 'This is fifteen' | slice: -7, 7}} |
Output | 'fifteen' |
Times
Multiplication. Multiplies two numerical parameters.
Syntax
{{ <Parameter> | times: <Numerical Value> }}
Arguments
Argument | Description |
---|---|
Parameter | A numerical value or name of the input parameter that will be the multiplied. |
Numerical Value | A numerical value that will be multiplied. |
Example One
Input | {{ 13 | times: 5}} |
Output | 65 |
Example Two
Input Parameter Value | 42 |
Input | {{ InputParameter | times: 8}} |
Output | 336 |
Truncate
Returns a specific number of characters from a string.
Syntax
{{ <Parameter> | truncate: <Truncate>[, <Append>] }}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter to be truncated. |
Truncate | An integer value representing the amount of characters to include before truncating the rest. |
Append | An optional string value that will be appended to the end of the parameter after truncation occurs. |
Example One
Input Parameter Value | 'Four score and seven years ago' |
Input | {{ InputParameter | truncate: 5}} |
Output | 'Four ' |
Example Two
Input | {{ 'This is MADNESS!' | truncate: 8, 'SPARTA!'}} |
Output | 'This is SPARTA!' |
Truncatewords
Returns a specific number of words from a string.
Syntax
{{ <Parameter> | truncatewords: <Truncate>}}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter to be truncated. |
Truncate | An integer value representing the amount of words to include before truncating the rest. |
Example One
Input Parameter Value | 'Four score and seven years ago' |
Input | {{ InputParameter | truncatewords: 3}} |
Output | 'Four score and' |
Example Two
Input | {{ 'This is fifteen' | truncatewords: 2}} |
Output | 'This is' |
Upcase
Converts all letters within the parameter to uppercase.
Syntax
{{ <Parameter> | upcase }}
Arguments
Argument | Description |
---|---|
Parameter | A string literal or name of the input parameter to convert to uppercase. |
Example One
Input Parameter Value | 'i do not know why i am screaming' |
Input | {{ InputParameter | upcase: 'This is a default value'}} |
Output | 'I DO NOT KNOW WHY I AM SCREAMING' |
Example Two
Input | {{ 'loud noises' | upcase: 'This is a default value'}} |
Output | 'LOUD NOISES' |
Tags
Most notifications need parameters sent alongside the request to function. Template and events use these parameters within Tags. Tags help create blocks of logic within templates.
Syntax
{% <Tag>[ <Conditions>] %} <Template Block> {% <EndTag> %}
Arguments
Argument | Description |
---|---|
Tag | The name of the Tag. This changes the functionality of what occurs within the tag block. |
Conditions | Some Tags require additional conditions. These conditions are places after a tag name and drive the content within the tag block. |
Template Block | A small section of the template that the tag affects. |
EndTag | Used alongside the Tag name to denote the end of a template block. |
Note: You should surrong the tag syntax language with comments if you want to alter the HTML structure.
<!-- {% <Tag>[ <Conditions>] %} --> <Template Block> <!-- {% <EndTag> %} -->
Case
Like if and unless tags, case tags controls the display of information by choosing between a list of candidates.
Syntax
{% case <Condition> %} {% when <Match> %} <Template Block> {% endcase %}
Arguments
Argument | Description |
---|---|
Condition | A string literal or name of the input parameter used as the comparison. |
Match | Candidates for comparison. The first candidate that matches the condition displays its respective template block. |
Example
Input Parameter Value | 'Orange' |
Input | My favorite animal is:{% case InputParameter %} {% when 'Black' %} Zebra {% when 'Blue' %} Regal Tang {% when 'Green' %} Iguana {% when 'Orange' %} Fox {% when 'Yellow' %} Duck {% endcase %} |
Output | My favorite animal is: Fox |
Comment
Comment tags hide the respected block from being outputted within a message.
Syntax
{% comment %} <Template Block> {% endcomment %}
Example
Input | One... two... five!{% comment %}Three, sir.{% endcomment %} Three! |
Output | One... two... five! Three! |
Cycle
Cycle tags alternate between a comma-separated list of items.
Syntax
{% cycle [<Group Name>: ] <Item>,...n %}
Arguments
Argument | Description |
---|---|
Group Name | When calling the cycle tag, the group argument helps differentiate between cycles. If a group name is not supplied then cycle assumes multiple calls with the same parameters is the same group. |
Item | The comma-separated list of items that will be recursively cycled through. |
Example One
Input | {% cycle 'Badger', 'Badger', 'Badger', 'Mushroom', 'Mushroom', 'Snake' %} {% cycle 'Badger', 'Badger', 'Badger', 'Mushroom', 'Mushroom', 'Snake' %} {% cycle 'Badger', 'Badger', 'Badger', 'Mushroom', 'Mushroom', 'Snake' %} {% cycle 'Badger', 'Badger', 'Badger', 'Mushroom', 'Mushroom', 'Snake' %} {% cycle 'Badger', 'Badger', 'Badger', 'Mushroom', 'Mushroom', 'Snake' %} {% cycle 'Badger', 'Badger', 'Badger', 'Mushroom', 'Mushroom', 'Snake' %} {% cycle 'Badger', 'Badger', 'Badger', 'Mushroom', 'Mushroom', 'Snake' %} |
Output | Badger Badger Badger Mushroom Mushroom Snake Badger |
Example Two
Input | {% cycle 'Numbers': '1', '2', '3', '4', '5' %}) {% cycle 'Sports': 'Soccer', 'Football', 'Rugby', 'Baseball' %} {% cycle 'Numbers': '1', '2', '3', '4', '5' %}) {% cycle 'Sports': 'Soccer', 'Football', 'Rugby', 'Baseball' %} {% cycle 'Numbers': '1', '2', '3', '4', '5' %}) {% cycle 'Sports': 'Soccer', 'Football', 'Rugby', 'Baseball' %} {% cycle 'Numbers': '1', '2', '3', '4', '5' %}) {% cycle 'Sports': 'Soccer', 'Football', 'Rugby', 'Baseball' %} {% cycle 'Numbers': '1', '2', '3', '4', '5' %}) {% cycle 'Sports': 'Soccer', 'Football', 'Rugby', 'Baseball' %} {% cycle 'Numbers': '1', '2', '3', '4', '5' %}) {% cycle 'Sports': 'Soccer', 'Football', 'Rugby', 'Baseball' %} |
Output | 1) Soccer 2) Football 3) Rugby 4) Baseball 5) Soccer 1) Football |
For
When using array parameters, for tags allow users the ability to loop through a collection.
Syntax
{% for <Item> in <Array>[ Options] %} <Template Block> {% endfor %}
Arguments
Argument | Description |
---|---|
Array | An array or name of the input parameter array to use. |
Item | Used within the template block for the current element within the Array. Within a loop, two methods of specifying properties of an array are available. If the property name contains no whitespace, users may choose either method. If the property name does contain whitespace, then users must use the second method.<Item>.<PropertyName> <Item>['<Property Name>'] |
Options | Influence the behavior of the for loop. There are three optional parameters:
|
Helper Tags
Within a for template block, there are handful of optional tags available:
- break
- continue
- else
Helper Variables
Within a for template block, there are handful of optional arguments available:
Optional Argument | Description |
---|---|
forloop.length | Returns the length of the entire loop. |
forloop.index | Returns the index value of the current element [1, ..., n]. |
forloop.index0 | Returns the zero-based index value of the current element [0, ..., n]. |
forloop.rindex | Returns the number of elements left to iterate through [1, ..., n]. |
forloop.rindex0 | Returns the zero-based number of elements left to iterate through [0, ..., n]. |
forloop.first | Returns a boolean value as to whether this is the first element within the loop. |
forloop.last | Returns a boolean value as to whether this is the last element within the loop. |
Example
Input | {% for error in InputParameters %} Source - {{ error.Source }} Time - {{ error.Time }} Details - {{ error['Error Details'] }} {% endfor %} |
Output | Source - Error 1 Time - Time 1 Details - Details 1 Source - Error 2 Time - Time 2 Details - Details 2 Source - Error 3 Time - Time 3 Details - Details 3 |
Break
Break tags immediately exits a for loop's template block.
Syntax
{% for <Item> in <Array>[ Options] %} <Template Block> {% break %} <Template Block> {% endfor %}
Example
Input | {% for error in InputParameters %} {% if forloop.index == 2 %} {% break %} {% endif %} Source - {{ error.Source }} Time - {{ error.Time }} Details - {{ error['Error Details'] }} {% endfor %} |
Output | Source - Error 1 Time - Time 1 Details - Details 1 |
Continue
Continue tags immediately ends the current iteration and moves to the next element within the array.
Syntax
{% for <Item> in <Array>[ Options] %} <Template Block> {% continue %} <Template Block> {% endfor %}
Example
Input | {% for error in InputParameters %} {% if forloop.index == 2 %} {% continue %} {% endif %} Source - {{ error.Source }} Time - {{ error.Time }} Details - {{ error['Error Details'] }} {% endfor %} |
Output | Source - Error 1 Time - Time 1 Details - Details 1 Source - Error 3 Time - Time 3 Details - Details 3 |
Else
Located at the end of a for loop, else tags display a template block only if there are no items within the array.
Syntax
{% for <Item> in <Array>[ Options] %} <Template Block> {% else %} <Template Block> {% endfor %}
Example
Input | {% for error in InputParameters %} Source - {{ error.Source }} Time - {{ error.Time }} Details - {{ error['Error Details'] }} {% else %} No errors! {% endfor %} |
Output | No errors! |
If
Like case and unless tags, if tags controls the display of information based on a condition
Syntax
{% if <Conditions> %} <Template Block> {% endif %}
Arguments
Argument | Description |
---|---|
Condition | An expression that must resolve to a true or false value. Display of the template block occurs only if the condition returns true. |
Boolean Operators
These operators combine conditions together:
Boolean | Description |
---|---|
and | Both conditions must evaluate to true. |
or | At least one condition must evaluate to true. |
Comparison Operators
These operators typically compare parameters with a set value:
Operator | Description |
---|---|
== | Used with strings or numerical values. Returns true if the left side of the condition equals the right side. |
!= | Used with numerical values. Returns true if the left side of the condition does not equal the right side. |
<> | Used with numerical values. Returns true if the left side of the condition does not equal the right side. |
< | Returns true if the left side of the condition is numerically less than the right side. |
<= | Used with numerical values. Returns true if the left side of the condition is numerically less than or equal to the right side. |
> | Used with numerical values. Returns true if the left side of the condition is numerically greater than the right side. |
>= | Used with numerical values. Returns true if the left side of the condition is numerically greater than or equal to the right side. |
contains | Used with strings or array values. Returns true if the left side of the condition includes the right side of the condition within it. |
Helper Tag
Within an if template block, there are handful of optional tags available:
- elseif
- else
Example
Input Parameter Value | 'Orange' |
Input | My favorite animal is:{% if InputParameter == 'Orange' %} Fox {% endif %} |
Output | My favorite animal is: Fox |
Elseif
Located withinend of an if loop, else tags display a template block when the condition returns false. There can be multiple elseif tags within an if tag.
Syntax
{% if <Conditions> %} <Template Block> {% elseif <Conditions> %} <Template Block> {% endif %}
Example
Input Parameter Value | 6 |
Input | I like {% if InputParameter < 1 %} no {% elseif InputParameter == 1 %} one animal {% elseif InputParameter > 1 and InputParameter <= 4 %} a couple animals {% elseif InputParameter > 4 and InputParameter <= 6 %} a handful of different animals {% elseif InputParameter > 6 and InputParameter <= 9 %} several animals {% else %} a lot of animals {% endif %}! |
Output | I like a handful of different animals! |
Else
Located at the end of an if loop, else tags display a template block when the condition returns false. There can be only one else tag within an if tag.
Syntax
{% if <Conditions> %} <Template Block> {% else %} <Template Block> {% endif %}
Example
Input Parameter Value | 'Green' |
Input | My favorite animal is:{% if InputParameter == 'Orange' %} Fox {% else %} Iguana {% endif %} |
Output | My favorite animal is: Iguana |
Raw
Raw tags temporarily disables syntax processing. This allows users to generate content that would normally conflict with syntax.
Syntax
{% raw %} <Template Block> {% endraw %}
Example
Input | {% raw %} I really need to use the mustache handlebar for my marvelously mustached smiley faces: :-{ {% endraw %} |
Output | I really need to use the mustache handlebar for my marvelously mustached smiley faces: :-{ |
Unless
Like case and if tags, unless tags controls the display of information based on a condition. Unlike if tags, an unless tag displays the template block only if the condition returns false. Unless tags cannot use elseif and else tags within them.
Syntax
{% unless <Conditions> %} <Template Block> {% endunless %}
Arguments
Argument | Description |
---|---|
Condition | An expression that must resolve to a true or false value. Display of the template block occurs only if the condition returns false. |
Boolean Operators
These operators combine conditions together:
Operator | Description |
---|---|
and | Both conditions must evaluate to true. |
or | At least one condition must evaluate to true. |
Comparison Operators
These operators typically compare parameters with a set value:
Operator | Description |
---|---|
== | Used with strings or numerical values. Returns true if the left side of the condition equals the right side. |
!= | Used with numerical values. Returns true if the left side of the condition does not equal the right side. |
<> | Used with numerical values. Returns true if the left side of the condition does not equal the right side. |
< | Returns true if the left side of the condition is numerically less than the right side. |
<= | Used with numerical values. Returns true if the left side of the condition is numerically less than or equal to the right side. |
> | Used with numerical values. Returns true if the left side of the condition is numerically greater than the right side. |
>= | Used with numerical values. Returns true if the left side of the condition is numerically greater than or equal to the right side. |
contains | Used with strings or array values. Returns true if the left side of the condition includes the right side of the condition within it. |
Example
Input Parameter Value | 'Orange' |
Input | My favorite animal is:{% unless InputParameter == 'Orange' %} Not a fox {% endunless %} |
Output | My favorite animal is: |
Templates
Templates lend form and reason to Web requests. Each template controls the content used within a notification event. Events supply templates with parameters used within placeholders and tags. In return, the template translates these parameters into readable messages. Templates includes a powerful syntax engine that provides further control on how messages appear.
Option | Description | ||||||
---|---|---|---|---|---|---|---|
Template Name | This details a user-friendly name that helps differentiate message templates. | ||||||
Template ID | An auto generated, non-editable, unique identifier for the current message template. | ||||||
Content View | Contains different formats for viewing and editing the template:
|
Note: Use Plaintext to add custom HTML beyond what the HTML toolbar provides. should use Plaintext. Switch between content views to see how the changes appear.
To send pre-formatted text through parameters you need to wrap your placeholders with pre-formatted text elements. This can be done using the following syntax:
<pre>{{ <Placeholder>[ | <Filter>[ : arguments,...n]...n] }}</pre>
Notification Events
Notification Events are used to manage the notification requests that are received by the Notification Engine. Notification Events handle which Message Template(s) and Provider(s) send the notification based on the parameters sent by the HTTP request.
Important: Notification events need at least one template before becoming available.
Option | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Notification Name | This details a user-friendly name that helps differentiate the notifications. | ||||||||||||||||||||
Notification ID | An auto generated unique identifier for the current notification. | ||||||||||||||||||||
Event Name | The name of the event BI xPress Server will be listening for. Only HTTP requests that are sent with this event name could be triggered. | ||||||||||||||||||||
Severity | The severity threshold for the notification. Any Notification request sent with the same event name as well as a priority greater than or equal to the listed severity will trigger the notification event. | ||||||||||||||||||||
Filters | Additional conditions based on notification parameters that limit whether or not the notification will be triggered. All HTTP requests that match the filters will be excluded from being triggered. | ||||||||||||||||||||
Provider | The type of notification that will be sent. The following notifications are available:
| ||||||||||||||||||||
Message Template | The current template that will be applied to the Provider when a valid HTTP request is received. | ||||||||||||||||||||
Enabled | Whether or not the current notification is enabled and listening for HTTP requests. |
Note: To use the Event Log provider, The BI xPress Application Pool will need to initially create a BI xPress event source. The initial creation of an event source requires administrative privileges. After initially creating the event source, these administrative privileges are not required.
Administrators can manually create the event source from an elevated Windows PowerShell prompt using the following information:
New-EventLog -Source "BI xPress" -LogName "Application"
Additional Information: You need to create a Personal Access Token with the "Work Items (read and write) scope selected to use the Visual Studio Team Services provider. For more information on creating a Personal Access Token within your Visual Studio Team Services Instance or TFS Server, see the Authenticate access with personal access tokens MSDN article.
Each Provider has additional properties that need to be set for the Notification to be configured properly.
Notification Requests
Before sending notifications, at least one message template and notification event needs to be configured. After you've configured one event, there are three methods that allow you to send notifications:
- You can inject the notification engine into SSIS Packages using the BI xPress Framework.
- You can call the notification engine using the BI xPress Server's Command Line tool.
- You can send HTTP Web Requests to the server
Note: Using the BI xPress Notification Framework to send notifications through BI xPress Server's Notification Engine requires a BI xPress license.
Notification Request Command Line
The BI xPress Server's Notification Engine command line tool allows you to send rich notifications through their BI xPress Server. The BI xPress Server Notification Engine command line tool utilizes the HttpEngine.exe located within the Notification Engine Command Line directory. This tool is located at the following location by default:
C:\Program Files (x86)\Pragmatic Works\Workbench Server\Notification Engine Command Line\HttpEngine.exe
Any framework (such as Scheduled Tasks, TFS Build Server, Microsoft Systems Center) that is capable of starting an application and passing parameters using command line arguments is capable of utilizing the the BI xPress Notification Engine command line tool to send rich notifications from the BI xPress Server.
HttpEngine.exe [Help] {<Operation>} {<Information>} [<Parameters>]
Switch Arguments
To introduce a parameter argument to the HttpEngine.exe, use either a -- followed immediately by the parameter switch or - followed by the short form version of the parameter switch. If the switch requires a value, an = (equal) will be used to separate the parameter argument with the parameter value and must be surrounded by " (double-quotes) if the value contains a space or special character(s).
The following Parameter Arguments are available:
Help
Switch | Description |
---|---|
-H or -? | Shows the command prompt help message. |
Operation
Switch | Description |
---|---|
[-Operation] "value" | This operation specifies the type of operation the Notification Engine command line tool will take. The sendNotifications operation will send all notifications with the same event name as the value of the eventName switch. The sendNotification operation will send the notification that has the notification id that matches the value of the notificationId switch. You can specify the following values:
|
Information
Switch | Description |
---|---|
-eventName "value" | When used with the sendNotifications operation switch, all notification events that use the specified eventName will trigger, sending all related notifications. |
-notificationId "value" | When used with the sendNotification Operation switch, only the notification that has the specified notification id will trigger, sending a single notification. |
Parameters
Switch | Description |
---|---|
-"name" "value" [...n] | You can pass any number of key-value paired parameters through the Notification Engine's command line tool. Each parameter you want to pass through must have a switch for the parameter name and the value you want to match to that parameter. |
Examples
The following example sends all notifications with the event name "SSISNotification" and does not pass any parameters to that notification event:
HttpEngine.exe "sendNotifications" -eventName "SSISNotification"
The following example sends the notification with the Notification ID of "{edbc4104-126f-4646-8030-36e69aa3b892}" and passes the value "Completed" to the parameter named "Status":
HttpEngine.exe "sendNotification" -NotificationId "{edbc4104-126f-4646-8030-36e69aa3b892}" -Status "Completed"
The following example sends all notifications with the event name "SSISNotification" and and sets the parameter named Status to "Completed", the parameter named PackageName to "ETLPackage.dtsx" and the parameter named Framework to "2015.3.7":
HttpEngine.exe "sendNotifications" -eventName "SSISNotification" -Status "Completed" -PackageName "ETLPackage.dtsx" -Framework "2015.3.7"
Notification Web Request
The BI xPress Server's Notification Engine allows you to send rich notifications to your BI xPress Server using HTTP requests.
Important: The SendNotifications request is the preferred method for posting requests to the BI xPress Server Notification Engine.
SendNotifications Request
URI | POST http[s]://<serverName>[:<port>]/api/BIxPress/NotificationEngine/SendNotifications |
Content Type | application/json |
Request Body | { "eventName" : "event-name", "notificationSeverity" : "severity", "parameters" : [ {"name" : "parameter-name", "value" : "parameter-value"} ] } |
SendNotification Request
URI | POST http[s]://<serverName>[:<port>]/api/BIxPress/NotificationEngine/SendNotification |
Content Type | application/json |
Request Body | { "notificationId" : "notification-id", "notificationSeverity" : "severity", "parameters" : [ {"name" : "parameter-name", "value" : "parameter-value"} ] } |
Request Containing Array Parameters
URI | POST http[s]://<serverName>[:<port>]/api/BIxPress/NotificationEngine/SendNotifications |
Content Type | application/json |
Request Body | { "eventName" : "event-name", "notificationSeverity" : "severity", "parameters" : [ {"name" : "parameter-name", "values" : [ {"name" : "parameter-name", "value" : "parameter-value"} ] } ] } |
Information
Switch | Description |
---|---|
"eventName" : "value" | All notification events that use the specified value for the eventName property will trigger, sending all related notifications. |
"notificationId" : "value" | Only the notification that has the specified notification id will trigger, sending a single notification. |
"notificationSeverity" : "value" | The severity threshold for the notification currently being sent. Any request sent with the same event name or notification id as well as a severity greater than or equal to the notification's listed priority will trigger the notification event. Users can specify the following values:
|
Note: If the notificationSeverity property is not provided or an invalid value is entered, the Notification Engine uses the default value of very low.
Parameters
Switch | Description |
---|---|
{ "name" : "parameter-name", "value" : "parameter-value" } | Within the JSON Request Body, the parameters contain an array of key-value pairs. Each parameter the user wishes to pass through must include an additional line where the name property contains the name of the parameter and the value property is the value the user wishes to assign to that specific parameter. |
Examples
The following example posts a SendNotifications request to the BI xPress Server located on localhost to all notifications with the event name "SSISNotification" and does not specify a severity or pass any parameters.
URI | POST http://localhost/api/BIxPress/NotificationEngine/SendNotifications |
Request Body | { "eventName" : "SSISNotification" } |
The following example posts a SendNotifications request to the BI xPress Server located on DEV-BIX-SRV:9090 to all notifications with the event name "SSISNotification" and a priority less than "medium". It also sets the parameters named Status, PackageName and Framework to "Completed", "ETLPackage.dtsx" and "2015.3.7".
URI | POST http://DEV-BIX-SRV:9090/api/BIxPress/NotificationEngine/SendNotifications |
Request Body | { "eventName" : "SSISNotification", "notificationSeverity" : "medium", "parameters" : [ {"name" : "Status", "value" : "Completed"}, {"name" : "PackageName", "value" : "ETLPackage.dtsx"}, {"name" : "Framework", "value" : "2015.3.7"} ] } |
The following example posts a SendNotification request to the BI xPress Server located on DEV-BIX-SRV:9090 to send the notification with the notification id of "{edbc4104-126f-4646-8030-36e69aa3b892}" and a priority less than "catastrophic". It also sets the parameters named Status to "Failed".
URI | POST http://DEV-BIX-SRV:9090/api/BIxPress/NotificationEngine/SendNotification |
Request Body | { "notificationId" : "{edbc4104-126f-4646-8030-36e69aa3b892}", "notificationSeverity" : "catastrophic", "parameters" : [ {"name" : "Status", "value" : "Failed"} ] } |
The following example posts a SendNotifications request to the BI xPress Server located on DEV-BIX-SRV:9090 to all notifications with the event name "SSISNotification" and a priority less than "medium". It also sets the parameters named Status, PackageName and Framework to "Completed", "ETLPackage.dtsx" and "2015.3.7". It also includes a parameter array named "Errors" with each error containing several parameter.
URI | POST http://DEV-BIX-SRV:9090/api/BIxPress/NotificationEngine/SendNotifications |
Request Body | { "eventName" : "SSISNotification", "notificationSeverity" : "medium", "parameters" : [ {"name" : "Status", "value" : "Completed"}, {"name" : "PackageName", "value" : "ETLPackage.dtsx"}, {"name" : "Framework", "value" : "2015.3.7"}, { "name": "Errors", "values": [ { "name": "Error 0", "values": [ { "name": "Source", "value": "Error Test0" }, { "name": "Time", "value": "2016/05/25 13:45:33"}, { "name": "Details", "value": "Error Test0" } ]}, { "name": "Error 1", "values": [ { "name": "Source", "value": "Error Test1" }, { "name": "Time", "value": "2016/05/25 13:46:07"}, { "name": "Details", "value": "Error Test1" } ]} ]} ] } |
SSIS Dashboards
Report Name | Description |
---|---|
Execution Dashboard | This dashboard gives one place to view the most common counters of SSIS package execution, including top 20 slow packages, fast packages, minimum used packages, maximum used packages, recent data extracts, recent data loads. |
Extract / Load Trend | Provides graphical view of extract and load trend over several years, weeks, months and days. |
Extract / Load Detail | Provides extract / load detail for every Data Flow within each package execution. |
Package Performance | Provides package level performance graph within a specified interval. |
Package & Task Performance | Provides package and task level performance graphs within a specified interval. |
Package Alerts | Provides detailed error / warning report including package level errors. |
Package Execution Trend | This report provides many useful information about trend of package runtime, task runtime and errors / warnings. |
Recent Execution Summary | Provides information regarding the execution status of packages. |
Recent Execution Details | Provides information regarding the execution status of packages and tasks. |
Runtime Standard Deviation | This report displays packages which are running slower / faster than their usual trend. |
SSIS Monitoring
BI xPress Server's Monitoring Console gives you web browser access to real time monitoring of all SSIS packages that have the Auditing Framework. Normally you can only get this information by debugging packages within the development environment.
Important: The Monitoring Console only monitors SSIS package executions that have the Auditing Framework applied to them or were imported using the SSIS Catalog Import Feature.
Precedence constraints within containers are not supported within the Monitoring Console. This limitation has no impact on package executions.
Feature Highlights
- Watch packages as they execute in real time
BI xPress Server's Monitoring console is divided into five main panels:
- Package Execution: Provides a quick summary of the most recent executions and control over which execution currently displays.
- Execution Diagram: Provides a visual representation of the control and data flow.
- Errors and Warnings: See table below
- Variables: See table below
- Connection Panels: See table below
Panel | Description | Image |
---|---|---|
Errors and Warnings | The errors and warnings panel provides details of all errors and warnings thrown by the currently selected package, making it easier to troubleshoot problem packages. | ![]() |
Variables | The variables panel displays a time line of all changes to user variables within the currently selected package. | ![]() |
Connections | The connections panel provides details of all present connection managers within the currently selected package. | ![]() |
Package Execution Panel
The Monitoring Console's package execution panel displays a listed summary of the most recent executions within the BI xPress Database. The package execution panel provides you with three main functions: execution name, execution summary, and execution selection.
Option | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
Package Executions Header | Contains several options for adjusting the displaying of package executions:
| ||||||||
Execution Name | Located in the upper left hand corner of each execution, this displays the name of the package that was executed. | ||||||||
Execution Summary | Each execution displays a visual and textual summary for the specific execution:
| ||||||||
Execution Selection | Displays the name and status of executions, and controls which execution display within the other Execution Diagram. |
Execution Diagram Panel
The Monitoring Console's execution diagram panel is the main view used to monitor the execution for a package. The execution diagram panel is divided up into three sections: Header, toolbar, and diagram.
Header
The header, located at the top, and spanning the entire diagram panel, displays a visual and textual summary for the specific execution. The following options are available:
Option | Description |
---|---|
Execution Name | Displays the name of the execution. |
User and Machine Information | Displays the user account and machine that ran the package. |
Date and Runtime | Details the start time and how long the execution ran before completing. |
Status | The background color of the header describes the current status for the package:
|
Toolbar
The toolbar controls what currently displays within the diagram.
Option | Description |
---|---|
Control Flow | Switches the diagram view to display the current execution's control flow execution. The diagram displays the control flow execution by default. |
Data Flow | Switches the diagram to display the current execution's data flow executions. The data flow button is only enabled if the execution contains at least one data flow execution. The diagram displays the first data flow execution by default. Use the data flow selector to select a different data flow execution. |
Data Flow Selector | Select the data flow execution you want to display within the diagram. The selector is only enabled if you are currently viewing the data flow executions. |
DOC xPress Search | Searches DOC xPress Server's metabase for the selected object. A valid DOC xPress Server license must be present. |
Auto Generated Diagram Label | This label notifies you that the layout information is out of date or missing. This label is only displayed if you have auto layout enabled. |
Auto Layout Button | Toggles between using the layout present within the package. If enabled, BI xPress detects out of date or missing layouts and attempts to generate a more accurate diagram. If disabled, BI xPress displays the provided package layout, regardless of whether it is out of date or missing. |
Diagram
Displays the execution details for the control or data flow in a way familiar with SSIS developers. By default, the execution diagram displays the control flow.
Note: When selecting a package execution imported using the SSIS Catalog Import feature for the first time, the Monitoring Console attempts to download the package layout. This allows the Monitoring Console to display the package in a familiar way to SSIS developers.
This process requires you to run the BI xPress Server Application Pool with read permissions on the SSIS Catalog.
Navigation Buttons
Use the buttons in the upper right of the diagram to navigate the diagram panel.
Button | Description |
---|---|
![]() | Zooms out to display more of the execution diagram. |
![]() | Zooms in to show less of the execution diagram. |
![]() | Resets the zoom to the default zoom level. |
SSRS Monitoring
Use the Report Monitoring Console to monitor and troubleshoot your reports. The report console displays critical performance statistics, and helps to display performance issues and the overall health of your report server. Statistics such as memory usage, data and number of rows transferred display and have programmable thresholds.
Feature Highlights
- A high level overview of a report server
- Displays stats such as average runtime, average processing time, number of executions, amount of data transferred, and memory usage
- Shows the percentage of runtime that is consumed by processing a report
Note: Reporting Monitor Console is compatible with SSRS 2008 or later databases only.
Before launching the Reporting Monitor Console, you need to enter the connection information for the SSRS database that you want to monitor. Open the BI xPress Server Feature settings page to configure this connection settings.
Open the Feature Settings page, and enter your connection information with SQL Server Authentication. Select Save to save the settings.
Note: You need to be a Workbench Server Administration user to configure the feature settings for the Report Monitoring Console.
Report Averages
The Report Averages panel displays the status of all executing reports present within your Reporting Services instance. The number of reports can be adjusted from within the Feature Settings page using the SSRS Monitoring Console - Most Frequent Reports Count property. Select the maximize report button to expand the panel.
Column | Description |
---|---|
Report Name | The name of the report as defined by the filename on the reporting instance. |
Last Report Status | Indicates the status of the most recent execution. |
No. of Executions | The number of times this report has executed, either successfully or unsuccessfully. |
Avg. Runtime | The average runtime of the report for all available executions. |
Avg. Data Retrieval Time | The average amount of time it took for the reporting server to retrieve data from the report specified data sources. |
Avg. Processing Time | The average amount of time it took for the reporting server to calculated and process the data retrieved from the data sources. Also, the amount of time it took to execute any formulas or expressions will be included in this value. |
Avg. Rendering Time | The average amount of time it took for the reporting server to draw the report including graphics, images, text, and charts for all executions available. |
Avg. Data | The average size of all data that was transferred to the reporting server for all available executions. |
Avg. Rows | The average number of rows that were retrieved by the reporting server for all available executions. |
Avg. Max Memory | The average value of the maximum memory consumption required by each report during execution. |
Frequent Reports
Use the Frequent Reports panel to determine which reports are executing the most often. Reports that execute more than expected can cause the entire Reporting Services instance to run slow, leading to performance and scalability issues. The number of reports can be adjusted from within the Feature Settings page using the SSRS Monitoring Console - Most Frequent Reports Count property. Select the maximize report button to expand the panel.
Active Users
Use the Active Users panel to view a list of all users that have connected to the report server and the number of times the user has executed reports. The number of users can be adjusted from within the Feature Settings page using the SSRS Monitoring Console - Most Active Users Count property. Select the maximize report button to expand the panel.
BI xPress Server System Dashboard
The System Dashboard is the home screen when accessing Workbench Server. This Dashboard can be customized to give you a quick glimpse of important information, all in one convenient spot. Select an action icon on the dashboard pane to perform any of the following actions:
Option | Description |
---|---|
Information | Allows you to toggle the System Dashboard information text, located between the Workbench Server and tool icons. |
Refresh | Updates the dashboard view with the most current data. |
Edit Dashboard | Opens the System Dashboard Settings page to configure the tiles on the dashboard. |
Note: You can rearrange the order of the tiles by dragging and dropping within the page.
System Dashboard Settings
Use the System Dashboard Setting page to create, edit, and delete tiles to be used in the System Dashboard. To add a tile, select the Select tile to add to your dashboard... drop down and then select from the following options:
- Successful Packages
- Warning Packages
- Failed Packages
- Execution Count
Select + Add Tile and to load the corresponding configuration page.
Successful Packages
In the Add New Tile - Successful Packages page, you can configure the following:
Option | Description |
---|---|
Name | The display name of the tile on the System Dashboard. |
Description | Information that describes the tile (such as purpose, type of packages, etc.). Descriptions are not visible on the dashboard but can be seen on the System Dashboard Settings page. |
Time Period | Determines the amount of time (in the past) that filters the results for the tile. |
Package Name Filter | Filters results based on the name. Note: Leaving blank will return all results within the time period. |
Warning Packages
In the Add New Tile - Warning Packages page, you can configure the following:
Option | Description |
---|---|
Name | The display name of the tile on the System Dashboard. |
Description | Information that describes the tile (such as purpose, type of packages, etc.). Descriptions are not visible on the dashboard but can be seen on the System Dashboard Settings page. |
Time Period | Determines the amount of time (in the past) that filters the results for the tile. |
Package Name Filter | Filters results based on the name. Note: Leaving blank will return all results within the time period. |
Failed Packages
In the Add New Tile - Failed Packages page, you can configure the following:
Option | Description |
---|---|
Name | The display name of the tile on the System Dashboard. |
Description | Information that describes the tile (such as purpose, type of packages, etc.). Descriptions are not visible on the dashboard but can be seen on the System Dashboard Settings page. |
Time Period | Determines the amount of time (in the past) that filters the results for the tile. |
Package Name Filter | Filters results based on the name. Note: Leaving blank returns all results within the time period. |
Execution Count
In the Add New Tile - Execution Count page, you can configure the following:
Option | Description |
---|---|
Name | The display name of the tile on the System Dashboard. |
Description | Information that describes the tile (such as purpose, type of packages, etc.). Descriptions are not visible on the dashboard but can be seen on the System Dashboard Settings page. |
Time Period | Determines the amount of time (in the past) that filters the results for the tile. |
Package Name Filter | Filters results based on the name. Note: Leaving blank will return all results within the time period. |