Previous  Next          Contents  Index  Navigation  Glossary  Library

Message Dictionary Generator

The Message Dictionary Generator (FNDMDGEN) is a concurrent program that transfers Oracle Applications Message Dictionary messages between three different kinds of message repositories: the database, readable text files and binary runtime files. The following sections describe the operation of the Message Dictionary Generator.

Message Repositories

Message information is stored in three different repositories, each of which has its own format and serves a specific need. Following is a description for each of the three message repositories, including the message attributes they store.

Database

The FND_NEW_MESSAGES table in the database stores all Oracle Applications messages for all languages. Database messages are directly used only by the stored procedure Message Dictionary API. Database message data can be edited using the Messages form.

Database Attributes: APPLICATION, LANGUAGE, NAME, NUMBER, TEXT, DESCRIPTION

Runtime

A runtime binary file stores the messages for a single application and a single language. The file is optimized for rapid lookup of individual messages by message NAME.

A runtime file is located in:

<APPL_TOP>/$APPLMSG/<LANGUAGE>.msb

where <APPL_TOP> is the application basepath, APPLMSG is an environment variable whose usual value is "mesg", and <LANGUAGE> is the NLS language code (for example: 'US', or 'F'.). A typical message file would be $FND_TOP/mesg/US.msb.

Runtime Attributes: NAME, NUMBER, TEXT

Script

A script file is an ASCII file that stores messages for viewing and editing by humans. Although a script file can contain multiple languages and applications, it normally contains only one language and one application.

Script files end with the suffix ".msg". The default file name for script files is "text.msg". The script format stores the listed attributes, as well as others that are for use by the Oracle Applications translation team.

Script Attributes: APPLICATION, LANGUAGE, NAME, NUMBER, TEXT, DESCRIPTION, MAX_LENGTH, TYPE

Usage

The help that you get when you invoke the Message Dictionary Generator without any program arguments (i.e., FNDMDGEN dbuser/dbpassword 0 Y) is:

FNDMDGEN <Oracle ID/password> 0 Y <language codename>
[application shortname] [mode] [filename] 

where mode is one of:

DB_TO_ RUNTIME From Database to Runtime file (.msb)

DB_TO_SCRIPT From Database to Script file (.msg)

RUNTIME_TO_DB From Runtime file (.msb) to Database

SCRIPT_TO_DB From Script file (.msg) to Database
The argument filename is used only for script files. The default script filename, if none is specified, is text.msg. Otherwise, the script file is found relative to the current directory.

Wildcards

Normally, the Message Dictionary Generator is run to transfer messages for a specific application/language pair from one repository to another. Either <language codename> or [application shortname] can be wildcarded by passing the value "ALL". The following list describes how wildcards are used in the various modes:

To DB Messages get merged into the FND_NEW_MESSAGES table. If a message already exists (same application, language, and message name), it is updated; otherwise, a new message is inserted. Other messages remain untouched.
From DB Messages come from the FND_NEW_MESSAGES table. Wildcards match all the messages in the database.
To RUNTIME In the case of wildcards, separate runtime files are created for each combination of language and application.
From RUNTIME A wildcard for language_codename causes all files in the message directory with valid LANG.msb filenames to be scanned. A wildcard for application_shortname causes all application basepaths to be scanned.
To SCRIPT Wildcards cause all the messages for all applications and languages to be deposited into one file.
From SCRIPT All the messages in the file that match the language_codename and application_shortname to be transferred.

Examples of Message Dictionary Generator Usage

Here are some examples of how to run the Message Dictionary Generator:

FNDMDGEN dbuser/dbpassword 0 Y US FND DB_TO_RUNTIME

Creates a US.msb runtime file $FND_TOP/mesg/US.msb. Note that if this command is run against an invalid database, then the runtime message files that the application depends on will be clobbered.

FNDMDGEN dbuser/dbpassword 0 Y ALL ALL SCRIPT_TO_DB patch.msg

Merges a patch file containing various messages into the FND_MESSAGES table. In this example, the file would exist in the directory $FND_TOP/mesg/patch.msg.

Attention: Because the runtime file is not alphabetized, if you use the RUNTIME_TO_SCRIPT mode, the messages in the script will not be ordered by name, as they would be if you used DB_TO_SCRIPT.

Attention: You will not get the same script back if you convert a SCRIPT format to another repository format and then back again, because the SCRIPT format stores more information than the other formats.

Script File Format

A script file looks like this:

<HEADER>
<APPLICATION=FND>
<CHARACTER_SET=WE8ISO8859P1>
<LANGUAGE=US>
<RCS_HEADER=$Header$>
<VERSION=>
<LEVEL=>
<TRANSLATOR=>
<TRANSLATED_DATE=>
<REVIEWER=>
<REVIEWED_DATE=>
<TESTER=>
<TESTED_DATE=>
<MESSAGES>
<NAME=AUDIT-START END DATE1>
<NUMBER=718>
<TOKEN=START, END>
<TYPE=>
<DESCRIPTION=>
<STATUS=NEW>
<NOTES=>
<MAX_LENGTH=#432>
<TEXT=>
Please enter a start date less than or equal to the end date[\n]
[\n]
Cause:[\t]You entered a start date [START] that is greater than the end date
[END].[\n]
[\n]
Action:[\t]Enter a start date less than or equal to the end date.[\n]
[\n]
Action:[\t]Change the end date to be greater than or equal to the start date.
 You must temporarily change the start date to be less than or equal to the
end date in order to move from the start date field to the end date field.[\n]
<NAME=CONC-FDPSEV NO ENV VAR>
<NUMBER=1362>
<TOKEN=>
<TYPE=>
<DESCRIPTION=This is a description of the message for translators.  It
can span multiple lines if necessary, but shouldn't have newlines in it.>
<STATUS=NEW>
<NOTES=>
<MAX_LENGTH=#353>
<TEXT=>
You have specified invalid arguments for concurrent program FDPSEV[\n]
[\n]
Cause:[\t]You entered an incorrect number of arguments to the concurrent
program FDPSEV, or the arguments you entered are not the type expected.[\n]
[\n]
Action:[\t]Enter the correct arguments for FDPSEV as follows.[\n]
[\n]
Syntax: FDPSEV <<Environment Variable>>=<<Value>>  <<Environment
Variable>>=<<Value>> ...[\n]
....
...
..

All of the messages in the <MESSAGES> section belong to the language and application specified in the <HEADER> section. There can be multiple <HEADER> and <MESSAGE> sections in the file, each with a different language/application combination.

This SCRIPT format contains many tags, but some are ignored by the generator when reading the SCRIPT file. The only tags read by the generator are:

APPLICATION The application short name
LANGUAGE The language code set name
NAME The message name
NUMBER The message number
DESCRIPTION A description of the context of the message for translators.
TEXT The translated message text. The message text is the only tag that appears on a separate line from its tag.
String Meaning
[\t] Tab (only valid at the beginning of a line)
[\n] Newline (really means "end of paragraph")
[[ Literal '['
]] Literal ']'
<< Literal '<'
>> Literal '>'

Upon reading the text from a script file:

Upon converting the text into a script file:

These conversions occur for all of the tag values, not just the TEXT. Also note that any spaces at the end of a message will be stripped on conversion of the message into script format. So there is no way to represent messages that have trailing spaces.


         Previous  Next          Contents  Index  Navigation  Glossary  Library