2009-08-02 12 views
2

Ich habe ein Schema, das die Details für eine Bestellung enthält. Innerhalb des Schemas habe ich eine Sammlung von Werbebuchungen mit Details zu jedem Artikel in der Bestellung. Schema ähnelt der folgenden Struktur.BizTalk-Mapping, verschachtelte Sammlungen von Elementen, Hilfe benötigt

Order 
    SaleItems 
     SaleItem 
      OrderID 
      Price 
      Quantity 
      etc. 

Ich habe eine Anforderung, dass, wenn die Menge innerhalb saleItem mehr als 1 ist, dass ein andere Position erstellt werden soll, und der Preis zwischen den Positionen aufgeteilt werden, so zum Beispiel:

Order 
    SaleItems 
     SaleItem 
      OrderID 1234 
      Price 99 
      Quantity 3 

sollte in der folgenden führen, dass in der Ausgabe erstellt:

Order 
    SaleItems 
     SaleItem 
      OrderID 1234 
      Price 33 
      Quantity 1 
     SaleItem 
      OrderID 1234 
      Price 33 
      Quantity 1 
     SaleItem 
      OrderID 1234 
      Price 33 
      Quantity 1 

Könnte einer von euch Biztalk Gurus beraten eine der beste Weg, dies zu erreichen? Ich weiß nicht, ob es am besten wäre, es in einer Karte mit einigen der Funktionen zu tun und wenn ja, was man in die Karte einträgt, oder in einer Orchestrierung mit einer Gewohnheit, um die IF Quantity> 1 Logik zu machen. Vielleicht vermisse ich hier etwas sehr Einfaches, aber jede Hilfe würde dankbar angenommen werden.

Richard

Antwort

2

Sie können diese Transformation als benutzerdefinierte XSLT schreiben und dann bekommen Biztalk, dass zu verwenden, um die Transformation zu tun.

0

Sie haben das Szenario, in dem diese Map verwendet wird, nicht erwähnt. Falls Sie diese Konvertierung in einer Orchestrierung benötigen, ist die einfachste und schnellste Lösung, die .NET-Hilfsklassen mit serialisierten Nachrichten zu verwenden. Auf diese Weise können Sie tun, was Sie erwähnt haben, wenn Menge> 1 ... Art der Logik. Ich bin sicher, dass Sie in der Lage sein werden, dies auch in der Karte zu erreichen, benötigen etwas Fidling mit BizTalk Mapper oder einige benutzerdefinierte XSLT-Entwicklung. Möglicherweise müssen Sie die spätere Route auswählen, wenn Sie die Karte in Ihren Häfen verwenden möchten.

HTH