Fonctionnement des exportations libres
L’objectif des exportations libres est de pouvoir exporter beaucoup de données dans un fichier, le plus rapidement possible. Ces exportations libres sont basées sur l’exécution d’une requête sur la base de données. Les champs disponibles à l’exportation dépendent dans ce cas directement des résultats renvoyés par cette requête.
Attention !
Ce type d’exportation est destiné aux consultants, ou aux utilisateurs avertis. Il ne prend pas en compte les restrictions utilisateurs.
Mise en place des exportations libres
Back-Office > Échanges de données > Exportation de données > Exportation libre > Modèles de requêtes
Cette option permet d’exporter directement le résultat d’une requête dans un fichier texte compatible Excel (avec Tabulation en séparateur de champs). Chaque exportation est donc associée à une requête SQL paramétrable pouvant contenir des variables (cf. chapitre ci-après "Utilisation des variables") :
Le bouton [Tester la requête] permet de contrôler la bonne exécution de
la requête paramétrée.
Back-Office > Échanges de données > Exportation de données > Exportation libre > Modèles de requêtes
La requête peut utiliser des mots-clés (variables) qui seront exploités lors de son exécution.
Certaines variables sont livrées par défaut (niveau de paramétrage CEGID),
et sont visibles en utilisant le bouton [Liste des variables] :
D’autres variables peuvent
être créées (niveau de paramétrage Dossier), à l’aide du bouton [Nouveau].
Éviter d’écrire plusieurs requêtes similaires. Exemples :
Les deux requêtes suivantes :
SELECT GP_NUMERO, GP_DATEPIECE FROM PIECE WHERE GP_NATUREPIECEG = "AAF"
SELECT GP_NUMERO, GP_DATEPIECE FROM PIECE WHERE GP_NATUREPIECEG = "AF"
peuvent être remplacées par la seule requête :
SELECT GP_NUMERO, GP_DATEPIECE FROM PIECE WHERE GP_NATUREPIECEG = [NATUREPIECEG]
qui sera exécutée deux fois : une première fois avec la valeur "AAF", une seconde fois avec la valeur "AF".
[NATUREPIECEG]
Permettre de sélectionner les enregistrements relatifs à une nature de document. Exemples :
La requête :
SELECT GP_NUMERO, GP_DATEPIECE FROM PIECE WHERE GP_NATUREPIECEG = [NATUREPIECEG]
est traduite en :
SELECT GP_NUMERO, GP_DATEPIECE FROM PIECE WHERE GP_NATUREPIECEG IN ( "XXX", "YYY", … )
La requête :
SELECT GP_NUMERO, GP_DATEPIECE FROM PIECE WHERE GP_NATUREPIECEG <> [NATUREPIECEG]
est traduite en :
SELECT GP_NUMERO, GP_DATEPIECE FROM PIECE WHERE GP_NATUREPIECEG NOT IN ("XXX", "YYY", … )
[BORNE_DATE]
Permettre de sélectionner les enregistrements via une fourchette de dates. Exemples :
La requête :
SELECT T_TIERS, T_LIBELLE FROM TIERS WHERE T_NATUREAUXI="CLI" AND T_DATECREATION = [BORNE_DATE]
est traduite en :
SELECT T_TIERS, T_LIBELLE FROM TIERS WHERE T_NATUREAUXI="CLI" AND T_DATECREATION BETWEEN D1 AND D2
La requête :
SELECT T_TIERS, T_LIBELLE FROM TIERS WHERE T_NATUREAUXI="CLI" AND T_DATECREATION = [BORNE_DATE]
est traduite en :
SELECT T_TIERS, T_LIBELLE FROM TIERS WHERE T_NATUREAUXI="CLI" AND T_DATECREATION NOT BETWEEN D1 AND D2
[QUANTITE]
Permettre de sélectionner les enregistrements via des valeurs entières. Exemples :
La requête :
SELECT T_TIERS, T_LIBELLE FROM TIERS WHERE T_NATUREAUXI="CLI" AND T_MOISNAISSANCE = [QUANTITE]
est traduite en :
SELECT T_TIERS, T_LIBELLE FROM TIERS WHERE T_NATUREAUXI="CLI" AND T_MOISNAISSANCE = X
La requête :
SELECT T_TIERS, T_LIBELLE FROM TIERS WHERE T_NATUREAUXI="CLI" AND T_MOISNAISSANCE <> [QUANTITE]
est traduite en :
SELECT T_TIERS, T_LIBELLE FROM TIERS WHERE T_NATUREAUXI="CLI" AND T_MOISNAISSANCE <> X
Paramétrage du format d'exportation
Back-Office > Échanges de données > Exportation de données > Exportation libre > Modèles de requêtes
Effectuez un double-clic sur la requête de votre choix, puis cliquez sur
le bouton [Paramétrage] pour accéder au format d’exportation.
Notez que plusieurs formats peuvent être définis pour une seule exportation libre. L’objectif est de faire passer à droite les champs qui seront présents dans le fichier d’arrivée, en choisissant à gauche parmi les champs disponibles renvoyés par la requête. Il suffit ensuite d’indiquer la position de début des données relatives à ce champ dans le fichier d’arrivée, ainsi que leur longueur. Dans la partie droite de l’écran, le champ Début est toujours égal à 1, mais il est possible de ne pas exporter les x premiers caractères du champ, en notant non pas 1, mais x+1.
Il est possible également de définir des valeurs par défaut en utilisant
le bouton [Valeurs par défaut].
Utilisation des exportations libres
Back-Office > Échanges de données > Exportation de données > Exportation libre > Exécution de requêtes prédéfinies
Une fois créée, chaque exportation libre peut être exécutée dans un format choisi, avec le module Échanges de données. Avant exécution de la requête, l’utilisateur pourra renseigner les éventuelles variables présentes dans la requête :
Les exportations libres peuvent
être lancées manuellement, ou programmées en tâche planifiée à l’aide
du bouton [Planifier].
Les exportations libres permettent d’utiliser des fonctions externes dans le format du fichier généré.
Activation
Back-Office > Administration > Utilisateurs et accès > Gestion des droits d'accès
Ouvrez le menu Concepts (26), et dans la branche Gestion commerciale / Administration, activez le concept Utilisation des fonctions externes dans les exports.
Utilisation
Back-Office > Échanges de données > Exportation de données > Exportation libre > Exécution de requêtes prédéfinies
Une fois le concept activé, le champ $$_FONCTION_EXTERNE est disponible dans les colonnes à exporter. Lorsque, via la flèche droite, cette colonne est sélectionnée dans la liste des colonnes exportées, la fenêtre de paramétrage d'une fonction externe s'affiche et permet de choisir la fonction externe, ainsi que ses paramètres. Les paramètres de ces fonctions sont les mêmes que ceux des fonctions du générateur d’états.
Fonction de marquage
La fonction Marquage des données exportées qui ne génère aucune donnée dans le fichier exporté est disponible dans le champ Fonction externe.
Deux types de marquage sont disponibles. Cegid Retail Y2 détermine le mode de marquage automatiquement en fonction de la nature de la requête d’exportation :
Marquage bidirectionnel : cette méthode implique que la donnée marquée soit incluse dans les champs sélectionnés. Dans le cas de requêtes avec jointures, le champ marqué doit appartenir à la table principale de la requête : clause "FROM". Dans ce mode, le champ est marqué lors du parcours des données.
Marquage via requête SQL : dans le cas de requêtes complexes incluant ou une clause "UNION", ou une clause "GROUP BY", ou une jointure de type 1-n, avec 1 pour la table principale sur laquelle porte le marquage, et n pour une table jointe. Exemple : FROM PIECE LEFT JOIN LIGNE, le marquage bidirectionnel est impossible. Il est alors réalisé par requêtes "UPDATE". Pour forcer l’utilisation de cette méthode de marquage, le champ suivant doit être ajouté dans les champs sélectionnés de la requête d'exportation : " UNION " AS TOPAGE_SQL.
Dans les deux cas, en cas de requêtes avec jointures, une clause "ORDER BY" suivie des champs de l’index unique doit être présente. Exemple pour le marquage des documents : ORDER BY GP_NATUREPIECEG,GP_SOUCHE,GP_NUMERO.
Les paramètres de la fonction de marquage doivent respecter le format suivant : < Liste des champs de rupture > ; < Liste des champs à marquer >; < Liste des valeurs de marquage > avec :
< Liste des champs de rupture > : définit la rupture déclenchant le marquage des données. Toutes les lignes exportées ne sont pas forcément marquées comme dans le cas d’un export des lignes de document pour lequel seul le document est marqué.
< Liste des champs à marquer > : chaque liste est composée d’éléments encadrés des caractères [ ] et séparés par un caractère &.
< Liste des valeurs de marquage > : chacun des éléments peut être une valeur fixe ou un champ présent dans la liste des colonnes exportées. Dans ce cas, il est encadré des caractères [ ] ; voir DATEEXPORT dans l’exemple ci-dessous.
Par exemple, pour [GP_NATUREPIECEG]&[GP_SOUCHE]&[GP_NUMERO];[GP_ETATCOMPTA]&[GP_DATECOMPTA]&[GP_REFCOMPTABLE];EXP&[DATEEXPORT]&RF.2011.01.145
Les documents exportés seront marqués ainsi :
GP_ETATCOMPTA = EXP
GP_DATECOMPTA = DATEEXPORT (donnée présente dans la liste des colonnes de la requête : NOW AS DATEEXPORT. On pourrait aussi utiliser GP_DATEPIECE).
GP_REFCOMPTABLE = RF.2011.01.145
Restrictions d’utilisation – contrainte technique
En tâches planifiées, le topage est effectué par défaut en utilisant des requêtes bidirectionnelles. Les données sont alors topées lors du parcours de la requête. Certaines requêtes complexes, utilisant des clauses UNION ou comportant des liens de cardinalité 1 à n par exemple, ne peuvent pas être topées via ce mécanisme. Le topage est alors effectué par requête UPDATE à chaque rupture de clé (une clause ORDER BY sur cette clé doit obligatoirement être présente dans la requête).
Depuis un smart client Y2, le topage SQL est toujours utilisé.