Internal variables

You can use the internal variables that come with IBM Engineering Lifecycle Optimization - Publishing (PUB) to display automatically generated information about your template or document specification in your output.

Table 1. PUB internal variables
Variable Description
_cell_number The cell number in a current row. If the element is not a cell, the value is 0. You can use _cell_number from either the Data expression or the Script expression tab.
_element_id The element number within the template. Kept internally in the template and used for debugging. You can use _element_id from either the Data expression or the Script expression tab.
_element_level The recursive level of an element. If there is not a value set for the element in the Recursive Level property in the Data tab, the value is 1. You can use _element_level from either the Data expression or the Script expression tab.
_row_number The row number in a current table. If the element is not contained by a row element, the value is 0. You can use _row_number from either the Data expression or the Script expression tab.
_sessionInfo Run time property information from the template or document specification. In the Script expression tab, select the _sessionInfo variable and enter the script. Use empty quotation marks without a value inside to generate the default value for the property in the output. Script examples:
_sessionInfo.getDocspecProperty(property, );
_sessionInfo.getTemplateProperty(property, );
_sessionInfo.getDatasourceProperty("data_source_name",property, );
_sessionInfo.getOutputProperty("output_type",property, );
_sessionInfo.docspecVersion
_sessionInfo.templateVersion
_sessionInfo.engineVersion
_sessionInfo.buildNumber

For the getDocspecProperty, you can use existing document specification properties or create custom metadata properties.

_sessionLogger For debugging purposes, you can display customized information, error, warning, or debugging messages in the TEMP\rpe\rpe.log file, Console view, or Problems view. The messages display in the location that is defined in the log4j2.xml file.

The default setting is to display information messages in the Console view, but not in the rpe.log file.

In the Script expression tab, select the _sessionLogger variable and enter the script. You can generate log entries with one of the following methods:
  1. _sessionLogger.debug(message)
  2. _sessionLogger.info(message)
  3. _sessionLogger.error(message)
  4. _sessionLogger.warn(message)

When deciding what to enter as the message in your script, consider using a visual callout, like your initials or user name, and using variables from your template to make meaningful messages.

_sessionUtils In the Script expression tab, you can use this variable to run a function on the script called tidyXHTML. This variable is useful when you notice blocks of white space in the output that is created by improper XHTML coding. With the _sessionUtils variable, a string argument is processed and the XHTML is cleaned up so that the extra white space does not display in the output.

Example: _sessionUtils.tidyXHTML(text);

When you use the _sessionUtils variable, also select the XHTML Input and XHTML Output options in the Script expression tab.
Note: Templates that include this variable can be loaded into older versions of PUB, but the scripts cannot be evaluated correctly.