> Tech > Utilisation de XMLA : Discover et Execute

Utilisation de XMLA : Discover et Execute

Tech - Par iTPro - Publié le 24 juin 2010
email

L’un des points forts de XMLA est le fait qu’il simplifie la récupération des données par rapport à l’utilisation directe d’OLE DB pour OLAP. Le fournisseur XMLA comporte seulement deux méthodes : Discover et Execute. La première sert à récupérer des métadonnées qui décrivent les services pris en charge par

un fournisseur XMLA spécifique. La deuxième sert à exécuter des requêtes sur la base de données Analysis Services et à retourner les données correspondantes.

Discover. Il s’agit d’une méthode flexible utilisable de manière répétée par un client afin d’obtenir une vue d’ensemble de la configuration et des possibilités du fournisseur de données. Ainsi, un client peut dans un premier temps demander la liste des sources de données disponibles sur un serveur particulier, puis s’informer des propriétés et schémas pris en charge par ces sources de données, afin qu’un développeur puisse écrire correctement des requêtes sur la source de données. Nous allons examiner les arguments que vous envoyez à Discover, puis passer en revue certains exemples d’utilisation de la méthode.

Le code XML du listing 1 présente un appel SOAP destiné à récupérer une liste des sources de données du serveur. Le premier paramètre, RequestType, détermine le type d’information renvoyée par la méthode Discover à propos du fournisseur. Les types disponibles vous permettent d’obtenir une liste des sources de données disponibles sur le serveur (DISCOVER_ DATASOURCES), une listes des propriétés concernant une source de données spécifique sur le serveur (DISCOVER_PROPERTIES), une liste des types de requêtes pris en charge (DISCOVER_ SCHEMA_ROWSETS), une liste des mots clé gérés par le fournisseur (DISCOVER_KEYWORDS), ainsi qu’une constante d’ensemble de lignes de schéma (schema rowset) permettant de récupérer le schéma d’un type de données défini du fournisseur. Le tableau 1 récapitule les paramètres RequestType.

Le deuxième paramètre, Restrictions, permet de définir des conditions sur les données retournées par Discover. Le paramètre RequestType dans l’appel à la méthode Discover détermine les champs que le paramètre Restrictions peut filtrer. Le tableau 2 décrit les champs utilisables par les différents types de schéma dans XMLA pour restreindre les informations renvoyées. Si vous souhaitez retourner tous les types de données pour un RequestType donné, laissez le paramètre Restrictions vide.

Le paramètre Properties apporte des informations supplémentaires sur la requête, non fournies par les autres paramètres. Par exemple, Timeout spécifie la durée en secondes pendant laquelle le fournisseur attendra l’aboutissement de la requête Discover avant de retourner un message d’expiration de délai. Le tableau 3 énumère certaines des propriétés courantes du fournisseur XMLA pour Analysis Services que vous allez vraisemblablement utiliser. L’ordre de spécification des propriétés n’a pas d’importance. Si vous ne précisez pas de valeur Properties, Discover utilise la valeur par défaut appropriée.

L’appel à la méthode Discover dans le listing 1 retourne les résultats au format XML. Les valeurs attribuées aux paramètres RequestType, Restrictions et Properties déterminent le contenu de Result, qui est un paramètre de sortie. Dans le listing 1, notez que j’ai défini DISCOVER_DATASOURCES pour RequestType et la valeur nulle pour Restrictions et Properties, afin que la méthode Discover renvoie toute la liste des sources de données dans le format par défaut (format tabulaire dans ce cas). Pour appeler une méthode SOAP, vous devez envoyer l’enveloppe SOAP au service Web via HTTP. J’ai fourni un exemple d’application Web, téléchargeable sur le site www.itpro.fr Club abonnés. Cet exemple illustre précisément comment envoyer une enveloppe SOAP en JScript au moyen de l’objet Microsoft.XMLHTTP dans la méthode SubmitForm(). Il montre également plus d’exemples de l’utilisation de la méthode Discover et de l’utilisation des informations de source de données récupérées lors du premier appel à la méthode Discover, afin de remplir le prochain appel à celle-ci.

Execute. Après avoir employé la méthode Discover afin de déterminer les métadonnées pour la source de données, vous pouvez utiliser lesdites métadonnées afin de récupérer les données. Pour cela, XMLA fournit la méthode Execute. L’appel de méthode correspondant a la forme suivante :

Execute (Command,Properties, Results)

Comme l’appel SOAP à la méthode Execute du listing 2 le montre, le paramètre Command contient dans une balise <Statement> l’instruction MDX que vous souhaitez exécuter sur votre serveur OLAP. De manière similaire au paramètre Properties de la méthode Discover, le paramètre Properties de la méthode Execute fournit des informations supplémentaires qui contrôlent les données renvoyées par la méthode ou la connexion à la source de données.
Vous devez inclure la balise Properties dans votre appel de méthode Execute, mais la balise peut être vide si vous souhaitez utiliser les valeurs par défaut pour votre requête. Le paramètre Results représente le document SOAP retourné par le serveur. Le contenu de Results est déterminé par les deux autres paramètres.

Le code du listing 2 illustre un exemple d’appel à Execute qui contient une instruction MDX SELECT. Vous appelez la méthode Execute de la même manière que pour la méthode Discover, en envoyant l’enveloppe SOAP au service Web via HTTP. Comme avec n’importe quelle requête SOAP, l’intégralité du message est contenue dans une enveloppe SOAP. Au sein de cette dernière, le corps SOAP inclut le contenu de l’appel à la méthode Execute, en commençant par le paramètre Command. Ce dernier contient la requête MDX qui va s’exécuter sur le serveur.
Le paramètre Properties vient ensuite et inclut le paramètre PropertyList avec chacune des propriétés que le code XML va utiliser pour la requête Execute. Dans ce cas, l’appel Execute spécifie DataSourceInfo, Catalog, Format et AxisFormat dans le paramètre PropertyList. Vous pouvez récupérer toutes ces informations dans un appel à la méthode Discover, tel que celui illustré sur le listing 1. Enfin, vous fermez le corps et l’enveloppe, et la requête est prête à l’envoi au fournisseur XMLA via HTTP.

Téléchargez gratuitement cette ressource

Protection des Données : 10 Best Practices

Protection des Données : 10 Best Practices

Le TOP 10 des meilleures pratiques, processus et solutions de sécurité pour mettre en œuvre une protection efficace des données et limiter au maximum les répercutions d’une violation de données.

Tech - Par iTPro - Publié le 24 juin 2010