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

Une ligne illisible de l'export ne passe pas en silence

Objectif Ne jamais écrire ni retirer à moitié un catalogue dont une ligne est illisible.

Un ERP exporte chaque nuit son catalogue d'articles. Un libellé contient le séparateur, sans guillemets.

articles-night1.csv
article_code;label;unit_price
A01;Vis inox M6;0.12
A02;Écrou M6;0.08
A03;Rondelle plate M6;0.03
A04;Kit fixation; vis + écrou;1.90
A05;Cheville nylon 8;0.15
A06;Tige filetée M8 1 m;2.40
A07;Équerre 40 mm;0.95
A08;Charnière laiton;3.10
A09;Collier serrage 200;0.22
A10;Patte de scellement;1.35
articles-night2.csv
article_code;label;unit_price
A01;Vis inox M6;0.12
A02;Écrou M6;0.08
A03;Rondelle plate M6;0.03
A04;Kit fixation; vis + écrou;1.90
A05;Cheville nylon 8;0.15
A06;Tige filetée M8 1 m;2.40
A07;Équerre 40 mm;0.95
A08;Charnière laiton;3.10
A10;Patte de scellement;1.35
articles-night3.csv
article_code;label;unit_price
A01;Vis inox M6;0.12
A02;Écrou M6;0.08
A03;Rondelle plate M6;0.03
A04;"Kit fixation; vis + écrou";1.90
A05;Cheville nylon 8;0.15
A06;Tige filetée M8 1 m;2.40
A07;Équerre 40 mm;0.95
A08;Charnière laiton;3.10
A10;Patte de scellement;1.35
$ lm dlq replayed ae43ce95-ffc5-4736-a36f-df922f93a237 --new-run-id 459fa0d1-ddc1-4894-8dea-c798e0b39b8a
Error: API error 400: run 459fa0d1-ddc1-4894-8dea-c798e0b39b8a ended Failed, not Completed
$ lm dlq replayed 4872e311-9f8e-4464-aac6-98a10c065411 --new-run-id a2daaab1-d2c6-4473-baae-81eb8b46af55
marked replayed: 4872e311-9f8e-4464-aac6-98a10c065411

$ lm dlq replayed ae43ce95-ffc5-4736-a36f-df922f93a237 --new-run-id a2daaab1-d2c6-4473-baae-81eb8b46af55
marked replayed: ae43ce95-ffc5-4736-a36f-df922f93a237

$ lm dlq get ae43ce95-ffc5-4736-a36f-df922f93a237
ID:        ae43ce95-ffc5-4736-a36f-df922f93a237
Connector: scenario-export-articles-b (d9d43c30-95e4-4d55-8692-ca14569c9fdb)
Run:       4a5fbe1b-4057-4436-895e-dd3716b5e30f
Reason:    MalformedSource
Attempts:  1
Message:   /tmp/lumnik-scenario/export-that-lies/b/articles.csv:5 — Record has 4 values but only 3 columns are declared
Detail:    {"file":"/tmp/lumnik-scenario/export-that-lies/b/articles.csv","line":5,"message":"Record has 4 values but only 3 columns are declared"}
Payload:   {"raw":["A04","Kit fixation"," vis + écrou","1.90"],"file":"/tmp/lumnik-scenario/export-that-lies/b/articles.csv","line":5}
Resolution: REPLAYED by run a2daaab1-d2c6-4473-baae-81eb8b46af55, 2026-11-03 17:07

Limites

  • Le hub vérifie que le run nommé pouvait porter la ligne (Completed, même connecteur, après la lettre), pas qu'il l'a écrite.
  • Chaque nuit qui relit la ligne ajoute une lettre morte: on les ferme une par une.
  • Données synthétiques.

Catalogue · export de nuit

L'ERP exporte son catalogue chaque nuit.

Une ligne casse le format.

Dix articles, trois nuits

Le problème

Un « ; » dans un libellé.

  • Pas de guillemets.
  • Quatre valeurs pour trois colonnes.

Ce qui n'est pas modifié

L'export reste tel quel.

  • Aucune ligne retouchée.
  • Aucune valeur coupée pour faire tenir.

Le piège

Retirer ce qu'on n'a pas su lire.

  • Le fichier est toute la table.
  • Une ligne illisible ressemble à une ligne absente.

Ce qu'il a fallu écrire

delimiter: ";"

Rien de plus.

  • La ligne illisible part en lettre morte.
  • Aucun retrait tant qu'elle y est.
  • Un manifeste, 14 lignes.

La preuve

La lettre fermée par le bon run.

  • La nuit 2 est refusée comme preuve.
  • La nuit 3, qui a écrit A04, est acceptée.

La limite

Une lettre par nuit.

  • Chaque nuit qui relit la ligne en ajoute une.

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 →