Freigeben über


Wertzuordnungsfunktioid

Der Wertzuordnung-Functoid gibt den Wert seines zweiten Parameters zurück, wenn sein erster Parameter wahr ist. Eine häufige Verwendung des Funktoids besteht darin, die Attribute eines Felds in die Attribute eines Datensatzes zu ändern. Um einen Teil einer Eingabenachricht zu vereinfachen, indem mehrere Datensätze in einen einzelnen Datensatz konvertiert werden, verwenden Sie das Functoid "Value Mapping (Flattening)".

Die folgende Abbildung zeigt eine Karte mit dem Functoid "Wertzuordnung", das verwendet wird, um die Attribute eines Felds in die Attribute eines Datensatzes umzuwandeln.

Abbildung, die eine Karte mit dem Functoid
Wertzuordnungs-Functoid-Karte

Der folgende Code zeigt eine Eingabemeldung, in der Paaren von Namen und Werten den Attributen Name und Value zugewiesen werden.

<ns0:Root xmlns:ns0="http://ValueMapping.WeatherIn">  
    <Record>  
        <Field Name="WindSpeed" Value="5"/>   
        <Field Name="Temperature" Value="20" />  
    </Record>  
    <Record>  
        <Field Name="WindSpeed" Value="15" />  
        <Field Name="Temperature" Value="18" />  
    </Record>  
</ns0:Root>  

Die vorangehende Kartierung kann diese Nachricht in eine Form umwandeln, in der die Werte Attributen mit den entsprechenden Namen in separaten Datensätzen zugewiesen werden.

<ns0:Root xmlns:ns0="http://ValueMapping.WeatherOut">  
    <Record WindSpeed="5"/>  
    <Record Temperature="20"/>  
    <Record WindSpeed="15"/>  
    <Record Temperature="18"/>  
</ns0:Root>  

Die Equal-Funktoiden testen die Werte des Name-Attributs. Der erste Gleich-Functoid prüft, ob der Wert von Name "WindSpeed" ist. Wenn der Name "WindSpeed" ist, gibt der erste Gleich-Functoid True zurück. Dadurch kann wiederum der Wertzuordnungs-Functoid den Wert des WindSpeed-Attributs in der Ausgabeinstanznachricht festlegen.

Unterdrücken der Erstellung leerer Tags

Um leere Tags zu unterdrücken, verwenden Sie das Functoid "Wertzuordnung", um zu steuern, ob ein Tag erstellt wird oder nicht. Wenn der Wert auf "true" ausgewertet wird, wird das Zielfeld erstellt; andernfalls wird das Zielfeld nicht erstellt. Verwenden Sie in einem Schleifenszenario ein logisches Functoid, und verbinden Sie es mit dem Zieldatensatz oder -feld. Wenn die Bedingung auf "false" ausgewertet wird, wird das Tag nicht erstellt. Ein Beispiel finden Sie unter "Bedingte Schleifen".

Erzwingen der Erstellung leerer Tags

Um zu erzwingen, dass leere Tags erstellt werden, können Sie einen Wert in der Value-Eigenschaft des Zielfelds hinzufügen oder ein Verketten-Functoid mit dem Zielfeld verknüpfen. In BizTalk Server ist es möglich, die Generierung leerer Tags zu erzwingen, indem der Wert "<empty>" in der Value-Eigenschaft des Zielfelds ausgewählt wird. In diesem Fall wird das Feld mit dem leeren Wert erstellt.

Siehe auch

Wertzuordnung (Flachung) Functoid
Hinzufügen von Wertzuordnungs-Functoiden zu einer Karte
Erweiterte Functoids