Utilisation des propriétés SourceExpr et DestExpr
Dans la dernière section, nous avons expliqué comment ajouter des instances de table à un mappage. Dans cette section, nous verrons comment accéder aux données des champs d’un tableau. Et comment utiliser les valeurs constantes et les filtres.
Ce module vous permet de lire les données des champs des tables, chaque fois qu’il y a une propriété SourceExpr (expression source). Le SourceExpr peut également être utilisé pour spécifier des valeurs constantes ou pour appeler des fonctions. Vous trouverez cette propriété sur les lignes de données de mappage du type de format NAV et sur les lignes de données des mappages d’exportation. Mais cette propriété est également disponible pour les paramètres de la fonction personnalisée et pour étendre les messages d’erreur. Il y a d’autres options, dont nous parlerons un peu plus loin dans cette section.
Pour écrire des données dans les champs de la table, il existe une autre propriété appelée DestExpr (expression de destination). Cette propriété vous permet également de vérifier les données par rapport à un filtre spécifié, au lieu de les stocker. Nous entrerons dans les détails dans un instant. Il est important de savoir que vous pouvez écrire des données dans n’importe quel champ d’une instance de table, même si le Mode table est défini sur Read. Ecrire dans une table en mode lecture appellera la logique de validation de la VNI, mais nous ne modifions pas l’enregistrement. Sur nos tables tampons, vous pouvez l’utiliser pour stocker une valeur pendant un certain temps dans le mappage. Sur d’autres tables, il dépendra de la logique de validation s’il est sûr d’utiliser une table en mode lecture pour stocker temporairement des données.
La propriété SourceExpr
Le type de source spécifie le type de données que vous voulez lire. Les valeurs autorisées sont :
Une valeur constante qui est entrée dans le mappage.
Zone d’une instance de table, qui est l’une des lignes de mappage parent de cette ligne de mappage. Dans le cas où vous voulez lire un champ de somme, vous devez être en dehors de l’instance de la table, mais en dessous.
Vous voulez lire les données d’une fonction intégrée ou personnalisée.
Cette propriété a été ajoutée dans Anveo EDI Connect 4.00.
Cette propriété n’est disponible que si SrcType est défini sur Const. Cette propriété spécifie le type de données de la valeur constante. Vous devez sélectionner le type de données pour éviter les erreurs dues aux différentes localisations utilisées lors de la configuration et de l’exécution. Dans les versions plus anciennes, vous deviez vous assurer que la locale pendant l’installation était la même que pendant l’exécution pour éviter, par exemple, que les numéros soient interprétés différemment.
Vous pouvez choisir parmi les types de données suivants :
Une valeur de texte constante.
Un texte qui peut contenir des caractères spéciaux, comme un retour chariot<CR>. Il y a une liste de tous les caractères spéciaux supportés.
Une valeur booléenne, comme True ou False.
Une valeur d’option. Vous devez utiliser la valeur entière de l’option dans la base de données.
Une valeur entière (32 bits).
Une valeur décimale.
Une grande valeur entière (64 bits).
La valeur contient une durée.
La valeur est une valeur de code dynamique (en majuscules seulement, n’autorise pas tous les caractères).
Représente une valeur de date.
Représente une valeur temporelle.
Représente une valeur combinée date et heure.
Une formule de date.
Un identifiant unique global (GUID).
Cette propriété n’est disponible que si SrcType est défini sur Const. Représente la valeur constante que vous voulez utiliser.
Cette propriété n’est disponible que si le SrcType est défini sur Function. Vous pouvez utiliser AssistEdit pour spécifier l’objet et la fonction. Si les paramètres nécessaires à la fonction sont des paramètres SourceExpr, ils ne prennent pas en charge l’imbrication des fonctions.
Cette propriété n’est disponible que si le Field SrcType est défini sur Field. Sélectionnez l’instance de la table à partir de laquelle vous voulez lire les données. La table doit être l’un des parents de la ligne de mappage courante, pour lire les données d’un enregistrement. Si vous voulez lire les champs de somme, vous devez être sous l’instance de table, mais pas un enfant de celle-ci.
Cette propriété n’est disponible que si le Field SrcType est défini sur Field. Sélectionne la colonne / le champ que vous voulez lire.
Vous pouvez spécifier une conversion de valeur, pour changer la valeur sélectionnée en une autre valeur cible. Il y a une section sur la façon de configurer les traductions des valeurs.
Le code de la conversion de valeur à utiliser.
Que se passe-t-il si la valeur n’est pas trouvée dans la conversion de valeur ?
Le module ne fait rien si la traduction est manquante. Il utilise la valeur originale sans traduction.
Sortie d’une valeur vide.
Ajoutez une entrée de journal d’informations et utilisez la valeur d’origine.
Ajoutez une entrée de protocole d’avertissement et utilisez la valeur d’origine.
Cassez immédiatement le mappage et enregistrez une erreur.
Créez une entrée de journal des erreurs et ne terminez pas le mappage avec succès, mais poursuivez le traitement pour trouver d’autres erreurs également.
Cette propriété est cachée par défaut. Vous pouvez spécifier une liste de valeurs autorisées et créer des erreurs si vous essayez d’exporter une autre valeur.
La liste des valeurs autorisées. Vous pouvez utiliser AssistEdit ou entrer les termes séparés par des virgules.
Que se passe-t-il si la valeur source n’est pas dans la liste des valeurs autorisées ?
N’utilisez pas la validation avancée et ignorez les valeurs de la liste.
Créez une entrée de journal d’informations.
Créez une entrée de journal d’avertissement.
Cassez immédiatement le mappage avec un message d’erreur.
Renvoyer une erreur lors de l’exécution du mappage, mais continuer à traiter le mappage, pour trouver d’autres erreurs également.
La propriété DestExpr
Sélectionnez la cible pour une valeur. Les valeurs suivantes sont valables :
Vide signifie que la valeur est ignorée. Vous pouvez l’utiliser pour ignorer des zones lors des importations ou, par exemple, pour ignorer une valeur de retour de fonction.
La valeur doit être vérifiée par rapport à un filtre Dynamique. Si le filtre ne correspond pas, la valeur n’est pas acceptée. Selon le convertisseur, un message d’erreur s’affiche ou une partie du mappage est sautée. Vous en apprendrez plus sur l’utilisation des filtres pour des convertisseurs spécifiques sur la documentation de chaque convertisseur.
La valeur doit être écrite dans un champ d’une instance de table dans ce mappage.
Cette propriété n’est disponible que si le DestType est défini sur Filter. Le filtre Dynamique filtre la valeur est vérifiée. La valeur sera interprétée comme une valeur texte pour l’application du filtre. Un exemple typique serait « BY|IV », pour permettre les valeurs « BY » et « IV ».
Cette propriété n’est disponible que si le DestType est défini sur Field. Sélectionne l’instance de la table dans laquelle la valeur doit être écrite. L’instance de la table doit être l’un des parents de la ligne de mappage courante.
Cette propriété n’est disponible que si le DestType est défini sur Field. Nom de zone/nom de colonne de la zone cible de la table.
Cette propriété n’est disponible que si le DestType est défini sur Field. Cette propriété n’est disponible qu’en tant que propriété avancée. Si vous définissez cette propriété sur False, le déclencheur de validation de la Microsoft Dynamics NAV 2016 pour ce champ ne sera pas pris en compte.
Soyez très prudent lorsque vous utilisez False. Vous ne devez désactiver la validation qu’après avoir consulté un programmeur. Vous ne devriez pas le désactiver sur aucune des tables de dynamique standard, sauf si vous savez vraiment ce que vous faites. Vous pouvez rendre la Microsoft Dynamics NAV 2016 inutilisable, en sautant le code de validation.
Cette propriété n’est disponible que si le DestType est défini sur Field et que vous utilisez le convertisseur NAV. Vous trouverez plus d’informations sur la page convertisseur.