Guide de création de scripts ACL 14.1

Top 30 des fonctions Analytics

Le top 30 des fonctions ACLScript s'avère utile pour différentes tâches. L'utilisation régulière de ces fonctions vous permet de préparer, d'analyser, de convertir et d'harmoniser les données dans vos scripts.

Les champs de type caractère dans les tables Analytics contiennent souvent des espaces de début ou de fin, car les champs présentent des largeurs de longueur fixe. Lorsque vous devez effectuer une opération à l'aide des données d'un champ de type caractère, vous pouvez supprimer ces espaces pour que la chaîne de caractères contienne uniquement les données réelles.

ALLTRIM( )

Renvoie une chaîne dont les espaces de début et de fin ont été supprimées de la chaîne d'entrée.

Remarque

Il est recommandé d'utiliser ALLTRIM( ) sur n'importe quel champ de type caractère que vous utilisez comme entrée pour une autre fonction afin qu'aucune espace de début ou de fin n'affecte la valeur renvoyée.

Exemple

Le champ Numéro_fournisseur contient la valeur " 1254". Vous devez supprimer cette espace supplémentaire de Numéro_fournisseur pour pouvoir harmoniser ce champ avec les données d'une autre table.

COMMENT renvoie "1254"
ALLTRIM(Numéro_fournisseur)

La comparaison des chaînes dans Analytics est sensible à la casse. Il est donc utile de synchroniser la casse de toutes les données dans un champ avant d'effectuer toute comparaison, jointure ou relation à l'aide des données.

UPPER( )

Renvoie une chaîne dont les caractères alphabétiques ont été convertis en majuscules.

Exemple

Le champ Nom contient la valeur "Smith". Vous devez mettre cette valeur en majuscules pour pouvoir la comparer avec une valeur en majuscules d'une autre table.

COMMENT renvoie "SMITH"
UPPER(Nom)

LOWER( )

Renvoie une chaîne dont les caractères alphabétiques ont été convertis en minuscules.

Exemple

Le champ Nom contient la valeur "Smith". Vous devez mettre cette valeur en minuscules pour pouvoir la comparer avec une valeur en minuscules d'une autre table.

COMMENT renvoie "smith"
LOWER(Nom)

PROPER( )

Renvoie une chaîne dans laquelle le premier caractère de chaque mot est en majuscule, tandis que les caractères restants sont définis en minuscules.

Exemple

Le champ Nom contient la valeur "smith". Vous devez l'afficher sous forme de nom propre dans votre sortie.

COMMENT renvoie "Smith"
PROPER(Nom)

Lorsque vous devez extraire un segment de données d'une longue chaîne de caractère ou lorsque vous devez tester certaines informations dans cette chaîne comme sa longueur ou son contenu, utilisez ces fonctions.

SUBSTR( )

Renvoie une sous-chaîne indiquée d'une chaîne de caractères.

Exemple

Le champ GL_Code_Compte contient la valeur "001-458-873-99". Vous devez extraire les trois premiers octets - ou caractères - de la chaîne de caractères.

COMMENT renvoie "001"
ASSIGN v_pos_début = 1
ASSIGN v_longueur = 3
SUBSTR(GL_Code_Compte; v_pos_début; v_longueur)

LAST( )

Renvoie un nombre spécifique de caractères à partir de la fin d'une chaîne.

Exemple

Le champ GL_Code_Compte contient la valeur "001-458-873-99". Vous devez extraire les deux derniers octets - ou caractères - de la chaîne de caractères.

COMMENT renvoie "99"
ASSIGN v_car_num = 2
LAST(GL_Code_Compte; v_car_num)

SPLIT( )

Renvoie un segment spécifié d'une chaîne de caractères.

Exemple

Le champ GL_Code_Compte contient la valeur "001-458-873-99". Vous devez extraire le deuxième segment du code de la chaîne de caractères.

COMMENT renvoie "458"
ASSIGN v_délimiteur = "-"
ASSIGN v_num_segment = 2
SPLIT(GL_Code_Compte; v_délimiteur; v_num_segment)

AT( )

Renvoie un nombre indiquant l'emplacement de début d'une occurrence spécifique d'une sous-chaîne dans une valeur de caractère.

Exemple

Le champ GL_Code_Compte contient la valeur "001-458-873-99". Vous devez déterminer la position d'octet de départ de la valeur "458" pour tester si le deuxième segment du code GL est "458" (position de départ "5").

COMMENT renvoie "5"
ASSIGN v_occurrence = 1
ASSIGN v_sous-chaîne = "458"
AT(v_occurrence; v_sous-chaîne; GL_Code_Compte)

OCCURS( )

Renvoie un décompte du nombre de fois qu'une sous-chaîne se produit dans une valeur de caractères indiquée.

Exemple

Le champ GL_Code_Compte contient la valeur "001-458-873-99". Vous devez déterminer si le code GL est mis en forme correctement en vérifiant que les données contiennent les trois caractères traits d'union.

COMMENT renvoie "3"
ASSIGN v_sous-chaîne = "-"
OCCURS(GL_Code_Compte; v_sous-chaîne)

LENGTH( )

Renvoie le nombre de caractères dans une chaîne.

Exemple

Le champ GL_Code_Compte contient la valeur "001-458-873-99". Vous devez déterminer si le code GL est mis en forme correctement en vérifiant que les données contiennent 14 caractères.

COMMENT renvoie "14"
LENGTH(GL_Code_Compte)

Selon la source de données et les instructions d'importation ayant généré la table Analytics, il se peut que vous deviez convertir les valeurs d'un champ d'un type de données à un autre pour qu'une opération soit possible. Par exemple, pour effectuer des calculs sur les données importées sous forme de caractères ("12345"), vous devez les convertir en données numériques.

STRING( )

Convertit une valeur numérique en chaîne de caractères.

Exemple

Le champ Montant_Facture contient la valeur 12345,67. Vous devez la convertir en données de type caractère.

COMMENT renvoie "12345,67"
ASSIGN v_longueur_chaîne = 8
STRING(Montant_facture; v_longueur_chaîne)

VALUE( )

Convertit une chaîne de caractères en valeur numérique.

Astuce

VALUE( ) est souvent utilisée avec ZONED( ) pour ajouter des zéros de début.

Exemple

Le champ Montant_Facture contient la valeur "12345,67". Vous devez la convertir en données numériques.

COMMENT renvoie 12345,67
VALUE(Montant_Facture; 2)

CTOD( )

Convertit une valeur de date au format Caractère ou Numérique en date. Cette fonction peut également extraire la date d'une valeur de type DateHeure au format Caractère ou Numérique et la renvoyer sous forme de date. Abréviation de "Caractère à Date".

Exemple

Le champ Date_soumission contient la valeur "25 avril 2016". Vous devez la convertir en données DateHeure.

COMMENT renvoie `20160425`
ASSIGN v_format_date = "mmm jj, aaaa"
CTOD(Date_soumission; v_format_date)

DATE( )

Extrait la date d'une date ou d'une DateHeure spécifiée et la renvoie sous forme de chaîne de caractères. Peut également renvoyer la date du système d'exploitation en cours d'utilisation.

Exemple

Le champ Date_soumission contient la valeur `20160425`. Vous devez la convertir en données de type caractère.

COMMENT renvoie "04/25/2016"
ASSIGN v_format_date = "MM/JJ/AAAA"
DATE(Date_soumission; v_format_date)

Convertissez des données numériques en données de type caractère et ajoutez des zéros de début à la sortie lorsque vous devez harmoniser des champs nécessitant des zéros de début.

ZONED( )

Convertit les données numériques en caractères et ajoute des zéros de tête à la sortie.

Exemple

Le champ Numéro_employé contient la valeur "254879". Vous devez convertir la valeur en chaînes de 10 chiffres avec des zéros de début.

Astuce

Vous devez utiliser la fonction VALUE() pour convertir le caractère en données numériques avant d'utiliser ces dernières comme entrée de ZONED().

COMMENT renvoie "0000254879"
ASSIGN v_longueur_chaîne = 10
ASSIGN v_nombre_décimales = 0
ZONED(VALUE(Numéro_employé; v_nombre_décimales); v_longueur_chaîne)

BINTOSTR( )

Renvoie des données caractère Unicode converties à partir de données caractère ZONED ou EBCDIC. Abréviation de "Binaire à Chaîne".

Remarque

Édition Unicode uniquement Pour les éditions non-unicode, voir ZONED() ci-dessus.

Exemple

Le champ Numéro_employé contient la valeur "254879". Vous devez convertir la valeur en chaînes de 10 chiffres avec des zéros de début.

Astuce

Vous devez utiliser la fonction VALUE() pour convertir le caractère en données numériques avant d'utiliser ces dernières comme entrée de ZONED(). Vous pouvez ensuite utiliser BINTOSTR() pour convertir les données ASCII qui proviennent de ZONED() en données Unicode.

COMMENT renvoie "0000254879"
ASSIGN v_longueur_chaîne = 10
ASSIGN v_nombre_décimales = 0
ASSIGN v_type_chaîne = "A"
BINTOSTR(ZONED(VALUE(Numéro_employé; v_nombre_décimales); v_longueur_chaîne); v_type_chaîne)

Utilisez ces fonctions pour isoler et extraire des composants spécifiques d'une valeur DateHeure.

MONTH( )

Extrait le mois d'une date ou d'une DateHeure spécifiée et le renvoie sous forme de valeur numérique (1 à 12).

Exemple

Le champ Date_transaction contient la valeur `20160815 100252`. Vous devez extraire le mois sous forme de données de type caractère avec un zéro de début.

COMMENT renvoie "08"
ASSIGN v_longueur_chaîne = 2
ZONED(MONTH(Date_Transaction); v_longueur_chaîne)

DAY( )

Extrait le jour du mois d'une date ou d'une DateHeure spécifiée et le renvoie sous forme de valeur numérique (1 à 31).

Exemple

Le champ Date_transaction contient la valeur `20160815 100252`. Vous devez extraire le jour sous forme de données de type caractère.

COMMENT renvoie "15"
ASSIGN v_longueur_chaîne = 2
STRING(DAY(Date_transaction); v_longueur_chaîne)

YEAR( )

Extrait l'année d'une date ou d'une DateHeure spécifiée et la renvoie sous forme de valeur numérique à l'aide du format AAAA.

Exemple

Le champ Date_transaction contient la valeur `20160815 100252`. Vous devez extraire l'année sous forme de valeur numérique.

COMMENT renvoie 2016
YEAR(Date_transaction)

HOUR( )

Extrait l'heure d'une heure ou d'une DateHeure spécifiée et la renvoie sous forme de valeur numérique à l'aide de l'horloge de 24 heures.

Exemple

Le champ Date_transaction contient la valeur `20160815 100252`. Vous devez extraire les heures sous forme de valeur numérique.

COMMENT renvoie 10
HOUR(Date_transaction)

MINUTE( )

Extrait les minutes d'une heure ou d'une DateHeure spécifiée et la renvoie sous forme de valeur numérique.

Exemple

Le champ Date_transaction contient la valeur `20160815 100252`. Vous devez extraire les minutes sous forme de valeur numérique.

COMMENT renvoie 2
MINUTE(Date_transaction)

SECOND( )

Extrait les secondes d'une heure ou d'une DateHeure spécifiée et les renvoie sous forme de valeur numérique.

Exemple

Le champ Date_transaction contient la valeur `20160815 100252`. Vous devez extraire les secondes sous forme de valeur numérique.

COMMENT renvoie 52
SECOND(Date_transaction)

CDOW( )

Renvoie le nom du jour de la semaine de la date ou de la DateHeure indiquée. Abréviation de "Jour de la semaine au format caractère".

Exemple

Le champ Date_transaction contient la valeur `20160815 100252`. Vous devez extraire le nom du jour sous forme de données de type caractère.

COMMENT renvoie "Lun"
CDOW(Date_transaction; 3)

CMOY( )

Renvoie le nom du mois de l'année de la date ou de la DateHeure indiquée. Abréviation de "Mois de l'année au format caractère".

Exemple

Le champ Date_transaction contient la valeur `20160815 100252`. Vous devez extraire le nom du mois sous forme de données de type caractère.

COMMENT renvoie "Aoû"
CMOY(Date_transaction; 3)

Supprimez ou remplacez des segments de champs de type caractère à l'aide de ces fonctions.

INCLUDE( )

Renvoie une chaîne qui inclut uniquement les caractères spécifiés.

Exemple

Le champ Adresse contient la valeur « Entreprise 12345 ABC ». Vous devez extraire le numéro de l'adresse et exclure le nom de la société.

COMMENT renvoie "12345"
ASSIGN v_car_à_retourner = "0123456789"
INCLUDE(Adresse; v_car_à_retourner)

EXCLUDE( )

Renvoie une chaîne qui exclut les caractères spécifiés.

Exemple

Le champ Adresse contient la valeur « Entreprise 12345 ABC ». Vous devez extraire le nom de la société et exclure le numéro de l'adresse.

COMMENT renvoie « Entreprise ABC »
ASSIGN v_car_à_exclure = "0123456789" 
EXCLUDE(Adresse; v_car_à_exclure)

REPLACE( )

Remplace toutes les instances d'une chaîne de caractères indiquée par une nouvelle chaîne de caractères.

Exemple

Le champ Adresse contient la valeur « Acme&Fils ». Vous devez remplacer le caractère "&" par le mot " et ".

COMMENT renvoie "12345 Acme et Fils"
ASSIGN v_car_cible = "&"
ASSIGN v_car_remplacement = " et "
REPLACE(Adresse; v_car_cible; v_car_remplacement)

OMIT( )

Renvoie une chaîne dont une ou plusieurs sous-chaînes spécifiques ont été supprimées.

Exemple

Le champ Adresse contient la valeur « 12345 Fake St ». Vous devez extraire l'adresse sans le suffixe de la rue.

COMMENT renvoie "12345 Fake"
ASSIGN v_car_à_omettre = "St"
OMIT(Adresse; v_car_à_omettre)

REVERSE( )

Renvoie une chaîne dont l'ordre des caractères est inversé.

Exemple

Le champ Ligne_état contient la valeur "001 Correction 5874,39 CR ". Vous devez inverser la valeur et ignorer les espaces de début ou de fin.

COMMENT renvoie "RC 93.4785 noitcerroC 100"
REVERSE(ALLTRIM(Ligne_état))

BLANKS( )

Renvoie une chaîne contenant un nombre spécifique d'espaces.

Exemple

Vous devez créer un champ calculé pour un nom de région à partir d'une valeur dans le champ code_région. Vous devez vous assurer que la valeur par défaut que vous spécifiez à la fin de la commande est au moins aussi longue que la plus longue valeur d'introduction.

COMMENT BLANKS retourne une chaîne de 8 caractères " "
ASSIGN v_longueur = 8
DEFINE FIELD région COMPUTED

"Sud" IF code_région = 1
"Nord" IF code_région = 2
"Est" IF code_région = 3
"Ouest" IF code_région = 4
BLANKS(v_longueur)