Table of Contents
Spécifications d'ordre général
Validité de la version et compatibilité descendante
La version 6.10.2 est la version actuelle. Toute modification mineure effectuée pour assurer la compatibilité descendante est identifiée par le troisième chiffre du numéro de version. Si, par exemple, un nouveau champ de données est ajouté dans une table sans que les champs existants soient modifiés, le numéro de version est simplement augmenté. Par exemple, la version 6.5.1 devient 6.5.2. Les changements de format (nécessitant des modifications mineures au niveau des différents progiciels) sont, quant à eux, reconnaissables par le deuxième chiffre du numéro de version. Par exemple, la version 6.5.5 devient 6.6.0. Toute nouvelle structure ou nouvelle définition du format (XML par exemple) est définie dans la version 7.0.0.
Séparateurs et longueur d'enregistrement
Le jeu de caractères utilisé dans les fichiers décrits ci-dessous correspond à des fichiers textes utilisant le jeu ISO 8859-x, la valeur de 'x' étant définie dans le fichier Head.Dat (voir également „http://de.wikipedia.org/wiki/ISO_8859-1“)
Les différents enregistrements sont séparés par les caractères CR (ASCII 13) et LF (ASCII 10). Afin d'assurer une meilleure compatibilité descendante, des enregistrements de longueur fixe n'ont pas été définis. Pour toute nouvelle version du format de fichier, les champs de données nouvellement définis sont simplement ajoutés à la structure existante. Pour cette raison, tout logiciel en attente d'être adapté au nouveau format pourra néanmoins importer le nouveau format de fichier.
Les enregistrements sont, quant à eux, composés de champs de longueur fixe sans séparateurs.
Spécifications des champs
Les zones de texte (type T..) sont justifiées à gauche avec des espaces à la fin des enregistrements (ASCII 32).
Les valeurs numériques sont alignées à droite et précédées de zéros sans séparateur décimal. ESPACE est interprété comme “0” (à l'exception des zones de prix dans les fichiers LensPrice.Dat et OptionsPrice.Dat, où les blancs assignés à la zone de prix EK (EK = prix d'achat) sont interprétés comme des “prix sur demande” et où il est également indiqué que pour un VK (prix de vente) donné, il n'existe pas de prix de vente recommandé. Ce dernier devra, en conséquence, être calculé par l'opticien lui-même.
Pour les champs “date” (type D), le format à utiliser est: année (quatre chiffres), mois (deux chiffres) et jour (deux chiffres), ce qui correspond au format aaaammjj. Les champs optionnels peuvent être remplis de blancs.
Les champs booléens sont définis comme suit: 0=Non et 1=Oui. ESPACE est interprété comme “0”. Toutes les autres définitions sont déterminées sous la rubrique “remarques” dans la structure de table.
Pour les fichiers contenant une clé primaire, les champs la composant sont marqués d'un asterix '*'. A noter qu'une clé primaire ne peut apparaître qu'une seule fois dans un fichier. De plus, il est indispensable que les enregistrements soient triés selon la clé primaire.
Définition produit en standard GPL; orderability
D'une manière générale, un produit est identifié par un code commande fabricant, défini de façon univoque. Une distinction est faite entre les verres de base (substrats) et les suppléments (traitements). Avec les produits ainsi définis (complétés d'informations supplémentaires telles que le diamètre verre et la prescription), il doit être possible de transmettre les commandes au système de commande du fabricant.
Exigences de cohérence:
Les exigences en matière de clé primaire doivent être respectées. Aucun fichier ne peut comporter plusieurs enregistrements contenant une même clé primaire. L'ensemble des codes “substrat” apparaissant dans les fichiers LensPrice.Dat, Combination.Dat, LensRange.Dat, LensGeo.Dat, Information.Dat, OrderOptions.Dat, ProductGroup.dat, CodeSubstitution.Dat et OeCodes.Dat doivent avoir été définis au préalable dans le fichier LensType.Dat. De plus, l'ensemble des codes “suppléments” apparaissant dans les fichiers OptionsColor.Dat, OptionsPrice.Dat, Combination.Dat, LensRange.Dat, Information.Dat, OrderOptions.Dat, ProductGroup.dat, CodeSubstitution.Dat et OeCodes.Dat doivent avoir été définis au péalable dans le fichier Options.Dat. De même, tous les indices “suppléments” utilisés dans le fichier OptionsPrice.Dat doivent avoir été définis dans le fichier LensType.Dat. Tous les indices “gamme de livraison” utilisés dans le fichier LensPrice.Dat doivent avoir été définis dans le fichier LensRange.Dat. Enfin, les désignations produit indiquées dans les fichiers LensType.Dat, Options.Dat, et OptionsColor.Dat doivent être univoques dans chaque fichier, bien qu'elles ne soient pas incluses dans la clé primaire.