2 COBOL-Schnittstelle für Micro Focus Visual COBOL

Verfügbarkeit

IDM für Microsoft Windows ab IDM-Version A.06.01.d.

2.1 Unicode-Unterstützung

Die COBOL-Schnittstelle für Micro Focus Visual COBOL unterstützt Unicode als Zeichencodierung. Ein Unicode String wird hierbei von Micro Focus Visual COBOL als National Character dargestellt, wobei die Codierung der IDM-Codepage CP-utf16 entspricht. Innerhalb von Micro Focus Visual COBOL wird dies als PIC N NATIONAL repräsentiert.

2.1.1 Aktivierung von Unicode

Die Verwendung von Unicode wird durch Setzen der Anwendungscodepage aktiviert. Dies kann durch eine Startoption oder innerhalb der Anwendung mit der Funktion DMcob_Control geschehen:

...
WORKING-STORAGE SECTION.

01  ACTION  PIC 9(4) BINARY VALUE 0.
...

PROCEDURE DIVISION
...
    MOVE DMF-SetCodePage TO ACTION.
    MOVE CP-utf16 TO DM-options.
    CALL "DMcob_Control" USING DM-STDARGS NULL-OBJECT ACTION.
...

Hinweise

2.1.2 Erweiterung der Copy-Strecken

Die Copy Strecken sind so definiert, dass Texte wahlweise als Character oder als National Character abgelegt werden können. Hierbei bleibt der Name für den Character-Eintrag erhalten. Möchte man auf den National-Character-Eintrag zugreifen, muss dem Namen ein ‑u angehängt werden.

Character National Character (UTF-16)
DM-setsep          pic X.
DM-setsep-u          pic N national.
DM-getsep          pic X.
DM-getsep-u          pic N national.
DM-usercodepage    pic X(32).
DM-usercodepage-u    pic N(32) national.
DM-value-string    pic X(80).
DM-value-string-u    pic N(80) national.
DM-va-value-string pic X(80).
DM-va-value-string-u pic N(80) national.

Bei folgenden Strukturelementen des ValueRecords wird die Länge bzw. Größe als Anzahl der Zeichen, nicht der Bytes, angegeben:

Dasselbe gilt für alle anderen auf dem ValueRecord basierenden Strukturen.

Hinweis

Der IDM liest bzw. schreibt die entsprechenden Werte entsprechend der aktuell geltenden Anwendungscodepage.

2.1.3 Aufrufparameter von COBOL-Funktionen

Bei allen Texten kann wahlweise Character oder National Character verwendet werden. Der IDM interpretiert den Text entsprechend der aktuell geltenden Anwendungscodepage. Die Längenangabe bezieht sich auf die Anzahl der Zeichen, nicht der Bytes. Dies gilt sowohl für die IDM-Schnittstellenfunktionen als auch für die vom IDM aufgerufenen COBOL-Funktionen. Es ist wichtig, dass die aktuell verwendete Anwendungscodepage der Textdefinition entspricht.

2.1.4 Funktionen mit Records als Parametern

Für Funktionen mit Record-Objekten als Parametern wird von der Anwendung pidm mit der Startoption +writetrampolin eine Copy-Strecke erstellt. Um bestehende Anwendungen nicht zu beeinträchtigen, werden diese Copy-Strecken standardmäßig ohne Unterstützung für National Character erzeugt. Die Unterstützung dafür muss explizit angefordert werden, indem an Stelle der COBOL Compiler-Option -mfviscob die Option -mfviscob-u verwendet wird:

pidm mydlg.dlg –mfviscob-u +writetrampolin myappl_tr

Die erzeugte Copy-Strecke kann dann wahlweise Character oder National Character enthalten. Der IDM greift dann wieder entsprechend der aktuell eingestellten Anwendungscodepage zu.

2.2 Datentyp DT-anyvalue

Der Datentyp DT-anyvalue wird über den Zeiger-Datentyp (POINTER) von Micro Focus Visual COBOL unterstützt.

Siehe auch

Kapitel „Verwendung des Datentyps anyvalue“

2.3 Unterstützung von Sammlungen

Die Sammlungsdatentypen des IDM und die damit zusammenhängenden Funktionen für gemanagte (verwaltete) IDM-Werte (Managed DM-Values) werden über den Zeiger-Datentyp (POINTER) von Micro Focus Visual COBOL unterstützt.

DM-Datentyp

Visual-COBOL-Datentyp

hash

POINTER

list

POINTER

matrix

POINTER

refvec

POINTER

vector

POINTER

Ein Managed DM-Value wird als Zeiger an Micro Focus Visual COBOL übergeben:

01 ManagedValue pointer.
ENTRY "GetAnyValue" using DM-COMMON-DATA ManagedValue.

Um einen solchen Wert innerhalb der DM-Value-Struktur zu verwenden, wird der Wert nach DM-value-pointer kopiert und DM-datatype auf DT-anyvalue gesetzt.

MOVE DT-anyvalue TO DM-datatype.
MOVE ManagedValue To DM-value-pointer.

2.3.1 Datenfunktionen in COBOL

Mit der Unterstützung der Sammlungsdatentypen ist auch eine Implementierung von Datenfunktionen in COBOL möglich.

Siehe auch

Kapitel „Datenfunktionen“

Kapitel „Datenfunktions-Struktur DM-Datafunc-Data“

Funktion DMcob_DataChanged

2.3.2 Struktur DM-ValueIndex

Diese Struktur ermöglicht ein vollwertiges Index-Argument. Sie wird von den DMcob_Value* Funktionen der COBOL-Schnittstelle für Micro Focus Visual COBOL für die Verarbeitung der Sammlungsdatentypen genutzt. Die Struktur steht aber für alle unterstützten COBOL-Varianten zur Verfügung und ist nicht auf diese Anwendungsbereiche beschränkt. Sie ist identisch mit der Struktur DM-Value.

2.3.3 Funktionen für die Bearbeitung von Sammlungen