FAB-DIS
Généralités
Ce module vise à permettre d'importer des données de fabricants en provenance de fichiers respectant la norme FAB-DIS (https://fabdis.fr/fr/).
Le flux d'importation est le suivant :
- Les fichiers sont importés via un Modèle de données associé au fabricant dans une table intermédiaire.
- Les données sont ensuite appliquées depuis la table intermédiaire vers la table de destination via un Modèle de correspondances.
Configurer les fabricants
Chaque fabricant pour lequel vous souhaitez importer des données doit être configuré dans l'application. Pour ce faire,
- Choisissez l'icône
, saisissez Fabricants.
- Dans la page qui s'ouvre vous trouverez la liste de vos fabricants.
Pour chaqu'un d'entre eux vous pourrez spécifier la version de FAB-DIS supportée. Ce choix de version aura une influence sur les tables supportées, le format de l'export et les champs visibles sur la fiche article.
- Choisissez l'action Paramètres FAB-DIS.
Dans cette page, vous configurez pour le fabricant le Modèle de données et le Modèle de correspondances associé à chaque Type de données FAB-DIS. Les types de données FAB-DIS sont typiquement Commerce, Logistique, Média, etc.
Modèles de données
Un modèle de données vient définir la structure, le format des données importés et les règles de transformation à appliquer pour les injecter dans la table intermédiaire.
Pour créer un nouveau modèle de données,
- Choisissez l'icône
, saisissez Modèles de données.
- Dans la page qui s'ouvre, choisissez l'action Nouveau.
- Saisissez un Code et une Description pour le modèle de données.
- Cliquez sur le champ Table intermédiaire et choisissez la table dans la liste (elle varie en fonction de la version FAB-DIS de votre fabricant).
Note
Les tables intermédiaires sont spécifiques à chaque version de FAB-DIS. CAP Bâti supporte les versions 2.x et 3.x.
Choisissez en suite le Type de fichier.
En choisissant le format CSV ou fichier texte à plat, vous pouvez définir les paramètres suivants :
- Avec en-têtes : indique si le fichier contient une ligne d'en-têtes. Si vous pouvez obtenir des fichiers avec en-têtes, il est recommandé de les utiliser.
- Séparateur de champs : indique le caractère utilisé pour séparer les colonnes.
- Caractères à supprimer : indique les caractères à supprimer des données importées. Par exemple, vous pourriez vouloir supprimer les double-guillemetts
En choisissant le format Microsoft Excel, vous pouvez définir les paramètres suivants :
- Avec en-têtes : indique si le fichier contient une ligne d'en-têtes. Si vous pouvez obtenir des fichiers avec en-têtes, il est recommandé de les utiliser.
- Nom de la feuille : spécifie le nom de la feuille à importer.
A présent, vous configurez les lignes du modèle données. Chaque ligne correspond à l'opération à réaliser avec une colonne du fichier importé :
Pour chaque colonne, choisissez un Type origine avec la valeur Colonne et dans la Valeur origine, saisissez le nom de la colonne du fichier importé. Si votre fichier ne contient pas d'en-tête, alors utilisez le numéro de colonne (pour les fichiers CSV) ou la lettre de la colonne (pour les fichiers Excel).
Cliquez sur le champ Légende champ et choisissez le champ de la table intermédiaire dans laquelle importer la valeur.
Utiliser un fichier échantillon
Dans les lignes, vous pouvez utiliser l'action Choisir un fichier échantillon.
Typiquement, utilisez un fichier fournit par le fabricant dans lequel vous limiter la quantité de données.
Une fois une fichier échantillon chargé, vous disposez de plusieurs fonctionnalités supplémentaires :
Si votre fichier comporte des en-têtes de colonnes, vous pouvez utiliser l'action Faire correspondre par nom de colonnes pour créer automatiquement la correspondance entre les colonnes du fichier et les champs de la table intermédiaire.
La colonne Valeur échantillonnée affiche un aperçu des données telles qu'elles seront importées. Pour passer d'une ligne à l'autre du fichier de données, utilisez les actions Précédent et Suivant.
La valeur échantillonnée affiche la valeur telle qu'elle est interprétée. Vous pouvez voir la valeur brute, telle qu'elle figure dans le fichier en cliquant sur l'action Afficher enregistrement.
Dans les lignes, lorsque vous cliquez sur les
...à droite du champ Valeur origine, vous pouvez choisir une colonne du fichier échantillon.

Utiliser des expressions au lieu des données brutes
Dans les lignes, vous pouvez choisir de changer le Type origine pour utiliser une expression au lieu des données brutes. Dans les expressions, vous faites référence aux colonnes du fichier importé en utilisant la syntaxe suivante :
{"$<nom de la colonne>"}
Par exemple si la colonne se nomme MARQUE, utiliser l'expression `{"$MARQUE"}``.
Conseil
En chargeant un fichier de données, vous pouvez utiliser les ... à droite du champ Valeur origine pour choisir une colonne et obtenir l'expression correspondante.
Gérer des formats de dates et de nombres différents
Les dates et nombres peuvent se présenter sous différents formats (par exemple, 01/01/2020 ou 2020-01-01 pour les dates ou avec séparateur décimal point ou virgule pour les nombres). Pour vous assurer que ces valeurs sont correctement interprétées, renseigner le champ Nom de la culture.

Définir une valeur par défaut
Si le fabricant vous fournit un fichier dans lequel certaines colonnes sont vides, vous pouvez définir une valeur par défaut à utiliser à la place. Pour cela renseignez le champ Valeur par défaut dans les lignes du modèle de données.
Modèles de correspondances
Un modèle de correspondances permet de définir la table de destination des données à partir de la table intermédiaire utilisée dans le modèle de données.

Pour créer une nouvelle correspondance de données,
- Choisissez l'icône
, saisissez Modèles de correspondances (FAB-DIS).
- Dans la page qui s'ouvre, choisissez l'action Nouveau.
- Saisissez un Code et une Description pour le modèle de correspondances.
- Cliquez sur le champ Depuis la table et choisissez la table intermédiaire dans la liste.
- Cliquez sur le champ Vers la table et choisissez la table de destination dans la liste.
Vous pouvez à ce stade indiquer ce que vous souhaitez faire lorsque des données sont insérées : le champ Modèle nouvel enregistrement vous laisse choisir un modèle configuration à appliquer. De même, vous pouvez choisir ce qu'il se produit lorsque des données sont mises à jour : le champ Comportement enregistrement existant vous permet de définir ce qu'il faut faire.
Important
Pour que des données puissent être mises à jour, vous devez cocher au moins une ligne Utiliser comme clé de recherche.
A présent, vous configurez les lignes du modèle de correspondances. Chaque ligne correspond à l'opération à réaliser avec un champ de la table d'origine :
- Cliquez sur le champ Depuis champ et choisissez le champ de la table intermédiaire.
- Cliquez sur le champ Vers champ et choisissez le champ de la table de destination. Cochez la case Valider les données pour exécuter la logique métier du champ de destination.
Importer des données
Pour importer des données depuis un fichier,
Choisissez l'icône
, saisissez Fabricants.
Dans la page qui s'ouvre, choisissez l'action Paramètres FAB-DIS.
Sélectionnez l'enregistrement correspondant au type de données à importer.
Choisissez l'action Importer fichier.

Dans la page qui s'ouvre, choisissez le fichier à importer en cliquant sur les
...à droite du champ Nom du fichier.
Note
A ce stade notez les éléments suivants :
- Vous pouvez sélectionner une archive ZIP contenant plusieurs fichiers à importer. Dans ce cas chaque fichier présent dans l'archive sera importé.
- Vous pouvez laisser le Type de données vide. Cette fonctionnera correctement uniquement pour l'import de fichiers Microsoft Excel : le système essayera d'importer le(s) fichier(s) dans chaque modèle de données associé au fabricant. Le nom de la feuille paramétré dans le modèle de données servant à connaître l'onglet à importer.
- Cliquez sur le bouton OK.
Vous pouvez visualiser les données importées en cliquant sur l'action Ouvrir la table intermédiaire.
- Pour appliquer les données importées dans la table intermédiaire vers la table de destination, choisissez l'action Appliquer les données.
Conseil
Pour importer les données et les appliquer immédiatement, utilisez l'action Importer le fichier et appliquer.
Exporter des données
Pour exporter des données vers un fichier FAB-DIS,
Choisissez l'icône
, saisissez Fabricants.
Dans la page qui s'ouvre, choisissez l'action Paramètres FAB-DIS.
Associez au fabricant la liste des données à exporter.
Note
Vous n'avez pas besoin de spécifier Modèle de données ou Modèle de correspondances pour exporter des données.
Dans la barre d'actions, choisissez l'action Exporter vers FAB-DIS ....

Les versions de FAB-DIS supportées pour le moment sont :
- FAB-DIS 2.4
Développeurs
Ce paragraphe est destiné aux développeurs souhaitant étendre l'application.
Créer un nouveau type de données FAB-DIS
Pour créer un nouveau type de données FAB-DIS, vous devez étendre l'énumération Fabdis Data Type BTCAP.
Créer une nouvelle table intermédiaire
Les tables intermédiaires doivent respecter le modèle suivant :
table 50000 "Fabdis MyTable BTCAP"
{
DataClassification = CustomerContent;
Caption = 'FAB-DIS MyTable';
LookupPageId = "Fabdis MyPage BTCAP";
fields
{
field(1; "Entry No."; Integer)
{
Caption = 'Entry No.';
AutoIncrement = true;
Editable = false;
}
field(2; FABRICANT; Text[50])
{
Caption = 'FABRICANT', Locked = true;
TableRelation = Manufacturer.Code;
ValidateTableRelation = false;
Editable = false;
NotBlank = true;
}
field(3; "Applied On"; DateTime)
{
Caption = 'Applied On';
}
field(4; "Applied to Table ID"; Integer)
{
Caption = 'Applied to Table ID';
}
field(5; "Applied to System ID"; Guid)
{
Caption = 'Applied to System ID';
}
field(7; "Is Latest Application"; Boolean)
{
Caption = 'Is Latest Application';
}
field(10; "Error Message"; Text[2048])
{
Caption = 'Error Message';
Editable = false;
}
}
keys
{
key(PK; "Entry No.")
{
Clustered = true;
}
}
trigger OnDelete()
begin
Rec.TestField("Is Latest Application", false);
end;
}
La numérotation des champs n'a pas la nécessité d'être respectée. Toutefois, si vous utilisez une numérotation différente, assurez-vous ne fournir cette information pour votre table en vous abonnant aux événements OnGetTemporaryTable*FieldNo du codeunit Import Fabdis BTCAP.
Interagir lors de la correspondance de données
Si vous avez besoin d'exécuter une logique spécifique, plus complexe que la simple correspondance de données, lors de l'application des données de la table intermédiaire vers la table finale,
- Abonnez-vous aux événements
OnAfterInsertRecordouOnAfterModifyRecorddu codeunitMap. Fabdis BTCAPpour contrôler l'insertion/modification d'un enregistrement. - Abonnez-vous à l'événement
OnBeforeAssignValuedu codeunitMap. Fabdis BTCAPpour contrôler l'affectation d'un champ dans la table de destination.