GetChart

Description

Cette opération permet à l'utilisateur de demander à SIMAXOnline :
- soit les informations nécessaires pour dessiner un graphe <OnlyData>1</OnlyData>
- soit la représentation binaire de l'image du graphe <OnlyData>0</OnlyData>

Dans les tous cas, le client doit fournir des informations de dimensions afin que SIMAXOnline puisse en déduire le graphe qu'il est possible de dessiner dans la zone impartie (width, height, dpi)

Cette opération est à utiliser soit après une opération de type list soit en fournissant des informations qui permettent de charger une liste de données sur laquelle travailler.

Les 3 cas d'utilisation sont les suivants :

1- On souhaite afficher tous les graphes que SIMAXOnline est capable de générer de manière automatique. Dans ce cas là envoyer une requête List avec DisplayMode = chartData puis une requête GetChart pour chaque graphe en fournissant l'indice du graphe à chaque fois.
(index, selectedItems)

2- On souhaite afficher un graphe en particulier en utilisant les données chargées avec l'action List précédente. Cette fois-ci, il faut envoyer une requête List avec Displaymode = list puis demander à recevoir les infos du graphe avec GetChart ainsi que les axes et le type de calcul choisi.
(axes, calculation, selectedItems)

3- On souhaite afficher un graphe particulier sans demander à lister les enregistrements avant. Tout va se faire dans la requête GetChart. ParamXml et Table vous permettent de donner les paramètres pour que SIMAXOnline charge une liste d'enregistrements sur lesquels travailler. De plus, comme dans le cas 2, le client doit indiquer les axes et le type de calcul choisi
(ParamXML, Table, axes, calculation)

Dans les cas 1 et 2, le client peut fournir une liste d'elements selectionnés sur lesquels travailler.

Requête

Premièrement il faut indiquer si vous voulez les données ou l'image du graphe (OnlyData).
Ensuite vous devez indiquer quelles sont les dimensions dont vous disposez pour dessiner le graphe(width, height, dpi).

On retrouve les 3 cas d'utilisation de GetChart

1- Vous voulez afficher les graphes automatique, utiliser l'indice (index) pour demander explicitement le n-ièm graphe

2- Vous souhaitez afficher un graphe en particulier, indiquer quels sont les axes et calculs que vous avez choisi (axes, calculation)

3- Vous souhaitez afficher un graphe particulier (axes, calculation) en précisant la liste des enregistrements sur lesquels travailler(ParamXML, Table)

Important !
Le nombre de graphe renvoyé par le service suite à votre requête List et DisplayMode = ChartData n'est valable que tant que la liste ne change pas (filtres, tris, selection).
- Si les filtres changent, refaire la requête List classique puis List avec DisplayMode = ChartData pour que les données soient réanalysées et que les nouveaux graphes soient préparés.
- Si les tris changent, même chose.
- Si l'utilisateur change la selection d'enregistrement dans la liste, vous devez appeler SelectItems en donnant la liste des enregistrements de la selection, refaire un List avec DisplayMode = chartData

Dans ces 3 changements, vous recevrez alors le nouveau nombre de graphe qu'il est possible d'afficher en réponse au List avec Displaymode = chartData.
Vous pourrez alors refaire vos GetChart.

Liste des entêtes

Entête
CustomerInfos
SessionToken
UsernameToken
OptionDialogue
ActionContext
APIUser
APIUUID

Liste des paramètres

Paramètre
ParamXML
Table
Axes
Calculation
OnlyData
Heigth
Width
DPI
Index

Exemple

Cas N°1 : Afficher les graphes générés par SIMAXOnline

<GetChart>
<OnlyData>1</OnlyData> (optionnel)
<Height>500</Height>
<Width>1000</Width>
<DPI>96</DPI>
<Table>Facture</Table> (ou l'identifiant du formulaire facture)
<Index>1</Index>
</GetChart>

=> récupérer les données du 1er graphe généré portant sur des factures

__________________________________________________________

Cas N°2 : Afficher un graphe particulier avec une selection d'enregistrements

<GetChart>
<OnlyData>1</OnlyData> (optionnel)
<Height>500</Height>
<Width>1000</Width>
<DPI>96</DPI>
<Table>Facture</Table> (ou l'identifiant du formulaire facture)
<Axes>Client|Total HT</Axes>
<Calculation>Sum</Calculation>
<SelectedItems>874237|387353575|5742387|5754357|5754537|7445757|387573587|4552725|367354357</SelectedItems>
</GetChart>

=> récupérer les données du graphe la somme du total HT des factures par Client


__________________________________________________________

Cas N°3 : Afficher un graphe particulier sans faire de requête List avant

<GetChart>
<OnlyData>1</OnlyData> (optionnel)
<Height>500</Height>
<Width>1000</Width>
<DPI>96</DPI>
<Table>Facture</Table> (ou l'identifiant du formulaire facture)
<ParamXML>
<Client>3572545</Client>
</ParamXML>
<Axes>Date|Total HT</Axes>
<Calculation>Sum</Calculation>
</GetChart>

=> récupérer les données du graphe la somme du total HT des factures du client 3572545 par date

Réponse

Le contenu du body est soit la représentation binaire soit la représentation XML du graphe demandé.
Pour l'instant, seule la représentation XML est disponible.
Il n'y a pas de XSD dans la réponse car la représentation est toujours la même peu importe le graphe.

Voici comment un graphe est décrit dans le XML :
- un titre (Title)
- un type de graphe (chartType) : column(histogramme), stackedColumn (histogramme empilé), line (courbe), pie (secteur), bubble (bulle)
- les axes : avec l'identifiant de la colonne auquel il correspondent, le formulaire lié si il y en a un, et le libellé
- la ou les séries : une serie est une liste de tuple et un tuple correspond à une valeur par axe et à chaque fois en valeur stockée (Data) et valeur affichée (DisplayValue)
si il y a plusieurs series, alors c'est soit qu'il y a plusieurs représentations sur le même graphe soit que c'est un graphe à 2 dimensions et à ce moment là chaque serie contient la valeur du 1er
axes puis les tuples avec les valeurs des axes 2 et 3
rem : Une description plus complète avec des exemples détaillés est disponible dans les exemples de réponses SOAP

Liste des entêtes

Entête
ReturnType
CustomerInfos
ActionContext

Les valeurs de retour

Xml

Exemple

=> Exemple de réponse de SIMAXOnline

<GetChartResponse xmlns="http://www.nout.fr/wsdl/SimaxService.wsdl/">
<xml VERSION="1" VERSION_LECTECRIT="1" VERSION_LECTURE="1" DATEHEURE="2012020610551842"
xmlns:simax="http://www.nout.fr/XML/">
<chart>
<title>Durée (mn) par Date(Mois) : Calcul somme</title>
<chartType>column</chartType>
<axes>
<axis simax:id="51585997818261" simax:label="Date"/>
<axis simax:id="42214379198240" simax:label="Durée (mn)" simax:isCalculation="1"/>
</axes>
<serie>
<tuple>
<id_51585997818261>
<data/>
<displayValue/>
</id_51585997818261>
<id_42214379198240>
<data>0</data>
<displayValue>0</displayValue>
</id_42214379198240>
</tuple>
<tuple>
<id_51585997818261>
<data>20120130</data>
<displayValue>01/2012</displayValue>
</id_51585997818261>
<id_42214379198240>
<data>24</data>
<displayValue>24</displayValue>
</id_42214379198240>
</tuple>
<tuple>
<id_51585997818261>
<data>20111230</data>
<displayValue>12/2011</displayValue>
</id_51585997818261>
<id_42214379198240>
<data>5</data>
<displayValue>5</displayValue>
</id_42214379198240>
</tuple>
<tuple>
<id_51585997818261>
<data>20111130</data>
<displayValue>11/2011</displayValue>
</id_51585997818261>
<id_42214379198240>
<data>2</data>
<displayValue>2</displayValue>
</id_42214379198240>
</tuple>
<tuple>
<id_51585997818261>
<data>20111030</data>
<displayValue>10/2011</displayValue>
</id_51585997818261>
<id_42214379198240>
<data>1</data>
<displayValue>1</displayValue>
</id_42214379198240>
</tuple>
</serie>
</chart>
</xml>
</GetChartResponse>



=> Graphe à 2 dimensions "CA par an et par commercial"
Pour les années 2011 et 2012 et les commerciaux 1 et 2

<chart>
<title>CA par an et par commercial</Title>
<chartType>StackedColumn</ChartType>
<axes>
<axis id="6988" label="année"/>
<axis id="544424354" label="commercial" table="674357"/>
<axis id="45742" label="CA" isCalculation="1"/>
</axes>
<series>
<serie>
<id_6988>
<data>2011</Data>
<displayValue>2011</DisplayValue>
</id_6988>
<Tuple>
<id_544424354>
<data>123456</Data>
<displayValue>Commercial 1</DisplayValue>
</id_544424354>
<id_45742>
<data>15000</Data>
<displayValue>15 000 €</DisplayValue>
</id_45742>
</tuple>
<tuple>
<id_544424354>
<data>456789</Data>
<displayValue>Commercial 2</DisplayValue>
</id_544424354>
<id_45742>
<data>3000</Data>
<displayValue>3 000 €</DisplayValue>
</id_45742>
</tuple>
</serie>
<serie>
<id_6988>
<data>2012</Data>
<displayValue>2012</DisplayValue>
</id_6988>
<Tuple>
<id_544424354>
<data>123456</Data>
<displayValue>Commercial 1</DisplayValue>
</id_544424354>
<id_45742>
<data>24000</Data>
<displayValue>24 000 €</DisplayValue>
</id_45742>
</tuple>
<tuple>
<id_544424354>
<data>456789</Data>
<displayValue>Commercial 2</DisplayValue>
</id_544424354>
<id_45742>
<data>17000</Data>
<displayValue>17 000 €</DisplayValue>
</id_45742>
</tuple>
</serie>
</series>
</chart>