2009-04-06 11 views
0

Ich habe diese Daten (alle Elemente sind optional):BizTalk 2006 R2-Mapping Problem

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

Ich brauche diese in ein anderes Schema abzubilden (alle Elemente sind erforderlich):

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

Da die Elemente in der ursprünglichen Anfrage optional sind, generiert das Mapping nur die entsprechenden Elemente für die ursprünglich enthaltenen Elemente . Aber die Validierung der Anfrage wird fehlschlagen.

Beispiel:

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

wird

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

abgebildet werden und die Validierung fehl, weil ich Element1 und Element2 bin fehlt. Die Antwort sein sollte (glaube ich):

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

Wie kann ich dies in der Abbildung? Wie kann ich sicherstellen, dass das Element in der Ausgabenachricht erstellt wird?

Und, nebenbei bemerkt, wenn ein Unterelement nicht vorhanden ist (sagen wir mal „data/optionalElement1/Wert1“ Wie kann ich sicherstellen, dass das Ziel Subelement „Anfrage/Element1/subelement1“ erstellt wird?

Antwort

0

Sie können all dies im Mapper tun.Ich war eine Weile nicht in BizTalk und ich habe es nicht in meiner Nähe, aber ich weiß, es gibt Funktionen im Mapper, mit denen Sie nach der Existenz der Felder Sie überprüfen können Abhängig vom Vorhandensein dieses Felds können Sie angeben, was die entsprechende Aktion für den Mapper ist:

Sie erzwingen die Erstellung von Feldern, indem Sie ihnen Standardwerte im tar geben Schema erhalten. Dies kann auch mithilfe des Mappers über das Eigenschaftenfenster erfolgen.

+0

Ja. So viel ich weiß.Das Problem liegt nicht bei den Elementen der dritten Ebene ("request/Element1/subelement1"), sondern bei den Elementen der zweiten Ebene ("request/Element1"). Welchen Standardwert kann ich diesen Elementen geben, da sie komplexe Typen sind? Ich möchte diese Elemente auch dann erstellen, wenn keine untergeordneten Elemente vorhanden sind. –

1

Machen Sie es ganz einfach. Verwenden Sie die xlst-Datei zum Zuordnen.

Mit der einfachen if-Bedingung können Sie prüfen, ob ein Wert für opetion -Element existiert oder nicht, wenn Wert vorhanden ist, dann mappen Sie, dass sonst der Nullwert (leer) zugeordnet wird. Das komplexe Element wird also generiert, auch wenn für das optionale Element kein Wert vorhanden ist.

Ich hoffe, es wird Ihr Problem lösen.

Verwandte Themen