Difference between revisions of "Dynamic Tags in QPR UI"

From Mea Wiki
Jump to navigation Jump to search
Line 5: Line 5:
 
* [[Expression Tag in QPR MobileDashboard|Expression tag]]
 
* [[Expression Tag in QPR MobileDashboard|Expression tag]]
 
* [[Action Tag in QPR MobileDashboard|Action tag]]
 
* [[Action Tag in QPR MobileDashboard|Action tag]]
* [[Dataset Tag in QPR MobileDashboard|Dataset tag]] (supported in 2017.8 release)
+
* [[Dataset Tag in QPR MobileDashboard|Dataset tag]] (supported in MDB 2017.8 release)
  
 
== General about dynamic tags ==
 
== General about dynamic tags ==

Revision as of 14:36, 27 September 2017

QPR supports tags that are defined in this page.

Supported tags

General about dynamic tags

In some UI element textual settings it is possible to use some of the below defined tags to achieve more dynamic behaviour of dashboards.

Evaluating a tag means that

  1. The tag is parsed (detected) from the containing text
  2. Its intended behaviour is executed
  3. The tag definition is replaced by the tag's return value

Tags in textual settings are always evaluated before the setting value is used by the UI element. During the tag evaluation the setting value is treated as text only, although it might be JSON, SVG or CSS.

Tag definition syntax

Tag syntax has the following general form: <#tagname parameter1="value1" parameter2="value2" ... parameterN="valueN">

In more details, tags have the following syntax:

  • Tag starts with <#tagname, where tagname is the name of the tag. There is always a space after the tagName.
  • Tag ends with > character.
  • Tag contains one or many parameters as name-value pairs (parameters are separated by space).
  • Parameter name is followed by = which is followed by parameter value in double-quotes (").
  • If parameter value contains double-quotes they are escaped with \ character, example \". \ character is escaped with \\.
  • Newline characters are not allowed in tags (if a newline character is encountered, the searched text ends)

Tag is assumed if tag start <#tagname (including the space) appears in the text. If the syntax doesn't continue according to the syntax rules, an error is caused. This means that the tag parser needs to know which tags names are available in the parsed content.

Examples of syntaxes that cause tag parsing error:

  • <#variable name="var1"
  • <#variable name="var1"escape="json">
  • <#variable name="var1" escape=json">
  • <#variable name="var1" escape=json>
  • <#variable name="var"1" escape="json">

Examples of syntax that doesn't cause error, because the beginning is not interpreted as a tag (assuming "variable" tags can be used in the parsed content):

  • <variable (hash character missing)
  • <#variables (no space after "variable")

Escaping examples:

  • <#action name="drill\\down\"abc\""> (name parameter contents: drill\down"abc")

Settings where tags can be used

Dynamic tags can be used in following settings:

  • Data Grid presentation object JSON settings field (Variable tag and the short syntax)
  • SVG presentation object SVG code field (Action tag, Variable tag and and the short syntax)
  • Panel and any presentation object Name field (Variable tag and the short syntax)
  • ProcessAnalyzer and QPR Suite web service queries in data grid presentation object's Query tab (Variable tag and the short syntax)

Tags supported in future

Translate tag

Translate tag is used to get a translated value for a string from a translation table (translation table is a separate feature). This tag is helpful in building multilingual dashboards. If translation text is not found from the translations table, the original translatable text is returned.

Parameters:

  • text: Text to translate. This parameter is mandatory.
  • context: Defined in which context the translatable text appears. This enables to have different translations for same translatable text. If omitted, empty context is assumed.
  • language: Language name to which translate the text. This parameter is optional, and if omitted, the current UI language is assumed.

Examples:

  • <#translate text="Renenue">
  • <#translate text="Renenue" context="bookkeeping">
  • <#translate text="Renenue" language="FI">

Functions supported in future

Cell function

Cell function is used to retrieve a single cell value from a dataset. It's usually used when there is a query to retreave a single value, such as object name - in that case the returned dataset contains only one row and column.

Parameters:

  1. name: Identifier of the referenced dataset. This parameter is mandatory.
  2. columnName/columnIndex: Referenced column name or index in the dataset. This parameter is optional, and if omitted, the first column of the dataset is referenced. If the provided parameter is string, it means column name; if it's numerical, it means column index.
  3. rowIndex: Referenced row number in the dataset (starting from 1). This parameter is optional and if omitted, the first row is used.

Error is caused if the referenced dataset identifier, columnName, columnIndex or rowIndex is not found.

Examples:

  • <#expression value="cell(\"scorecard\")">
  • <#expression value="cell(\"scorecard\", \"symbol\", 3)">
  • <#expression value="cell(\"scorecard\", 2, 3)">

Info function

Info function is used to access different kinds of user, session and context related information, that may be needed to build the user interface logic. The function has one string valued parameter with following options:

  • sessionId: QPR MobileDashboard session id.
  • meaSessionId: QPR Suite session id (empty if there is no active session to QPR Suite).
  • paSessionId: QPR ProcessAnalyzer session id (empty if there is no active session to QPR ProcessAnalyzer).
  • baseUrl: Beginning part of the QPR MobileDashboard url (until the hash sign). Url is fetched using JavaScript command window.location.href. Example: https://demo.qpr.com/mobiledash/.
  • urlParameters: Parameters of the currently opened QPR MobileDashboard view encoded to a url form, i.e. the effective session context. Example: sys:dashboard=1234&var1=value1&val2=value2.
  • username: User name of the currently logged in user.
  • userFullname: Full name of the currently logged in user.
  • userGroups: Groups of the the currently logged in user as a JSON array. Example: ["group1", "group2", "group3"].
  • userId: QPR MobileDashboard user id. Note that this is not a QPR Suite or QPR ProcessAnalyzer user id.
  • uiLanguage: Language code of the currently active UI language. Available UI language codes: en_US (English), fi_FI (Finnish), ar (Arabic).
  • meaWsUrl: QPR Suite web services url. Example: https://demo.qpr.com/QPR2017-1/Portal/QPR.Isapi.dll/wsforward/MainService.svc/webHttp.
  • paWsUrl: QPR ProcessAnalyzer web services url.
  • version: QPR MobileDashbaord version: Example: 2017.6.1.3402.

Examples:

  • <#expression value="info(\"meaSessionId\")">
  • <#expression value="info(\"baseUrl\" & \"#/dashboard?<#\" & info\"baseUrl\")">