Commande ACCESSDATA

Importe des données à partir de diverses sources de données compatibles ODBC.

La forme de la commande est ACCESSDATA64 ou ACCESSDATA32 selon que vous utilisez un pilote ODBC 64 bits ou 32 bits.

Syntaxe

{ACCESSDATA64 | ACCESSDATA32} {CONNECTOR | ODBC {"Pilote"|"Dsn"|"Fichier"}} NAME valeur <USER id_utilisateur> <PASSWORD num | PROMPT_PASSWORD> TO nom_table CHARMAX longueur_champ_max MEMOMAX longueur_champ_max <ALLCHARACTER> SOURCE (paramètres_connexion) <HASH(valeur_salt; champs)>
SQL_QUERY(
(syntaxe_SQL)
) END_QUERY

Paramètres

Nom Description
CONNECTOR | ODBC {"Pilote"|"Dsn"|"Fichier"}

Type de connexion ODBC que vous souhaitez effectuer :

  • CONNECTOR connectez-vous à l'aide d'un connecteur de données Analytics natif
  • ODBC "Pilote" connectez-vous à l'aide d'un pilote ODBC Windows installé sur votre ordinateur
  • ODBC "Dsn" connectez-vous à l'aide d'un DSN (nom de la source de données) enregistré sur votre ordinateur
  • ODBC "Fichier" connectez-vous à l'aide d'un fichier DSN (un fichier .dsn enregistré)
NAME valeur

Nom du connecteur de données Analytics, du pilote ODBC ou du DSN.

Par exemple :

  • NAME "Amazon Redshift"
  • NAME "Pilote Microsoft Access (*.mdb, *.accdb)"
  • NAME "Mon DSN Excel"
  • NAME "excel.dsn"

USER id_utilisateur

optionnel

ID utilisateur pour les sources de données exigeant un ID utilisateur.

PASSWORD num | PROMPT_PASSWORD

optionnel

Pour les sources de données nécessitant un mot de passe :

  • PASSWORD num utilisez la définition de mot de passe numérotée
  • PROMPT_PASSWORD affiche une invite de mot de passe

    L'invite de mot de passe permet aussi de modifier id_utilisateur.

Si vous utilisez PASSWORD num, vous devez spécifier une définition de mot de passe créée auparavant. Pour plus d'informations, consultez la section Commande PASSWORD et Commande SET.

Astuce

L'utilisation de la commande PASSWORD conjointement avec PASSWORD num ressemble à l'utilisation du paramètre PROMPT_PASSWORD. Les deux méthodes demandent un mot de passe à l'utilisateur. PROMPT_PASSWORD présente l'intérêt d'autoriser la mise à jour de id_utilisateur.

TO nom_table

Emplacement vers lequel envoyer les résultats de la commande :

  • nom_table enregistre les résultats dans une table Analytics

    Indiquez nom_table sous forme de chaîne entre guillemets avec une extension de fichier .FIL. Par exemple : TO "Sortie.FIL"

    Par défaut, le fichier de données de table (.FIL) est enregistré dans le dossier contenant le projet Analytics.

    Utilisez un chemin de fichier absolu ou relatif pour enregistrer le fichier de données dans un autre dossier existant :

    • TO "C:\Sortie.FIL"
    • TO "Résultats\Sortie.FIL"

    Remarque

    La longueur des noms des tables est limitée à 64 caractères alphanumériques, sans l'extension .FIL. Le nom peut inclure le caractère de soulignement ( _ ), mais aucun autre caractère spécial ni espace. Le nom ne peut pas commencer par un chiffre.

CHARMAX longueur_champ_max

La longueur maximale en caractères d'un champ de la table Analytics qui provient d'une donnée de type caractère dans la source que vous importez.

La valeur par défaut est 50. Les données dépassant la longueur de champ maximale sont tronquées lors de l'importation dans Analytics.

MEMOMAX longueur_champ_max

Longueur maximale en caractères des champs de texte, de commentaire ou mémo que vous importez.

La valeur par défaut est 100. Les données dépassant la longueur de champ maximale sont tronquées lors de l'importation dans Analytics.

ALLCHARACTER

optionnel

Attribue automatiquement le type de données caractère à tous les champs importés.

Une fois que les données sont dans Analytics, vous pouvez affecter différents types (Numérique ou DateHeure par exemple) de données aux champs et en spécifier les informations de format.

Astuce

ALLCHARACTER s'avère utile si vous importez une table contenant des valeurs d'identifiants numériques. Vous pouvez utiliser ALLCHARACTER pour éviter que Analytics attribue automatiquement le type de données Numérique aux valeurs devant utiliser le type de données Caractère.

SOURCE paramètres_connexion

Paramètres de connexion (chaîne de connexion) requis pour se connecter à la source de données.

HASH(valeur_salt; champs)

optionnel

Importe les champs spécifiés sous forme de valeurs de hachage cryptographiques. Les valeurs de hachage sont des transformations à sens unique. Elles ne peuvent pas être décodées une fois les champs importés :

  • valeur_salt chaîne de caractères alphanumériques concaténée aux valeurs des données source pour renforcer le hachage des valeurs dans les champs. Saisissez la valeur de hachage sous forme de chaîne entre guillemets.

    La valeur salt est limitée à 128 caractères. N'utilisez aucun des caractères suivants : (  )  "

  • champs liste d'un ou plusieurs champs à hacher. Saisissez les champs sous forme de chaîne entre guillemets et séparez chaque champ par un point-virgule.

    Vous devez indiquer le nom du champ que vous voyez dans l'aperçu de la fenêtre Accès aux données et dans la zone de transit, et non le nom du champ physique dans la source de données.

    Remarque

    Le nom du champ affiché dans l'aperçu de la fenêtre Accès aux données est la valeur d'alias du champ dans la requête SQL ("nom_champ" AS "alias"). Vous devez utiliser la valeur de l'alias pour référencer des champs.

HASH("QZ3x7"; "SSN_NO; CC_NO; Nom")

Pour obtenir des informations sur la comparaison de valeurs hachées pendant l'importation avec des valeurs hachées dans ACLScript, consultez la rubrique Comparaison de données hachées à l'aide d'ACCESSDATA avec des données hachées à l'aide de la fonction HASH( ) d'ACLScript.

SQL_QUERY (syntaxe_SQL) END_QUERY

Instruction IMPORT de SQL.

Tout ce qui se trouve entre parenthèses fait partie de la requête SQL et doit être une requête SQL valide.

Exemples

Importation de données à l'aide d'un connecteur de données Analytics natif

Vous devez importer des données du service de données cloud Amazon Redshift. Pour ce faire, vous utilisez le connecteur de données Analytics Amazon Redshift :

ACCESSDATA64 CONNECTOR NAME "Amazon Redshift" USER "utilisateur_ACL" PROMPT_PASSWORD TO "Historique_Autorisations.FIL" CHARMAX 50 MEMOMAX 100
  SOURCE( boolsaschar=0;cachesize=100;database=usage;declarefetchmode=0;maxbytea=255;maxlongvarchar=8190;maxvarchar=255;port=5439;servername=acl_test.highbond.com;singlerowmode=1;sslmode=require;textaslongvarchar=0;usemultiplestatments=0;useunicode=1)
  SQL_QUERY(
    SELECT
      "historique_autorisations"."organisation" AS "organisation",
       "historique_autorisations"."email_utilisateur" AS "email_utilisateur",
      "historique_autorisations"."id_plan" AS "id_plan",
      "historique_autorisations"."date_début" AS "date_début",
      "historique_autorisations"."date_fin" AS "date_fin"
    FROM
      "prm"."historique_autorisations" "historique_autorisations"
)) END_QUERY

Importation de données à l'aide d'un pilote ODBC Windows

Vous devez importer des données à partir d'une base de données Microsoft Access. Pour ce faire, vous utilisez un pilote ODBC Windows pour vous connecter à MS Access et effectuer l'importation :

ACCESSDATA32 ODBC "Pilote" NAME "Pilote Microsoft Access (*.mdb)" TO "Factures.FIL" CHARMAX 50 MEMOMAX 100
  SOURCE( dbq=C:\Users\lachlan_murray\Documents\ACL Data\Exemple de fichiers de données\Sample.mdb;defaultdir=C:\Users\lachlan_murray\Documents\ACL Data\Exemple de fichiers de données;driverid=281;fil=MS Access;maxbuffersize=2048;maxscanrows=8;pagetimeout=5;safetransactions=0;threads=3;usercommitsync=Yes)
  SQL_QUERY(
    SELECT
       `Client`.`ID_Client` AS `ID_Client`,
      `Client`.`Société` AS `Société`, 
      `Client`.`Adresse` AS `Adresse`,
      `Client`.`Ville` AS `Ville`,
      `Client`.`Région` AS `Région`,
      `Client`.`CodePostal` AS `CodePostal`,
      `Client`.`Pays` AS `Pays`,
      `Client`.`Téléphone` AS `Téléphone`,
      `Commandes`.`ID_commande` AS `ID_commande`,
      `Commandes`.`ID_Client` AS `ID_Client_Commandes`,
      `Commandes`.`IDProd` AS `IDProd`,
       `Commandes`.`DateCommande` AS `DateCommande`,
      `Commandes`.`Quantité` AS `Quantité`,
      `Produit`.`IDProd` AS `IDProd_Produit`,
      `Produit`.`Nom_de_produit` AS `Nom_de_produit`,
       `Produit`.`Prix_unitaire` AS `Prix_unitaire`,
      `Produit`.`Descript` AS `Descript`, 
      `Produit`.`ShipWt` AS `ShipWt`
    FROM
      (`Client` `Client`
    INNER JOIN
      `Commandes` `Commandes`
          ON `Client`.`ID_Client` = `Commandes`.`ID_Client`
      )
INNER JOIN
    `Produit` `Produit`
      ON `Commandes`.`IDProd` = `Produit`.`IDProd`
WHERE
    (
      `Client`.`Région` = 'BC'
      OR `Client`.`Région` = 'WA'
    )
  ) END_QUERY

Importation de données à l'aide d'un DSN (nom de source de données) Windows

Vous devez importer des données à partir d'un fichier Microsoft Excel. Pour ce faire, vous utilisez un DSN Windows pour vous connecter à Excel et effectuer l'importation :

ACCESSDATA32 ODBC "Dsn" NAME "Fichiers Excel" TO "Trans_Avril_15_limite.FIL" CHARMAX 50 MEMOMAX 100
  SOURCE( dbq=C:\Users\lachlan_murray\Documents\ACL Data\Exemple de fichiers de données\Trans_Avril.xls;defaultdir=C:\Users\lachlan_murray\Documents\ACL Data\Exemple de fichiers de données;driverid=1046;maxbuffersize=2048;pagetimeout=5)
  SQL_QUERY(
    SELECT
      `Trans_Avr_`.`NUMCARTE` AS `NUMCARTE`,
      `Trans_Avr_`.`MONTANT` AS `MONTANT`,
      `Trans_Avr_`.`DATE_TRANS` AS `DATE_TRANS`,
       `Trans_Avr_`.`CODES` AS `CODES`,
       `Trans_Avr_`.`NUMCLIENT` AS `NUMCLIENT`,
       `Trans_Avr_`.`DESCRIPTION` AS `DESCRIPTION`
    FROM
      `Trans_Avr$` `Trans_Avr_`
    WHERE
      (
          `Trans_Avr_`.`DATE_TRANS` <= {ts '2003-04-15 00:00:00'}
      )
  ) END_QUERY

Remarques

Remarque

Pour plus d'informations sur le fonctionnement de cette commande, consultez le Aide d'Analytics.

Mises à jour du connecteur de données

Lorsque vous mettez à niveau Analytics, Agent Robots ou AX Serveur, vous devez tester tous vos scripts qui importent des données à l'aide de l'un des connecteurs de données Analytics (commande ACCESSDATA).

Il est possible que des modifications apportées par des sources de données tierces ou des fournisseurs de pilotes ODBC aient nécessité la mise à jour d'un ou plusieurs connecteurs de données. Les connexions de données écrites sous forme de scripts peuvent avoir besoin d'être mises à jour afin de continuer à fonctionner correctement.

  • Ré-exécuter l'importation La façon la plus simple de mettre à jour une connexion est d'effectuer manuellement une importation à l'aide de la fenêtre Accès aux données de la version mise à niveau d'Analytics. Copiez la commande ACCESSDATA du journal et utilisez-la pour mettre à jour votre script.

    Remarque

    Avant de vous connecter à une source de données et de réexécuter l'importation, effacez le cache du connecteur pour vider le jeu existant de noms de tables.

    Dans l'onglet Connexions existantes de la fenêtre Accès aux données, à côté du nom du connecteur, sélectionnez > Effacer le cache.

  • Mettre à jour les spécifications des champsVous pouvez également avoir besoin de mettre à jour les spécifications des champs dans le corps du script pour les aligner avec les modifications du schéma de table dans la source de données ou le pilote ODBC. Les modifications possibles comprennent les noms des champs, les types de données des champs et les longueurs de champ et d'enregistrement.
  • Vérifier les résultats des filtrages Vous devez également vérifier les résultats des filtrages que vous appliquez dans le cadre de l'importation de données. Confirmez que le filtrage des importations inclut et exclut correctement les enregistrements.

Création de paramètres de connexion ODBC et d'instructions IMPORT SQL

Les paramètres de connexion ODBC ainsi que les instructions IMPORT SQL sont souvent assez longs et complexes, comme illustré dans les exemples.

Le moyen le plus simple de créer ces portions de la commande ACCESSDATA consiste à utiliser dans un premier temps la fenêtre d'accès aux données dans Analytics pour vous connecter à la source de données cible, puis à importer les données dans un deuxième temps. Vous pouvez ensuite copier l'intégralité de la commande ACCESSDATA à partir de la trace, y compris les paramètres de connexion et l'instruction IMPORT, et personnaliser la commande selon vos besoins.

Valeur de mot de passe supprimée

Lorsque vous utilisez la fenêtre Accès aux données dans Analytics pour exécuter la commande ACCESSDATA et que vous fournissez un mot de passe, la valeur du mot de passe n'est pas écrite dans la trace. À la place, le paramètre PROMPT_PASSWORD est substitué.

Fichiers traces ACCESSDATA

Deux fichiers traces enregistrent les transactions associées à la commande ACCESSDATA. Ils peuvent être utilisés pour résoudre des problèmes en cas d'échec de connexion des données :

  • ServerDataAccess.log enregistre toutes les activités et erreurs avant l'importation des données

    Emplacement : C:\Users\<compte utilisateur>\AppData\Local\ACL\ACL for Windows\Data Access\ServerDataAccess.log

    Remarque

    Le « Serveur » dans ServerDataAccess.log fait référence au composant d'accès aux données d'Analytics s'exécutant en local sur l'ordinateur où Analytics est installé.

  • DataAccess.log enregistre les informations sur l'opération d'importation et le projet Analytics dans lequel vous importez des données

    Emplacement : ..\<dossier de projet Analytics>\DataAccess.log

Comparaison de données hachées à l'aide d'ACCESSDATA avec des données hachées à l'aide de la fonction HASH( ) d'ACLScript

Même si vous ne pouvez pas lire les valeurs brutes des données hachées, elles restent utiles pour combiner ou analyser des données.

Si vous souhaitez comparer des valeurs hachées par ACCESSDATA pendant l'importation avec des valeurs hachées à l'aide de la fonction HASH( ) d'ACLScript, vous devez convertir les champs numériques ou DateHeure Analytics en valeurs de type caractère et supprimer l'intégralité des espaces de fin et de début avant de hacher les données.

Les champs DateHeure doivent utiliser les formats suivants lorsqu'ils sont convertis en caractère :

  • DateHeure "AAAA-MM-JJ hh:mm:ss"
  • Date "AAAA-MM-JJ"
  • Heure "hh:mm:ss"

L'exemple qui suit utilise les fonctions STRING( ) et ALLTRIM( ) pour convertir un champ numéro de carte de crédit en données de type caractère avant de hacher la valeur à l'aide de la fonction HASH( ) d'ACLScript :

COMMENT ACL HASH fonction utilisée après l'importation des données
HASH(ALLTRIM(STRING(CC_No; 16)); "QZ3x7")

Une fois que vous avez haché les valeurs Analytics, vous pouvez les comparer aux valeurs hachées dans le cadre de l'importation de commande ACCESSDATA.