Fonctions de conversion

Les fonctions de conversion transforment des valeurs d’un type de données vers un autre. Ces fonctions sont essentielles pour garantir la compatibilité des données lors de la combinaison de différents types de données dans des expressions, ou lors de la préparation de données pour des formats de sortie spécifiques.

Fonction AsBoolean

La fonction AsBoolean convertit une expression en valeur booléenne (True ou False). Cette fonction est utile pour évaluer des conditions, vérifier des valeurs vides ou convertir des valeurs numériques et de chaînes en valeurs logiques.

Cette fonction renvoie un type de données Boolean.

Syntaxe

AsBoolean(expression)

Paramètre

Description

expression

Obligatoire. La valeur à convertir en booléen. Peut être de n’importe quel type de données (nombre, chaîne, date ou null).

Règles de conversion

Type d’entrée

Règle de conversion

Null

Renvoie False

Number

Renvoie False si la valeur est 0 ; sinon renvoie True

String

Renvoie False si la chaîne est vide ("") ; sinon renvoie True

Date

Renvoie toujours True (toute date valide est considérée comme vraie)

Boolean

Renvoie la valeur inchangée

Exemples

  1. Convertir des valeurs numériques en booléen :

    AsBoolean(1)

    Résultat : True

    AsBoolean(0)

    Résultat : False

    AsBoolean(-5)

    Résultat : True

  2. Convertir des valeurs de chaînes en booléen :

    AsBoolean("Hello")

    Résultat : True

    AsBoolean("")

    Résultat : False

  3. Vérifier si un champ de destinataire contient une valeur. Supposons que le champ MiddleName puisse être vide pour certains destinataires :

    AsBoolean(|->[MiddleName])

    Si MiddleName = "Robert"

    Résultat : True

    Si MiddleName = ""

    Résultat : False

  4. Utiliser dans une expression conditionnelle pour vérifier des données valides :

    If (AsBoolean(|->[PhoneNumber])) {"Contact available"} else {"No contact info"}

    Si PhoneNumber = "555-1234"

    Résultat : "Contact available"

    Si PhoneNumber = ""

    Résultat : "No contact info"

Fonction AsDate

La fonction AsDate convertit une expression en valeur de type Date. Cette fonction interprète les chaînes comme des dates, convertit les nombres en dates selon un système de date sérielle et gère les valeurs nulles en renvoyant la date et l’heure courantes.

Cette fonction renvoie un type de données Date.

Syntaxe

AsDate(expression)

Paramètre

Description

expression

Obligatoire. La valeur à convertir en date. Peut être une chaîne, un nombre ou null.

Règles de conversion

Type d’entrée

Règle de conversion

Null

Renvoie la date et l’heure courantes

Number

Interprète le nombre comme le nombre de jours à partir du 31 décembre 1899. Par exemple, 1 = 1er janvier 1900.

String

Analyse la chaîne comme une date en utilisant les formats de date standard

Date

Renvoie la valeur inchangée

Exemples

  1. Convertir une chaîne de date en valeur Date :

    AsDate("02/07/2006")

    Résultat : 02/07/2006 (2 juillet 2006 ou 7 février 2006 selon les paramètres régionaux)

  2. Convertir une chaîne de date avec un format différent :

    AsDate("23/02/1994")

    Résultat : 23/02/1994 (23 février 1994)

  3. Convertir un nombre en date. Les nombres représentent les jours depuis le 31 décembre 1899 :

    AsDate(1)

    Résultat : 01/01/1900 (1er janvier 1900)

    AsDate(44197)

    Résultat : 01/01/2021 (1er janvier 2021)

  4. Gérer les valeurs nulles (renvoie la date courante) :

    AsDate(Null)

    Résultat : [Date et heure courantes]

  5. Convertir un champ de date d’un destinataire stocké sous forme de texte. Supposons que BirthDateText contient la chaîne "15/03/1985" :

    AsDate(|->[BirthDateText])

    Résultat : #15/03/1985#

  6. Convertir un champ de date d’un destinataire stocké sous forme de texte et utiliser la fonction FormatDate() pour formater la chaîne de date comme souhaité. Supposons à nouveau que BirthDateText est "15/03/1985" :

    FormatDate(AsDate(|->[BirthDateText]), "MMMM dd, yyyy")

    Résultat : March 15, 1985

  7. Calculer l’âge à partir d’une chaîne de date de naissance :

    Floor(Age(AsDate(|->[BirthDateText])))

    Si BirthDateText = "15/03/1985" et l’année en cours est 2024 :

    Résultat : 39 (ou 38, selon que l’anniversaire est déjà passé cette année)

Remarque : L’analyse des chaînes de date dépend des paramètres régionaux du système. Assurez-vous que vos chaînes de date correspondent au format attendu pour votre environnement. Pour des résultats prévisibles, utilisez le format ISO (AAAA-MM-JJ) lorsque possible.

Fonction AsJsonArray

La fonction AsJsonArray prend plusieurs expressions séparées par des virgules et renvoie un tableau JSON contenant leurs valeurs. Cette fonction est utile pour transmettre plusieurs valeurs à d’autres fonctions, créer des données structurées pour des services web ou construire du contenu dynamique nécessitant un formatage en tableau.

Cette fonction renvoie un type de données String (formaté comme un tableau JSON).

Syntaxe

AsJsonArray(expression1, expression2, ...)

Paramètre

Description

expression1, expression2, ...

Obligatoire. Une ou plusieurs expressions à inclure dans le tableau JSON. Peut être de n’importe quel type de données, y compris des références de champs, des littéraux et des valeurs calculées.

Comportement

  • Les valeurs de chaînes sont encadrées par des guillemets doubles dans la sortie

  • Les valeurs numériques apparaissent sans guillemets

  • Les valeurs booléennes apparaissent comme true ou false (minuscules)

  • Les valeurs nulles apparaissent comme null

  • Les expressions sont évaluées avant d’être ajoutées au tableau

Exemples

  1. Créer un tableau JSON avec des valeurs littérales :

    AsJsonArray("apple", "banana", "cherry")

    Résultat : ["apple","banana","cherry"]

  2. Créer un tableau JSON avec des types de données mixtes :

    AsJsonArray("John", 25, True)

    Résultat : ["John",25,true]

  3. Créer un tableau JSON avec des données de destinataires et des valeurs calculées :

    AsJsonArray(|->[CustomerID], @{FirstName}, 1+3)

    Si CustomerID = "ML343" et l’ADOR FirstName renvoie "John" :

    Résultat : ["ML343","John",4]

  4. Construire un tableau d’ID de produits pour un appel de service web :

    AsJsonArray(|->[Product1], |->[Product2], |->[Product3])

    Si Product1 = "SKU001", Product2 = "SKU002", Product3 = "SKU003" :

    Résultat : ["SKU001","SKU002","SKU003"]

  5. Créer un tableau avec des calculs numériques :

    AsJsonArray(|->[Quantity], |->[UnitPrice], |->[Quantity] * |->[UnitPrice])

    Si Quantity = 5 et UnitPrice = 19.99 :

    Résultat : [5,19.99,99.95]

  6. Construire un tableau d’informations de contact client :

    AsJsonArray(|->[Email], |->[Phone], |->[Address])

    Si Email = "john@example.com", Phone = "555-1234", Address = "123 Main St" :

    Résultat : ["john@example.com","555-1234","123 Main St"]

Fonction AsNumber

La fonction AsNumber convertit une expression en valeur numérique. Cette fonction est essentielle pour effectuer des opérations mathématiques sur des données pouvant être stockées sous forme de texte, ou pour garantir que les comparaisons numériques fonctionnent correctement.

Cette fonction renvoie un type de données Number.

Syntaxe

AsNumber(expression)

Paramètre

Description

expression

Obligatoire. La valeur à convertir en nombre. Peut être de n’importe quel type de données (chaîne, booléen, date ou null).

Règles de conversion

Type d’entrée

Règle de conversion

Null

Renvoie 0

Boolean

Renvoie 1 pour True, 0 pour False

String

Extrait la partie numérique de début. Si la chaîne ne commence pas par un nombre, renvoie 0.

Date

Renvoie le numéro de date sérielle (jours depuis le 31 décembre 1899)

Number

Renvoie la valeur inchangée

Exemples

  1. Convertir des nombres sous forme de chaînes en valeurs numériques :

    AsNumber("42")

    Résultat : 42

    AsNumber("+24")

    Résultat : 24

    AsNumber("-15.5")

    Résultat : -15.5

  2. Extraire des nombres de chaînes avec du texte en fin :

    AsNumber("23ab")

    Résultat : 23

    AsNumber("100 units")

    Résultat : 100

    AsNumber("$50.00")

    Résultat : 0 (la chaîne commence par un caractère non numérique)

  3. Gérer les chaînes qui ne commencent pas par des nombres :

    AsNumber("James")

    Résultat : 0

    AsNumber("ab23")

    Résultat : 0

  4. Convertir des valeurs booléennes :

    AsNumber(True)

    Résultat : 1

    AsNumber(False)

    Résultat : 0

  5. Gérer les valeurs nulles :

    AsNumber(Null)

    Résultat : 0

  6. Convertir un champ de destinataire stocké sous forme de texte pour effectuer des calculs. Supposons que QuantityOrdered est stocké comme texte "5" :

    AsNumber(|->[QuantityOrdered]) * AsNumber(|->[UnitPrice])

    Si QuantityOrdered = "5" et UnitPrice = "19.99" :

    Résultat : 99.95

  7. Calculer un total avec conversion numérique par sécurité :

    AsNumber(|->[Subtotal]) + AsNumber(|->[Tax]) + AsNumber(|->[Shipping])

    Si Subtotal = "150.00", Tax = "12.00", Shipping = "8.50" :

    Résultat : 170.5

  8. Compter les réponses en convertissant des réponses booléennes :

    AsNumber(|->[OptIn1]) + AsNumber(|->[OptIn2]) + AsNumber(|->[OptIn3])

    Si OptIn1 = True, OptIn2 = False, OptIn3 = True :

    Résultat : 2

Important : Lors de la conversion de chaînes contenant des symboles monétaires ou d’autres caractères non numériques en début (comme "$50.00"), la fonction renvoie 0. Utilisez la fonction Replace() ou FindAndReplace() pour supprimer ces caractères avant la conversion, ou utilisez la fonction CleanNumber().

Fonction AsString

La fonction AsString convertit une expression en valeur de chaîne (texte). Cette fonction est utile pour concaténer différents types de données, préparer des données pour une sortie textuelle ou garantir un formatage de chaîne cohérent.

Cette fonction renvoie un type de données String.

Syntaxe

AsString(expression)

Paramètre

Description

expression

Obligatoire. La valeur à convertir en chaîne. Peut être de n’importe quel type de données (nombre, booléen, date ou null).

Règles de conversion

Type d’entrée

Règle de conversion

Null

Renvoie une chaîne vide ("")

Number

Renvoie la représentation sous forme de chaîne du nombre

Boolean

Renvoie "True" ou "False"

Date

Renvoie la date formatée sous forme de chaîne en utilisant le format de date par défaut du système

String

Renvoie la valeur inchangée

Exemples

  1. Convertir des valeurs numériques en chaînes :

    AsString(12)

    Résultat : "12"

    AsString(3.14159)

    Résultat : "3.14159"

    AsString(-42)

    Résultat : "-42"

  2. Convertir des valeurs booléennes en chaînes :

    AsString(True)

    Résultat : "True"

    AsString(False)

    Résultat : "False"

  3. Gérer les valeurs nulles :

    AsString(Null)

    Résultat : "" (chaîne vide)

  4. Concaténer un nombre avec du texte :

    "Order #" + AsString(|->[OrderNumber])

    Si OrderNumber = 12345 :

    Résultat : "Order #12345"

  5. Construire un message formaté avec des types de données mixtes :

    "You ordered " + AsString(|->[Quantity]) + " items for $" + AsString(|->[Total])

    Si Quantity = 3 et Total = 59.97 :

    Résultat : "You ordered 3 items for $59.97"

  6. Créer un identifiant unique en combinant des champs :

    AsString(|->[CustomerID]) + "-" + AsString(|->[OrderID]) + "-" + AsString(|->[LineItem])

    Si CustomerID = 1001, OrderID = 5432, LineItem = 2 :

    Résultat : "1001-5432-2"

  7. Construire une formule de salutation avec conversion sécurisée contre les null :

    If (AsString(|->[Title]) != ""){AsString(|->[Title]) + " "} else {""} + AsString(|->[LastName])

    Si Title = "Dr." et LastName = "Smith" :

    Résultat : "Dr. Smith"

    Si Title = Null et LastName = "Johnson" :

    Résultat : "Johnson"

  8. Formater un numéro de téléphone en convertissant et concaténant les parties :

    "(" + AsString(|->[AreaCode]) + ") " + AsString(|->[PhonePrefix]) + "-" + AsString(|->[PhoneSuffix])

    Si AreaCode = 555, PhonePrefix = 123, PhoneSuffix = 4567 :

    Résultat : "(555) 123-4567"

Astuces :

  • Pour un meilleur contrôle du formatage des nombres et des dates sous forme de chaînes, envisagez d’utiliser les fonctions FormatNumber() ou FormatDate() au lieu de AsString(). Ces fonctions de formatage spécialisées offrent des options pour les décimales, les modèles de date et le formatage spécifique aux paramètres régionaux.

  • Lors de la concaténation d’ADOR ou de variables, l’utilisation de l’opérateur & au lieu de + forcera les valeurs à être traitées comme des chaînes. Par exemple, "Order #" & |->[OrderNumber] est identique à "Order #" + AsString(|->[OrderNumber])

Rubriques associées