Natural-Konfigurationstabellen

#### Search Results

Search

# Natural-Konfigurationstabellen

Dieses Kapitel enthält allgemeine Informationen über die Natural-Konfigurationstabellen, die im Modul `NATCONFG` enthalten sind.

Folgende Themen werden behandelt:

- NATCONFG - Natural-Konfigurationstabellen

- Allgemeine Übersicht über die in NATCONFG verwendeten Makros

- NTDVCE - Terminal-Gerätespezifikationstabelle

- NTMSG - Definitionen der Meldungsprotokolltabelle

- NTSTAT - Definition der mit dem Natural-Nukleus verlinkten Objekte

- NTCPAGE - Definitionen der Codepages

- Unterstützung von Codepages

- Unterstützte Ausgabegeräte

- Umsetzungstabellen

- Umsetzung von Klein- in Großbuchstaben

- CMULT-Eintrag

- Umwandlung der Ausgabe

- Umwandlung von Eingaben

- Code-Umsetzung von DBCS-Daten

- NTTZ - Zeitzonendefinitionen

Siehe auch Unterstützte Eingabe- und Ausgabegeräte.

## NATCONFG - Natural-Konfigurationstabellen

Das Modul `NATCONFG` enthält die Natural-Konfigurationstabellen.

| Warnung: Die Standardvorgaben in `NATCONFG` müssen und sollten generell nicht verändert werden. Insbesondere sollten Sie keine der in der folgenden Liste mit einem Stern (*) gekennzeichneten Tabellen ohne vorherige Rücksprache mit dem Support ändern.

Für die meisten der Tabellen gibt es entsprechende Makros im Natural-Parametermodul sowie dynamische Profilparameter. Wenn Sie eine `NATCONFG`-Tabelle ändern müssen, verwenden Sie das entsprechende Makro im Parametermodul oder den dynamischen Profilparameter, um die Tabelle zu überschreiben. (Würden Sie die Änderungen in den `NATCONFG`-Tabellen selbst vornehmen, müssten Sie `NATCONFG` mit späteren Natural-Releases erneut ändern und neu assemblieren).

Das Modul `NATCONFG` enthält Makros für die Definition der folgenden Natural-Standardkonfigurationstabellen.

Darüber hinaus enthält es die folgenden Tabellen:

- Die Tabelle der Standard-Attention-Identifier. Sie definiert die physischen Terminalabruftasten für Natural (*).

- Verschiedene andere Tabellen (*).

## Allgemeine Übersicht über die in NATCONFG verwendeten Makros

Die folgende Tabelle gibt einen allgemeinen Überblick über die Makros, die im Modul `NATCONFG` für die Definition der Natural-Standardkonfigurationstabellen verwendet werden:

Makro | Zweck
--- | ---
`NTDVCE` * | Tabelle der Terminaltypen. Dient dazu, den zu verwendenden Terminaltreiber anzugeben, Einzelheiten siehe Beschreibung unten. Wichtig Ändern Sie nicht ein bestehendes `NTDVCE`-Makro, sondern erstellen Sie ein neues.
`NTMSG` | Meldungsprotokolltabelle. Natural-Meldungen, die in das Job-Meldungsprotokoll geschrieben oder auf der Bedienerkonsole angezeigt werden sollen.
`NTSTAT` | Definition von Natural-Objekten, die mit dem Natural-Nukleus verlinkt sind.
`NTCPAGE` | Definitionen von Codepages.
`NTTAB` | Primäre Ausgabe-Umsetzungstabelle.
`NTTAB1` `NTTAB2` | Sekundäre Ausgabe/Eingabe-Umsetzungstabellen.
`NTUTAB1` `NTUTAB2` | Tabellen für die Umsetzung von Klein- und Großbuchstaben. Diese Tabellen müssen z.B. für den deutschen Zeichensatz angepasst werden.
`NTTABA1` `NTTABA2` | Tabellen für die Umsetzung von EBCDIC-Zeichen in ASCII-Zeichen und umgekehrt. Diese Tabellen werden vom Natural-Object Handler verwendet.
`NTTABL` | `SYS*`-Umsetzungstabelle. Setzt die Ausgabe von Programmen um, die in Natural `SYS...` Libraries enthalten sind.
`NTLANG` * | Sprachumsetzungstabelle. Enthält eine Liste aller verfügbaren Sprachcodes, die für Natural definiert sind.
`NTSCTAB` | Scanner-Zeichentypentabelle. Legt fest, welche Zeichen Kleinbuchstaben, Großbuchstaben, numerische Zeichen und Sonderzeichen sind (gilt für dynamische Profilparameter, `MASK`- und `SCAN`-Optionen).
`NTTZ` | Zeitzonendefinitionen. Das Makro `NTTZ` ermöglicht die Angabe von Zeitzonen und die automatische Umstellung auf die Sommerzeit und umgekehrt.
`NTBUFID` | Mit den Parametern `MIN` und `MAX` dieses Makros können die Puffergrößengrenzen für variable Puffer geändert werden, siehe Anpassung der Puffereigenschaften. Wichtig Die Standardwerte der anderen Parameter in diesem Makro sollten nicht geändert werden, da die Ergebnisse unvorhersehbar sein können. Wichtig

* Ändern Sie ohne vorherige Rücksprache mit dem Support keine der in dieser Liste mit einem Stern (*) gekennzeichneten Tabellen.

Weitere Einzelheiten finden Sie unter Umsetzungstabellen.

## NTDVCE - Terminal-Gerätespezifikationstabelle

Für jeden von Natural unterstützten Terminaltyp wird eine Terminal-Konvertierungsroutine bereitgestellt. Die entsprechenden Terminaltreiber sind für die eigentlichen Terminal-Ein-/Ausgaben zuständig. Sie bauen den physischen Datenstrom aus dem Bildschirmpuffer und dem Bildschirmattributpuffer auf und stellen ihn in den Terminal-E/A-Puffer.

Zusätzlich wird ein Telex-Treiber für Con-nect bereitgestellt, um eine schnellere Telex-, Telefax- und Teletext-Kommunikation vom und zum Topcall Messaging Server zu ermöglichen. Dieser Treiber unterstützt das Topcall-Ganzseitenprotokoll.

Mit dem `NTDVCE`-Makro ist es möglich, neue Terminaltreiber zu Natural hinzuzufügen, um Änderungen der terminalspezifischen Ein-/Ausgabe- oder Groß-/Kleinschreibungstabellen anzugeben. Weitere Informationen, die angegeben werden können, sind das Rahmenzeichen, die Position der Nachrichtenzeile, ob die Bildschirmoptimierung ein- oder ausgeschaltet werden soll, sowie verschiedene Flags in der IOCB. Darüber hinaus kann die Terminalspezifikation an einen vorhandenen Treiber weitergeleitet werden, indem andere Umsetzungstabellen verwendet werden, oder sie kann in eine Treiberroutine eingehängt werden.

Das Makro `NTDVCE` wird entweder durch das Terminalkommando `%T=` in der Natural-Kommandozeile oder durch das Statement `SET CONTROL 'T=...'` in einem Natural-Programm aufgerufen. Zu Beginn einer Natural-Sitzung werden die Umsetzungstabellen `NTTAB`, `NTTAB1`, `NTTAB2`, `NTUTAB1` und `NTUTAB2` aus dem Modul `NATCONFG` in den Benutzerbereich kopiert, wo sie von `NTDVCE` geändert werden.

Beachten Sie, dass die Umsetzungstabellen von denselben Makros dynamisch oder innerhalb des Natural-Parametermoduls geändert werden können.

## NTMSG - Definitionen der Meldungsprotokolltabelle

Das Makro `NTMSG` wird verwendet, um Natural-Meldungen zu definieren, die auf der Bedienerkonsole ausgegeben oder in das Job-Meldungsprotokoll (falls vorhanden) geschrieben werden sollen. Eine definierte Meldung wird zusätzlich geschrieben, d.h. die übliche Natural-Verarbeitung bleibt unverändert. Die Tabelle zur Definition von Protokollmeldungen finden Sie unter dem Label `NATMSGT` in `NATCONFG`. Dort können Sie Ihre `NTMSG`-Definitionen auf der Basis einer Meldung pro Zeile hinzufügen.

#### NTMSG-Makro-Syntax

Die Syntax des Makros `NTMSG` lautet wie folgt:

             NTMSG  NATnnnn,logid

#### NTMSG-Makro-Parameter

Parameter | Beschreibung
--- | ---
`NATnnnn` | `nnnn` ist die Nummer der Natural-Meldung (erforderlich).
`logid` | Gibt das Protokollziel an, d.h. die Bedienerkonsole oder das Job-Meldungsprotokoll oder beides. Mögliche Werte: `WTO`, `WTL` oder `WTO+WTL`

## NTSTAT - Definition der mit dem Natural-Nukleus verlinkten Objekte

Jedes Objekt, das mit dem Natural-Nukleus verlinkt werden soll, muss mit einem `NTSTAT`-Makro angegeben werden. Bei der Suche nach einem Objekt durchsucht Natural immer zuerst diese Liste, unabhängig von der angegebenen Library. Wie Sie Natural-Objekte mit dem Natural-Nukleus verlinken, erfahren Sie im Abschnitt Natural-Objekte mit dem Natural-Nukleus verlinken beim Dienstprogramm ULDOBJ.

#### NTSTAT-Makro-Syntax

Die Syntax des `NTSTAT`-Makros lautet wie folgt:

             NTSTAT object-name[,TYPE=W]

#### NTSTAT-Makro-Parameter

Parameter | Beschreibung
--- | ---
`object-name` | Gibt den Namen des Objekts an, das mit dem Natural-Nukleus verlinkt ist.
`TYPE=W` | Bedeutet, dass der Einstiegspunkt des verlinkten Objekts als "weak external" für den Natural-Nukleus definiert ist. Dadurch wird eine Fehlermeldung des Linkage Editors vermieden, falls das Objekt nicht mit dem Natural-Nukleus verlinkt ist.

## NTCPAGE - Definitionen der Codepages

Alle Codepages, die während einer Natural-Sitzung verwendet werden sollen, müssen im Quellcode-Modul `NATCONFG` vordefiniert werden. Für jede zu definierende Codepage muss ein spezielles `NTCPAGE`-Makro eingegeben werden. Während der Sitzungsinitialisierung wird die durch die Profilparameter `CP`, `CPOBJIN`, `CPSYNIN`, `CPPRINT` und die `CP` und den `CP`-Schlüsselwort-Subparameter des Profilparameters `PRINT` oder des Parametermakros `NTPRINT` überprüft. Wenn diese Codepage nicht in `NATCONFG` definiert ist, wird eine Fehlermeldung ausgegeben.

### NTCPAGE-Makro-Syntax

Die Syntax des `NTCPAGE`-Makros lautet wie folgt:

             NTCPAGE IANA=value,                                           *
                   CCSID=value,                                            *
                   CCSN=value,                                             *
                   ALIAS=value,                                            *
                   PHC=value,                                              *
                   MULTI=value,                                            *
                   ECS=value

### NTCPAGE-Makro-Parameter

Parameter | Beschreibung
--- | ---
`IANA` | Dieser Parameter gibt den Standardnamen der Codepage an. Maximale Länge: 64 Zeichen.
`CCSID` | Dieser Parameter ist erforderlich. Er gibt die kodierte Zeichensatzkennung an, d. h. einen numerischen Wert mit bis zu 5 Ziffern. Beispiele: `1141` Deutsche EBCDIC-Codepage `62243` Hebräisch/Lateinisch (ISO 8859) Codepage
`ALIAS` | Dieser Parameter ist optional. Er gibt den Alias-Namen der Codepage an. Maximale Länge: 32 Zeichen.
`PHC` | Dieser Parameter ist optional. Er gibt das Platzhalterzeichen an. Länge: 2 Bytes hexadezimal.
`ECS` | Dieser Parameter ist optional. Er gibt die Schlüsselnummer der Codepage im Entire Conversion Service (ADAECS) an, der von Adabas verwendet wird.
`MULTI` | Dieser Parameter ist optional. Er gibt an, ob es sich bei der Codepage um eine Ein-Byte-Codepage oder eine Multi-Byte- oder ASCII-Codepage handelt. Mögliche Werte:
`ON` | Die Codepage ist eine Ein-Byte-Codepage, z. B. `IBM01140`. Die Codepage kann als Natural Sitzungs-Codepage verwendet werden. Die Sitzungs-Codepage wird durch den Natural-Profilparameter `CP` definiert.
`OFF` | Die Codepage ist eine Multi-Byte-Codepage oder ASCII-Codepage. Sie kann nicht als Session-Codepage für Natural verwendet werden. Jeder Versuch, diese Codepage zu verwenden, führt zur Initialisierungsmeldung NAT7019. Dies ist die Standardeinstellung.
`VALID` | Die Codepage ist eine Multi-Byte-Codepage, kann aber als Natural-Session-Codepage verwendet werden. `IBM-939` ist zum Beispiel eine japanische EBCDIC-Codepage, die DBCS-Zeichen enthält.

Beispiele:

             NTCPAGE IANA=IBM819,                                          *
                   CCSID=819,                                              *
                   ALIAS='ISO-8859-1',                                     *
                   PHC=003F

             NTCPAGE IANA='IBM-939',                                       *
                   CCSID=939,                                              *
                   ECS=3035,                                               *
                   ALIAS='ibm-939_P120-1999',                              *
                   PHC=3013,                                               *
                   MULTI=VALID

Siehe auch Unicode-/Codepage-Umgebung konfigurieren und verwalten.

## Unterstützung von Codepages

Mit dem Makro `NTDVCE` können verschiedene Codepages definiert und mit einem bestimmten Terminaltyp und -namen verlinkt werden. Wenn Natural dann mit `PM``=C` gestartet wird, werden alle Terminal-E/A bei der Eingabe übersetzt und bei der Ausgabe neu übersetzt. Solange die Codepages kompatibel sind, kann so eine gemeinsame Datendarstellung beibehalten werden.

Siehe auch SYSCP Utility in der Debugger und Dienstprogramme (Utilities)-Dokumentation.

## Unterstützte Ausgabegeräte

Attributkontrollvariablen und -formate definieren Attribute, um eine bestimmte Darstellung auf dem Ausgabegerät zu erzeugen. Natural bietet eine breite Palette möglicher Attribute, um dem Endanwender die bestmögliche Nutzung bei der Gestaltung von Masken (Maps) und Reports auf dem Terminal zu ermöglichen.

Leider unterstützen nicht alle Terminals alle bei Natural verfügbaren Funktionen. Diese Eigenschaften werden auf solchen Geräten meist ignoriert oder durch andere Techniken simuliert. Grundsätzlich gibt es in einer IBM-Umgebung zwei Datenstromdefinitionen, den Standard-Datenstrom und den erweiterten Datenstrom.

Die folgenden Ausgabegeräte werden unterstützt:

- Sequenzielle Ausgabegeräte für Batch, zusätzliche Reports

- Zeilenorientierte Online-Terminals

- Blockmodus-orientierte Online-Terminals

### Sequenzielle Ausgabegeräte für Batch, zusätzliche Reports

Die Ausgabedaten enthalten Standard-ASA-Steuerzeichen, die den Zeilenvorschub und die Seitenauswurf-Funktion des jeweiligen Druckers steuern. Dieser Drucker kann entweder der zentrale Drucker im Rechenzentrum sein, der durch das Online- oder Batch-Spooling-System unterstützt wird, oder der SCS-Drucker, der als Online-Terminaldrucker verwendet wird.

Die folgenden Geräte können zum Drucken der in dieser Form erstellten Reports verwendet werden:

Gerät | Typ
--- | ---
Anschlagdrucker | Zentrale Standard-Druckerhardware
Laserdrucker | Hochgeschwindigkeitsdrucker, Terminaldrucker
Typenraddrucker | Terminaldrucker
Tintenstrahl | Terminaldrucker

### Zeilenorientierte Online-Terminals

Terminal-Marke | Beschreibung
--- | ---
TTY | Daten, die an TTY-Geräte gesendet werden, werden mit den Standardzeichen Formfeed, Linefeed usw. generiert.

### Blockmodus-orientierte Online-Terminals

Terminal-Marke | Beschreibung
--- | ---
IBM | Alle Modelle und Größen, die den Standard-Datenstrom und/oder den erweiterten Datenstrom unterstützen.
PC | Alle Modelle und Größen, die den Standard-Datenstrom und/oder den erweiterten Datenstrom unterstützen.

## Umsetzungstabellen

Alle Daten, die von Natural-Programmen gedruckt, angezeigt oder geschrieben werden, werden von Natural umgesetzt. Dadurch wird sichergestellt, dass keine unzulässigen Steuerzeichen zu Terminal-E/A-Fehlern führen oder Datenmüll auf dem Terminal erscheinen kann.

Ein weiteres Merkmal ist die Umsetzung in und aus Zeichensätzen, die von der lateinischen Definition abweichen, insbesondere arabische, kyrillische, griechische und hebräische Zeichen.

In diesem Abschnitt werden alle Merkmale und Funktionen beschrieben, die die Umsetzung von Feldern betreffen, wenn Daten auf externe Geräte wie CRT (Bildschirmterminals) oder Online- und Batch-Spooling-Systeme geschrieben werden.

Die Statements `INPUT`, `DISPLAY`, `PRINT` und `WRITE` schreiben Daten auf externe Geräte wie CRT, TTY oder in sequenzielle Dateien oder lesen Daten von ihnen. Alle diese Statements verwenden Parameter wie Konstanten, Variablen, Editiermasken, Attributkontrollvariablen und Formate zur Steuerung des Ausgabebildes und der Eingabedarstellung. Konstanten und Variablen werden durch Verwendung ihrer jeweiligen Werte im Ausgabebild erzeugt. Die Darstellung dieser Werte wird dann durch die Attributkontrollvariablen, Formate, Editiermasken und Umsetzungstabellen gesteuert.

Natural verwendet mehrere Umsetzungstabellen und bietet auch die Verwendung alternativer Umsetzungstabellen an, die alle in NATCONFG enthalten sind.

Die folgenden Tabellen werden bereitgestellt:

Makro | Tabelle
--- | ---
`NATSCTU` | Scanner-Tabelle, die für Unicode-Zeichen erforderlich ist. Sie bildet die Eigenschaften von Unicode-Zeichen der Unicode-Spezifikation ab (wie von der gelieferten ICU-Version unterstützt), die vom Natural-Nukleus verwendet werden sollen. Wichtig Diese Tabelle darf niemals geändert werden.
`NATCPTAB` | Optionale Tabellen zur Beschleunigung der Konvertierung von Einzelbyte-Codepages. Wenn die Tabelle vorhanden ist, erfolgt die Konvertierung von einer Codepage in eine andere Codepage schneller, da sie über diese Tabelle und nicht durch den Aufruf von ICU-Funktionen erfolgt. Die folgenden Codepages werden von der mitgelieferten `NATCPTAB` unterstützt: `IBM01140` `IBM01141` `IBM01145` `IBM01146` `IBM01147` `ASCII` Es ist möglich, mit dem Makro `NTCPCNV` neue Einträge hinzuzufügen. Für jede Konvertierungsrichtung ist ein Eintrag erforderlich, der den IANA-Namen der Quell-Codepage, den IANA-Namen der Ziel-Codepage und optional ein Leerzeichen, ein Ersetzungszeichen und ein Platzhalterzeichen enthält, gefolgt von einer vollständigen Liste der Zeichenzuordnungen.
`NTSCTAB` | Tabelle, die die Eigenschaften von Zeichen definiert, die in Maskendefinitionen für die Option `MASK` verwendet werden, die als Begrenzungszeichen in den Statements `EXAMINE` und `SEPARATE` erkannt werden. Diese Tabelle kann zur Definition von Großbuchstaben-Attributen, Kleinbuchstaben-Attributen, Sonderzeichen, hexadezimalen Zeichen und numerischen Zeichen verwendet werden. Um diese Tabelle zu ändern, können Sie das Makro `NTSCTAB` im Natural-Parametermodul oder den entsprechenden dynamischen Profilparameter `SCTAB` verwenden. Wenn der Profilparameter `CP` auf einen anderen Wert als `OFF` gesetzt ist, wird die Änderung ignoriert und die Tabelle wird entsprechend der für die Natural-Sitzung verwendeten Codepage angepasst. Siehe auch Umsetzungstabellen in der Unicode- und Codepage-Unterstützung-Dokumentation.
`NTTAB` | Die standardmäßige (primäre) Ausgabe-Umsetzungstabelle, die für die Bildschirm- oder Druckerausgabe verwendet wird. Grundsätzlich werden mit dieser Tabelle alle Zeichen unterhalb von `X'40'`, d.h. vom Leerzeichen bis zum Fragezeichen, umgesetzt (`X'00'` wird nicht umgesetzt). Damit ist gewährleistet, dass alle Terminal-Steuerzeichen vor der Ausgabe umgesetzt werden und keine Control Escape-Sequenzen die Bildschirmausgabe beeinflussen können. Sonderzeichen (`X'FE'` und `X'FF'`), die die Bildschirmausgabe beeinflussen könnten, werden in das Fragezeichen (`?`) umgesetzt. Wenn nichts anderes angegeben ist, werden alle Natural-Ausgabedaten mit `NTTAB` umgesetzt. Um diese Tabelle zu ändern, können Sie das Makro `NTTAB` im Natural-Parametermodul oder den entsprechenden dynamischen Profilparameter `TAB` verwenden. Die Änderung wird ignoriert, wenn mit dem Profilparameter `CP` (`CP=ON`, `CP=AUTO` oder `CP=codepage`) eine Codepage angegeben ist, und die Tabelle wird von ICU entsprechend der beim Sitzungsstart verwendeten Codepage angepasst. Außerdem werden alle Zeichen unterhalb von `X'40'` wie oben beschrieben in das Fragezeichen (`?`) umgesetzt. Ein Zeichen wird von dieser Umsetzung ausgenommen, wenn eine der folgenden Bedingungen zutrifft: Das Zeichen wird explizit in dasselbe Zeichen umgesetzt. Das Zeichen ist eines der logischen Shift-Out/Shift-In-Zeichen, die mit dem Profilparameter `SOSI` angegeben wurden (siehe Parameter-Referenz-Dokumentation), und die angegebene Codepage ist keine MBCS-Codepage.
`NTTAB1` | Die alternative (sekundäre) Ausgabe-Umsetzungstabelle für den sekundären Zeichensatz, die verwendet wird, wenn der Natural-Parameter `PM` auf `C` gesetzt ist. Wichtig ist dabei die Umsetzung aller möglichen Terminal-Steuerzeichen. Wenn `PM=C` angegeben ist, werden alle Natural-Ausgabedaten mit `NTTAB1` übersetzt. Eine mögliche Anwendung von `NTTAB1` besteht darin, die Umsetzung von Escape-Sequenzen zur Druckersteuerung zu vermeiden. Um diese Tabelle zu ändern, können Sie das Makro `NTTAB1` im Natural-Parametermodul oder den entsprechenden dynamischen Profilparameter `TAB1` verwenden. Die Änderung wird ignoriert, wenn eine Codepage über den Profilparameter `CP` (`CP=ON`, `CP=AUTO` or `CP=codepage`) angegeben ist und die Tabelle nicht verwendet wird.
`NTTAB2` | Die sekundäre Eingabeumrechnungstabelle, die verwendet wird, wenn der Natural-Parameter `PM` auf `C` eingestellt ist. Wenn `PM=C` angegeben ist, werden alle Natural-Eingabedaten mit `NTTAB2` umgesetzt. Die Umsetzung zwischen verschiedenen Sprachen oder Codepages kann mit dieser Tabelle zusammen mit `NTTAB1` durchgeführt werden. Um diese Tabelle zu ändern, können Sie das Makro `NTTAB2` im Natural-Parametermodul oder den entsprechenden dynamischen Profilparameter `TAB2` verwenden. Die Änderung wird ignoriert, wenn eine Codepage über den Profilparameter `CP` (`CP=ON`, `CP=AUTO` oder `CP=codepage`) angegeben ist und die Tabelle nicht verwendet wird.
`NTTABS` | In dieser Tabelle sind alle gültigen Zeichen definiert, die in Natural-Variablennamen verwendet werden können. Sie wird für den Natural-Syntaxprozessor verwendet. Außerdem sind darin alle gültigen Zeichen definiert, die an der ersten Position eines Natural-Variablennamens verwendet werden können. Darüber hinaus wird festgelegt, ob es sich bei der Variablen um eine globale Variable, eine Nicht-Datenbank-Variable oder eine Quellcode-Variable handelt. Wenn mit dem Profilparameter `CP` (`CP=ON`, `CP=AUTO` oder `CP=codepage`) eine Codepage angegeben wird, wird die Tabelle von ICU entsprechend der beim Sitzungsstart verwendeten Codepage angepasst.
`NTUTAB1` | Die benutzerspezifische Beispieltabelle für die Umsetzung der Eingabe von Klein- in Großbuchstaben. Darüber hinaus führt diese Tabelle die mit dem Statement `EXAMINE TRANSLATE` `INTO UPPER CASE` angegebene Umsetzung durch. Um diese Tabelle zu ändern, können Sie das Makro `NTUTAB1` im Natural-Parametermodul oder den entsprechenden dynamischen Profilparameter `UTAB1` verwenden. Die Änderung wird ignoriert, wenn eine Codepage mit dem Profilparameter `CP` (`CP=ON`, `CP=AUTO` oder `CP=codepage`) angegeben ist und die Tabelle nicht verwendet wird.
`NTUTAB2` | Beispiel für eine benutzerspezifische Umsetzungstabelle, die die mit dem Statement `EXAMINE TRANSLATE` `INTO LOWER CASE` angegebene Umsetzung durchführt. Um diese Tabelle zu ändern, können Sie das Makro `NTUTAB2` im Natural-Parametermodul oder den entsprechenden Profilparameter `UTAB2` verwenden. Die Änderung wird ignoriert, wenn eine Codepage mit dem Profilparameter `CP` (`CP=ON`, `CP=AUTO` or `CP=codepage`) angegeben ist und die Tabelle nicht verwendet wird.
`NTLANG` | Sprachencode-Tabelle, die festlegt, welche Sprachnummer welchem Sprachencode in der Systemvariablen `*LANGUAGE` zugeordnet ist.
`NTTABL` | Die `SYS*`-Ausgabe-Umsetzungstabelle, die durch den Natural-Profilparameter `TS` gesteuert wird. `Bei TS=ON` wird diese Tabelle verwendet, um die von Programmen in Natural `SYS*`-Libraries erzeugten Ausgaben (außer änderbaren Feldern) von lateinischer Kleinschreibung in Großschreibung umzusetzen. Diese Tabelle ermöglicht die Verwendung aller Groß- und Kleinbuchstaben in lateinisch geprägten Ländern, erlaubt aber auch die Verwendung dieser Anwendungen in Ländern, in denen die Kleinbuchstaben durch ein eigenes Alphabet ersetzt wurden. Um diese Tabelle zu ändern, können Sie das Makro `NTTABL` im Natural-Parametermodul oder den entsprechenden dynamischen Profilparameter `TABL` verwenden. Wenn Natural mit einer MBCS-Codepage (z. B. `CP='IBM-939'`) ausgeführt wird, wird die Tabelle nicht verwendet, sondern die Umsetzung erfolgt über ICU gemäß den aktuellen Gebietsschema-Einstellungen.
`WRDFCUC1` `WRDFCUC2` `WRDFCSP2` | Die DBCS-Umsetzungstabellen, die für die Umsetzung von Doppelbyte-Zeichen in lateinische Zeichen und umgekehrt verwendet werden. Wichtig Diese Tabellen müssen explizit aktiviert werden, z.B. für fernöstliche Länder.

## Umsetzung von Klein- in Großbuchstaben

Für änderbare Felder und Eingabefelder kann die Umsetzung in Groß- und Kleinbuchstaben festgelegt werden. Generell bedeutet die Umsetzung in Kleinbuchstaben, dass die Daten so übernommen werden, wie sie eintreffen. Es wird keine Umsetzung vorgenommen. Damit ist es z.B. auch im Batchbetrieb möglich, hexadezimale Daten ohne Umsetzung einzulesen.

Es gibt mehrere Möglichkeiten, die Groß-/Kleinschreibung anzugeben:

`LC``=OFF` | Die Umsetzung von Kleinbuchstaben (Lower to Upper Case Translation) ist ausgeschaltet, d.h. es erfolgt eine globale Großbuchstabenumsetzung. Dieser Profilparameter kann im Natural-Parametermodul oder als dynamischer Parameter angegeben werden. Achtung: Der Session-Parameter `LC` hat eine völlig andere Funktion (Leading Characters).
`%U` | Die Großbuchstabenumsetzung ist global aktiv. Auf Feldebene kann das Attribut `AD=T` oder `AD=W` angegeben werden. Diese Attribute werden nur wirksam, wenn die globale Großbuchstabenumsetzung ausgeschaltet ist (`LC=ON`, `%L`). Dann ist es möglich, die Umsetzung auf Feldebene aus einem Natural-Programm heraus zu steuern.
`EXAMINE TRANSLATE` | Die Umsetzung von Groß-/Kleinschreibung kann auch mit dem Statement `EXAMINE TRANSLATE` durchgeführt werden. `EXAMINE TRANSLATE` führt standardmäßig eine Großbuchstabenumsetzung unter Verwendung der Umsetzungstabelle `NTUTAB1` und eine Kleinbuchstabenumsetzung mittels der Umsetzungstabelle `NTUTAB2` durch.

## CMULT-Eintrag

Die Verwendung des `CMULT`-Eintrags wird nicht mehr empfohlen. Verwenden Sie stattdessen das `EXAMINE TRANSLATE`-Statement (siehe oben).

## Umwandlung der Ausgabe

Alle Felder werden nach der Formatierung durch eventuelle Editiermasken, `AL`- oder `NL`-Parameterwerte, Füllzeichen usw. anhand einer Umsetzungstabelle umgewandelt. Dadurch wird sichergestellt, dass keine Daten mit eingebetteten Steuerinformationen, die nicht explizit von Natural erzeugt wurden, an das Front-End-Druckgerät gesendet werden können. Das bedeutet, dass Felder an ein Anzeigegerät gesendet werden können, auch wenn sie hexadezimale Informationen enthalten, die mit internen Attributen identisch sind. Diese Attribute werden vor einer Ausgabeoperation umgewandelt, so dass Natural das in der Ausgabeanweisung definierte Bildschirmlayout garantiert.

Es sind mehrere Umsetzungstabellen verfügbar. Wenn nichts explizit definiert ist, wird die primäre Umsetzungstabelle `NTTAB` verwendet.

Wenn `PM` angegeben ist, wird die sekundäre Umsetzungstabelle `NTTAB1` verwendet. Für änderbare Felder bedeutet `PM=C` auch, dass die eingehenden Daten erneut umgesetzt werden, d.h. für die Ausgabe umgesetzt und für die Eingabe neu umgesetzt werden.

Mit dieser Umsetzungstabellenlogik ist es z.B. möglich, arabische Ziffern in lateinische Ziffern umzuwandeln. Arabische Ziffern haben eine andere hexadezimale Darstellung als die normalen lateinischen Ziffern auf der Terminal-Hardware. So können bei der Ausgabe die lateinischen Ziffern in das arabische Äquivalent umgewandelt werden und bei der Eingabe können die arabischen Ziffern wieder in lateinische zurückgewandelt werden.

Besondere Überlegungen sind bei Natural-System-Anwendungen erforderlich, die lateinische Klein- und Großbuchstaben verwenden. Vor allem auf Terminals, die Arabisch, Griechisch, Kyrillisch usw. unterstützen, kann die Hardware so eingestellt werden, dass keine lateinischen Kleinbuchstaben, sondern die einheimischen Zeichen angezeigt werden.

Leider sind lateinische Kleinbuchstaben krakelig, wenn sie z. B. in kyrillischer Schrift angezeigt werden. Daher kann Natural mit dem Parameter `TS=ON` (Systemausgabe umsetzen) verwendet werden. `TS=ON` bewirkt, dass `SYS*`-Libraries (ohne die Library `SYSTEM`) und alle Natural-Systemkommandos mit Hilfe einer dritten Umsetzungstabelle namens `NTTABL` umgesetzt werden. Standardmäßig führt diese Umsetzungstabelle eine Umsetzung in Großbuchstaben für alle lateinischen Kleinbuchstaben durch. Allerdings werden nur Ausgabedaten auf diese Weise behandelt. Dies ermöglicht die Eingabe von Daten im nativen Zeichensatz auch in Natural-Editoren oder Systemanwendungen.

Werden jedoch Natural-Dienstprogramme (Utilities) verwendet, um Daten anzuzeigen, die im nativen Zeichensatz eingegeben wurden, führt dies zu einer Großbuchstabenumsetzung auch für Daten in z. B. kyrillischer Darstellung. Das Ergebnis wäre wiederum unleserlich. Daher können alle Dienstprogramme (Utilities) des Natural-Systems das Format `PM=C` für Felder verwenden, die Daten enthalten, die im nativen Zeichensatz eingegeben wurden. In diesem Fall wird weder die Umsetzungstabelle `NTTABL` noch die sekundäre Umsetzungstabelle `NTTAB1` verwendet. Die Daten werden einfach mit der primären Umsetzungstabelle `NTTAB` umgesetzt.

Weitere Informationen finden Sie unter den Profilparametern `PM` und `TS` in der Parameter-Referenz-Dokumentation.

## Umwandlung von Eingaben

Die Umsetzungsstabelle `NTUTAB1` ist vorhanden, um die Umsetzung von Klein- in Großbuchstaben zu steuern. Dies kann in Ländern, in denen Sonderzeichen verwendet werden, die nicht nach der einfachen Logik aufgebaut sind, dass nur ein Bit den Status dieses Buchstabens steuert, zu Problemen führen. Dies betrifft insbesondere deutsche Umlaute oder dänische Sonderzeichen. In solchen Fällen kann die Umsetzung nur durch eine Anpassung der `NTUTAB1`-Tabelle erreicht werden, in der für jedes Zeichen der entsprechende Klein-/Großbuchstabe angegeben werden kann.

Wenn Großbuchstabenumsetzung (`%U`) und `PM=C` angegeben ist, erfolgt zuerst die Großbuchstabenumsetzung (mit `NTUTAB1`) und dann die sekundäre Eingabeumsetzung (mit `NTTAB2`).

## Code-Umsetzung von DBCS-Daten

Damit Doppelbyte-Zeichensätze (DBCS) verarbeitet werden können, gibt es die Anwendungsprogrammierschnittstelle USR4213N, die Doppelbyte-Zeichen in lateinische Zeichen umsetzt, siehe Doppelbyte-Zeichensätze (DBCS).

## NTTZ - Zeitzonendefinitionen

Das Makro `NTTZ` wird verwendet, um eine Zeitzone und eine automatische Umstellung auf und von der Sommerzeit festzulegen.

Anmerkung
Zeitdefinitionen werden vom Systemadministrator festgelegt, und der Benutzer kann diese Definitionen mit dem Natural-Profilparameter `TD=zonename` referenzieren. Mit diesem Parameter können Benutzer aus verschiedenen Ländern und Zeitzonen ihre eigene Ortszeit wählen.

Das Makro `NTTZ` kann auf minimaler Basis verwendet werden, um eine Zeitdifferenz für eine Zeitzone zu definieren. Außerdem kann ein automatischer Wechsel zur und von der Sommerzeit angegeben werden, entweder als festes Datum oder in einer flexibleren Definition wie "erster Sonntag im April". Die automatische Umstellung auf die Sommerzeit erfolgt während einer laufenden Natural-Sitzung, ohne dass eine Benutzerinteraktion erforderlich ist. Vordefinierte Beispiele für `NTTZ`-Makrodefinitionen sind in dem ausgelieferten Modul `NATCONFG` verfügbar.

Bezugspunkt für die automatische Sommerzeitumstellung ist die aktuelle Maschinenzeit, also die UTC (GMT)-Zeit. Je nachdem, in welchem Zeitraum sich die aktuelle Maschinenzeit befindet, wird die aktuelle Ortszeit ermittelt. Die Unterstützung der automatischen Sommerzeitumstellung gilt derzeit für den Zeitraum von 2002 bis 2041.

Die folgenden Themen werden in diesem Abschnitt behandelt:

- NTTZ-Makro - Überlegungen und Beschränkungen

- Syntax des Makros NTTZ

- NTTZ-Makro-Parameter

- Beispiel für ein NTTZ-Makro

### NTTZ-Makro - Überlegungen und Beschränkungen

Folgende Überlegungen und Einschränkungen sind zu beachten:

1. #### Zeitformat

   Das grundlegende Zeitformat ist:

       +hh:mm:ss

   oder:

       -hh:mm:ss

   Gilt von `00:00:00` bis `23:59:59`. Auch Abkürzungen sind zulässig, zum Beispiel: hh:mm. Das Pluszeichen (+) wird standardmäßig angenommen, das Minuszeichen (-) kann bei den Parametern `TDON` oder `TDOFF` erforderlich sein.

2. #### UTC versus Ortszeit

   Um einen eindeutigen Bezugspunkt für die Zeitumstellung zu haben, werden die `NTTZ`-Makroparameter `SWTON` und `SWTOFF` in UTC-Zeit angegeben, während die Wochentagsnamen und die Tageszahlen in den `NTTZ`-Makroparametern `DSTON` und `DSTOFF` in Ortszeit angegeben werden.

3. #### Gleichzeitige Verwendung der Natural-Profilparameter DD, YD und TD

   Die Natural-Profil-Parameter `DD` und `YD` haben keinen Einfluss auf die automatische Sommerzeitumstellung, weil die Umstellung auf Basis der aktuellen Maschinenzeit erfolgt.

   It is recommended to avoid the concurrent use of `DD` or `YD` and profile parameter `TD=zonename`.

   Es wird empfohlen, die gleichzeitige Verwendung von `DD` oder `YD` und dem Profilparameter `TD=zonename` zu vermeiden.

4. #### Gleichzeitige Verwendung des Natural-Profilparameters TD und des User Exit CMCOTIME

   Concurrent use of profile parameter `TD=zonename` and user exit `CMCOTIME` (override machine time) is not recommended, because a change of machine time (TOD clock) may cause unpredictable results for automatic switching invoked with `TD=zonename`.

   Die gleichzeitige Verwendung des Profilparameters `TD=zonename` und des User Exit `CMCOTIME` (Maschinenzeit überschreiben) wird nicht empfohlen, da eine Änderung der Maschinenzeit (TOD Clock) zu unvorhersehbaren Ergebnissen bei der automatischen Umschaltung führen kann, die mit `TD=zonename` aufgerufen wird.

### Syntax des Makros NTTZ

Die Syntax des Makros `NTTZ` lautet wie folgt:

             NTTZ ZONE=value;                                              *
                   TDON=value,                                             *
                   TDOFF=value,                                            *
                   SWTON=value,                                            *
                   SWTOFF=value,                                           *
                   DSTONvalue,                                             *
                   DSTOFF=value

### NTTZ-Makro-Parameter

`ZONE` | `TDON` | `TDOFF` | `SWTON` | `SWTOFF` | `DSTON` | `DSTOFF`

> ZONE - Time Zone Name

>   `ZONE=value` gibt den Namen der Zeitzone an, auf die mit dem Parameter `TD` verwiesen werden kann. Die erste Vorkommen eines Namens wird ausgewählt.

>   Wert | Erläuterung
>   --- | ---
>   32 Zeichen. | Die maximale Länge eines Zeitzonennamens beträgt 32 Zeichen, um beschreibende benutzerdefinierte Zonennamen zu ermöglichen, z. B. den Namen der Hauptstadt eines Landes.

> TDON - Differenz der lokalen Sommerzeit zur UTC-Zeit

>   `TDON=value` gibt die Differenz der lokalen Sommerzeit zur UTC-Zeit (früher GMT) an.

>   Wert | Erläuterung
>   --- | ---
>   `+hh:mm:ss` or `-hh:mm:ss` | Siehe auch Zeitformat.

>   Anmerkungen:

>   1. Wenn nur der Parameter `TDON` definiert ist, erhält der Benutzer die Anzeige der Ortszeit als seine Zonenzeit, ohne automatische Umschaltung auf und von Sommerzeit.
>   2. Der Parameter `TDON` entspricht dem Parameter `SWTON`.
> TDOFF - Differenz der lokalen Zonenzeit zur UTC-Zeit

>   `TDOFF=value` gibt die Differenz der lokalen Zonenzeit zur UTC-Zeit (früher GMT) an.

>   Wert | Erläuterung
>   --- | ---
>   `+hh:mm:ss` or `-hh:mm:ss` | Siehe auch Zeitformat.

>   Anmerkung
>   Dieser Parameter entspricht dem Parameter `SWTOFF`.

> SWTON - Zeitpunkt des Beginns der Sommerzeit

>   `SWTON=value` gibt den UTC-Zeitpunkt an, an dem die Sommerzeit eingeschaltet wird.

>   Wert | Erläuterung
>   --- | ---
>   `hh:mm:ss` | Siehe auch Zeitformat.

> SWTOFF - Zeitpunkt des Endes der Sommerzeit

>   `SWTOFF=value` gibt den UTC-Zeitpunkt an, an dem die Sommerzeit ausgeschaltet wird.

>   Wert | Erläuterung
>   --- | ---
>   `hh:mm:ss` | Siehe auch Zeitformat.

> DSTON - Datum des Beginns der Sommerzeit

>   `DSTON=(value1,value2,value3,value4,day-number)` bezeichnet den Tag, an dem die Sommerzeit eingeschaltet wird.

>   Wert | Mögliche Einstellungen
>   --- | ---
>   `value1` | `FIRST`, `SECOND`, `THIRD`, `FOURTH` oder `LAST`.
>   `value2` | `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY` oder `SUNDAY`.
>   `value3` | `AFTER`, `BEFORE` oder `IN`.
>   `value4` | `JANUARY` ... `DECEMBER`.
>   `day-number` | Eine gültige Tageszahl für den jeweiligen Monat. Der Standardwert ist `1`.

>   Anmerkungen:

>   1. Das Schlüsselwort `LAST` erfordert das Schlüsselwort `BEFORE` oder `IN`.
>   2. Wenn das Schlüsselwort `IN` angegeben wird, darf keine Tageszahl (`day number`) angegeben werden.
> DSTOFF - Datum, an dem die Sommerzeit endet

>   `DSTOFF=(value1,value2,value3,value4,day-number)` bezeichnet den Tag, an dem die Sommerzeit abgeschaltet wird.

>   Wert | Mögliche Einstellungen
>   --- | ---
>   `value1` | `FIRST`, `SECOND`, `THIRD`, `FOURTH` oder `LAST`.
>   `value2` | `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY` oder `SUNDAY`.
>   `value3` | `AFTER`, `BEFORE` oder `IN`.
>   `value4` | `JANUARY` ... `DECEMBER`.
>   `day-number` | Eine gültige Tageszahl für den jeweiligen Monat. Der Standardwert ist `1`.

>   Anmerkungen:

>   1. Das Schlüsselwort `LAST` erfordert das Schlüsselwort `BEFORE` oder `IN`.
>   2. Wenn das Schlüsselwort `IN` angegeben wird, darf keine Tageszahl (`day number`) angegeben werden.

### Beispiel für ein NTTZ-Makro

Für die Sommerzeitumstellung in Westeuropa:

             NTTZ ZONE=MEZ,                                                *
                   TDON=2,                                                 *
                   TDOFF=+01:00:00,                                        *
                   SWTON=01:00:00,                                         *
                   SWTOFF=01:00:00,                                        *
                   DSTON=(LAST,SUNDAY,IN,MARCH),                           *
                   DSTOFF=(LAST,SUNDAY,IN,OCTOBER)

Zusätzliche Beispiele für andere Zeitzonen (Nord- und Südamerika, Asien usw.) sind in dem ausgelieferten Modul `NATCONFG` enthalten.

### On this page

- NATCONFG - Natural-Konfigurationstabellen
- Allgemeine Übersicht über die in NATCONFG verwendeten Makros
- NTDVCE - Terminal-Gerätespezifikationstabelle
- NTMSG - Definitionen der Meldungsprotokolltabelle
- NTSTAT - Definition der mit dem Natural-Nukleus verlinkten Objekte
- NTCPAGE - Definitionen der Codepages
- Unterstützung von Codepages
- Unterstützte Ausgabegeräte
- Umsetzungstabellen
- Umsetzung von Klein- in Großbuchstaben
- CMULT-Eintrag
- Umwandlung der Ausgabe
- Umwandlung von Eingaben
- Code-Umsetzung von DBCS-Daten
- NTTZ - Zeitzonendefinitionen