lumnik. / scénarios Tous les scénarios · English

Les lignes de commande d'un fichier EDI à plat lues à leur place

Objectif Lire en colonnes les lignes de commande d'un fichier EDI à largeur fixe, sans outil de mapping.

Un fabricant et son logisticien s'échangent des fichiers à plat. Aucun séparateur: chaque champ a sa place et sa largeur.

ZINT_CC_42100001.txt
SAPPRD           NPEC      
SAPPRD           NPEC      EC100001  M. DURAND                               12 RUE DES LILAS                                  69003   FR 42100001    KIT0012     Couverture à barres automatique 8x4 coul30.000    M2  6880001   
SAPPRD           NPEC      EC100001  M. DURAND                               12 RUE DES LILAS                                  69003   FR 42100001    KIT0031     Kit anti-soulèvement sur tube pour couve1.000     U   6880002   
SAPPRD           NPEC      EC100001  M. DURAND                               12 RUE DES LILAS                                  69003   FR 42100001    LIV0000     Livraison couverture à barres France mét1.000     U   6880003   
SAPPRD           NPEC      EC100245  MME FAURE                               LIEU-DIT LES ÉPINETTES - 4 CHEMIN DU MOULIN       84120   FR 42100002    BAC0450     Bâche hiver opaque 10x5                 50.000    M2  6880011   
SAPPRD           NPEC      EC100245  MME FAURE                               LIEU-DIT LES ÉPINETTES - 4 CHEMIN DU MOULIN       84120   FR 42100002    ENR0002     Enrouleur télescopique                  2.000     U   6880012   
SAPPRD           NPEC      EC100245  MME FAURE                               LIEU-DIT LES ÉPINETTES - 4 CHEMIN DU MOULIN       84120   FR 42100002    LIV0000     Livraison bâche France métropole        1.000     U   6880013   
manifests/20-order-line.yaml
kind: Entityname: order_line_blabel: Ligne de commande à livrerdescription: "An order line the ERP sent the logistics partner: customer, delivery address, article, quantity and unit."match: [line_id]scopes: [logistics-b]columns:  line_id: { label: "Ligne" }  order_no: { label: "Commande" }  customer: { label: "Client" }  customer_name: { label: "Nom" }  address: { label: "Adresse de livraison" }  postcode: { label: "Code postal" }  article: { label: "Article" }  label: { label: "Libellé (40)" }  quantity: { label: "Quantité" }  unit: { label: "Unité" }sources:  - table: t_scenario_edi_cc_b    map: { line_id: line_id, order_no: order_no, customer: customer, customer_name: customer_name, address: address,           postcode: postcode, article: article, label: label, quantity: quantity, unit: unit }
ZINT_CC_42100003.txt
SAPPRD           NPEC      
SAPPRD           NPEC      EC100377  M. NGUYEN                               3 IMPASSE DES CHENES                              13100   FR 42100003    ENR0002     Enrouleur télescopique                  1.000     U   6880021   

Limites

  • Les largeurs sont celles du fichier: si l'ERP change sa mise en page, l'expression change avec lui.
  • Un libellé coupé par l'ERP reste coupé: lumnik ne retrouve pas ce qui n'a pas été envoyé.
  • Fichiers synthétiques, sur le gabarit d'un échange réel.

Logistique · EDI à plat

Les commandes arrivent en fichier à plat.

Une ligne par article, chaque champ à sa place.

ISO-8859-1, largeur fixe

Le problème

Aucun séparateur.

  • Un champ, c'est une position et une largeur.
  • Un outil de mapping coûte cher.

Ce qui n'est pas modifié

L'ERP écrit comme avant.

  • Le même fichier, le même dossier.
  • Aucun format à négocier.

Le piège

Des accents dans un petit fichier.

  • Une seule ligne, un seul é.
  • Trop peu pour deviner l'encodage.

Ce qu'il a fallu écrire

lines: true

Une ligne.

  • Une ligne du fichier, une ligne de table.
  • Les champs découpés à leur place.
  • Deux manifestes, 47 lignes.

Le résultat

Six lignes de commande en colonnes.

  • Client, commande, article, quantité.
  • « Couverture à barres », accent compris.

La limite

Les largeurs sont celles du fichier.

  • Si l'ERP change sa mise en page, le manifeste change avec lui.

Essayer

Le scénario se rejoue en local.

Chaque étape est publiée avec sa sortie.

Ce scénario tourne sur lumnik Open, gratuit et open source.

Essayer lumnik Open →