PCML-Datentypwerte für Sprachen und IBM i-Webkomponenten

Die Werte, die Sie für Datentypen im Assistenten für Webinteraktion oder im Assistenten für Programmaufruf auswählen, sind PCML-Werte (PCML = Program Call Markup Language). PCML stellt einen einheitlichen Weg zur Angabe von Werten oder Typen unabhängig von der verwendeten ILE- oder OPM-Sprache zur Verfügung. Zum Beispiel ist die Definition für eine ganze Zahl in RPG I und in C++ int. In PCML geben Sie eine ganze Zahl unabhängig von der verwendeten Sprache als int an. Der Assistent für Webinteraktion schreibt den PCML-Code, der mit Ihren ILE- und OPM-Objekten interagiert.

Im Assistenten für Webinteraktion oder für Programmaufruf müssen Sie die PCML-Datentypwerte eingeben, die den Datentypen Ihrer Sprache entsprechen. Die Tabelle unten zeigt die Datentypen der Sprache und ihre entsprechenden PCML-Werte. Soll z. B. eine fünfstellige ganze Zahl als einer der Parameter in Ihrem RPG-Programm verwendet werden, geben Sie in den Assistenten den Datentyp als int, die Länge als 2 und die Genauigkeit als 15 an.

Beachten Sie, dass die Bedeutung von Länge und Genauigkeit vom verwendeten Datentyp abhängig ist. Bei einer ganzen Zahl beispielsweise bezieht sich das Längenattribut auf die Anzahl Byte, die erforderlich sind, um einen Wert aufzunehmen; bei einem gepackten Wert bezieht sich die Länge auf die Anzahl Ziffern in der Zahl. In ähnlicher Weise bezieht sich bei int die Genauigkeit auf die Anzahl erforderlicher Bit für die Zahl (damit kann PCML bestimmen, ob es sich um einen Wert mit oder ohne Vorzeichen handelt). Bei einem gepackten Wert bezieht sich die Genauigkeit auf die Anzahl erforderlicher Dezimalstellen.

Bei der Angabe der Attribute für den Datentyp in IBM i-Webkomponenten können Sie Numerisch oder Zeichen als Datentyp auswählen. Bei numerischen Datentypen bezieht sich die Länge auf die Anzahl Ziffern und "Dezimal" bezieht sich auf die Anzahl Dezimalstellen. Eine Zahl wie beispielsweise 12345,67 hätte die Länge 7 und die Angabe 2 für "Dezimal". Bei Zeichendatentypen bezieht sich die Länge auf die Anzahl Zeichen. Gleitkommawerte in i-Webkomponenten haben den Datentyp Zeichen mit der Länge 14 bei einfacher Genauigkeit oder 23 bei doppelter Genauigkeit.

Klicken Sie auf die folgenden Links, um die Tabellen aufzurufen, in denen RPG-, C/C++- und COBOL-Datentypen PCML-Werten gleichgesetzt werden.

Tabelle 1. RPG-Datentypen und äquivalente PCML-Werte
Beschreibung des Datentyps RPG-Definition DB-Datentyp PCML-Werte im Assistenten für Webinteraktion und im Assistenten für Programmaufruf PCML-Werte in i-Webkomponenten (Attribute "Texteintrag" und "Bezeichnung")
Zeichen (feste Länge) A A

Zeichen
Länge  = Anzahl Byte
(1 Byte pro Zeichen)

Zeichen
Zeichen (variable Länge) A (variabel) VARLEN

Unterstützt im Assistenten für Programmaufruf.
Nicht unterstützt im Assistenten für Webinteraktion.

Nicht unterstützt
Bezugszahl/Anzeiger N

A
Länge 1

Zeichen
Länge = 1

Zeichen

Binär - 2 Byte (1-4)
Binär - 4 Byte (5-9)

B B Nicht unterstützt Nicht unterstützt
Gleitkomma - 4 Byte (einfache Genauigkeit) F F

float
Länge = 4 (Byte)

Zeichen
Länge = 14 Zeichen (4 Byte)
(z. B. 10E3)

Gleitkomma - 8 Byte (doppelte Genauigkeit) F

Bei Verwendung von 8 Byte
FLTPCN(*DOUBLE)

float
Länge = 8 (Byte)

Zeichen
Länge = 23 Zeichen (8 Byte)
(z. B. 10E3)

Ganze Zahl 1 Byte = 3 Ziffern I (0 Dezimalstellen verwenden) Keiner Nicht unterstützt Nicht unterstützt
Ganze Zahl - 2 Byte = 5 Ziffern I (0 Dezimalstellen verwenden) Keiner

Ganze Zahl
Länge = 2 (Byte)
Genauigkeit = 15 (Bit)

Numerisch
Editiercode/Editierwort unterstützt

Ganze Zahl - 4 Byte = 10 Ziffern I (0 Dezimalstellen verwenden) Keiner

Ganze Zahl
Länge = 4 (Byte)
Genauigkeit = 31 (Bit)

Numerisch
Editiercode/Editierwort unterstützt

Ganze Zahl - 8 Byte = 20 Ziffern I (0 Dezimalstellen verwenden) Keiner

Ganze Zahl
Länge = 8 (Byte)
Genauigkeit = 63 (Bit)

Numerisch
Editiercode/Editierwort unterstützt

Gepackt
Anzahl Ziffern
Anzahl Dezimalstellen

P P

Gepackt dezimal
Länge = Anzahl Ziffern
Genauigkeit = Anzahl Dezimalstellen

Numerisch
Editiercode/Editierwort unterstützt

Gezont dezimal
Anzahl Ziffern
Anzahl Dezimalstellen

S S

Gezont dezimal
Länge = Anzahl Ziffern
Genauigkeit = Anzahl Dezimalstellen

Numerisch
Editiercode/Editierwort unterstützt

Ohne Vorzeichen - 2 Byte = 5 Ziffern

U
(0 Dezimalstellen verwenden)

Keiner

Ganze Zahl
Länge = 2 (Byte)
Genauigkeit = 16 (Bit)

Numerisch
Editiercode/Editierwort unterstützt

Ohne Vorzeichen - 4 Byte = 10 Ziffern

U
(0 Dezimalstellen verwenden)

Keiner

Ganze Zahl
Länge = 4 (Byte)
Genauigkeit = 32 (Bit)

Numerisch
Editiercode/Editierwort unterstützt

Ohne Vorzeichen - 8 Byte = 20 Ziffern

U
(0 Dezimalstellen verwenden)

Keiner Nicht unterstützt Nicht unterstützt
Datum D L Nicht unterstützt Nicht unterstützt
Zeit T T Nicht unterstützt Nicht unterstützt
Zeitmarke Z Z Nicht unterstützt Nicht unterstützt
Grafik (fest) G G

Zeichen
Länge  = Anzahl Byte
(2 Byte pro Zeichen)

Nicht unterstützt
Grafik (variabel)

G
(variabel)

G
VARLEN

Nicht unterstützt Nicht unterstützt
Zeiger * Keiner Nicht unterstützt Nicht unterstützt
Prozedurzeiger

*
(ProcPTR)

Keiner Nicht unterstützt Nicht unterstützt
Datenstruktur mit Unterfeldern DS Keiner Struktur Nicht unterstützt
Tabelle 2. C/C++-Datentypen und äquivalente PCML-Werte
C++-Datentyp PCML-Datentyp Strukturdefinition Länge Genauigkeit Anzahl

char[n]
char*

char
char

-

n
n

- -
char char - 1 - -
wchar_t[n] char - n - -

_Packed struct
{short i,
char[n]}

struct

<struct> <Datenname="i" Typ="int" Länge="2"/>
<Datenname="text" Typ="char" Länge="n"/>
</struct>

- - -
short int int - 2 15 -
unsigned short int int - 2 16 -
int int - 4 31 -
unsigned int int - 4 32 -
long int int - 4 31 -
unsigned long int int - 4 32 -
long long int - 8 63 -
struct {unsigned int: n}x Nicht unterstützt - - - -
float float - 4 - -
double float - 8 - -
long double float  - 8 - -
enum Nicht unterstützt - - - -
_Decimal T<n,p> packed - n p -
union.element Nicht unterstützt - - - -
dataType[n] type - - -

n
(Anzahl = Größe der Feldgruppe)

struct oder class struct - - - -
pointer to function Nicht unterstützt - - - -
pointer Nicht unterstützt - - - -
Tabelle 3. COBOL-Datentypen und äquivalente PCML-Werte
COBOL-Datentyp COBOL-Format PCML-Datentyp Länge Genauigkeit Anzahl
Zeichen X(n) Zeichen n - -
  A(n) Zeichen n - -
  X(n) OCCURS DEPENDING ON m Struktur - - m
  A(n) OCCURS DEPENDING ON m Struktur - - m
Numerisch 9(n) DISPLAY Gezont dezimal n 0 -
  S9(n-p) V9(p) DISPLAY Gezont dezimal n p -
 

9(n-p) V9(p)
PACKED-DECIMAL

Siehe Anmerkung 3
Gepackt dezimal n p -
 

S9(n-p) V9(p)
PACKED-DECIMAL

Siehe Anmerkung 3
Gepackt dezimal n p -
 

9(4) BINARY

Siehe Anmerkung 1, 2
Ganze Zahl 2 16 -
 

S9(4) BINARY

Siehe Anmerkung 1, 2
Ganze Zahl 2 15 -
 

9(9) BINARY

Siehe Anmerkung 1, 2
Ganze Zahl 4 32 -
 

S9(9) BINARY

Siehe Anmerkung 1, 2
Ganze Zahl 4 31 -
 

9(18) BINARY

Siehe Anmerkung 1, 2
Ganze Zahl 8 63 -
 

S9(18) BINARY

Siehe Anmerkung 1, 2
Nicht unterstützt - - -
  9(31) BINARY Nicht unterstützt - - -
  S9(31) BINARY Nicht unterstützt - - -
  USAGE COMP-1 float 4 - -
  USAGE COMP-2 float 8 - -
UCS2

N(n)

Siehe Anm. 4
UCS-2/Grafik n - -
 

N(n) OCCURS DEPENDING ON m

Siehe Anm. 4
Struktur - - m
Grafik G(n) UCS-2/Grafik n - -
  G(n) OCCURS DEPENDING ON m Struktur - - m
Index USAGE INDEX Ganze Zahl 4 31 -
Boolesch 1 Nicht unterstützt - - -
Datum FORMAT DATE Nicht unterstützt - - -
Zeit FORMAT TIME Nicht unterstützt - - -
Zeitmarke FORMAT TIMESTAMP Nicht unterstützt - - -
Zeiger USAGE POINTER Nicht unterstützt - - -
Prozedurzeiger PROCEDURE - POINTER Nicht unterstützt - - -
Hinweise:
  1. Geben Sie NOSTDTRUNC in der Anweisung PROCESS an, um das Abschneiden zu reduzieren. NOSTDTRUNC sollte immer angegeben werden, wenn BINARY-Datenelemente übergeben werden.
  2. BINARY, COMP-4 und COMPUTATIONAL-4 sind äquivalent und werden derselben PCML zugeordnet.
  3. PACKED-DECIMAL, COMP-3, COMPUTATIONAL-3, COMP und COMPUTATIONAL sind äquivalent und werden derselben PCML zugeordnet, wenn PROCESS-Option COMPASBIN nicht angegeben wird. Weitere Informationen siehe Optionen der Anweisung PROCESS.
  4. PIC N ist ein länderspezifisches Element (UCS2), wenn USAGE NATIONAL angegeben wird oder wenn USAGE nicht angegeben wird und die Compileroption NATIONAL angegeben wird. Andernfalls wird USAGE DISPLAY-1(DBCS) impliziert.

Feedback