BizTalk Rulez

About BizTalk and Connected puzzled
posts - 225, comments - 7840, trackbacks - 21

My Links

Archives

.Me

.MVP

.Net 3.0

Adapters

Administering

BizTalk Docs

BizTalk Poster

BizTalk Server Developer Center

EDI

Hot!

Info

Microsoft Net

MOM

Nino's TechNet Articles

Quicklink

RFID

SAP

Tools

VM

Webcast

Schema e Mapping dinamico con Biztalk Server

E' un po di tempo che nei newsgroup noto sempre di più, richieste inerenti la possibilità
di utilizzare schema dinamici,e trasformazioni a runtime.

Potevo esimermi dall' interessarmi a questa cosa? smile_regular

Utilizzare uno shape di transform è la consuetudine, ma obbliga all' utilizzo di uno schema di riferimento.

Queste le alternative:

1) Soluzione classica

Le mappe Biztalk altro non sono che XSLT,perciò seguirei la stessa strada che segue Biztalk.
Mi creerei un XSLT per trasformare il mio XML, e per effettuare la trasformazione utilizzerei semplicemente la classe XSLTransform.
L'xml risultante è il mio messaggio.

2)La più complicata però secondo me la più elegante in assoluto

Con le mappe di Biztalk è possibile utilizzare una tecnica chiamata XSLT Inline, è una tecnica che viene usata esclusivamente in design time.
La mappa necessita di uno schema di entrata, ma in questo caso non è importante la sua struttura o come è fatto, ma solo il suo namespace.
Si utilizza un solo functoid di script e all'interno del funtoid si imposta l'utilizzo di xslt inline, al suo interno si inserisce l'xslt di trasformazione.
Non bisogna collegare i nodi sorgenti, ma solo quelli di destinazione, sarà la mappa a fare il resto.
Questa tecnica è molto valida se si ha la necessità di dover modificare mediante configurazioni esterne le politiche di transform, ma
nel nostro caso non vogliamo utilizzare nessuna tecnica di design time.

Di conseguenza utilizzerei una tecnica che ho battezzato con il nome di Dynamic Mapping.  smile_teeth

Una mappa Biztalk è una classe sealed, ecco in essenziale cosa genera Biztalk quando compila una mappa.

 

namespace mynamespace {

  public sealed class mymap : Microsoft.XLANGs.BaseTypes.TransformBase {

    public () { }

    public override string[] SourceSchemas { //SCHEMA SORGENTE

       get { return new string[1] { "" }; }

    }

    public override string[] TargetSchemas { //SCHEMA DI DESTINAZIONE

       get { return new string[1] { "" }; }

    }

    public override string XmlContent { //XSLT UTILIZZATO PER EFFETTUARE LA TRASFORMAZIONE

       get { return ""; }

    }

    public override string[] XsltArgumentListContent { //ARGOMENTI DELL'XSLT

       // XsltArgument content. If no argument, returns "\n"

       get { return ""; }

    }

    // --------------------------------

    // Private const properties not shown go here

    // --------------------------------

  }

} 

La classe Microsoft.XLANGs.BaseTypes.TransformBase e di tipo abstract e contiene queste due proprieptà

public XslTransform Transform { get { /* Implementation omitted */ }; } 
public XsltArgumentList TransformArgs { get { /* Implementation omitted */ }; } 

che è quello che occorre alla mappa per eseguire la trasformazione.

Non resta che assegnare alle proprietà della nostra classe tutto l' occorrente.

Una strada molto veloce per ottenere velocemente tutto questo è quella di creare prima la mappa
con tutto quello che serve e compilare il progetto in modalita source.

Ho spiegato come attivare questa modalità in questo mio post
http://blogs.ugidotnet.org/biztalk/archive/2006/12/29/63919.aspx

A questo punto è possibile visualizzare il sorgente generato e modificarlo a piacimento.

Queste tecniche le ritengo validissime per tutti quei casi in cui non si può o non si vuole utilizzare uno shape di transform o uno schema predefinito.

Print | posted on domenica 28 gennaio 2007 00:28 |

Feedback

Gravatar

# re: Schema e Mapping dinamico con Biztalk Server

libero che ho, valgono la pena di essere fatti.
Grazie ancorapolice et des r
09/09/2015 07:13 | www.zoo-france.fr
Gravatar

# re: Schema e Mapping dinamico con Biztalk Server

forse mi sono spiegato male, il mio punto di vista è che trovo assolutamente scontata l' integrazione di WF nella MV di Biztalk, e ti dirò di più, la davo per scontata già per la R2 un' anno fa.
Biztalk Server, ci mancherebbe altro ;-)
15/01/2016 05:20 | http://www.avilia-bricolage.fr
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET