Using PS/nVision Reporting for Global Implementations

In PS/nVision, you can specify the language of the user who is designing or requesting a report, the language of the user who makes a report request, and the language of the ultimate audience of a report (the person or group of people for whom the report was generated). The primary goal of these features is to allow a single layout to produce several instances of a report in a requested alternate language or group of languages. To that end, the features are designed to present reports to end users in their preferred languages. Thus, there is a distinction between the designer’s language and the user’s language.

Note: Your Microsoft Windows locale must be able to support the sign-in language.

Most of the strings in PS/nVision output are fetched from the Strings table, and they are delivered with the report instance. However, many labels used in macros and dialog boxes have to be translated directly in the file, as they cannot be fetched at runtime. When a PS/nVision report happens to contain labels in macros or dialog boxes, the layout needs to be translated in Microsoft Excel, and a separate copy of the layout maintained for each language. In this case, each language has its own version of the file, and the same rules for locating the appropriate language of the PS/nVision layout spreadsheet files. Each PS/nVision layout and drill-down directory can contain a subdirectory for each language. PS/nVision searches the appropriate directory for the user’s current language, and performs the appropriate fallback if a translation is not found.

Language-sensitive features of PS/nVision can be separated into two distinct parts:

Field or Control

Definition

Design-Time Features

These are features related to designing PS/nVision layouts.

Runtime Features

These are features activated when a user makes a PS/nVision report request.

The following design-time features of PS/nVision adapt to the current user’s language, enabling you to build a layout that can produce reports in multiple languages:

Field or Control

Definition

Column Headings

When the user selects a column from a list, the list appears in the user’s language (unless database field names are requested). Wherever the heading is stored in the layout, it’s stored in the base language.

Tree Names

When prompting for tree names or presenting a tree description—for example, when adding tree criteria for a field—the tree description appears in the user’s language. Depending on the structure of your tree, this may require adding related language records to one or more prompting views.

String Variables

Layouts typically contain a considerable amount of constant text, such as the column headings Last Year to Date and Current Budget. PS/nVision provides the option to build multilingual layouts where these text strings are replaced by specially formatted strings whose user-language equivalent can be retrieved from the PeopleTools Strings table. This enables a single PS/nVision layout definition to be used in multiple languages without duplicating the layout itself. These string names resemble user-defined PS/nVision variables.

PS/nVision translates only the strings that occupy a layout cell and are in the following format:

%.name,program%

Where name is the string name and program is the optional group that is used to collect a common set of strings used on similar reports. You can look up the name in the Strings table using the Strings Table utility.

Note: This approach is similar to the one used by PeopleSoft application SQR programs. Names are case sensitive.

Setting Up String Criteria

Use the PeopleSoft nVision Layout Definition dialog box: String tab to set up string criteria for the current cell selection:

Image: PeopleSoft nVision Layout Definition dialog box: String tab

This example illustrates the fields and controls on the PeopleSoft nVision Layout Definition dialog box: String tab.

PeopleSoft nVision Layout Definition dialog box: String tab

To set up string criteria for the current cell selection:

  1. Open the PeopleSoft nVision Layout Definition dialog box.

  2. Select the String tab.

    The String tab in the PeopleSoft nVision Layout Definition dialog box appears.

    Use this tab to insert a string from the Strings table into a cell in your layout.

  3. Clear the nVision Only String box, if appropriate.

    By default, this tab displays only the strings that were created for use with PS/nVision—those with a program ID of NVISION. If you want to select from all available strings, clear the nVision Only String box.

  4. If the nVision Only String box is cleared, select a Program ID.

    Note: If the nVision Only String check box is selected, the program ID is NVISION.

  5. In the String ID field, select the ID of the string you want to insert.

    Select any of the strings assigned to the program ID that you specified.

  6. Click Apply to save your changes and define string criteria for a different cell, or click OK to save your changes and close the dialog box.

    If you clicked Apply, and you want to reuse all or part of the criteria you just applied, select the Retain Contents box. This preserves all the dialog box information when you navigate to a new cell selection. Then repeat steps 3 through 5 to define additional string criteria.

The features described below are activated when a user makes a PS/nVision report request.

Path Search

As PS/nVision looks for a file (such as a Microsoft Excel spreadsheet, layout, or template), it steps through the directories listed in the appropriate paths. The paths are defined in different ways for the PeopleTools development environment and the Web. For the PeopleTools development environment, the paths are defined in PeopleSoft Configuration Manager. In the web, the paths are defined in the [nVision] section of the PeopleSoft Process Scheduler configuration file (psprcs.cfg).

Before looking in each directory, PS/nVision looks in a subdirectory named by the user’s language code. If the file is not there, or if the appropriate directory does not exist, PS/nVision looks in the directory named in the path. If the file is not there, PS/nVision moves to the next directory in the path and repeats the process.

For example, when searching for NVSUSER files for a user with France as the preferred language and the defined path for macros is PS_HOME\EXCEL, PS/nVision searches for PS_HOME\EXCEL\FRA directory first. If the files are not found, PS/nVision uses the files in the PS_HOME\EXCEL.

This feature supports users who need or prefer different layouts and for users of different languages. For example, it may be necessary to create an earnings report differently in Germany and France because differences in accounting rules or management requirements dictate different criteria and formatting. So, if a French user runs a PS/nVision report, PeopleTools first looks in the FRA directory under the PS/nVision directory that is defined for an installation. If the required report layout isn’t found in the FRA directory, PeopleTools uses the generic report layout in the base PS/nVision directory.

Request Language

The PS/nVision Report Request page includes a Language Template text box on the Advanced Options page. In the Foreign Language Translation field, enter an alternate language code to automatically generate a translated report. If you are applying a scope to the report request, enter a string containing one or more PS/nVision variables.

If you enter one or more variables in the Foreign Language Translation field, then the value of each variable is interpreted at runtime to get the language code for each report instance. This enables retrieval of the language code from a tree node or value table that is associated with the values in the scope.

The syntax of this variable is as follows:

%DES.[scopefield].{detailfield|.nodefield|detailfield.nodefield}%

Note that the field names required vary, depending on the type of scope you’re using. However, the periods between the values must always exist—except in the case of a trailing period. The scopefield parameter is optional. If you don’t specify one, PS/nVision uses the first scope field you defined. If you want to use a field other than the first one defined in the scope, then you must specify which one.

You can provide a detailfield, nodefield, or both. PS/nVision uses the appropriate field type based on your scope. Consequently, specifying one of each type enables you to change your scope definition without necessarily changing this variable. The detail and node table fields you specify should store PeopleSoft language codes and can be found on the same node or detail value table associated with the scopefield. Typically, the field name used is LANGUAGE_CD.

The following example shows a common implementation of this variable (note the inclusion of the extra period):

%DES..LANGUAGE_CD.LANGUAGE_CD%

If your scope consists of multiple scope fields (PRODUCT and BUSINESS_UNIT), your variable might look like this:

%DES.BUSINESS_UNIT.LANGUAGE_CD.LANGUAGE_CD%

If you don’t include a scopefield or detailfield value, it’s important that you still include the extra periods that follow those values. For example:

%DES...nodefield%
%DES.scopefield..nodefield%

However, if you don’t include a nodefield, then there’s no need to include the trailing period after the detailfield. For example:

%DES..detailfield%

Using a scopefield to drive the language of the PS/nVision report enables you to run a single report in multiple languages. Each time the contents of the scopefield change, PS/nVision resets the language of the report and reloads the strings and other language-sensitive objects in the new language. This enables you to create a PS/nVision report in multiple languages so that the report can be separated and delivered to multiple recipients, each of whom may have a different language preference.

Labels

When retrieving node or detail row and column labels, PS/nVision uses the appropriate alternate language record, if one has been defined through Application Designer, to get labels in the user’s language.

PS/nVision Variables

When retrieving a descriptive value for a PS/nVision variable, such as Business Unit Description, PS/nVision determines whether the table being queried has a related language record and if the field being retrieved is on that record. If so, and if the user does not use the base language, PS/nVision retrieves the value from the related language record or, if the row doesn’t exist on the related language record, from the base record.