Un Web Service pour XCelsius

De Wiki1000
Version du 22 août 2009 à 09:05 par Syfre (discuter | contributions)
(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

Sommaire

XCelsius

XCelsius est un logiciel de la suite Business Object permettant de construire des tableaux de bords graphiques et interactifs, XCelsius supporte différent type de connecteur de données dont un connecteur Service Web qui permet d'appeler des Web Services.

Dans cet exemple nous allons implémenter un service ligne 1000 fournissant le total des engagement par nature pour un tableau de bord XCelsius.

Les différentes étapes

Le développement du service :

  • Ajout d'un paquet de service
  • Ajout d'une classe résultat
  • Ajout d'une classe support de service
  • Ajout d'une opération de service

L'utilisation du service dans XCelsius :

  • Créer un nouveau document XCelsius
  • Définir la structures des données échangées
  • Ajouter une source de données Web Service
  • Mapper la source de données sur la structure des données
  • Ajouter un diagramme par secteur
  • Tester

Développement du service

Nous créons un paquet de type service locaux pour héberger le service :

image1.png

nous ajoutons ensuite une classe non persistente qui contiendra les valeurs retournées à XCelsius :

image2.png

image3.png

Cette classe contient deux attributs :

  • Le code de la nature
  • La valeur engagée sur cette nature

Nous ajoutons ensuite une classe support pour le service, le rôle de cette classe est de supporter les opérations du service, elle ne contient donc aucun attribut :

image4.png

puis l'opération du service :

image5.png

Cette opération ne prend pas de paramètre en entrée et retourne une liste de nature d'engagement, la liste des nature engagement est retourné par un paramètre out de type WSX_NatureEngagementList :

image6.png

nous modifions ensuite le code code l'opération pour obtenir cette liste :

var vCursor:TDetailEngagementCursor; inst:WSX_NatureEngagement;
begin
  vCursor := TDetailEngagement.CreateCursor;
  vCursor.Descendants := True;
  vCursor.AgregateCount := 1;
  vCursor.Agregates[1] := 'montantValorisation';
  vCursor.GroupBycount := 1;
  vCursor.GroupBys[1] := 'NatureBudgetaire.code';
  vCursor.Open;
  while not vCursor.Eoi do
   begin
     inst := WSX_NatureEngagement.Create;
     inst.Code := vCursor.Fields[0];
     inst.Montant := vCursor.Fields[1];
     rslt.AddRef(inst);
     vCursor.Next;
   end;
end;

notez qu'il n'est pas nécessaire d'instancier la liste reçue en paramètre.

Après avoir relancer le Service ligne 1000 nous pouvons vérifier que notre Web Service est bien disponible en interrogeant son wsdl :

image7.png

Utilisation dans XCelsius

Démarrons XCelsius :

image8.png

Nous définissons d'abord une structure de données dans la feuille Excel pour recevoir nos données :

image9.png

Les valeurs saisies servent uniquement à matérialiser les données lors du développement, elles seront remplacées lors de l'exécution par les valeurs retournées par le Web service.

puis nous ajoutons une connexion Web Services :

image10.png

après importation du wsdl la connexion présente les différentes opérations disponibles sur le service, après avoir sélectionnée notre opération nous établissons ensuite la relation entre ses paramètres et les cellules du tableau Excel :

image11.png

nous ajoutons ensuite un composant diagramme et nous relions ce composant aux cellules du tableau, le code de l'engagement sera une étiquette, la valeur engagée sera une donnée du diagramme :

image12.png

Exécutons :

image13.png

Et voila !


{{Footer|Web Services (ws)





Whos here now:   Members 0   Guests 0   Bots & Crawlers 1
 
Outils personnels