Options de lecture dans Envision

Options de lecture dans Envision










Accueil » Ressources » Ici

Dans le langage Envision, l’instruction de lecture read permet de charger des fichiers dans une table. Vous trouverez ci-dessous l’ensemble des possibilités d’utilisation de cette instruction.


Présentation de la syntaxe

La syntaxe habituelle de lecture d’un fichier dans Envision est la suivante :
read "/sample/Lokad_Orders.csv.gz" as Orders with
  "Order Date" as OrderDate : date
  "Quantity" as Qty
Le texte qui suit le mot clé read est appelé « chemin ». Ce dernier doit correspondre à des fichiers qui existent dans l’espace de stockage associé à un compte Lokad donné.

Il n’est pas nécessaire de lister explicitement les colonnes après le mot clé with. Dans ce cas, les colonnes sont utilisables dans le script Envision si les noms des colonnes sont des noms de variable valides (sans espace notamment). L’objectif principal du mot clé as est de renommer les tables et les colonnes.

Si l’instruction read n’est pas suivie de l’option as, Envision lit le fichier comme faisant partie de la table « items » (articles).

Lecture de plusieurs fichiers

Plusieurs fichiers peuvent être lus en une fois en insérant le caractère générique [*] dans le chemin indiqué :
read "/sample/Lokad_Orders*.gz" as Orders
Il est possible d’utiliser plusieurs caractères génériques.

Sélection d’un fichier parmi plusieurs

Trois modificateurs de l’instruction read permettent de restreindre à un seul fichier l’ensemble des fichiers désignés à l’aide du caractère générique :
  • min : seul le premier fichier de l’ensemble est retenu, les fichiers sont triés en fonction de leur nom.
  • max : seul le dernier fichier de l’ensemble est retenu, les fichiers sont triés en fonction de leur nom.
  • latest : seul le fichier le plus récent de l’ensemble est retenu.

Ces modificateurs s’utilisent comme suit :
read max "/sample/Lokad_Orders*.gz" as Orders

Sélection de plusieurs fichiers

Pour limiter l’ensemble des fichiers désignés à l’aide du caractère générique à un ensemble plus restreint de fichiers qui partagent le même répertoire, le signe pourcentage (%) peut être utilisé dans l’instruction read pour indiquer le répertoire voulu.
read max "/%/Lokad_Orders*.gz" as Orders

L’instruction read sélectionne tous les fichiers qui correspondent au répertoire spécifié par le modificateur. Comme les répertoires n’ont pas de date de dernière mise à jour dans Lokad, seuls les modificateurs min et max sont autorisés lorsque le signe pourcentage est utilisé. De plus, lorsque le signe pourcentage est utilisé, un modificateur de l’instruction read doit être utilisé également.

Options au niveau des tables

Plusieurs options relatives à l’instruction read sont utilisables :
  • skip (nombre) : indique combien de lignes doivent être ignorées au début du fichier au moment de la lecture. Si cette option n’est pas utilisée, la valeur par défaut est zéro.
  • separator (texte) : indique le séparateur de champs à utiliser lors de l’analyse du fichier. Si cette option n’est pas utilisée, Envision fait appel à une heuristique de détection automatique pour déterminer le séparateur le plus plausible.
  • quotes (booléen) : Si la valeur false est utilisée, les guillemets qui entourent les chaînes de caractères lues dans les champs sont considérés comme faisant partie de celles-ci. Si cette option n’est pas indiquée, la valeur par défaut est true et Envision ignore les guillemets de début et fin de chaîne, comme habituellement dans les fichiers CSV (comma-separated values).
  • encoding (text) : Indique l’encodage de texte à utiliser lors de l’analyse du fichier. Les valeurs d’encodage acceptées sont : UTF-8, UTF-16 and latin1. Si cette option n’est pas utilisée, Envision fait appel à une heuristique de détection automatique pour déterminer l’encodage le plus plausible.

Le script ci-dessous illustre comment ces options peuvent être spécifiées :
read "/sample/Lokad_Orders.csv.gz" skip:0 separator:"\t" quotes:false encoding:"UTF-8"

Options de type de tables

Envision offre la possibilité de définir les clés primaires des tables : il faut les lister entre parenthèses juste après avoir spécifier le nom de la table. Seules sept combinaisons de clés primaires sont autorisées :
read "a.csv" as A[*]
read "b.csv" as B[Id]
read "c.csv" as C[Id, *]
read "d.csv" as D[Date]
read "e.csv" as E[Date,*]
read "f.csv" as F[Id, Date]
read "g.csv" as G[Id, Date,*]

L’option de type de table est facultative. Si elle n’est pas utilisée, le type appliqué par défaut est [Id, Date, *].

Options au niveau des colonnes

Plusieurs options sont également disponibles pour les colonnes à lire :

  • Type de données de la colonne, qui peut être text, number, date, bool ou distribution. Il est spécifié après le signe deux-points (:) qui suit le nom de la colonne.
  • date : chaîne du format de date.
  • number : chaîne du format numérique.

Le script ci-dessous illustre l’utilisation des options des colonnes :
read "/sample/Lokad_Orders.csv.gz" as Orders with
  date:"dd-MM-yyy" as OrderDate : date
  number:"1,000.00" as Qty

La spécification des colonnes est facultative, ainsi que celle du type de données des colonnes même si celles-ci sont spécifiées. Lorsque le type de données n’est pas spécifié dans l’instruction read, le type de données des colonnes est déduit de leur utilisation dans le script Envision.

Les distributions correspondent à un type de données avancé uniquement pris en charge par le format de fichier Ionic de Lokad.

Options numériques

La chaîne utilisée pour définir le format numérique reprend la forme souhaitée des nombres :
  • le caractère après le premier 1 est le séparateur des milliers. Il n’est pas obligatoire.
  • le caractère avant les derniers 0 est le séparateur décimal. Il n’est pas obligatoire.

Options de date

La chaîne de format de l’option date peut être élaborée à partir des éléments suivants :

  • d : jour du mois de 1 à 31.
  • dd : identique à d avec le préfixe 0.
  • ddd : nom abrégé du jour de la semaine en anglais (c’est à dire Mon, Tue...).
  • dddd : nom du jour de la semaine en anglais (Monday...).
  • MM : numéro du mois 1 à 12.
  • MMM : nom abrégé du mois en anglais (Jun).
  • MMMM : nom complet du mois en anglais (June).
  • yy : deux derniers chiffres de l’année, de 00 à 99.
  • yyyy : année sur quatre chiffres.