Lorsque vous voulez lire un web service avec SSIS, rien de plus facile : un composant dédié existe.
A l’intérieur vous y trouverez dans le menu « General » avec un bouton « download WSDL ». Il faut :
1) déclarer un fichier WSDL vide
2) cliquer sur le bouton « Download WSDL » => le fichier WSDL est rempli.
Puis dans le menu « input » vous aurez normalement automatiquement accès aux services, aux méthodes (1er carré rouge), aux paramètres (2nd carré rouge) que propose le webservice :
Et enfin dans le menu « ouput », vous pourrez préciser le fichier XML, par exemple, dans lequel vous souhaitez que les données soient déversées :
Jusqu’ici ça à l’air plutôt simple. Cependant, après exécution de ce composant, vous pourrez constater que le fichier XML possède à chaque balise une syntaxe de type :
<test1 xmlns= »http://schemas.www.w3.org/TR/html14″>Youhou</test1>
Du coup, quand on veut, par la suite, créer un dataFlow avec en source notre fichier XML test.xml, le fichier XSD créé automatiquement n’est pas bon. Il n’arrive pas à interpréter les balises. Vous pourrez parfois avoir l’erreur :
« unable to infer the XSD from the XML file. The xml file contain multiple namespace. »
C’est pourquoi, je vous renvoie sur ce lien qui vous permettra de nettoyer votre fichier XML.
Malgré ces manipulations, le fichier XSD généré automatiquement sera peut-être encore faux. Exemple de message :
» the xml source adapter does not support mixed content modèle or complex types »
Vous pourrez donc modifier à la main les typages ou model vous posant problème.
Et voilà! Votre composant XML vous permettra d’accéder à vos données comme si la source était une table quelconque…
Si vous aussi, vous avez eu une expérience avec les web services et SSIS n’hésitez pas à poster vos commentaires!