Vues
Cette fonction permet de créer et de modifier des vues, en décrivant ses caractéristiques dans le dictionnaire de données du dossier. Vous pouvez créer des vues sur des tables de différents dossiers.
La validation de cette description permet alors de créer la vue dans la base de données, ou d'en modifier les caractéristiques.
Une vue est ensuite utilisable en lecture seulement. La programmation autour d'une vue est similaire à celle d'une table. Elle aura sa propre classe [F]. Les instructions suivantes sont disponibles pour les vues :
- (local) File,
- close (local) File,
- Filter,
- For ... Next,
- Read,
- Columns,
- Link.
Une vue est accessible par Crystal Reports et par l'éditeur de formule.
La restauration ou la validation d'une table détruit les vues basées sur cette table. Lors de la restauration, les vues et les déclencheurs sont regénérés automatiquement par le superviseur. En revanche, suite à la validation forcée d'une table, vous devez lancer la validation des vues du dossier courant et des autres dossiers portant sur cette table.
Une vue permet par exemple :
- d'éviter d'ouvrir explicitement une table d'un autre dossier. Par exemple, pour les dossiers historisés. Une vue est créée pour chaque table non historisée. De cette manière, les fonctions de consultation ainsi que les états fonctionnent indifféremment sur le dossier principal ou le dossier historisé.
- de développer des états accédant à des données de plusieurs dossiers,
- d'accéder à des fonctionnalités SQL jusqu'alors inaccessibles : union, group by, fonctions SQL.
Pré-requis
Reportez-vous à la documentation de mise en oeuvre.
Gestion de l'écran
La définition d'une vue se fait à l'aide de trois onglets :
- l'onglet de définition de la requête,
- l'onglet de définition des champs,
- l'onglet de définition des clés.
En-tête
Code vue (champ CODVUE) |
Le code de la vue doit être composé de 1 à 12 caractères (lettres ou chiffres mais commençant obligatoirement par une lettre). C'est un identificateur unique pour l'ensemble des vues du dictionnaire des données. Une vue ne peut pas porter le même nom qu'une table du dictionnaire, puisqu'à la validation, le superviseur génère les fichiers *.srf et *.fde. Les mots réservés d'Adonix sont interdits. |
Abréviation (champ ABRVUE) |
L'abréviation de la vue doit être composée de 1 à 8 caractères (lettres ou chiffres mais commençant obligatoirement par une lettre). Cet identificateur peut ne pas être unique pour l'ensemble des abréviations des vues du dictionnaire de données. Les mots réservés d'Adonix sont interdits. |
Intitulé (champ INTITSAI) |
Saisissez la description de la fiche concernée. Cet intitulé long est utilisé en titre dans les écrans et les états. |
Actif (champ ENAFLG) |
Cette case à cocher indique si la vue est active ou non. Seules les vues actives sont générées. |
Onglet Requête
Cet onglet permet d'écrire la requête.
La requête doit être écrite au minimum dans le langage de la base de données courante du dossier. Mais pour toute vue standard livrée, un script est livré pour chaque base. Au moment de la validation de la vue, le fichier *.viw est créé avec le script adapté à la base de données du dossier courant. Celui-ci est créé dans le répertoire FIL, sur le serveur de données.
Si vous voulez préciser dans la requête des champs soumis à un code activité, de même qu'un nom de dossier, il est recommandé d'utiliser une formule. En effet, il est préférable de ne pas mettre le dossier "en dur" dans la requête, afin de permettre le fonctionnement dans un autre dossier, suite à une copie de cette vue.
Exemple : code activité dimensionné de 1 à 3 pour le champ LIEN, et formule sur dossier :
Select CLENUM1_0, CLENUM2_0, LIEN_0
%string$(find(func AFNC.ACTIV("ZZM"),2,3)<>0,", LIEN_1")%
%string$(find(func AFNC.ACTIV("ZZM"),3)<>0,", LIEN_2")%
From %nomap+"."%ZZMB
Pour plus de renseignements sur les règles d'écriture de la requête, vous pourrez lire l'aide du champ.
Caractéristiques
Code activité (champ CODACT) |
Le code activité et le module permettent de savoir si la vue décrite dans le dictionnaire doit effectivement être créée dans la base de données du dossier. Elle l'est si les deux conditions ci-dessous sont réalisées simultanément :
Une vue affectée d'un code activité commençant par X, Y, ou Z, est spécifique et ne sera en aucun cas affectée par un changement de version (ces codes activités peuvent être mis au niveau des lignes). |
Accès non sécurisé (champ SECURE) |
Cette case à cocher permet de restreindre l'accès à la table de données au seul dossier propriétaire de la table et à certains dossiers autorisés. Cette notion est identique pour la vue. Une modification de ce champ nécessite une revalidation de la table, pour être pris en compte dans la base de donnée.
Les dossiers habilités sont :
La politique de sécurité pour la table étant considérée comme du paramétrage, cette case à cocher n'est pas mise à jour par patch. A la validation de la table, le fait que cette case soit cochée provoque la création d'un fichier de configuration (d'extension .cfg) avec le code suivant : $SECURITY |
Module (champ MODULE) |
Le code activité et le module permettent de savoir si la vue décrite dans le dictionnaire doit effectivement être créée dans la base de données du dossier. Elle l'est si les deux conditions ci-dessous sont réalisées simultanément :
Une vue affectée d'un code activité commençant par X, Y, ou Z, est spécifique et ne sera en aucun cas affectée par un changement de version (ces codes activités peuvent être mis au niveau des lignes). |
Groupe validation (champ GRUCFM) |
Le groupe de validation sert à ordonner la validation des vues. Ce champ permet :
Example :
Les vues seront validées dans l'ordre suivant :
|
Tableau Tables et vues utilisées
Code (champ OBCCOD) |
Ce tableau contient la liste des tables ou des vues utilisées par la vue. Il n’est pas obligatoire de le remplir et il n’est pas nécessaire de renseigner toutes les tables et les vues associées. Une table ou une vue est présente une seule fois même si elle est présente plusieurs fois dans la vue avec des abréviations différentes. Cela permet de faire un lien avec la vue et les tables et les vues qui la constituent. Ce champ indique la référence de la table ou de la vue utilisée. |
Type (champ OBCTYP) |
Ce tableau contient la liste des tables ou des vues utilisées par la vue. Il n’est pas obligatoire de le remplir et il n’est pas nécessaire de renseigner toutes les tables et les vues associées. Une table ou une vue est présente une seule fois même si elle est présente plusieurs fois dans la vue avec des abréviations différentes. Cela permet de faire un lien avec la vue et les tables et les vues qui la constituent. Ce champ indique s'il s'agit d'une table (ATB) ou d'une vue (AVW). |
Oracle
champ TEX1 |
Ce champ contient le code SQL de la création de la vue pour Oracle. |
SQL Server
champ TEX2 |
Ce champ contient le code SQL de la création de la vue pour SQL Server. |
Onglet Champs
Cet onglet permet de définir l'ensemble des champs de la vue dans un tableau déroulant. Il doit y avoir entière compatibilité entre la description des champs dans la requête et dans cet onglet (nombre, ordre, et type des champs). Ce contrôle est effectué lors de la validation de la vue. Ces champs peuvent exister dans le dictionnaire des tables. Ce n'est toutefois pas une obligation.
Tableau Champs
Champs (champ FLDVUE) |
||||||||||||||||||
On définit dans cette colonne le nom de zone de la vue telle qu'elle sera définie dans le progiciel (un champ de nom NOMCHAMP défini dans une vue d'abréviation ABV pourra être accédé par la syntaxe [F:ABV]NOMCHAMP). Pour les champs créés en spécifique, le nom de zone doit commencer par X_, Y_ ou Z_. Pour un champ dimensionné (NOMCHAMP_0, NOMCHAMP_1, NOMCHAMP_2…), on ne définit qu'une seule zone NOMCHAMP. |
||||||||||||||||||
Typ (champ CODTYP) |
||||||||||||||||||
Vous devez définir ici le type de la zone. Les principaux types sont : A : Alphanumérique Il n'est pas possible d'utiliser ici, les types de donnés relatifs aux textes traduits : AX1, AX2, AX3. |
||||||||||||||||||
Menu (champ NOLIB) |
||||||||||||||||||
Saisissez le numéro de menu local associée au champ défini sur la ligne. Lorsqu'un champ est de type menu local, il est stocké sous la forme d'une valeur numérique (de 1 à 255) correspondant au rang d'un intitulé dans une table appelée menu local, stockée dans la table des messages APLSTD. En saisie ou en affichage, on voit, selon les choix faits sur l'interface utilisateur :
L'intérêt de ce type de saisie est que la liste des choix est présentée dans la langue de connexion de l'utilisateur. Chaque numéro de menu local caractérise la liste des intitulés possibles. Par exemple, le menu local 1 correspond au choix Non/Oui dans cet ordre. Dans ce cas particulier, l'interface utilisateur peut aussi être la case à cocher. |
||||||||||||||||||
Long (champ LNG) |
||||||||||||||||||
Ce champ permet de définir la longueur d'un champ lorsque ce champ utilise un type de données générique dont la longueur n'est pas fixée. C'est le cas notamment pour les types A et DCB. Pour les blob, comme pour les clob, il faut saisir la longueur qui sera une longueur maximale de stockage. La codification est la suivante :
|
||||||||||||||||||
Act (champ FLDACT) |
||||||||||||||||||
Un code activité vous permet de :
Si le code activité est désactivé :
|
||||||||||||||||||
Dim (champ DIME) |
||||||||||||||||||
Dimension de la zone dans la vue. La dimension peut également être affectée en fonction du code activité. |
||||||||||||||||||
Intitulé (champ FLDINTSAI) |
||||||||||||||||||
Saisissez la description de la fiche concernée. Cet intitulé long est utilisé en titre dans les écrans et les états. |
||||||||||||||||||
Options (champ OPTION) |
||||||||||||||||||
Ces options sont matérialisées par des caractères qui peuvent se concaténer lorsque plusieurs options sont nécessaires. Il est possible de choisir ces options grâce à une fenêtre de sélection. Une description détaillée de toutes les options possibles est disponible. |
Ajout |
Onglet Clés
Cet onglet permet de définir l'ensemble des clés disponibles pour un code Order By sur la vue.
Attention : Il n'y a pas de création d'index pour la vue.
Tableau Clés
No (champ NUMLIG) |
Ligne courante du tableau. |
Code clé (champ CODCLE) |
Ce champ correspond au nom sous lequel la clé est connu dans l'ordre Order By. Une norme est utilisée dans toutes les vues de l'application : elle consiste à nommer les clés en utilisant l'abréviation de la vue, suivi de 0 pour la première clé , de 1 pour la deuxième clé, etc. Pour le spécifique, commencez ce code par l'une des trois lettres : X, Y ou Z. |
Descripteur clé (champ DESCLE) |
Saisissez la liste des champs composant l'index, séparés par un + s'il y a plusieurs champs. Un champ trié en descendant est précédé du signe -. Le premier champ composant un index est sans signe et est forcément ascendant. |
Homonymes (champ KEYDUP) |
Ce champ est par défaut initialisé à Oui. Il est possible de le mettre à Non. Dans ce cas, un message d'avertissement prévient qu'il ne doit pas y avoir de clés en double sur l'index de cette vue. Si c'était le cas, il n'y aurait pas d'erreur mais une simple boucle For ne détecterait pas les homonymes. Il est donc recommandé de le laisser à Oui sauf dans des cas très particuliers où l'option Non permet de supporter les instructions Read Next/Prev sur des vues. |
Code activité (champ CLEACT) |
Un code activité vous permet de :
Si le code activité est désactivé :
|
Fichier de configuration
champ FICCFG |
Vous pouvez saisir dans ce bloc un texte décrivant la configuration technique de vue dans la base de données. Ce texte est enregistré dans un fichier nom de vue.cfg dans le répertoire FIL de l'application. Ce fichier est utilisé par l'instruction valfil. Consultez l'annexe technique dédiée pour plus d'informations. |
Boutons spécifiques
-
Validation
Ce bouton crée ou met à jour la vue dans la base de données à partir du dictionnaire, par l'instruction create view. Un contrôle syntaxique de la requête est effectué par rapport à la base de données du dossier.
Les fichiers créés dans le répertoire FIL sont :
- *.srf contient la liste des champs. un indicateur #V est positionné en ligne 3 pour distinguer les vues des tables.
- *.fde : généré par valfil -n.
- *.viw : contient la description de la requête avec le script correspondant à la base de données du dossier.
- *.cfg : fichier de configuration, généré si le clob associé est renseigné ou si l'accès est sécurisé.
-
Copie
Ce bouton permet de recopier la structure de la vue vers un autre dossier.
Attention : Seule la description de la vue dans le dictionnaire est recopiée. La vue n'est pas créée dans le dossier destinataire. Il faudra valider cette description pour que la vue soit créée.
Bloc numéro 1
champ OBJET
champ CLES
Bloc numéro 2
Depuis le dossier (champ DOSORG)
Indiquez le dossier à partir duquel la fiche va être copiée. Les syntaxes possibles sont décrites dans l'annexe dédiée.
Tous dossiers (champ TOUDOS)
Cette option permet de copier la fiche vers tous les dossiers définis dans le dictionnaire (table ADOSSIER de la solution courante).
Vers le dossier (champ DOSDES)
Indiquez le dossier dans lequel la fiche va être copiée. Les syntaxes possibles sont décrites dans l'annexe dédiée.
Barre de menu
Option / Source .srf
Cette option permet de visualiser le fichier *.srf correspondant à la table courante dans l'application courante.
Cette option est notamment intéressante sur un serveur sur lequel vous n'avez pas les droits sur le répertoire FIL.
Option / Source .viw
Cette option permet de visualiser le fichier *.viw contenant le source de la vue dans l'application courante.
Cette option est notamment intéressante sur un serveur sur lequel vous n'avez pas les droits sur le répertoire FIL.
Messages d'erreur
Outre les messages génériques, les messages d'erreur suivants peuvent apparaître lors de la saisie :
Il existe déjà une table du même nom
Vous ne pouvez pas créer une vue dont le nom est déjà donné pour une table. En effet, il faut une unicité toutes tables et vues confondues car le système crée un fichier *.srf et un fichier *.fde.
Taille du fichier trop grande
Taille limitée sur le fichier de configuration.
Type de donnée non géré
Vous ne pouvez pas créer une vue avec un champ de type AXX (texte traduisible).
Longueur incorrecte
La longueur est incorrecte en fonction du type interne du champ.
- libellé : la longueur doit être ≤ 30
- entier court : la longueur doit être ≤ 4
- entier long : la longueur doit être ≤ 8
- décimal : partie entière + partie décimale ≤ 32
- alphanumérique : la longueur doit être ≤ 250
- blob, clob : la longueur doit être ≤ 20
Option incorrecte
Vous avez tenté de saisir une option qui n'existe pas.
Option incompatible avec le format x (Type de donnée y)
Quand vous précisez un format sur un type de donnée alpha, vous ne devez pas utiliser les options A et #.
Abréviation déjà existante
Ce message d'avertissement s'affiche si vous tentez de saisir une abréviation sur une vue qui est déjà existante pour une autre vue ou une table. Il est recommandé d'avoir des abréviations uniques.
Remarques
Une vue est créée dans la base de données du dossier où elle est installée au moment de sa validation. Toutes les fonctions Sage X3 utilisées dans une telle vue (par la syntaxe %formule%) sont évaluées lors de la validation de la vue et transmises à la base comme des constantes.
A la création d'un dossier ou lors de sa validation, l'opération qui va valider les vues est déclenchée depuis le dossier X3 qui est différent de celui où la vue est installée. Vous devez donc prendre les précautions suivantes:
- dans les formules, évitez d'utiliser des fonctions (syntaxe func) pour calculer des constantes qui seront ensuite insérées à la création de la vue,à moins d'être absolument certain que la fonction en question est disponible dans tous les dossiers (y compris le dossier X3) et rend la même valeur.
- privilégiez la déclaration de tables ou de vues sans préciser dans quel dossier elles se trouvent (et notamment pas nomap ou adxmother dont la définition peut varier en fonction du dossier).
Si ces précautions ne peuvent pas être respectées, vous devez revalider manuellement les vues qui posent problème dans le dossier lui-même après les opérations de validation de dossier.
Tables mises en oeuvre
Reportez-vous à la documentation de mise en oeuvre.