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

Chaque ligne d'un IDoc SAP ORDERS05 retrouve sa commande client

Objectif Lire les IDocs de commande d'un client SAP, une ligne par ligne de commande, sans middleware.

Le SAP d'un client écrit ses commandes en IDocs ORDERS05, dans un fichier à plat. La commande est en tête de l'IDoc, l'article plus bas.

ORDERS05_20261022.txt
EDI_DC40  1000000000004711001740 3022  ORDERS05                                                    ORDERS                                                                                                                                                                                                                                                                                                                                                                                                                                   
E2EDK01                       100000000000471100100000100000002    EUREUR                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
E2EDK02                       1000000000004711001000002000000020014500012345                               20261022                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
E2EDK02                       100000000000471100100000300000002002SO-77120                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
E2EDP01                       100000000000471100100000400000002000010     120.000        PCE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
E2EDP19                       100000000000471100100000500000403001CX-889-BLUE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
E2EDP19                       100000000000471100100000600000403002ART-10442                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
E2EDP01                       100000000000471100100000700000002000020     48.500         KGM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
E2EDP19                       100000000000471100100000800000703002ART-20017                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
E2EDS01                       1000000000004711001000009000000020023                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
EDI_DC40  1000000000004711002740 3022  ORDERS05                                                    ORDERS                                                                                                                                                                                                                                                                                                                                                                                                                                   
E2EDK01                       100000000000471100200000100000002    EUREUR                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
E2EDK02                       100000000000471100200000200000002002SO-77121                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
E2EDP01                       100000000000471100200000300000002000010     6.000          PCE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
E2EDP19                       100000000000471100200000400000303002ART-10442                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
E2EDS01                       1000000000004711002000005000000020023                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
manifests/20-idoc-record.yaml
kind: Entityname: idoc_record_blabel: Enregistrement IDocdescription: "One record of an ORDERS05 IDoc, in file order: its segment, and the purchase order and item it belongs to."match: [docnum, segnum]scopes: [order-desk-b]columns:  docnum: { label: "IDoc" }  segnum: { label: "N°" }  segment: { label: "Segment" }  po_number: { label: "Commande client" }  item: { label: "Poste" }  qualifier: { label: "Qualifiant" }  material: { label: "Article" }  quantity: { label: "Quantité" }  unit: { label: "Unité" }sources:  - table: t_scenario_idoc_b    map: { docnum: docnum, segnum: segnum, segment: segment, po_number: po_number, item: item, qualifier: qualifier, material: material, quantity: quantity, unit: unit }
$ lm entity get idoc_record_b --filter segment=E2EDP19 --filter qualifier=002
DOCNUM            SEGNUM  SEGMENT  PO_NUMBER   ITEM    QUALIFIER  MATERIAL   QUANTITY  UNIT  _CONFLICTS
0000000004711001  000006  E2EDP19  4500012345  000010  002        ART-10442  120       PCE   {}
0000000004711001  000008  E2EDP19  4500012345  000020  002        ART-20017  48.5      KGM   {}
0000000004711002  000004  E2EDP19              000010  002        ART-10442  6         PCE   {}

Limites

  • Un second regex-extract qui écrit la même colonne y met null là où il ne correspond pas: le DOCNUM est lu par un seul motif.
  • Les lignes sont une lecture filtrée des enregistrements: un poste sans E2EDP19 002 n'a pas de ligne.
  • Fichier synthétique, format simplifié, commandes et articles fictifs.

Ventes · SAP

Le client envoie ses commandes en IDoc.

Un fichier à plat, largeur fixe.

Deux IDocs ORDERS05

Le problème

La commande est loin de l'article.

  • Le numéro dans E2EDK02.
  • L'article dans E2EDP19, plus bas.

Ce qui n'est pas modifié

Le SAP du client reste tel quel.

  • Son fichier, son format.
  • Aucun middleware.

Le piège

Un IDoc sans numéro de commande.

  • Il ne doit pas prendre celui d'avant.
  • Sinon la ligne part sur la mauvaise commande.

Ce qu'il a fallu écrire

reset-when: { in: [EDI_DC40] }

Une ligne.

  • Le numéro repart à chaque IDoc.
  • Chaque ligne garde sa commande.
  • Deux manifestes, 50 lignes.

Le résultat

Trois lignes de commande.

  • ART-10442 × 120 PCE, ART-20017 × 48,5 KGM.
  • Le second IDoc reste sans numéro.

La limite

Un poste sans article n'a pas de ligne.

  • Les lignes sont une lecture filtrée des enregistrements.

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 →