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.
| 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 |
Zeichen |
| Zeichen (variable Länge) | A (variabel) | VARLEN | Unterstützt im Assistenten für Programmaufruf. |
Nicht unterstützt |
| Bezugszahl/Anzeiger | N | A |
Zeichen |
Zeichen |
Binär - 2 Byte (1-4) |
B | B | Nicht unterstützt | Nicht unterstützt |
| Gleitkomma - 4 Byte (einfache Genauigkeit) | F | F | float |
Zeichen |
| Gleitkomma - 8 Byte (doppelte Genauigkeit) | F | Bei Verwendung von 8 Byte |
float |
Zeichen |
| 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 |
Numerisch |
| Ganze Zahl - 4 Byte = 10 Ziffern | I (0 Dezimalstellen verwenden) | Keiner | Ganze Zahl |
Numerisch |
| Ganze Zahl - 8 Byte = 20 Ziffern | I (0 Dezimalstellen verwenden) | Keiner | Ganze Zahl |
Numerisch |
Gepackt |
P | P | Gepackt dezimal |
Numerisch |
Gezont dezimal |
S | S | Gezont dezimal |
Numerisch |
| Ohne Vorzeichen - 2 Byte = 5 Ziffern | U |
Keiner | Ganze Zahl |
Numerisch |
| Ohne Vorzeichen - 4 Byte = 10 Ziffern | U |
Keiner | Ganze Zahl |
Numerisch |
| Ohne Vorzeichen - 8 Byte = 20 Ziffern | U |
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 |
Nicht unterstützt |
| Grafik (variabel) | G |
G |
Nicht unterstützt | Nicht unterstützt |
| Zeiger | * | Keiner | Nicht unterstützt | Nicht unterstützt |
| Prozedurzeiger | * |
Keiner | Nicht unterstützt | Nicht unterstützt |
| Datenstruktur mit Unterfeldern | DS | Keiner | Struktur | Nicht unterstützt |
| C++-Datentyp | PCML-Datentyp | Strukturdefinition | Länge | Genauigkeit | Anzahl |
|---|---|---|---|---|---|
char[n] |
char |
- | n |
- | - |
| char | char | - | 1 | - | - |
| wchar_t[n] | char | - | n | - | - |
_Packed struct |
struct | <struct> <Datenname="i" Typ="int" Länge="2"/> |
- | - | - |
| 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 |
| struct oder class | struct | - | - | - | - |
| pointer to function | Nicht unterstützt | - | - | - | - |
| pointer | Nicht unterstützt | - | - | - | - |
| 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) |
Gepackt dezimal | n | p | - | |
S9(n-p) V9(p) |
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 | - | - | - |