Cette rubrique décrit les différentes étapes de création d'une norme d'échange, dans le cadre de la mise en place d'une interface entre une autre application et CARL Source.
1. Construire l'objet d'intégration
Si l'objet d'intégration dont vous avez besoin n'existe pas en standard, vous allez le créer facilement, à partir de l'objet du dictionnaire correspondant.
Choisissez l'objet le plus fin par rapport à votre besoin.
Par exemple, pour importer des emplacements d'article, choisissez ITEMLOCATION plutôt que LOCATION ou ITEM.
CARL Source initialise la liste des attributs de l'objet. Vous pouvez conserver tous les attributs ou supprimer dès cette étape ceux qui ne vous seront pas utiles.
Attention, si l'interface doit pouvoir créer des enregistrements, tous les attributs obligatoires de l'objet doivent être inclus dans l'objet d'intégration.
2. Créer la norme d'échange
Créez une norme, puis une version de norme. Cochez-la "Active".
Dans la version de norme, choisissez de créer les enregistrements par "Recherche d'objets d'intégration"
, et sélectionnez l'objet d'intégration créé.
CARL Source initialise la ligne d'enregistrement et la liste des attributs :
Identifiant pour mise à jour
Si les données sont susceptibles d'être mises à jour si elles existent déjà en base, le ou les premiers champs doivent permettre d'identifier l'élément à mettre à jour.
Il est construit ainsi <Nom de l'objet> ::<attribut identifant> .
L'identifiant fonctionnel peut être composé de plusieurs attributs indirects.
Dans ce cas, il faudra créer un champ pour chaque composant, au format <Nom de l'objet> ::<attribut identifant> ou <Nom de l'objet>::code_ref si l'identifiant est un objet reconnu par son code.
Exemples :
L'alias de champ budgAcc::code, désigne le code du budget, qui détermine le budget de manière unique.
Les deux champs itemWarehouse::item_coderef et itemWarehouse::warehouse_coderef sont nécessaires pour désigner un lien article-magasin de manière unique.
Les deux champs PRLine::PR_coderef et PRLine::lineNumber sont nécessaires pour désigner une LDA.
Attributs en cas de création
Ensuite, si les données sont susceptibles d'être créées (c'est à dire si l'interface ne fait pas uniquement de la mise à jour), la liste des champs doit impérativement comprendre les champs obligatoires de l'objet.
Ces champs ont été créés à la création de l'enregistrement par sélection de l'objet d'intégration.
Ils sont au format : <Nom de l'objet en minuscules>_<attribut avec ses majuscules>.
Si l'attribut est un objet, il faut préciser l'attribut désignant l'objet, en ajoutant ::<attribut identifiant>.
C'est généralement le code qui sera indiqué dans le fichier ::code.
Exemple :
budgacc_code, budgacc_supervisor::code, itemwarehouse_warehouse::code, poline_lineNumber.
Exemple pour un attribut d'identifiant composé :
deliveryline_PRLine::PR_coderef et deliveryline_PRLine::lineNumber
Numérotation, format, transformations
Supprimez les champs qui ne vous servent pas.
Veillez à bien numéroter les champs de 1 à n, dans le même ordre que dans le fichier.
Si le fichier a un séparateur, indiquez celui-ci dans l'en-tête de la version de norme.
Si au contraire, les positions des colonnes sont fixes, renseignez la taille pour chaque champ.
La taille du préfixe de l'enregistrement est de 20 caractères par défaut.
Pour appliquer des formats ou des modifications de champs à l'import ou à l'export, accédez au formulaire de transformations pour chaque enregistrement concerné.
3. Créer les interfaces
Indiquez la version applicable sur la norme.
Créez l'interface de sortie. Même si à terme elle n'est pas utile, elle permet lors de la mise au point de vérifier le format du fichier qui correspond à la norme :
Puis exécutez l'interface de sortie et consultez le fichier produit. Vérifiez que son format est correct. Ajustez éventuellement la norme.
Enfin, créez l'interface d'entrée, par recopie de l'interface de sortie.
Modifiez l'en-tête du fichier exporté pour indiquer le code de l'interface d'entrée : exchangeInterface;<code de l'interface>;
Exécutez l'interface d'entrée. Les erreurs éventuelles seront indiquées dans l'historique des exécutions.