Valeurs de types de données PCML pour les langages et les composants Web IBM i.

Les valeurs de types de données que vous sélectionnez dans l'assistant d'interaction Web ou l'assistant d'appel de programme sont des valeurs PCML (Program Call Markup Language). PCML normalise la spécification des valeurs et des types, quel que soit le langage ILE ou OPM utilisé. Par exemple, la définition d'un nombre entier est I en RPG et int en C++. Dans PCML, vous indiquez un nombre entier sous la forme int quel que soit le langage utilisé. L'assistant d'interaction Web écrit le code PCML utilisé pour interagir avec vos objets ILE et OPM.

Dans l'assistant d'interaction Web ou l'assistant d'appel de programme, vous devez entrer les valeurs de types de données PCML correspondant aux types de données de votre langage. Les tableaux ci-dessous indiquent les types de données de langage et les valeurs PCML correspondantes. Par exemple, pour affecter à l'un des paramètres de votre programme RPG un nombre entier de 5 chiffres, entrez dans les assistants le type de données int, la longueur 2 et la précision 15.

N'oubliez pas que la signification de la longueur et de la précision dépend du type de données utilisées. Ainsi, pour un entier, l'attribut longueur fait référence au nombre d'octets nécessaires pour contenir une valeur, tandis que pour un condensé, il fait référence au nombre de chiffres qui composent le nombre. De même, pour un entier, précision fait référence au nombre d'octets requis pour le nombre (ce qui permet à PCML de déterminer s'il s'agit d'une valeur signée ou non signée). Pour un condensé, précision fait référence au nombre de positions décimales requises.

Lorsque vous spécifiez les attributs de type de données dans des composants Web IBM® i, vous pouvez choisir Numérique ou Caractère comme type de données. Pour les données de type numérique, longueur fait référence au nombre de chiffres, et décimal, au nombre de positions décimales requises. Par exemple, un nombre tel que 12345,67 aura 7 pour longueur et 2 pour décimale. Pour les données de type caractère, longueur fait référence au nombre de caractères. Dans les composants Web i, les variables flottantes sont des données de type Caractère de longeur 14 ou 23, correspondant respectivement à la précision simple et double.

Cliquez sur les liens ci-dessous pour afficher les tables associées aux types de données RPG, C/C++ et COBOL, avec des valeurs PCML.

Tableau 1. Types de données RPG et valeurs PCML équivalentes
Description du type de données Définition RPG Données de type base de données Valeurs PCML dans l'assistant d'interaction Web et dans l'assistant d'appel de programme Valeurs PCML dans les composants Web i (attributs Zone de saisie et Libellé)
Caractère  (longueur fixe) A A

caractère
longueur = nombre d'octets
(1 octet par caractère)

Caractère
Caractère (longueur variable) A (variant) VARLEN

Pris en charge par l'assistant d'appel de programme.
Non pris en charge par l'assistant d'interaction Web.

Non pris en charge
Indicateur N

A
longueur = 1

caractère
longueur = 1

Caractère

Binaire 2 octets (1-4)
Binaire 4 octets (5-9)

B B Non pris en charge Non pris en charge
Variable flottante 4 octets (simple précision) F F

variable flottante
longueur = 4 (octets)

Caractère
longueur= 14 caractères (4 octets)
(par ex., 10E3)

Variable flottante 8 octets (double précision) F

Pour utilisation 8 octets
FLTPCN(*DOUBLE)

variable flottante
longueur = 8 (octets)

Caractère
longueur = 23 caractères (8 octets)
(par ex., 10E3)

Entier 1 octet = 3 chiffres I (0 décimale) Aucune Non pris en charge Non pris en charge
Entier 2 octets = 5 chiffres I (0 décimale) Aucune

entier
longueur = 2 (octets)
précision = 15 (bits)

Numérique
editcode/editword pris en charge

Entier 4 octets = 10 chiffres I (0 décimale) Aucune

entier
longueur = 4 (octets)
précision = 31 (bits)

Numérique
editcode/editword pris en charge

Nombre entier 8 octets = 20 chiffres I (0 décimale) Aucune

entier
longueur = 8 (octets)
précision = 63 (bits)

Numérique
editcode/editword pris en charge

Décimale condensée
Nombre de chiffres
Nombre de positions décimales

P P

décimal condensé
longueur = nombre de chiffres
précision = nombre de positions décimales

Numérique
editcode/editword pris en charge

Décimal étendu
Nombre de chiffres
Nombre de positions décimales

S S

décimal étendu
longueur = nombre de chiffres
précision = nombre de positions décimales

Numérique
editcode/editword pris en charge

Non signé 2 octets = 5 chiffres

U
(0 décimale)

Aucune

entier
longueur = 2 (octets)
précision = 16 (bits)

Numérique
editcode/editword pris en charge

Non signé 4 octets = 10 chiffres

U
(0 décimale)

Aucune

entier
longueur = 4 (octets)
précision = 32 (bits)

Numérique
editcode/editword pris en charge

8 octets non signé = 20 chiffres

U
(0 décimale)

Aucune Non pris en charge Non pris en charge
Date D L Non pris en charge Non pris en charge
Heure T T Non pris en charge Non pris en charge
Horodatage Z Z Non pris en charge Non pris en charge
Graphique (format fixe) G G

caractère
longueur = nombre d'octets
(2 octets par caractère)

Non pris en charge
Graphique (format variable)

G
(variant)

G
VARLEN

Non pris en charge Non pris en charge
Pointeur * Aucune Non pris en charge Non pris en charge
Pointeur de procédure

*
(ProcPTR)

Aucune Non pris en charge Non pris en charge
Structure de données contenant des sous-zones DS Aucune structure Non pris en charge
Tableau 2. Types de données C/C++ et valeurs PCML équivalentes
Données de type C++ Données de type PCML Définition de structure Longueur Précision Nombre

char[n]
char*

char
char

-

n
n

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

_Packed struct
{short i,
char[n]}

struct

<struct>
<data name="i" type="int" length="2"/>
<data name="text" type="char" length="n"/>
</struct>

- - -
entier court ent - 2 15 -
entier court non signé ent - 2 16 -
ent ent - 4 31 -
entier non signé ent - 4 32 -
entier long ent - 4 31 -
entier long non signé ent - 4 32 -
long long ent - 8 63 -
struct {entier non signé : n}x Non pris en charge - - - -
variable flottante variable flottante - 4 - -
double variable flottante - 8 - -
long double variable flottante  - 8 - -
énumération Non pris en charge - - - -
_Décimal T<n,p> décimale condensée - n p -
union.element Non pris en charge - - - -
dataType[n] type - - -

n
(nombre = taille du tableau)

structure de classe struct - - - -
pointeur de fonction Non pris en charge - - - -
pointeur Non pris en charge - - - -
Tableau 3. Types de données COBOL et valeurs PCML équivalentes
Données de type COBOL Format COBOL Données de type PCML Longueur Précision Nombre
Caractère X(n) Caractère n - -
  A(n) Caractère n - -
  X(n) OCCURS DEPENDING ON m structure - - m
  A(n) OCCURS DEPENDING ON m structure - - m
Numérique 9(n) DISPLAY décimal étendu n 0 -
  S9(n-p) V9(p) DISPLAY décimal étendu n p -
 

9(n-p) V9(p)
DECIMALE-CONDENSEE

Voir remarque 3
décimal condensé n p -
 

S9(n-p) V9(p)
DECIMALE-CONDENSEE

Voir remarque 3
décimal condensé n p -
 

9(4) BINARY

Voir remarques 1, 2
entier 2 16 -
 

S9(4) BINARY

Voir remarques 1, 2
entier 2 15 -
 

9(9) BINARY

Voir remarques 1, 2
entier 4 32 -
 

S9(9) BINARY

Voir remarques 1, 2
entier 4 31 -
 

9(18) BINARY

Voir remarques 1, 2
entier 8 63 -
 

S9(18) BINARY

Voir remarques 1, 2
Non pris en charge - - -
  9(31) BINARY Non pris en charge - - -
  S9(31) BINARY Non pris en charge - - -
  USAGE COMP-1 variable flottante 4 - -
  USAGE COMP-2 variable flottante 8 - -
UCS2

N(n)

Voir remarque 4
UCS-2/graphique n - -
 

N(n) OCCURS DEPENDING ON m

Voir remarque 4
structure - - m
Graphique G(n) UCS-2/graphique n - -
  G(n) OCCURS DEPENDING ON m structure - - m
Index USAGE INDEX entier 4 31 -
Booléen 1 Non pris en charge - - -
Date FORMAT DATE Non pris en charge - - -
Heure FORMAT TIME Non pris en charge - - -
Horodatage FORMAT TIMESTAMP Non pris en charge - - -
Pointeur POINTEUR UTILISATION Non pris en charge - - -
Pointeur de procédure POINTEUR DE PROCEDURE Non pris en charge - - -
Remarques :
  1. Pour réduire la troncature, spécifiez NOSTDTRUNC sur l'instruction PROCESS. Spécifiez toujours NOSTDTRUNC lors de la transmission de données BINARY.
  2. BINARY, COMP-4 et COMPUTATIONAL-4 sont équivalents et mappent un même PCML.
  3. PACKED-DECIMAL, COMP-3, COMPUTATIONAL-3, COMP et COMPUTATIONAL sont équivalents et mappent un même PCML, sauf si l'option COMPASBIN PROCESS a été spécifiée. Reportez-vous aux options de l'instruction PROCESS pour plus d'informations.
  4. PIC N est une variable nationale (UCS2) si USAGE NATIONAL est spécifié ou si USAGE n'est pas spécifié et que l'option de compilateur NATIONAL l'est, sinon USAGE DISPLAY-1(DBCS) est sous-entendu.

Commentaires en retour