IBM FileNet P8, Version 5.2.1            

Fonctions de conversion de type de données

Cette section contient de brèves descriptions des fonctions qui convertissent les expressions d'un type de données dans un autre.

Tableau 1. Tableau des fonctions qui convertissent un type de données dans un autre
Fonction Action
convert Convertit une expression d'un type de données pris en charge vers un autre type de données.
numbertostring Convertit une expression de valeur entière ou de valeur flottante en une expression de chaîne avec un masque spécifié.
stringtotime Convertit une expression de chaîne en expression de temps avec un masque spécifié.
timetostring Convertit une expression de temps en expression de chaîne avec un masque spécifié.
is_valid Indique si l'expression spécifiée est une valeur valide qui peut être convertie dans le type de données simple spécifié.

convert

Cette fonction convertit une expression d'un type de données pris en charge vers un autre. Utilisez la syntaxe suivante :
convert (source_expr, type_name)
où :
Tableau 2. Paramètres et description de la fonction convert
Paramètre Description
source_expr Expression utilisant n'importe lequel des types de données pris en charge. Cette expression est convertie dans le type de données indiqué dans type_name.
type_name

Indique le type de données vers lequel est convertie l'expression indiquée par source_expr. Les entrées valides sont float, float[ ], integer, integer[ ], string, string[], Boolean, Boolean[ ], time et time[ ].

Notez que si type_name est suivi de crochets ([ ]), source_expr doit être un tableau. Chaque élément du tableau est converti dans le type de données indiqué par type_name par les règles qui s'appliquent au type de données simple.

Les résultats de la fonction convert varient selon les types de données des variables source_exp et type_name.

Remarque : Notez que l'utilisation de la fonction convert avec certaines combinaisons de types de données peut générer des erreurs de syntaxe. Par exemple, il est illogique de convertir de données d'heure en données booléennes. Une erreur de syntaxe se produira dans ce cas. Utilisez la fonction is_valid pour vérifier le type d'une expression avant d'utiliser cette expression dans une fonction convert.

Conversion d'une valeur booléenne

Si l'expression source_expr est de type booléen, les résultats de la fonction convert se présentent comme suit :

Tableau 3. Résultats de la fonction convert lorsque le type de données est Booléen
Conversion du type booléen vers... Résultats
booléen Pas de modification
flottant Si l'expression booléenne renvoie true, le résultat est 1. Dans le cas contraire, le résultat est 0.
entier Si l'expression booléenne renvoie true, le résultat est 1. Dans le cas contraire, le résultat est 0.
chaîne Si l'expression booléenne renvoie true, le résultat est "true". Dans le cas contraire, le résultat est "false".
temporel Erreur de syntaxe

Conversion d'une valeur flottante

Si l'expression source_expr est de type flottant, les résultats de la fonction convert se présentent comme suit :

Tableau 4. Résultats de la fonction convert lorsque le type de données est Flottant
Conversion du type flottant vers... Résultats
booléen

Si source_expr = 0, le résultat est false. Si source_expr = 1, le résultat est true.

Si source_expr <> 0 ou 1, une erreur de syntaxe se produit.

flottant Pas de modification
entier Convertit la partie entière de source_expr (tronque tous les chiffres situés à droite du séparateur décimal). Une erreur se produit si le résultat sort de l'intervalle d'entiers admis.
chaîne Génère une chaîne de caractères numériques représentant la valeur flottante.
temporel

Utilise la partie entière de source_expr pour identifier le nombre de secondes à ajouter à 1/1/1970 00:00:00 UTC (Coordinated Universal Time) et renvoie la nouvelle heure.

Le temps UTC (Coordinated Universal Time) était autrefois appelé Heure GMT (Greenwich Mean Time). UTC est le fuseau horaire de référence mondiale standard.

Par exemple, l'expression convert (5.3, time) renvoie 1/1/1970 00:00:05.

Conversion à partir d'un entier

Si source_expr est de type entier, la fonction convert donne les résultats suivants :
Tableau 5. Résultats de la fonction convert lorsque le type de données est Entier
Convertir d'entier vers... Résultats
booléen

Si source_expr = 0, le résultat est false. Si source_expr = 1, le résultat est true.

Si source_expr <> 0 ou 1, une erreur de syntaxe se produit.

flottant Donne la valeur flottante équivalente.
entier Pas de modification
chaîne Donne une chaîne de caractères numériques représentant l'entier.
temporel

Utilise source_expr pour identifier le nombre de secondes à ajouter à 1/1/1970 00:00:00 UTC (Coordinated Universal Time) et renvoie la nouvelle heure.

Par exemple, l'expression convert (5, time) renvoie 1/1/1970 00:00:05.

Conversion à partir d'une chaîne

Si l'expression source_expr est de type chaîne, les résultats de la fonction convert se présentent comme suit :

Tableau 6. Résultats de la fonction convert lorsque le type de données est Chaîne
Conversion du type chaîne vers... Résultats
booléen Erreur de syntaxe, sauf si source_expr = "true" ou que source_expr = "false". (Toutes les combinaisons de majuscules et minuscules sont acceptables.)
flottant Erreur de syntaxe, sauf si source_expr est une représentation valide d'une valeur flottante.
entier Erreur de syntaxe, sauf si source_expr est une représentation valide d'une valeur entière.
chaîne Pas de modification
temporel

Erreur de syntaxe, même si source_expr est une représentation valide d'une valeur temporelle et utilise le format spécifié dans le masque date/heure du système de flux de travaux.

Conversion d'une valeur de temps

Si source_expr contient une valeur temporelle, la fonction convert donne les résultats suivants :

Tableau 7. Résultats de la fonction convert lorsque le type de données est Temporel
Conversion du type temps vers... Résultats
booléen Erreur de syntaxe
flottant

Renvoie le nombre de secondes d'écart entre l'heure système courante et l'horodatage 1/1/1970 00:00:00 UTC (Coordinated Universal Time).

Par exemple, si SysTime = 1/1/1970 00:00:28 UTC, convert (SysTime, float) renvoie la valeur 28.

Si l'heure système courante est réglée sur un autre fuseau horaire que UTC, la fonction convert fait l'ajustement nécessaire. Par exemple, il existe un écart de 8 heures entre l'heure PST (Heure standard du Pacifique) et l'heure UTC (Temps Universel Coordonné) ; si SysTime = 1/1/1970 00:00:28 PST et que le fuseau horaire local est l'heure PST, l'expression convert(SysTime, float) renvoie la valeur 28828.0.

8(hours) * 60(minutes) *60(seconds) + 28(seconds)

entier

Renvoie le nombre de secondes d'écart entre l'heure système courante et l'horodatage 1/1/1970 00:00:00 UTC (Coordinated Universal Time).

Par exemple, si SysTime = 1/1/1970 00:00:28 UTC, convert (SysTime, integer) renvoie la valeur 28.

Si l'heure système courante est réglée sur un autre fuseau horaire que UTC, la fonction convert fait l'ajustement nécessaire. Par exemple, il existe un écart de 8 heures entre l'heure PST et l'heure UTC ; Si SysTime = 1/1/1970 00:00:28 PST et que le fuseau horaire local est l'heure PST, l'expression convert(SysTime, integer) renvoie la valeur 28828.

8(hours) * 60(minutes) *60(seconds) + 28(seconds)

chaîne

Renvoie une chaîne représentant source_expr. Notez que cette chaîne utilise le format spécifié dans le masque de date/heure défini pour le système de flux de travaux.

temporel Pas de changement

numbertostring

Cette fonction convertit une expression flottante ou entière en une expression de chaîne avec un format spécifié. Utilisez cette fonction pour afficher un nombre dans un certain format (par exemple, $1,000,000). Vous pouvez également utiliser la fonction numbertostring pour arrondir des nombres.

Utilisez la syntaxe suivante :
numbertostring (num_exp{, num_mask}opt)
où :
Paramètre Description
num_exp Expression de type flottant ou entier.
num_mask

Masque numérique qui détermine le format de sortie de la fonction numbertostring.

Si vous n'indiquez pas de masque numérique, la fonction numbertostring est équivalente à la fonction convert.

Masque numérique

Un masque numérique est un modèle utilisé pour mettre en forme le résultat de la fonction numbertostring. Un masque numérique est une expression de chaîne qui contient une combinaison valide de composants.

Composant Signification
+ (plus)

S'il est inséré comme premier ou dernier composant du masque, affiche le signe du nombre.

Quand il occupe une autre position que la première ou la dernière, le signe plus est inséré dans la chaîne de sortie exactement là où il figure dans le masque. Par exemple :

numbertostring (12345, "###+##")

produit le résultat 123+45

- (moins)

S'il est inséré comme premier ou dernier composant du masque, affiche un signe moins si le nombre est négatif ou affiche un espace si le nombre est positif.

Quand il occupe une autre position que la première ou la dernière, le signe moins est inséré dans la chaîne de sortie exactement là où il figure dans le masque. Par exemple :

numbertostring (123456789, "###-##-####")

produit le résultat 123-45-6789

# (signe dièse) Affiche un chiffre s'il est significatif. Quand le masque contient plus de signes # qu'il n'existe de chiffres significatifs, les signes # les plus à droite reçoivent des chiffres en premier et les signes # surnuméraires sont remplis avec des blancs.
0 (zéro) Affiche un chiffre, qu'il soit significatif ou pas. Cela peut donner des zéros de fin ou en tête.
. (point décimal) Détermine l'emplacement du séparateur décimal (point). En l'absence d'indication, le séparateur décimal est réputé se trouver à l'extrémité droite du masque. Le nombre est arrondi pour tenir dans le format du masque. Il n'est admis qu'un seul séparateur décimal dans un masque.

Exemples de masques numériques

Voici les résultats obtenus quand la fonction numbertostring convertit les nombres suivants : 0, +29, -3344 et 77.88369. Le résultat est mis en forme avec les masques numériques indiqués.

Remarque : Si le masque est trop petit pour le nombre, une erreur se produit. Le masque est trop petit quand il y a trop peu de signes # ou de zéros (0) à gauche du séparateur décimal. Par exemple, le masque ## n'est pas adapté pour le nombre 300.
Masque 0 +29 -3344 77.88369
0000 0000 0029 3344 0078
####   29 3344 78
$#,### $ $29 $3,344 $78
+#### + +29 -3344 +78
-####   29 -3344 78
####+ + 29+ 3344- 78+
####- 29 3344- 78
##.## . 29. Erreur d'exécution 77.88

Arrondissement des nombres

Pour arrondir un nombre, utilisez la fonction numbertostring avec un masque numérique approprié. Chaque nombre est arrondi de manière que la dernière position du masque soit occupée. Dans l'exemple suivant, la fonction arrondit un nombre au millième. Dans l'exemple, Number1 est le nom d'une expression flottante.
numbertostring (Number1, "#,###.###")
Si Number1 = 3344.7788, le résultat est :
3,344.779

is_valid

Cette fonction détermine si l'expression spécifiée est une valeur valide qui peut être convertie dans le type de données simple spécifié. Cette fonction renvoie la valeur booléenne true si l'expression est valide. Elle renvoie false dans le cas contraire. Il peut être utile de vérifier le type d'une expression par la fonction is_valid avant d'utiliser cette expression dans une fonction convert. Utilisez la syntaxe suivante :
is_valid (expr, type)
où :
Tableau 8. Paramètres et description de la fonction is_valid
Paramètre Description
expr Toute expression.
type Type de données simple (booléen, flottant, entier, chaîne, temps)
Voici deux exemples d'utilisation d'une expression de chaîne. Dans ces exemples, la fonction renvoie d'abord true puis false. Dans le premier exemple, str = "true".
is_valid (str, Boolean)
is_valid ("1.2.3", float)
Dans l'exemple ci-dessous, la fonction vérifie si l'expression flottante est valide pour une conversion vers le type entier. Elle renvoie false car la valeur flottante sort de l'intervalle des valeurs entières valides.
is_valid (1e20, integer)


Last updated: March 2016
bpfe005.htm

© Copyright IBM Corp. 2016.