2009-04-06 35 views
0

Je ces données (tous les éléments sont en option):BizTalk 2006 problème de cartographie R2

<data> 
<optionalElement1>...</optionalElement1> 
<optionalElement2>...</optionalElement2> 
<optionalElement3>...</optionalElement3> 
</data> 

Je dois carte cela à un autre schéma (tous les éléments sont requis):

<request> 
<Element1>...</Element1> 
<Element2>...</Element2> 
<Element3>...</Element3> 
</request> 

Étant donné que les éléments de la demande initiale sont facultatifs, la mise en correspondance génère uniquement les éléments correspondants pour les éléments initialement inclus . Mais la validation de la demande échouera.

Exemple:

<data> 
<optionalElement3> 
<value1>1</value1> 
<value2>2</value2> 
</optionalElement3> 
</data> 

seront mis en correspondance

<request> 
<Element3> 
<subelement1>1</subelement1> 
<subelement2>2</subelement2> 
</Element3> 
</request> 

Et la validation échouera parce que je suis absent Element1 et Element2. La réponse devrait être (je pense):

<request> 
<Element1 xsi:nil="true" /> 
<Element2 xsi:nil="true" /> 
<Element3> 
<subelement1>1</subelement1> 
<subelement2>2<subelement2> 
</Element3> 
</request> 

Comment puis-je faire dans la cartographie? Comment puis-je m'assurer que l'élément est créé dans le message de sortie?

Et, en passant, si un sous-élément est pas présent (disons « données/optionalElement1/valeur1 » comment puis-je faire en sorte que la destination sous-élément « demande/Element1/subelement1 » est créé?

Répondre

0

vous pouvez faire tout cela dans le mappeur. Je ne l'ai pas été en Biztalk pendant un certain temps et je ne l'ai pas près de moi, mais je sais qu'il ya functiods dans le mappeur qui vous permet de vérifier l'existence des champs besoin. en fonction de l'existence de ces champs, vous pouvez spécifier l'action appropriée pour le cartographe est.

vous obligez la création de champs en leur donnant des valeurs par défaut dans le goudron obtenir un schéma. Cela peut également être fait en utilisant le mappeur, via la fenêtre des propriétés.

+0

Oui. Tant que je sais.Le problème n'est pas avec les éléments de troisième niveau ("request/Element1/subelement1") mais ceux de deuxième niveau ("request/Element1"). Quelle valeur par défaut puis-je donner à ces éléments puisque ce sont des types complexes? Je veux créer ces éléments même s'il n'y a pas d'éléments enfants. –

1

il est très simple. Utilisez le fichier xlst pour le mappage.

L'utilisation simple si condition que vous pouvez vérifier la valeur existe pour l'élément opetion ou non, si la valeur carte alors que existent map sinon la valeur null (vide). Donc, l'élément complexe se produit même s'il n'y a pas de valeur pour l'élément optionnel.

Espérons que cela résoudra votre problème.

Questions connexes