Entwicklungsumgebung

#### Search Results

Search

# Entwicklungsumgebung

Folgende Themen werden behandelt:

- Entwicklungsumgebung für Anwendungen

- Kundenspezifische Anpassung Ihrer Umgebung

- Editoren in der SPoD-Umgebung

- Codepage-Unterstützung bei Editoren, Systemkommandos und Utilities

- Codepage-Unterstützung bei Natural-Quellcode-Objekten

## Entwicklungsumgebung für Anwendungen

Der Natural Single Point of Development (SPoD) ist die Entwicklungsumgebung für Unicode-Anwendungen.

In einer SPoD-Umgebung können die Natural-Objekte, die auf einem Natural Development Server (NDV) liegen, mittels Natural Studio geändert werden. Falls vom Server unterstützt, werden die Quellcode-Objekte im Format UTF-8 zwischen Client und Server ausgetauscht.

Auf NDV-Servern werden die Objekte mit der Standard-Codepage oder mit ihrer Original-Zeichencodierung gespeichert. Dies ist abhängig von der Einstellung des Profilparameters `SRETAIN`.

## Kundenspezifische Anpassung Ihrer Umgebung

Wenn der Profilparameter `SRETAIN` auf `OFF` gesetzt ist, werden alle Quellcode-Objekte mit der Standard-Codepage gespeichert.

Bei dieser Einstellung ist Vorsicht geboten, weil sie zu inkorrekten Codepage-Informationen führen kann, wenn Sie Quellcode-Objekte haben, die mit einer früheren Natural-Version erstellt wurden. In diesem Fall ist die Zeichencodierungsinformation des Quellcode-Objekts nicht zugewiesen und das Quellcode-Objekt wird immer mit der Standard-Codepage (Wert der Systemvariablen `*CODEPAGE`) geöffnet. Dies wird oft funktionieren, selbst wenn die Standard-Codepage nicht die korrekte Zeichencodierung des Quellcode-Objekts ist. In diesem Fall werden manche sprachspezifischen Zeichen falsch angezeigt. Wenn ein solches Quellcode-Objekt mit der falschen Codepage geöffnet wird und wenn beim Speichern der Profilparameter `SRETAIN` auf `ON` gesetzt ist, dann wird für das Quellcode-Objekt keine Zeichensatzcodierung gespeichert; das Quellcode-Objekt kann später korrekt geöffnet werden, wenn Natural mit der korrekten Standard-Codepage gestartet wird. Wenn Sie jedoch einmal das Quellcode-Objekt mit `SRETAIN` auf `OFF` gespeichert haben, wird die Standard-Codepage als die Zeichencodierung des Quellcode-Objekts gespeichert; von da an wird das Quellcode-Objekt immer mit dieser Codepage geöffnet.

Deshalb sollten Sie diese Einstellung nur benutzen, wenn Sie sicher sind, dass alle Ihre Natural-Quellcode-Objekte in der Standard-Codepage kodiert sind.

## Editoren in der SPoD-Umgebung

Editoren, die in Natural for Windows sind vollständig Unicode-fähig. Über SPoD können Sie auch für Großrechner-Quellcode-Objekte benutzt werden. Die in Natural für Großrechner vorhandenen Editoren sind nicht Unicode-fähig.

Anmerkung
Die in Natural für Großrechner vorhandenen Editoren bieten Codepage-Unterstützung. Siehe Codepage-Unterstüzung bei Editoren, Systemkommandos und Utilities.

Wenn ein Quellcode-Objekt in einem Editor in Natural Studio (Natural for Windows) geöffnet wird, wird der Inhalt des Quellcode-Objekts von der entsprechenden Codepage nach Unicode umgewandelt, bevor es in den Editor geladen wird. Dadurch wird sichergestellt, dass alle Zeichen sogar dann korrekt angezeigt werden können, wenn das Quellcode-Objekt Zeichen enthält, die in der System-Codepage nicht enthalten sind. Falls die Umwandlung von der Codepage des Quellcode-Objekts nach Unicode fehlschlägt, wird ein Fehler angezeigt und der Editor wird nicht geöffnet. In diesem Fall muss der Benutzer die korrekte Zeichencodierung für das Quellcode-Objekt definieren. Die Quellcode-Objekt-Zeichencodierung (Encoding) kann im Dialogfenster Properties (Eigenschaften) geändert werden (siehe Properties for the Nodes in der Using Natural Studio-Dokumentation).

Mit dem Programm-Editor in Natural for Windows können Sie Textkonstanten in ihre hexadezimale Unicode-Darstellung umwandeln (siehe Converting to Hexadecimal Format im Kapitel Program Editor der Natural for Windows Editors-Dokumentation). Wenn Sie für eine Plattform entwickeln, auf der Quellcode-Objekte im Format UTF-8 nicht bevorzugt werden, können Sie so alle Zeichen für eine Unicode-Konstante eingeben, alle Zeichen der Konstanten auswählen, sie in hexadezimale Darstellung umwandeln und das Präfix "UH" für hexadezimale Unicode-Konstanten hinzufügen. Und wenn Sie den Mauszeiger eine Weile über ein Zeichen oder einen ausgewählten Zeichenbereich einer Textkonstante halten, wird in einem Tool-Tip-Fenster die entsprechende hexadezimale Unicode-Darstellung angezeigt.

## Codepage-Unterstützung bei Editoren, Systemkommandos und Utilities

Folgende Themen werden behandelt:

- Natural-Editoren

- Natural-Systemkommandos und Utilities

### Natural-Editoren

Der Programm-Editor, der Masken-Editor (Map Editor) und der Datenbereich-Editor (Data Area Editor) sind nicht Unicode-fähig. Stattdessen werden Quellcode-Objekte mit Codepage-Informationen gespeichert. Je nach Einstellung des Profilparameters `SRETAIN` können Natural-Quellcode-Objekte mit Codepage-Informationen automatisch von der aktuellen Codepage des Quellcode-Objekts in die Standard-Codepage der aktuellen Natural-Session (Wert der Systemvariablen `*CODEPAGE`) umgewandelt werden, wenn der Quellcode in den Editor geladen wird. Falls es Zeichen gibt, die nicht umgewandelt werden können, wird in einem Fenster ein Codepoint-Konvertierungsfehler angezeigt und die Angabe von Ersatzwerten für die nicht umwandelbaren Codepoints angefordert. Die Anzeige dieser Meldung ist unabhängig von der aktuellen Einstellung des Profilparameters `CPCVERR`. In diesem Fall kann sich der Benutzer entscheiden, den Editor mit oder ohne Umwandlung des Quellcodes in die Standard-Codepage zu öffnen. Beim Speichern (`SAVE`) oder Katalogisieren (Kompilieren) und Speichern (`STOW`) eines konvertierten Quellcodes wird die neue Codepage-Information gespeichert. Quellcodes ohne Codepage-Information (z.B. Quellcodes, die mit einer früheren Natural-Version gespeichert worden sind), werden ohne Umwandlung in die Editoren geladen. Entsprechend der Einstellung des Profilparameters `SRETAIN` wird die aktuelle Codepage-Information des Quellcodes beibehalten.

Das Einfügen von Quellcodes mittels des Kommandos `.I` oder der Split-Screen-Funktion (geteilter Bildschirm) bewirkt ebenfalls (falls nötig) eine Umwandlung von Quellcodes entsprechend der Einstellung des Profilparameters `SRETAIN`. Falls es Zeichen gibt, die nicht umgewandelt werden können, wird stattdessen das definierte Ersatzzeichen eingefügt.

Die Prüfung und Umwandlung des Quellcodes wird durchgeführt, wenn der Editor gestartet wird, nicht wenn das Programm in den Source-Bereich des Editors geladen wird. Falls ein Programm mit dem Kommando `RUN program-name` ausgeführt wird, erfolgt keine Umwandlung. Das verursacht ein unterschiedliches Verhalten, je nachdem ob das Kommando `RUN program-name` im `NEXT`-Bildschirm oder in einem Editor-Bildschirm eingegeben wird. Wird `RUN program-name` im `NEXT`-Bildschirm eingegeben, dann erfolgt keine Umwandlung. Wird das Kommando in einem Editor-Bildschirm eingegeben, wird der Editor unmittelbar nach der Ausführung des Programms gestartet und es wird eine Umwandlung durchgeführt.

Die folgende Tabelle zeigt, welche Codepage einer existierenden Natural Source zugewiesen wird, die gespeichert (`SAVE`) oder gespeichert und katalogisiert (`STOW`) wird, in Abhängigkeit von den Werten der Profilparameter `SRETAIN` und `CP`.

Original-Source-Codepage-Informationen | Einstellung von `SRETAIN` | Source-Codepage-Informationen nach `SAVE` oder `STOW`, wenn `CP` auf einen Wert ungleich `OFF` gesetzt ist | Source-Codepage-Informationen nach `SAVE` oder `STOW`, wenn `CP` auf `OFF` gesetzt ist
--- | --- | --- | ---
Source ohne Codepage-Informationen |
    SRETAIN=ON
    SRETAIN=(ON,EXCEPTNEW)
| Keine Codepage-Informationen | Keine Codepage-Informationen
Source ohne Codepage-Informationen |
    SRETAIN=OFF
| Codepage ergibt sich aus der Auswertung von `CP` | Keine Codepage-Informationen
Source ist kodiert in code page 1 |
    SRETAIN=ON
    SRETAIN=(ON,EXCEPTNEW)
| Original-Codepage (code page 1) | Original-Codepage (code page 1)
Source ist kodiert in code page 1 |
    SRETAIN=OFF
| Codepage ergibt sich aus der Auswertung von `CP` | Original-Codepage (code page 1)

Die folgende Tabelle zeigt, welche Codepage einer neuen Natural Source zugewiesen wird, die gespeichert (`SAVE`) oder gespeichert und katalogisiert (`STOW`) wird, in Abhängigkeit von den Profilparametern `SRETAIN` und `CP`.

Einstellung von `SRETAIN` | Source-Codepage-Informationen nach `SAVE` oder `STOW`, wenn `CP` auf einen Wert ungleich `OFF` gesetzt ist | Source-Codepage-Informationen nach `SAVE` oder `STOW`, wenn `CP` auf `OFF` gesetzt ist
--- | --- | ---
    SRETAIN=ON
| Codepage ergibt sich aus der Auswertung von `CP` | Keine Codepage-Informationen
    SRETAIN=OFF
| Codepage ergibt sich aus der Auswertung von `CP` | Keine Codepage-Informationen
    SRETAIN=(ON,EXCEPTNEW)
| Keine Codepage-Informationen | Keine Codepage-Informationen

### Natural-Systemkommandos und Utilities

#### Systemkommando LIST

Mit dem Systemkommando `LIST` wird Quellcode standardmäßig so angezeigt, wie er in der Systemdatei gespeichert ist, ohne Konvertierung.

Bei Auswahl der Option `CONVERTED` des `LIST`-Kommandos wird der Quellcode in die Standard-Codepage (Wert der Systemvariablen `*CODEPAGE`) umgesetzt, falls die Codepage-Informationen des Quellcodes verfügbar sind. Alle nicht konvertierbaren Zeichen werden dann durch das definierte Ersatzzeichen ersetzt.

#### Systemkommando LIST DIR

Das Systemkommando `LIST DIR` zeigt die Informationen der verwendeten Codepage eines Natural-Quellcodes in einem Directory-Fenster.

#### Systemkommando SCAN

Ähnlich wie die Editoren wandelt das Systemkommando `SCAN` die Quellcodes um, bevor die aktuelle Suche durch das `SCAN`-Kommando ausgeführt wird.

#### Object Handler (SYSOBJH Utility)

Der Object Handler entlädt oder lädt Quellcodes mit unterschiedlichen Codepage-Informationen und bewahrt die Original-Codepage-Informationen.

Nach Auswahl der Transfer-Format-Option UTF-8 werden Quellcodes beim Entladen aus einer beliebigen Codepage in das Format UTF-8 umgewandelt und Informationen über die Original-Codepage in der Arbeitsdatei gespeichert. Die entsprechende Ladefunktion wandelt den Quellcode zurück in die Original-Codepage (falls angegeben). Diese Option ermöglicht es auch, Codepage-Informationen für Quellcodes beizugeben, die mit früheren Natural-Versionen gespeichert (`SAVE`) oder gespeichert und katalogisiert (`STOW`) worden sind und deshalb keinerlei Codepage-Informationen enthalten.

Lade- und Entlade-Quellcodes in internem Format behalten die Codepage-Informationen (falls vorhanden).

#### Utility SYSCP

Die Utility `SYSCP` (siehe in der Debugger und Dienstprogramme (Utilities)-Dokumentation) kann benutzt werden, um Informationen zu Codepages zu erhalten und die Codepage-Zuweisung eines Quellcodes zu prüfen oder zu ändern.

## Codepage-Unterstützung bei Natural-Quellcode-Objekten

Der Natural-Compiler, die Editoren und die Natural-Systemdatei unterstützen keinen Objekt-Quellcode, der in Unicode kodiert ist. Unicode-Konstanten, die in einem Objekt-Quellcode kodiert sind, werden in der Standard-Codepage gespeichert und das katalogisierte Objekt enthält die Unicode-Codepoints. Die einzige Möglichkeit, Unicode-Konstanten zu definieren, die kein Äquivalent in der Standard-Codepage haben, besteht darin, hexadezimale Definitionen (UH) zu benutzen.

Da Natural-Quellcodes vor dem Speichern nicht in Unicode oder UTF-8 umgesetzt werden, können Sie noch von früheren Natural-Versionen gelesen werden. Codepage-Informationen werden im Kopfdatenbereich des Quellcodes gespeichert. Die Codepage-Informationen im Kopfdatenbereich werden einfach ignoriert, wenn auf einen Quellcode mit einer Natural-Version zugegriffen wird, die nicht Unicode-fähig ist.

- Programme, Datenbereiche (Data Areas) und Masken (Maps)

- Datendefinitionsmodule (DDMs)

- Fehlermeldungen

- Hilfetexte

### Programme, Datenbereiche (Data Areas) und Masken (Maps)

Der Quellcode dieser Objekte wird nicht im Unicode-Format, sondern in der Standard-Codepage der aktuellen Natural-Session gespeichert. Der Name der Codepage wird im Verzeichnis (Directory) des Quellcode-Objekts gespeichert. Deshalb bleibt die Größe des Quellcode-Objekts im Vergleich zu früheren Natural-Versionen unverändert. Es erfolgt jedoch eine Prüfung durch den Editor, ob die Codepage des Quellcodes gleich der Standard-Codepage der Natural-Session ist. Falls die Codepages verschieden sind, wird der Quellcode in die Standard-Codepage umgewandelt, wobei es zu Umsetzungsfehlern kommen kann. Wenn ein Zeichen im Quellcode nicht in der Standard-Codepage abgebildet ist, erscheint im Editor ein Fenster, das die manuelle Umwandlung der bei der Umsetzung fehlgeschlagenen Zeichen ermöglicht. Beispiel: Ein Programm, das mit der Codepage IBM01140 erstellt wurde, enthält folgende Zeile:

    WRITE '100 €'

Wenn das Programm erneut bearbeitet wird, während Natural mit der Codepage IBM037 läuft, tritt ein Umwandlungsfehler auf, weil das Zeichen "€" in der Codepage IBM037 nicht abgebildet ist.

Zu beachten ist, dass die Umwandlung erfolgt, wenn der Editor gestartet wird, und nicht wenn der Quellcode geladen wird.

### Datendefinitionsmodule (DDMs)

Datendefinitionsmodule (DDMs) werden nicht in Unicode-Format, sondern in der Standard-Codepage der aktuellen Nautural-Session gespeichert. Der Name der Codepage wird im Verzeichnis (Directory) des Datendefinitionsmoduls gespeichert. Zu beachten ist, dass es in der Systemdatei kein Datendefinitionsmodul gibt. Im Vergleich zu früheren Natural-Version ist das Datendefinitionsmodul etwas größer. Beim Lesen eines Datendefinitionsmoduls erfolgt eine Prüfung durch den Editor, ob die Codepage des Datendefinitionsmoduls gleich der Standard-Codepage der Natural-Session ist. Falls die Codepages verschieden sind, wird das Datendefinitionsmodul in die Standard-Codepage umgewandelt, wobei es zu Umsetzungsfehlern kommen kann. Wenn ein Zeichen im Datendefinitionsmodul nicht in der Standard-Codepage abgebildet ist, erscheint im Editor ein Fenster, das die manuelle Konvertierung der bei der Umsetzung fehlgeschlagenen Zeichen ermöglicht. Beispiel: Ein Datendefinitionsmodul, das mit der Codepage IBM01140 erstellt wurde, enthält folgende Zeile:

    * 100 €

Wenn das Datendefinitionsmodul erneut bearbeitet wird, während Natural mit der Codepage IBM037 läuft, tritt ein Umwandlungsfehler auf, weil das Zeichen "€" in der Codepage IBM037 nicht abgebildet ist.

### Fehlermeldungen

Natural-Fehlermeldungen werden nicht in Unicode-Format, sondern in der Standard-Codepage der aktuellen Natural-Session gespeichert. Der Name der Codepage wird in einem zusätzlichen Adabas-Feld in der Systemdatei gespeichert. Die Utility `SYSERR` bietet die Möglichkeit, zu prüfen, ob die Codepage der Fehlermeldung gleich der Standard-Codepage der Natural-Session ist. Falls die Codepages verschieden sind, wird die Fehlermeldung in die Standard-Codepage umgewandelt. Umsetzungsfehler werden ignoriert. Das bedeutet, es wird das Ersatzzeichen (oder, falls definiert, das Platzhalterzeichen) verwendet.

### Hilfetexte

Hilfetexte werden immer in der Codepage IBM01140 (English) gepflegt. Es wird keine Codepage-Definition mit gespeichert. Falls die Standard-Codepage nicht IBM01140 ist, wird der Hilfe-Text in die Standard-Codepage umgesetzt. Umsetzungsfehler werden ignoriert. Es wird das Ersatzzeichen (oder, falls definiert, das Platzhalterzeichen) verwendet.

### On this page

- Entwicklungsumgebung für Anwendungen
- Kundenspezifische Anpassung Ihrer Umgebung
- Editoren in der SPoD-Umgebung
- Codepage-Unterstützung bei Editoren, Systemkommandos und Utilities
- Codepage-Unterstützung bei Natural-Quellcode-Objekten