Bonjour ,
que pensez vous si on essais de Splitter un Message Biztalk en plusieurs Sous-Messages ?
il y a beaucoup de Méthodes différentes a c'elles si :) (Normale) .
le but de ce tutoriel est faire en sorte de manipuler le Message Biztalk dans une orchestration et on utilisant une DLL (Helper Class Library).
le Tutorial sera repartie en 3 partie :
Let's Gooooooooooooooooooooo....
Part 1: XML Message Debatching in Biztalk : Création de la DLL ,Helper
Objectifs :
Ps: la version du framework serait 2.0 sans utilisation du Linq, on utilisera que XmlDocument .
cette version et compatible avec la version de Biztalk Server 2006 sans problème .
notre Class comportera 2 methodes static :
que pensez vous si on essais de Splitter un Message Biztalk en plusieurs Sous-Messages ?
il y a beaucoup de Méthodes différentes a c'elles si :) (Normale) .
le but de ce tutoriel est faire en sorte de manipuler le Message Biztalk dans une orchestration et on utilisant une DLL (Helper Class Library).
le Tutorial sera repartie en 3 partie :
- Part 1 : création de notre DLL Helper qui permet de manipuler le message a splitter .
- Part 2 : Création du projet Biztalk est l'orchestration qui Splittera le Message .
Let's Gooooooooooooooooooooo....
Part 1: XML Message Debatching in Biztalk : Création de la DLL ,Helper
Objectifs :
- splitter un Message XML en n Sous-Messages XML
voici un exemple de message Xml en Imput :
<Books> <Book Id="1" Title="El Coran" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="2" Title="El Sunna El Nabawiya" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="3" Title="L'histoire du prophète mohamed" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="4" Title="l'histoire du prophète adam" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="5" Title="Apprendre Biztalk en 5 jours" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="6" Title="Comment devenir un expert Microsoft" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="7" Title="Biztalk MCTS Guide" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="8" Title="Biztalk pour les nuls" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="9" Title="Asp.net pour les nuls" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="10" Title="L'histoire du prophète Jésus" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> </Books>
Ps: la version du framework serait 2.0 sans utilisation du Linq, on utilisera que XmlDocument .
cette version et compatible avec la version de Biztalk Server 2006 sans problème .
notre Class comportera 2 methodes static :
public static List
Split(XmlDocument OrignBooks, int NbrMAx) private static XmlDocument GetBooks(int PosStart, int PosEnd, XmlDocument OrignBooks)
public static List<XmlDocument> Split(XmlDocument OrignBooks, int NbrMAx) { List<XmlDocument> OutListBooks = new List<XmlDocument>(); int BookCount = OrignBooks.SelectSingleNode("Books").ChildNodes.Count; int steps = BookCount / NbrMAx; int Pos = 0; if (BookCount < NbrMAx) steps = 1; if (BookCount - ((NbrMAx - 1) * steps) >= NbrMAx) steps++; for (int i = 0; i < NbrMAx - 1; i++) { XmlDocument Part = GetBooks(Pos, Pos + steps, OrignBooks); if (Part != null) OutListBooks.Add(Part); Pos += steps; } XmlDocument Last = GetBooks(Pos, BookCount, OrignBooks); if (Last != null) { OutListBooks.Add(Last); } return OutListBooks; }
voila la Méthode qui retourne une partie du Message XML selon la position de début et de fin.
private static XmlDocument GetBooks(int PosStart, int PosEnd, XmlDocument OrignBooks) { XmlDocument newBooks = new XmlDocument(); XmlElement root = newBooks.CreateElement("Books"); newBooks.AppendChild(root); XmlNodeList NLBook = null; XmlNamespaceManager nsmgr = new XmlNamespaceManager(OrignBooks.NameTable); nsmgr.AddNamespace("btns", "http://www.barigo.co/Blog/Bizalk/Split/2013-1.0"); string query = String.Format("//Books/btns:Book[position() > {0} and position() <= {1}]", PosStart, PosEnd); NLBook = OrignBooks.SelectNodes(query, nsmgr); if (NLBook.Count > 0) { XmlNode targetNode = null; foreach (XmlNode c in NLBook) { targetNode = newBooks.ImportNode(c, true); root.AppendChild(targetNode); } return newBooks; } return null; }
voici les étapes a suivre pour créer votre projet de Class Libray en C# avec Visual Studio:
Etape 1: Démarrer Microsoft Visual Studio
Etape 2: dans le Menu Bar, appuyez sur Fichier -> Nouveau Projet Project...
Etape 3: dans la liste a gauche , appuyez sur Windows au dessous de Visual C#.
Etape 4: dans la liste a droite , appuyez sur ClassLibrary /bibliothèque de Class
Etape 5: Changer le Nom et tapez SplitHelper et appuyez sur OK
Etape 6: puis OK.
Lorsque vous cliquez sur OK, Visual Studio va créer un espace de noms avec le nom que vous venez d'utiliser.
ajouter les deux méthodes au dessus (Split et GetBooks) a votre Code , puis faire un Build en Mode Release pour optimiser les performances.
en ce moment vous disposer de votre Class Helper Qui permet de faire le Split de votre Message(Books) en n Sous-Message .
exemple :
si on appel la méthode split avec un Nbr=3.
vous aurez 3 fichiers splitter comme suite :
Fichier XML 1:
j'ai expert donné un exemple de Fichier XML avec Namespace (très important) , car si vous n'avez pas de Namespace dans votre noeud XML , par défaut vous pouvez ignorer ces deux lignes :
a Suivre dans la deuxiéme partie du Tutorial ....
NEXT : Part 2: XML Message Debatching in Biztalk : Création de l'orchestration qui fait le Splitte .
ajouter les deux méthodes au dessus (Split et GetBooks) a votre Code , puis faire un Build en Mode Release pour optimiser les performances.
en ce moment vous disposer de votre Class Helper Qui permet de faire le Split de votre Message(Books) en n Sous-Message .
exemple :
si on appel la méthode split avec un Nbr=3.
vous aurez 3 fichiers splitter comme suite :
Fichier XML 1:
<Books> <Book Id="1" Title="El Coran" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="2" Title="El Sunna El Nabawiya" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="3" Title="L'histoire du prophète mohamed" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> </Books>
Fichier XML 2:
<Books> <Book Id="4" Title="l'histoire du prophète adam" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="5" Title="Apprendre Biztalk en 5 jours" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="6" Title="Comment devenir un expert Microsoft" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> </Books>
Fichier XML 3:
<Books> <Book Id="7" Title="Biztalk MCTS Guide" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="8" Title="Biztalk pour les nuls" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="9" Title="Asp.net pour les nuls" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> <Book Id="10" Title="L'histoire du prophète Jésus" xmlns="http://www.barigo.co/Blog/Bizalk/Split/2013-1.0" /> </Books>
j'ai expert donné un exemple de Fichier XML avec Namespace (très important) , car si vous n'avez pas de Namespace dans votre noeud XML , par défaut vous pouvez ignorer ces deux lignes :
XmlNamespaceManager nsmgr = new XmlNamespaceManager(OrignBooks.NameTable); nsmgr.AddNamespace("btns", "http://www.barigo.co/Blog/Bizalk/Split/2013-1.0");
Dans l'attente de vos commentaires :) ...
a Suivre dans la deuxiéme partie du Tutorial ....
NEXT : Part 2: XML Message Debatching in Biztalk : Création de l'orchestration qui fait le Splitte .
Aucun commentaire:
Enregistrer un commentaire