2010-03-10 22 views
1

J'ai un schéma dont la propriété max length est définie sur tous ses éléments, de tailles différentes. Je suis en train de cartographier et je m'attends à ce que la longueur maximale soit dépassée assez souvent.Tronquer automatiquement à MaxLength pendant le mappage

Existe-t-il un moyen de dire à BizTalk de tronquer automatiquement sans devoir entrer et configurer manuellement un fonctoid pour chaque élément?

Y a-t-il un but pour la propriété longueur de longueur autre que la validation?

Répondre

2

Il n'y a aucune fonctionnalité pour faire ce que vous voulez dans le mappeur BizTalk - vous pourriez certainement écrire un pré ou un post-processeur qui ferait cela, mais je dirais que vous vous trompez de chemin.

Cela demandera plus de travail mais je vous conseillerais d'étudier pourquoi vos systèmes source et cible ont des schémas aussi différents. C'est probablement un signe d'avertissement que vous voulez tronquer tant de champs pour pouvoir transmettre des informations.

Il sera bien utile de votre temps pour travailler:

  • -ce que ces éléments maxLength tous strictement nécessaire?
  • La troncature d'un de vos champs peut-elle causer des problèmes, que ce soit techniquement ou pour les utilisateurs professionnels?
  • Est-ce que certains de ces champs devraient plutôt être séparés? Peut-être qu'un système définit un seul champ d'adresse de 100 caractères, alors que l'autre système a un champ de rue et un champ de ville.

La propriété maxLength définit la durée d'une teneur en élément peut être. Alors oui, son seul but est de fournir des règles de validation supplémentaires pour votre schéma.

De l'W3C XML Schema definition:

maxLength · prévoit:

• Contraindre un espace de valeur · · à valeurs avec au plus un certain nombre d'unités de longueur, où les unités de longueur varie en fonction du {type de base définition}.

Je préfère le mot qu'ils utilisent contraignant sur le mot validation - Pour moi, cela exprime plus clairement le concept de votre schéma XML étant un contrat qui définit ce que votre système sera de passer à d'autres systèmes. Des facettes telles que maxLength indiquent (au lecteur du schéma) que les systèmes espérant consommer ces données risquent de se casser s'ils sont dépassés par le paramètre maxLength.