Un Web Service pour XCelsius

De Wiki1000
(Différences entre les versions)
Ligne 24 : Ligne 24 :
 
* Tester
 
* Tester
  
===Développement du service===
+
==Développement du service==
  
 
Nous créons un paquet de type service locaux pour héberger le service :
 
Nous créons un paquet de type service locaux pour héberger le service :
Ligne 90 : Ligne 90 :
 
{{#images:image7.png|WebServicesXCelsius}}
 
{{#images:image7.png|WebServicesXCelsius}}
  
===Utilisation dans XCelsius===
+
==Utilisation dans XCelsius==
  
 
Démarrons XCelsius :  
 
Démarrons XCelsius :  

Version du 3 juin 2008 à 17:25

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 !


Modèle:PrecedentSuivant

Outils personnels