| # Définition des schémas de conversion (ecedi5111s000) Cette session permet d'enregistrer les champs, la séquence et les options pour la conversion des messages entrants. Remarque Cette session est protégée afin d'éviter toute interférence provenant de sessions s'exécutant simultanément. Rubriques liées Utilisation des schémas de conversion (définitions) Organisation Code qui représente le jeu de normes (ANSI X12, UN/EDIFACT et VDA) utilisé dans les communications EDI. Message EDI Messages entrants et/ou sortants pris en charge par l'application. Ces messages peuvent être actifs (c'est-à-dire utilisés dans la société) ou non. Rubriques liées Utilisation des messages EDI pris en charge Direction Direction du message EDI. Type du champ Format de fichier ASCII. Remarque Il est possible de créer un schéma de conversion pour les fichiers dont les champs sont de longueur fixe ou séparés par un séparateur de champ. Code Schéma de conversion Code qui identifie le schéma de conversion. Destination Destination du champ dans le message entrant, telle qu'elle a été définie dans la session Schémas de conversion (Relations) (ecedi5112m000). Champ Nom du champ, par exemple, tdsls400.ofbp. Numéro de séquence Numéro de séquence du champ. Un même champ peut être inclus plusieurs fois. Si le champ n'apparaît qu'une seule fois dans les schémas de conversion, vous pouvez lui donner la valeur 0 ou 1. S'il y apparaît plusieurs fois, son numéro de séquence doit être incrémenté d'une unité pour chaque occurrence dans la définition de schéma de conversion. Séquence de traitement Séquence selon laquelle le champ sera traité. Niveau Niveau défini dans la session Schémas de conversion (Relations) (ecedi5112m000). Position de début Position du champ dans la ligne. Remarque Si le champ Type de champ de la session Réseaux (ecedi0120s000) contient Longueur fixe, vous devez saisir sa position de départ physique. Si le champ Type de champ de la session Réseaux (ecedi0120s000) contient Délimité, vous devez saisir le numéro de champ, en commençant par le numéro 1. Elément Elément d'index pour un champ d'index ou position de début dans une variable de chaîne. Exemple de champ d'index Dans le cas d'une variable de chaîne, la position de début de la chaîne peut être précisée. Ce champ, combiné au champ Longueur, permet d'indiquer une sous-chaîne (par exemple : pour la chaîne "ABCDEFGHIJKLMNOP", la valeur 3 avec une longueur de 5 produit la chaîne suivante : "CDEFG").
Champ tdsls400.disc (profondeur standard = 5 niveaux)
Niveau | 1 | 10
| 2 | 15
| 3 | 8
| 4 | 5
| 5 | 7
Lorsque la valeur est 0, le champ s'affiche en entier : 010015008005007. Cette option ne peut être utilisée que pour les communications internes. Les valeurs 1 et 3 ne produisent que les éléments suivants : 010 et 008. Ce résultat signifie que le champ peut également être utilisé pour les communications externes. Longueur Longueur physique du champ. Lecture de l'enregistrement suivant Si cette case est cochée, un nouvel enregistrement sera lu à ce niveau pour les messages entrants et un nouvel enregistrement de la table appartenant au champ sera lu pour les messages sortants. Si cette case n'est pas cochée, les nouveaux enregistrements ne seront pas lus, mais les enregistrements courants resteront actifs. Remarque Ce champ indique si un nouvel enregistrement doit être lu pour permettre le traitement du contenu du champ. Selon la valeur de ce champ, vous pouvez déterminer si une nouvelle ligne est prête à être lue à partir du même fichier. Niveau itératif Numéro de séquence indiquant l'endroit où le curseur doit être déplacé après le traitement du champ. Ce champ n'est utilisé que si l'enregistrement est destiné au dernier champ d'un niveau interactif ou au dernier champ d'un schéma de conversion. Exemple Par exemple : Vous souhaitez saisir un champ de texte contenant les données d'un fichier ASCII dans un en-tête d'ordre, qui est traité de façon itérative. Une fois le dernier champ de texte saisi, le curseur revient au champ dont le numéro de séquence est 3 par l'intermédiaire du champ Numéro de séquence. La clé et les trois champs de texte sont inclus dans chaque ligne de niveau 2.
Champ | Niveau | Numéro de séquence | Niveau itératif
N° d'ordre | 1 | 1 |
Référence | 1 | 2 |
Champ de texte | 2 | 3 |
Champ de texte | 2 | 4 |
Champ de texte | 2 | 5 | 3
La clé ne correspond pas Numéro de séquence qui indique l'emplacement où le curseur doit être déplacé si la clé est incorrecte ou si celle-ci a changé. Ce champ n'a besoin d'être renseigné que si le nouvel enregistrement est Oui. Exemple 1 - Traitement itératif Une fois que tous les champs ont été traités, le numéro de client est lu. Le niveau 2 est itératif.
Champ | Niveau | Séquence | Retour | Retour | Nouveau
Itér. | Enregistrement clé |  |  |  |
N° d'ordre | 1 | 1 |  |  |
Référence | 1 | 2 |  |  |
Champ de texte | 2 | 3 |  | 6 | oui
Champ de texte | 2 | 4 |  |  |
Champ de texte | 2 | 5 | 3 |  |
Client | 1 | 6 |  |  |
Exemple 2 - Traitement séquentiel Lorsque toutes les lignes d'ordre ont été renseignées (niveau 2), un nouvel ordre peut être introduite (niveau 1).
Champ | Niveau | Séquence | Retour | Retour | Nouveau
Itér. | Enregistrement clé |  |  |  |
N° d'ordre | 1 | 1 |  |  | oui
Référence | 1 | 2 |  |  |
Client | 1 | 3 |  |  |
Article | 2 | 4 |  | 1 | oui
Quantité | 2 | 5 |  |  |
Date de livraison | 2 | 6 | 4 |  |
Ecrire l'enregistrement Si cette case est cochée,, une fois qu'un champ de message entrant a été traité, un enregistrement doit être ajouté à la table concernée selon le résultat de l'expression de sortie. La destination du champ (titre, en-tête ou ligne) détermine la table dans laquelle les messages sont enregistrés. Exemple 1
Champ | Destination | Ecrire l'enregistrement
N° d'ordre | en-tête |
Référence | en-tête |
Client | en-tête | oui
Article | ligne |
Quantité | ligne |
Date de livraison | ligne | oui
Les champs traités après une session d'écriture pour la même destination ne sont pas ajoutés à la table appropriée. Vous ne pouvez pas démarrer plusieurs sessions d'écriture pour un même enregistrement (par exemple : une ligne de commande). En raison de la hiérarchie des destinations, Infor LN vérifie si toutes les destinations supérieures ont été écrites ou non. Si la destination supérieure n'a pas été écrite, les destinations appropriées seront écrites avant la destination indiquée. La hiérarchie est la suivante : Titre En-tête Ligne Exemple 2
Champ | Destination | Ecrire l'enregistrement
N° d'ordre | en-tête |
Référence | en-tête |
Client | en-tête |
Article | ligne |
Quantité | ligne |
Date de livraison | ligne | oui
Comme aucun en-tête n'a encore été écrit, l'en-tête est écrit en premier, suivi de la ligne. S'il n'y a pas de titre, la ligne est écrite avant l'en-tête. Evaluation Code de l'expression d'évaluation. Cette expression détermine si le champ doit être inclus ou non dans le message. Il s'agit d'une expression logique dont le résultat est vrai ou faux. La valeur par défaut de ce champ est 1, vrai. L'expression est exécutée avant l'insertion du champ dans le message. Autrement dit, les actions de lecture et d'écriture associées sont toujours exécutées. En fait, l'expression est une équation. Par exemple, pour le champ Magasin de la commande fournisseur, l'expression peut être : strip((tdpur400.cwar) <> "" Cette expression est vraie si le champ Magasin n'est pas renseigné. Les opérateurs suivants peuvent être employés dans une expression : Le tableau suivant répertorie les opérateurs par ordre de priorité : () - (signe moins) * / \ & + - (ajouter soustraire) = > < <> <= >= NOT AND OR ?: Une expression peut contenir les constantes suivantes :
PI | 3.1415926535..
VRAI | Toujours vrai.
FAUX | Toujours faux.
Une expression peut contenir des fonctions. Il est également possible d'utiliser des plages numériques : a IN [10,20] est égal à .a>=20 AND a<=30 a IN [10,20][30,40][50,60] est égal à a>=10 AND a<=20 OR a>=30 AND a<=40 OR a>=50 AND a<=60 Exemple arithmétique
() | parenthèses (priorité) |
- | signe négatif (argument requis) | a=-b
* | multiplication | 3*5=15
/ | division | 6/2=3
\ | reste d'une division | 8\3=2
& | concaténation de chaînes | "A"&"B"="AB"
+ | addition | 2+3=5
- | soustraction | 3-2=1
Relations (pour comparaison) Exemple
= ou EQ | est égal à | 3=5 est faux
<> ou NE | est différent de | 3<>5 est vrai
> ou GT | est supérieur à | 3>5 est faux
< ou LT | est inférieur à | 3<5 est vrai
>= ou GE | est supérieur ou égal à | 3>=5 est faux
<= ou LE | est inférieur ou égal à | 3<=5 est vrai
Exemple logique
AND | et (les deux sont vrais) | a=b AND b=c
OR | ou (l'un des deux est vrai) | a=b OR a=c
NOT | non (n'est pas vrai) | NOT (a=b AND b=c)
Autres : condition?vrai:faux si <condition> est vraie, <vrai> est exécuté, sinon <faux> (toujours entourer les <condition> de parenthèses car elles ont la priorité la plus basse) Fonctions
abs(N) | Produit la valeur absolue de N
acos(N) | Produit l'angle (en radians) dont N est le cosinus.
asc(S) | Produit le total des valeurs ASCII des caractères de S, asc("ABC")=65+66+67=198
asin(N) | Produit l'angle (en radians) dont N est le sinus.
atan(N) | Produit l'angle (en radians) dont N est la tangente.
chr(N) | Produit le caractère dont N est la valeur ASCII, chr(65)="A"
cos(N) | Produit le cosinus de l'angle N (en radians).
cosh(N) | Produit le cosinus hyperbolique de l'angle N (en radians).
date() | Produit le numéro du jour courant.
date(J,M,D) | Produit le numéro du jour dans la date représentée par J, M et A.
exp(N) | Produit 2.718128.. à la puissance N.
int(N) | Produit l'entier de N (arrondi à l'unité inférieure).
len(S) | Produit le nombre de caractères de S, len("ABC")=3.
log(N) | Produit le logarithme naturel de N.
log10(N) | Produit le logarithme en base 10 de N.
max(N,M) | Produit la valeur la plus élevée de N ou M.
min(N,M) | Produit la valeur la moins élevée de N ou M.
pos(S,T) | Produit la première position où T apparaît dans S, pos("ABCDEFEF","EF")=5.
pow(N,M) | Elève N à la puissance M.
round(N,D,M) | Produit la valeur de N arrondie à D décimales. Si M=0, N est arrondi à l'unité inférieure, round(1.99,2,0)=1.00. If M=1, N est arrondi normalement, round(1.49,2,1)=1.00 et round(1.50,2,1)=2.00. Si M=2, N est arrondi à l'unité supérieure, round(1.01,2,2)=2.00.
rpos(S,T) | Produit la dernière position où T apparaît dans S, rpos("ABCDEFEF,"EF")=7.
sin(N) | Produit le sinus de l'angle N (en radians).
sinh(N) | Produit le sinus hyperbolique de l'angle N (en radians).
sqrt(N) | Produit la racine carrée non négative de N.
str(N) | Crée une chaîne de N, str(1.04)="1.04"
strip(S) | Ramène S à la ligne sans les espace qui le suivent.
tan(N) | Produit la tangente de l'angle N (en radians).
tanh(N) | Produit la tangente hyperbolique de l'angle N (en radians).
time() | Produit l'heure courante au format HHMM format.
val(S) | Produit la valeur numérique de S, val("1.04")=1.04.
Affectation Code pour l'expression d'assignation. Le résultat de l'expression est écrit dans le fichier ASCII (messages sortants), qui est mis à jour dans l'application Infor LN (messages entrants). Par exemple, pour conférer à la Date de livraison planifiée une valeur antérieure de deux jours à la Date de réception planifiée, vous devez attribuer l'expression d'assignation suivante au champ Date de livraison planifiée: tdsls400.prdt - 172800. Remarque Les jours doivent être exprimés en secondes car, en interne, les dates sont traitées au format UTC. Par conséquent, la valeur 172 800 correspond à deux jours. Tous les champs de table référencés dans une expression d'assignation doivent être traités avant le champ auquel cette expression d'assignation est attribuée. Le champ référencé dans l'expression d'assignation doit avoir une séquence de traitement inférieure, comme indiqué dans les définitions de schéma de conversion. Par exemple, dans l'exemple précédent, le champ tdsls400.prdt doit avoir une séquence de traitement inférieure au champ tdsls400.ddat, comme indiqué dans les définitions de schéma de conversion. Utiliser conversion Si cette case est cochée, la table de conversion appropriée est utilisée pour convertir le champ. Si cette case n'est pas cochée, le code correspond au code de Infor LN et n'a pas besoin d'être converti. Remarque Tout champ qui peut être inclus dans un message entrant est convertible. Si cette case n'est pas cochée, le code du message correspond à celui défini dans Infor LN et il n'a pas besoin d'être converti. Action si erreur de conversion Marche à suivre en cas d'erreur lors de la conversion des messages entrants. Remarque La valeur sélectionnée doit pouvoir être prise en charge par les sessions de traitement. Table de codes Code que vous souhaitez inclure dans le message. Par exemple, vous souhaitez saisir un code dans un champ de texte. Cette table contient le code A et la description de la majoration. Le champ de texte contient "Description : majoration". Si le code est introuvable, le champ de texte contient le code au lieu de la description. Remarque Ce champ n'est accessible que si l'enregistrement est destiné à un champ de texte. Description du champ Si le champ est un champ de texte, saisissez la chaîne de texte que vous souhaitez voir apparaître avant le contenu du champ de texte. Par exemple, si vous tapez Description dans ce champ et que le contenu du champ est Soupape de moteur diesel, le champ de texte contient "Description : Soupape de moteur diesel". Action champ Mode de traitement des champs des messages entrants. Valeur si champ vide Valeur utilisée pour remplacer les champs non renseignés du message EDI. Code de position de début Position de départ du premier qualificateur. Certaines conversions de code dans ERP EDI nécessitent un identificateur de code. Ces ID sont des qualificateurs utilisés dans les conversions de code pour vous permettre de convertir des spécifications de données supplémentaires et sont transférées à la première position de qualificateur des définitions de schémas de conversion. Remarque Si le champ Type de champ de la session Réseaux (ecedi0120s000) contient Longueur fixe, vous devez saisir sa position de départ physique. Si le champ Type de champ de la session Réseaux (ecedi0120s000) contient Délimité, vous devez saisir le numéro du champ, en commençant par 1. Longueur du code Longueur physique du qualificateur. Remarque Cette valeur ne peut être saisie que si le type de champ est Longueur fixe, tel qu'il a été défini dans la session Réseaux (ecedi0520m000). Ne pas convertir le code Valeur du qualificateur si aucune conversion n'est lancée. Supposons, par exemple, que la valeur SC soit indiquée. Si un message contient la valeur de qualificateur SC, aucune conversion ne sera lancée ; si le message contient une autre valeur, celle-ci sera convertie. Remarque Si la valeur lue est égale à la valeur du qualificateur, aucune table de conversion ne sera appliquée et le fichier de lecture sera utilisé. Cette situation se produit parfois quand les deux parties utilisent des codes Article EAN. Paramètres par défaut Valeur à utiliser si aucun qualificateur n'est reçu dans le message. Champ Informations de conversion pour ce champ descriptif et l'élément de données correspondant du message EDI. Ce champ descriptif n'est utilisé qu'à titre d'information et de référence. Code 1 Informations de conversion pour le premier qualificateur et l'élément de données correspondant du message EDI. Code 2 Informations de conversion pour le second qualificateur et l'élément de données correspondant du message EDI. |