This is an old revision of the document!
This page describes the steps for developing Versago reports.
The following pages contain additional information that may be helpful with understanding these processes.
Versago reports are the data presentation component of Versago. The basic presentation method is a grid (rows and columns). There are other presentations and uses for reports as well.
Before you begin creating a Versago report there are some things that need to be considered. Having answers to the following questions will help make the report creation process more efficient.
Is the report to be used for data presentation, data lookup in a form, source for a chart, or a combination of these?
Determine what information needs to be presented. This includes where the data is located, and which specific pieces of information are needed. The source data will generally come from a SQL Server or HANA database, but there are different ways to access the data. Also keep in mind that you may also want to retrieve data that will not necessarily be displayed to the user. More information on these topics is provided in following sections of this document.
As noted earlier, Versago reports present data in rows and columns. While the order of the data columns can be changed later, creating the report source data with a sequence as close to what is needed will make maintenance easier. You may also determine that it may be better to some data as a sub-report rather than have one large grid.
Reports that will be used on mobile devices (phones) will also need some special consideration. The report layout on a phone is different than on a desktop monitor or a tablet. See the Changing Report Column Order section for more information.
In many cases, it will be helpful to provide filtering options for the user to limit the amount of information they see. Filters (user-applied and profiles) can be entered at any time. However, discussing this with users in advance may lead to other pieces of information that need to be included in the report.
It is also important to keep in mind that simply returning hundreds (or thousands) of rows will affect performance and make the user experience more difficult. Providing options to filter the information being requested will help address these two issues.
See the Large Datasets for Reporting page for more information on data selection.
The Reports maintenance function consists of nine elements, each on a separate tab.
Click the [Next] and [Back] buttons on each page to move forward and backward through the wizard steps. Your work is automatically saved each time you leave a tab.
Basic information about the report is defined on the Report Setup page. Since there is a large amount of information on the page the explanatory images are shown in three sections. These sections are physically all on the same page.
The first set of values is used to describe the report, define where the data will come from, and how the data will be obtained.
Versago reports can filter the information before it is displayed to the user. There are two types of filters: User-Applied and User Profile. A report can have no filters, use user-applied filters only, use user profiles only, or use a combination of user-applied and user profiles.
Filters (parameters) associated with Crystal Reports or Stored Procedure data sources are automatically displayed in this step.
A notification message is displayed if no filters are defined. Acknowledge the notification to continue with the wizard if appropriate.
User-Applied Filters allow the user to provide input about how they want to filter the information for selection.
Click the [Add Filter] button to add additional filters. Click the red X icon to delete an existing filter.
Profiles are filters that are predefined by the Versago administrator. They are applied automatically when the report is executed. The filtering value(s) are associated with each user. The profiles must be defined before they can be associated with a report.
The “Display” page is used to define which columns are displayed in the report, the order the fields are displayed, and to set various display options.
The layout of this page changes in Versago v2.4. However, the functions are very similar.
The “Record Submission” page is used to configure a special type of report. This report type allows the user to select items for additional processing from a list of records. One version of this report is used to support payment processing through Versago. Another version of the report can be used to select records for processing in another application (e.g. SAP Business One) using Bizweaver.
Configuration of Record Submission reports is described in the Record Submission Reports Configuration page.
Click [Next] to skip this setup function.
The “Calendar Setup” tab is skipped if “Calendar” is not selected in the Presentation Format section in the first step of the wizard. See the Calendar Reports Configuration page for information on the setup of calendar presentation reports.
Sub-Reports are additional reports that typically provide additional information related to a row being displayed in a report. The sub-report is displayed within the same page as the main report and appear directly below the selected row. A sub-report is displayed when the user clicks the expand/collapse icon at the left end of the main record.
Special Note Regarding Sub-reports. In most cases a sub-report will use a linking value from the main report to filter the information reported. For example, the main report might be a list of customers and the sub-report displays more details for a specific customer. The linking value in this case is the customer code. It is not necessary to create a parameter for the linking value in the sub-report. Versago will automatically filter the sub-report based on the value passed from the main report.
The following image illustrates how a sub-report is displayed to the user for BP Code C20000.
Report links provide access to a variety of functions that can enhance the overall use of the report. There are two key characteristics of links.
A link can be created on an existing column or a new column. Keep the following in mind when determining which type of link to use.
All actions use the same basic setup as shown below.
The Report link is the execution of a Versago report. The concept is like the Sub-Reports function described earlier, except that the report being opened does not necessarily need to be connected to the main report, as it is in the Sub-Reports. Using a Link rather than a Sub-Report is sometimes helpful if having the child results open in a new browser tab will make the results easier to use.
The following image shows the setup for a Report action to call the Sub-Report illustrated earlier in this document.
The Form action provides a mechanism to open a Versago Form from a Versago Report and either find an existing record for maintenance or start a new record and automatically populate fields on the form.
The following example shows the Form action calling a Versago form used to create Service Call for SAP Business One.
In this example, the customer code (BP Code) and customer name (BP Name) are being passed into the form.
If the value passed to the form is the primary key (e.g. vgoRecNum or whatever it has been named) the application will automatically execute a lookup for the record of the value passed. If the record is found the remaining fields will be populated.
The Crystal Report action provides a way to execute a Crystal Report for presentation to the user. An example of how this could be used is where the main report is a list of customer invoices. A Crystal Report action could cause a copy of the invoice document to be generated using Crystal Reports.
Registration of the Crystal Report is the same as described for Crystal Reports in the Report Object Types of this page.
Crystal Reports that use a specific value for execution (e.g. an invoice number) must have a parameter in their definition. The Link Parameters will show the parameter(s) as Destination Field(s) that are mapped to a Source Field from the main report.
A Bizweaver Webservice link allows a user to execute a Bizweaver workflow from a report using the Bizweaver API. These workflows can be used for a variety of background processing.
Prior to v2.3, calls to the Bizweaver API were only sent using GET. Beginning with v2.3, calls can be made using GET or POST. POST provides authentication that is not available using GET. More information on using the POST options will be available shortly.
The “Destination” value is the string that calls the Bizweaver web service and passes any parameters that are needed. When parameters are specified in this string the are automatically set as Destination Fields in the Parameters section. Each parameter then needs to be matched to a Source Field from the report using the drop-down lists.
https://<YourURL>/BWService/api/workflow/InvokeWorkFlow?pTaskID=NN&pStartAfter=0&pArguments={Parameter:Value}
The POST option is easier to configure since most of the values are entry/selection fields rather than working with a text string
https://<YourURL>/BWService/api/workflow/InvokeWorkFlow
The URL action is used to call a “website” (the URL). The URL is entered in the “Destination” field. The page being called could contain general information. In this case the “Destination” string is whatever you would type into a browser (e.g. www.twbs.com) to open the Third Wave website.
Or you may want to pass information to the page for processing there. An example of how this could be used is to call the UPS website and pass a tracking number.
An example of how the UPS example might be set up is shown below (the “source” fields are used only for illustration).
The Links Parameters are determined by Versago from information in the URL. In this case the URL is “wwwapps.ups.com/WebTracking/track?track=&trackNums=”. Values after the question mark in the URL are treated as parameters by Versago. When parameters are specified in this string the are automatically set as Destination Fields in the Parameters section. Each parameter then needs to be matched to a Source Field from the report using the drop-down lists.
The final step of the report definition process is the Chart tab. This page is used to define charts for graphic representation of information in the report. Defining a chart is not required. If charts are not required, click [Finish] to close the report definition process.
See the Chart Configuration page for information on creating charts.
Report Object Types are the mechanisms that can be used to obtain desired data from a database. Only one method (object type) can be selected for a report.
The image above shows the list of methods displayed as of Versago version 2.2. However, some of these methods are slated for removal in upcoming versions. Use only the options described below.
The SQL Select method is the most commonly used option. When it is selected, a text box is presented where standard SQL script can be entered. The script can be entered manually or pasted from another source such as SQL Server Management Studio.
Note that only SELECT statements may be used.
When working with an existing report the first part of the current SQL Select statement is displayed. Click on the […] button to open the editing window. You can also “grab” the lower-right corner of the window and drag to make it larger.
The SQL statement can be changed at any time. However, remember that changes may affect other areas of the report defined in subsequent steps. Be sure to complete the [Execute] and [Save] steps if you do make changes. Otherwise your new selection station will not be saved. Then be sure you continue the wizard through the “Display” step to ensure any data changes are reflected in the formatted report output.
Certain SQL statements are not allowed in the SQL Select function.
A different data presentation option is provided through the Crystal Report method. In this case a Crystal Report is developed outside of Versago. The report is then registered in Versago and used as the presentation method.
The Crystal Report source file is copied from the original location to the folder “C:\Program Files (x86)\TWBS\Versago\Websites\Versago Administration Web Site\Reports.” A number is added in front of the file name to ensure it always unique. If the Crystal Report needs to be modified, you can either modify this file or modify it elsewhere and re-register the new version in Versago.
The B1 Saved Query option is only available for sites using the SAP Business One business management system. This option provides a method to use queries developed in SAP Business One as a Versago data source.
The database connection (“Database” as described earlier in this document) must include the credentials required to connect to SAP Business One for this option to work. This configuration is described in the Versago – Database Connections Configuration document.
While this option is available, the preferred approach is to copy the query from Query Manager in SAP Business One and paste it into Versago as a SQL Select statement.
In some rare instances it may be necessary to use a SQL Stored Procedure as the data source. This approach is not recommended if any other option is available. However, it is available.
Keep in mind that if the procedure is changed so that different/additional column names are returned, you must step through the report configuration process again to be sure these changes are accounted for in the “Display” step.
The “View” option is no longer needed since a SQL View can be referenced in the SQL Select option. The “View” option will be dropped in a future release of Versago.
The “Visual Query Editor” is no longer supported in Versago and should not be used.
Supplemental field controls are exposed by clicking the
icon at the left end of a row on the “Field Display Details” tab of the report wizard. The additional controls are presented directly below the selected row.
All rows will display the “Is Groupable,” “Sorting Options,” and “Column Formats” options. Additional options may be displayed depending on the specific format selected.
There are several Column Formats available. Their use depends on the type of data being reported. Usage is outlined in the following table.
| Format | Used with Data Type | Usage | |
|---|---|---|---|
| Decimal_2 | Numeric | Numeric values are displayed with two decimal places | |
| Currency | Numeric | Numeric values are displayed in a selected currency format. See Note 1 below. | |
| Date | Date or DateTime | Displays date values in a selected format. See Note 1 below. | |
| DateTime | DateTime | Displays date/time values in a selected format. See Note 1 below. | |
| Text | The data is treated as an email address and presents a “link” with the value. Clicking on the link opens the default email client on the user’s device and passes the text as the “To” address. | ||
| File | Text | The data is treated as a Windows file path to a specific file and presents an icon with an underlying link with the value. Clicking on the link causes the system to attempt to download the file to the user’s device. See Note 2 below. | |
| URL | Text | The data is treated as a URL and presents a link with the value. Click on the link opens the default browser on the user’s device and passes the URL to the browser. |
Note 1
An additional column named Culture is displayed when the Currency, Date, and DateTime options are selected. This column has a drop-down list of formatting options for the data type. This allows the presentation to be easily tailored to different locations. The current culture designation is for this value in this report. It cannot be set to change based on the user. So, a user in the United States and a user in Great Britain will see whatever format is selected even through their local cultures use different formats.
If you need to report date and time values in a specific format, it may be necessary to use the SQL Convert function in the SQL Select for the report and present the value as a text value. More information on the SQL CONVERT function, and available formats, can be found here: https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql.
Note 2
Any files that are to be accessed using the “File” option must be in a folder location that can be accessed by Versago and Windows IIS. What this means is that files will need to be in a network share (e.g. \\ShareName\Files) that can be accessed by Versago, not in a typical file path like “C:\Data\File.txt”.
Also, keep in mind that any user that has access to the report can download any file listed in the report. If certain files should be available to certain group(s) of users, different reports may be needed.
Link Conditions are used to control how, and when, an action is executed. Examples might include:
To add or modify Action Conditions:
In this example, we want to display a sub-report of open invoices only if the current balance is $10,000 or greater. If the balance is less than $10,000 the sub-report should not be displayed when the action link is clicked.
Create the condition formula as described below. Do not enter the formula directly in the “Preview” area as the condition will not function in the report. The preview is simply a way for you to see how the formula is constructed.
One of the concerns with applications like Versago is the handling of “large” datasets. A “large” dataset is a relative term and may be affected by processing power of the host system, network capability, etc. While there is not a single ‘correct” approach to this issue, here are some things to consider.
Versago v2.2 introduces a new system setting that allows the administrator to define a “large” dataset. The default on installation 10,000 records but this number can be adjusted as needed. If the data request will exceed this value, a message is displayed to alert the user. At this point they can continue or stop the request and change filters (if available).
Filters can be used on a report to let the user determine what information is relevant to their current request.
When filters are not used, all records in the underlying SQL statement are retrieved and presented. The user can then use the report Search function to find specific records. However, if the number of records is “large,” the time to return the dataset might be lengthy.
When filters are used, the SQL request is submitted with a WHERE clause to limit the number of records returned and displayed. This means that the user has less data to deal with on the screen and the time to display the dataset will be somewhat shorter.
For example, you might have a report that lists customers, their associated group (using SAP Business One), and their current balance. There are 1,000 records. In a typical scenario, the user is not blindly looking for something within the 1,000 records. They might only want to see customers in a certain group, or customers with a balance over $5,000. Using filters helps the user narrow down their search to the items that are relevant.
Profiles are also helpful in limiting the size of the dataset returned. More information on how filters and profiles are applied is found in the “Versago – Administration Console” document.
The results page of a report also provides a search function.
This function allows the user to search for values in any record returned to the report. Even non-displayed fields are included in the search. No special configuration is required for this feature.
Information in a report is presented either as a continuous flow, or in pages.
In the continuous flow approach, the user scrolls down the page until the last record is found. With a large number of records this might take some time. Having said this, the continuous flow approach is well suited to mobile devices.
In the “paged” approach, the report designer indicates that paging should be used and sets the number of records to be displayed per page. The user then sees buttons and arrows at the bottom of the page to move forward and backward through the information. This setup is done in the first step of the report setup process. The “paged” approach is more suited to presentation on workstations, or where users are more comfortable with the paging approach.
In some cases, it may be appropriate to have two versions of a report, one using continuous flow for mobile users and another version using the paging approach for workstation users.
Advanced Topic
In some cases, the data to be reported is normally summarized before it is used by Versago. Typical examples of this are historic reporting, year-over-year comparison reporting, and high-level analysis reporting. The information in this type of reporting is either relatively static or having a delay of a day or so will not materially affect the results.
This type of reporting is well suited to the use of summarized datasets. These datasets are held in custom reporting database tables and are typically refreshed on a nightly basis. Use of this approach does two things.
First, the summarization is done in a SQL done prior to use by Versago. This can be done during periods when database usage is lighter (such as overnight).
Second, the summarization process can reduce the volume of data presented to Versago. For example, several hundred customer invoices over the space of a year might be condensed into twelve monthly records
Defining these datasets will require some thought to determine the best way to summarize the data. It also involves creating the tables in the SQL database and setting up the processes to refresh the data on a periodic basis.
The “refresh” process can be done using a scheduled job in SQL or setting up workflow in Third Wave’s Bizweaver application to execute the processing.
As noted in the Supplemental Field Controls section, Versago can be used as a mechanism to allow users to download files. This is a particularly attractive way to make documents available to various partners on a “self-serve” basis.
Technical Topic
Multipurpose Internet Mail Extensions (MIME) types identify the types of content that can be served to a browser or a mail client from a Web server. Since Versago is a browser-based application, any file types that may be downloaded must be defined to the web server.
The most common file types (PDF, XLXS, TXT, DOCX, etc.) are already defined in IIS (the Windows web server). The general process to add/maintain MIME types is described here: https://technet.microsoft.com/en-us/library/cc725608(v=ws.10).aspx.
One MIME type that is not defined by default is for Outlook email messages. These files have the extension .msg. Specific steps to add this MIME type are found here: http://blogs.catapultsystems.com/rhutton/archive/2013/10/25/unable-to-open-outlook-message-file-in-web-browser-msg/.
As noted above, this tab is only available when any parameter is defined as “Drop-down” AND the “Values Source” option is set to Static.
The Destination string to invoke a Bizweaver workflow is shown below.
http://1:2/BWService/api/workflow/InvokeWorkFlow?pTaskID=3&pStartAfter=0&pArguments={4:'~5~'}
The elements in red are specific to your installation. The other items (included variable names used by Bizweaver) are case sensitive, so the easiest way to create the Action Target is to copy this string and paste it into Versago, then make the needed changes. You might also update the Bizweaver server information so that you will only need to change a few items.
http://Server1:8080/BWService/api/workflow/InvokeWorkFlow?pTaskID=12&pStartAfter=0&pArguments={CardCode:'~CardCode~',CardName:'~CardName~'}
“CardCode” and “CardName”. are variables in the Bizweaver workflow that receive the associated values '~CardCode~' and '~CardName~'.