Content

Introduction

Variables

Property Controls
Inherited Values
Date-Only Columns
DBMS-Specific Property Values

Expression-Based Properties

Description

Examples

Groovy Expression Editor

Node Hierarchy

Locked Nodes

Product and Custom Nodes

Categories and Nodes

Dual-Key Web Pages

Node Finder

Node Sorter

 

Web Page Roles

 

Translating Properties

 

Column Name Aliases

 

Data Locking Strategy

Data Entry Elements

Maint Element

Display of Locked Data

LabVantage Custom Tags

 
Search

 

Introduction

Top../images/arwup.gif (846 bytes)

This section of the Web Page Designer documentation describes functionality of the Web Page Designer Property Managers. As a prerequisite, please read Web Page Designer Basic Principles.

Be advised that some Properties in previous LabVantage versions have been deprecated. Some properties that have been deprecated are not described in sections 3 through 5. For more information, see Deprecating Properties in section 6 Advanced Operations.

 

Variables

Top../images/arwup.gif (846 bytes)

Page Columns

 

To distinguish between HTML table columns and database table columns, we use the term "page column" to indicate an HTML table column rendered on the page you are building. For example, a "SampleListPage" based on a List Page Type may contain three "page columns": Sample Identifier, Sample Description, and Date Created.

To specify the value of the current "page column", use the variable

[columnid]

As an example, consider the "SampleListPage" previously mentioned, with the Sample identifiers (the s_sampleid column of the Sample table) listed in the first column. To use the value s_sampleid in another property within the SampleId column of the page, enter [columnid].

This is also useful in links. Again consider the "SampleListPage". Typically, you would edit a Sample by clicking it to open a page called "SampleMaintPage" (based on the Maint Page Type). SampleListPage must pass the identifier of the Sample you clicked to SampleMaintPage; if it did not, SampleMaintPage could not open because it does not know which Sample you clicked. In this case, you would specify the following destination when the user clicks each Sample in the SampleListPage:

rc?command=page&page=SampleMaintPage&keyid1=[columnid]

This says to open the SampleMaintPage and pass the value of the current "page column" into the page as the variable "keyid1". If the value of the current "page column" is S-01, the resulting URL would be:

rc?command=page&page=SampleMaintPage&keyid1=S-01

SDC Columns

 

To specify the value of any SDC column, enclose the column identifier within square brackets. For example, if you want a property to have the value of the moddt (date on which a Sample was last modified), enter

[moddt]

as the value of the property. This will substitute the value of the moddt column for the variable [moddt]. This lets you use the value of any SDC column in any "page column".

This also applies to links. Extending the example link shown in Page Columns above, if you also want to pass the description of the Sample and the date it was created, specify:

rc?command=page&page=SampleMaintPage&keyid1=[columnid]&desc=[sampledesc]&createdt=[createdt]

SDCs

 

When you need to specify the current SDC as the value of an Element property, use the variable [sdcid].

Specialized Variables

 

We also provide specialized variables:

Specialized variables currently for use only with certain Elements are described in the relevant area of this documentation (such as in the Options section of the dataentrylist Element).
The variable [connectionid] returns the identifier of the connection for the current LabVantage User (see Monitoring → User Connections).
The variable [currentuser] returns the current LabVantage User.
You can use variables to specify relative date, such as today or N+3, the latter meaning "now plus 3 days". For relative date and time syntax, see Relative Date and Time in the topic Naming Restrictions and Syntax Standards.
To convert the user's timezone to that of the Application Server, LabVantage provides the [usersysdate] and [connectionid] variables, for use with the userdate(database) function. For details, see Absolute versus Relative Dates in LabVantage M18N Support.

 

Property Controls

Top../images/arwup.gif (846 bytes)

General Editing Functions

 

These controls provide general editing functions for property collections.

Symbol Functionality
Shows or hides the property collection.
Opens a window that lets you add or remove Roles. Only the Roles you choose will have access to this property collection. If an item in a property collection is protected by a Role and that Role becomes inactive, all Users will be able to see the item. If an item in a property collection is protected by multiple Roles, access to the item will continue to be restricted by those Roles that are still active.

Descendant (child) nodes or pages inherit these Roles as a group. Accordingly, descendant nodes or pages can view or override these Roles as a group.

On descendant nodes and pages, the padlock symbol uses the following color codes to indicate Role inheritance:

Color of PadlockMeaning
NoneNo Roles have been assigned to the Property List.
Red Roles have been assigned at this level in the node hierarchy. These Roles override any Roles that may have been assigned in an ancestor (parent) node. In this case, changes to the ancestor Roles will not be reflected in this overridden descendant node.
BlueRoles have been assigned in an ancestor node. These Roles are inherited at this level in the node hierarchy.
Adds a property or property collection. Note that when adding a "Columns" property, the lookup provides a field to filter the columns. This lets you enter a search string for columns. The resulting list is filtered, showing only columns that match the search string. "OK" and "Cancel" buttons are provided to offer standard dialog options. Similar filtering capability is available when editing an existing column.
For horizontally displayed property collections, moves the selected properties horizontally. This is how you change the order in which items are rendered on the Element or Page. The order of the property collections in the editor determines the order in which they are rendered (left to right). See Notes 1 and 2 below.
For vertically displayed property collections, moves the selected properties vertically. This is how you change the order in which items are rendered on the Element or Page. The order of the property collections in the editor determines the order in which they are rendered (top to bottom). See Notes 1 and 2 below.
Deletes the selected property collection items. See Note 2 below.

You cannot delete inherited collection items, but you can move them.

Copies selected property collections for pasting in other nodes or pages. The paste destination must be in the same Property Tree as the copy, and must be of the same Property Type.
After coying the selected items, navigate to the destination node or page, then click the Paste control (left). Note that the paste control will be visible only if the paste destination is in the same Property Tree as the copy, and is of the same Property Type.
Lets you search for an item in the property collection by entering the search text into the search field. The search text is case-insensitive and filters the collection items that contain the search text. At the left is a search on the string "po". The search filed can be cleared by deleting or clicking the [X]. Clicking "Show All" toggles to expand or collapse all collection items. If the collection is rendered in grouped mode, collections of 15 items or more activate a scrollbar and index number as shown at the left.
1 Advanced users who are developing their own pages can set the property display using the Display Options (see Adding Custom Properties in the Advanced Operations section (Part 3) of this document).
2 These controls work with properties that have a checkbox next to them. If no property has the checkbox selected, in grouped mode the currently highlighted property will be selected.

If multiple discontiguous properties are selected, they are moved and grouped together. For example: If rows 3, 4, and 6 are selected and moved to the top of the list, they will occupy positions 1, 2, and 3.

The Property List Id for individual collection items is displayed when hovering over a column identifier. This can be used in advanced CTT scripts to export individual collection items such as columns or buttons:

URL References

 

URL references to a page (rc?command=page&page=PageId) are accompanied by a control that opens the Page Property Manager for that page:

Authorized users are provided with a button in Generic and Generic Popup Layouts. Clicking it opens the Page Property Manager for the displayed page.

 

Inherited Values

Top../images/arwup.gif (846 bytes)

Inherited properties (as discussed in Property Tree Concepts) are displayed within curly braces and pipes, e.g., {|keyid1|}.

 

Date-Only Columns

Top../images/arwup.gif (846 bytes)

"Date-only columns" display date without time. Since they are timezone-independent, they are covered in the M18N section (see Date-Only Columns).

 

DBMS-Specific Property Values

Top../images/arwup.gif (846 bytes)

LabVantage lets you specify property values using syntax that is specific to Oracle, SQL Server, or both. This is useful when the value of a property is a query statement or clause.

Four syntax variations can be used:

{{ORA:oracle syntax MSS:mss syntax}}
{{MSS:mss syntax ORA:oracle syntax}}
{{MSS:mss syntax}}
{{ORA:oracle syntax}}

Processing is handled automatically. If the DBMS is Oracle, the token is extracted from the value after ORA:, and the value after MSS: is ignored. If the DBMS is SQL Server, the token is extracted from the value after MSS:, and the value after ORA: is ignored. This supports multiple tokens in the same property. As an example, consider changing a list Element column title to "oracletitle" if the target DBMS is Oracle, or to "msstitle" if the target is SQL Server. You could enter this property value:

{{ORA: oracletitle MSS: msstitle}}

If the target is an Oracle database, the column title would be displayed as "oracletitle". If the target is SQL Server, the column title would be "msstitle".

This feature is supported for all Web Page Designer properties (including Gizmos), as well as Policies.

 

Expression-Based Properties

Top../images/arwup.gif (846 bytes)

Description

 

Expression Based Properties (EBP) allow dynamic property settings in the Web Page Designer:

EBPs can be based on the current user, and the current state of the SDI. They are typically used to show/hide various items such as columns, elements, and buttons. They can also be used to protect various columns from modification.
EBPs can be written in either the Groovy or Java language.
Although EBPs could be extended to any property, this release uses them only in the properties specified below:
FunctionalityEBP Implementation
maint Element"Mode" property for Columns.
MaintenanceForm Page Type"Show" property for Elements.
advancedtoolbar Element"Show" property for Buttons.
Depending on the expression context, EBPs support these objects:
ObjectDescription
primaryPrimary result set.
primarydatasetData Set associated with the primary result set.
sdcPrimary SDC.
elementReference to the Property List for the Element (such as "advancedtoolbar").
pagedataReference to the pagedata Property List provided by the LabVantage Page tag.
user User map object. This contains the following user-related references (all are String data type except as noted):
databaseid modulelist (List)
dbms rolelist (List)
defaultdepartment sysuserid
departmentlist timezone
deviceid tool
language usertype

Examples

 
Determine whether or not to show a detail Element on a Maintenance page, depending on a field value in the primary form:

In the Batch Maintenance page, to determine whether to show the Sample detail Element:

Set this...To show...
primary.batchstatus=='Active'Only active Batches.
pagedata.mode=='Edit'Only edit mode.
In the maint Element, the "maskvalue" mode masks the value of a field (differs from a field with empty value).

To determine if a Subject DOB should be masked in a Subject Maintenance Grid if a Study is double blinded, set:

primary.studytype=='doubleblind' ? "maskvalue" : "readonly"

Existing retrievedata and hidden properties will apply to the entire column if the first row evaluates to retrievedata (or hidden, respectively).

When using EBPs with MaintenanceGrid Page Types, note that the return results for for different rows can be only "maskvalue" or "readonly", plus one of any other "Mode". For example:
This is valid for a specific column:

Row 1: maskvalue
Row 2: input
Row 3: input
Row 4: maskvalue

This is also valid for a specific column:

Row 1: readonly
Row 2: lookup
Row 3: readonly
Row 4: lookup

Conversely, this is not valid for a specific column:

Row 1: maskvalue
Row 2: input
Row 3: dropdownlist
Row 4: maskvalue

 

Groovy Expression Editor

Top../images/arwup.gif (846 bytes)

Properties supporting Groovy Expressions open a Groovy Expression Editor. The left frame shows objects for the current context and available variables.

 

Node Hierarchy

Top../images/arwup.gif (846 bytes)

Locked Nodes

 

A small yellow padlock indicates a locked node. You cannot change property values of a locked node.

If a WebPage or Property Tree is locked, a red padlock is displayed in the tree and all child items are rendered in read-only mode to allow the user to view (but not modify) the Page or Property Tree details. Hovering over the padlock indicates the user who has the item locked. Clicking the padlock allows the current user to send a message to the user who holds the lock.

When editing a Property Tree, any Web Pages hanging off the Property Tree are still editable even though the tree itself is locked. In the example below, the address Element itself is locked, but the user is still free to edit the Maint page properties.

Product and Custom Nodes

Nodes used by the OOB product are locked "Product" nodes. Each is identified by (P).

For each "Product" node, you can add corresponding (unlocked) "Custom" nodes that are specific to a configuration.

To create a node hierarchy make a "Product" node under the Core node, and a "Custom" below that. For example:

Printer

 

Printer Product (P)

     

 

 

 

Printer (Custom)

   

 

Properties shown in the "Custom" node are inherited from the locked nodes above it. Individual properties that are "locked" in Product nodes are also locked in Custom nodes. In the Export wizard and other undetermined pages, locked nodes will be hidden (or not exported) at the configuration level.

If you put properties in a page and someone overrides the page, you have an upgrade problem. To handle this, a "page override" feature is provided. The"ProductValueTree" column in the WebPagePropertyTree table supplements the "ValueTree" column. These CLOB columns define the XML Property List. The "ProductValueTree" column holds the Product page overrides, giving the hierarchy:

Root node (Custom, unlocked)

 

Product (Product, locked)

     

 

 

 

Custom node (Custom, unlocked)

   

 

 

 

 

Product Page override (Product, locked)

   

 

 

 

   

User Page override (Custom, unlocked)

   

 

Changes to any custom node should be automatically preserved during a configuration upgrade. Changes to pages that have been overridden (by "page override") should be automatically preserved during a configuration upgrade. When upgrading, changes to Product nodes and Product pages should be automatically deployed.

Categories and Nodes

 

The "Categories" button lets you assign a Custom node to a Category. This is useful for exporting items by Category using the Configuration Transfer Tools.

Dual-Key Web Pages

 

Note the nodes marked (R5):

This is a result of dual-key Web pages, which make upgrades more manageable. Support for dual-key Web pages is provided by:

Functionality Support
Data Model
Table Column
WebPage
WebPageProperty
WebPagePropertyTree
ProductEdition (key)
WebPage DefaultPageFlag
Pages For a specific page, DefaultPageFlag overrides the system default for ProductEdition.
R5 Upgrade ProductEdition is a System Configuration property. During upgrade:
ProductEdition will be populated with the version from which you are upgrading. This value cannot be changed. New Web pages created with R5 will have a value of R5.
DefaultPageFlag will not be populated.
The WebPage key column in the SDC table will be updated to 2.
URL Requests
The URL request for a Web page remains unchanged (page=mypage). The ProductEdition in the URL will be ignored.
The actual ProductEdition of the page request is determined by these rules governing precedence:
If only one page with pageid exists, retrieve it in the usual manner.
If more than one page with the same pageid exists, the ProductEdition with the DefaultPageFlag set to Y will be rendered. If no ProductEditions have the flag set to Y, the ProductEdition matching the system default will be rendered.
Web Page Designer Interface
A new query filter shows all applicable ProductEditions, and a "Multiple Edition" filter option is available as a dropdown in the Page List page (it defaults to the system ProductEdition).
Any new user-created page will have a ProductEdition set to "U" and will not be filtered for any ProductEdition query.
When the "Multiple Edition" filter is selected, the Webpage List page shows ProductEdition and the DefaultPageFlag columns. Only pages with more than one ProductEdition will be shown.
In the Webpage Maintenance page, if more than one edition exists, radio buttons showing different ProdcutEditions will appear next to the pageid. The allows changing the DefaultPageFlag to override the system default. This change will take effect immediately.

Node Finder

 

To find a specific node on a large Property Tree, use the "Node Finder" (below). Enter a search string. Nodes containing the search string are highlighted in yellow.

Node Sorter

 

The root node of a Property Tree has an "auto-sort" button.

Clicking the button issues the following warning:

Clicking "Yes" causes the system to run through the tree and sort all "sibling nodes" alphabetically all the way down the tree. This does not have any effect on the hierarchy of properties because the order of only siblings is changed (not parent, child, etc.). Below is an example of a Property Tree before and after sorting.

 

Web Page Roles

Top../images/arwup.gif (846 bytes)

The OOB configuration defines five Roles to provide Role-Level Access to WebPage SDIs: WebPage-Admin, WebPage-Approval, WebPage-DataEntry, WebPage-LabAdmin, and WebPage-SysConfig.

Web Page Roles take effect when the Access Control option set in the SDC Maintenance page is set to "Open Role". If you do not give any Roles access to a WebPage SDI, LabVantage assumes that there is no intent to restrict the WebPage SDC. All Users will have access to all existing and newly-created WebPage SDIs in the WebPage SDC.

WebPage-Role assignments are managed in the Page List. "Manage Roles" lets you grant Role-Level Access for the selected WebPages.

 

Translating Properties

Top../images/arwup.gif (846 bytes)

At the system level, all Languages in the LabVantage application are created and maintained through the Language Maintenance Page (see Translations).

When adding properties in the Property Definition Editor, you can declare a property as "Translatable" as shown in Translatable Properties.

Translatable properties are presented as shown in Translations → Context Translations → Web Page Designer.

With regard to translating Reference Values for Reference Types:

In the maint Element and sdclinkmaint Element, Reference Values in "dropdownlist" mode (specified by "Dropdown RefType") will be automatically translated unless the "Columns → Translate Value" property is explicitly set to "No".
When an Attribute is configured in the SDC Attributes Master List to use an Editor style, Reference Values in "dropdownlist" mode will be automatically translated unless the "Translate Value" property for the Editor style is explicitly set to "No".

 

Column Name Aliases

Top../images/arwup.gif (846 bytes)

When specifying properties for Elements, you usually encounter the Column Id property. This is where you provide the identifier of the SDC column to be retrieved. Clicking the ellipsis opens a dialog all columns for the selected SDC, including foreign key references and references to related tables. You can choose one from this dialog.

There may be cases where some of the references displayed exceed 30 characters. For example, if one of your column names is 30 characters, the reference will be greater than 30. If you choose one of these references as a column identifier, the 30-character Oracle database limit for column names will be exceeded (resulting in a database-generated error). To deal with this, selections greater than 30 characters are presented in red text. When you select one, you are prompted to supply an alias of valid length.

 

Data Locking Strategy

Top../images/arwup.gif (846 bytes)

"Data locking" is the process by which LabVantage prevents different users from simultaneously modifying the same data. When one user is accessing SDI data, LabVantage "locks" it, thereby preventing other users from editing it. Locking features are available at the Element and Tag level.

Data Entry Elements

 

When a user accesses an SDI in pages containing the dataentrylist and dataentrygrid Elements, LabVantage locks the following data:

All Data Sets associated with the SDI.
All Data Sets having Calculations dependent on or affecting Data Sets associated with the SDI.

The dataentrylist Element also contains the Read Only property, which offers a way for you to display locked data for the Element.

Example of Data Entry Data Locking Strategy

Maint Element

 

When a user accesses an SDI in pages containing the maint Element, LabVantage locks the SDI itself (primary SDI record).

Display of Locked Data

 

In both the Data Entry and SDI Maintenance contexts, LabVantage uses the following strategy to display data that is locked by another user:

Locked data are displayed in a greyed-out field as read-only data.
A red padlock icon is displayed next to the field. Doing a mouseover on the icon shows a tool tip, which indicates the data are locked and identifies the locking user.

If a record is locked by another User, you can send a message to that User requesting that he release the lock. In the example below, the User record is locked by "admin". Clicking the red padlock opens a dialog that lets you compose the message:

After clicking OK, the User locking the record will receive the Notification as shown below. Clicking the Notification displays the message.

LabVantage Custom Tags

 

If you are developing JSPs using LabVantage Custom Tags, the sdi tag has several attributes that let you control locking of retrieved data.

 

Search

Top../images/arwup.gif (846 bytes)

If System Search is disabled, this basic search functionality is provided in its place. The Search menu item in the Web Page Designer lets you find property values and nodes matching a search string. Search results are displayed as links indicating the relevant Page, PageType, Element, or Layout (below). Clicking a search result brings you to the Page, PageType, Element, or Layout, whether the search string is found in a property value or a node. All properties in a given Property Tree or Web Page that match the search string are displayed. Click "Advanced" for additional search criteria tips.