le type de transaction d'edi n'a pas vraiment d'importance (850 = commande, 875 = épicerie po). Ayant écrit quelques analyseurs d'EDI, voici quelques choses que j'ai trouvé:
Vous devriez pouvoir compter sur l'ISA (et l'ISA seulement) en largeur fixe (105 caractères si la mémoire est utilisée). supprime les 105 premiers caractères. tout ce qui suit et avant la première occurrence de "GS" est votre terminateur de ligne (cela peut être n'importe quoi, inclure un 0x07 - le bip - alors attention si vous sortez en stdout pour le débogage ou vous pouvez avoir un tas de bips hors de l'orateur). normalement c'est 1 ou 2 caractères, parfois cela peut être plus (si la personne vous envoyant les données ajoute un terminateur supplémentaire pour une raison quelconque). Une fois que vous avez le terminateur de ligne, vous pouvez obtenir le délimiteur de segment (champ). Je tire normalement les 3 caractères de la ligne GS et je l'utilise, même si le 4ème caractère de la ligne ISA devrait aussi fonctionner.
également être conscient que vous pouvez obtenir un fichier avec plusieurs ISA dedans. Dans ce cas, ne peut pas compter sur la ligne ou les séparateurs de champ étant les mêmes dans chaque ISA.
autre chose .. il est également possible (encore une fois, pas sûr si sa spécification) pour un fichier edi d'avoir une longueur ISA variable. C'est très rare, mais j'ai dû l'accommoder. si cela arrive, vous devez analyser la ligne dans ses champs. Le dernier champ de l'ISA n'est qu'un long caractère, vous pouvez donc déterminer la longueur réelle de l'ISA. Si c'était moi, je ne m'inquiéterais pas à moins de voir un fichier comme ça. c'est une occurance rare. Ce que j'ai dit ci-dessus peut ne pas être à la lettre du "spec" ... c'est-à-dire, je ne suis pas sûr qu'il est légal d'avoir différents séparateurs de ligne dans le même fichier, mais dans différents ISA, mais c'est techniquement possible et je l'accepte parce que je dois traiter les fichiers qui arrivent de cette façon. le processeur edi j'utilise des processus de plus de 5000 fichiers par jour avec plus de 3000 sources de données possibles (donc je vois beaucoup de trucs bizarres).
meilleures salutations, don
EDI en 2010? Je pensais que XML est juste un peu plus facile de travailler avec –
90% des revenus proviennent de l'EDI. Walmart, Target, Toys R Us et d'autres grands détaillants représentent 50% de ce chiffre. Nous n'utilisons pas l'EDI parce que nous l'aimons, nous l'utilisons parce que nos clients le font. Cela ne vaut pas le temps et l'argent pour ces grands détaillants de changer de format, parce que cela fonctionne. – Brandon
Quand je dis 90% du chiffre d'affaires, j'espère qu'il était compris que je voulais dire 90% du chiffre d'affaires de mon entreprise. – Brandon