Analyze / Utilisation du webservice d'analyse

Analyze / Utilisation du webservice d'analyse

Le webservice d’analyse permet d’obtenir, à partir des résultats d’une recherche donnée, les résultats de calculs sur des champs donnés, regroupés en fonction des valeurs de champs de rupture donnés.

Il faut effectuer une requête POST à l’url https://<yellowbox_url>/ws/analyze avec en body un objet JSON AnalyseRequest. Cet objet est décrit dans la documentation Swagger comme suit :

{
  "calculs": [
    {
      "typeCalcul": "string",
      "idChampCalcul": "string"
    }
  ],
  "idChampsRupture": [
    "string"
  ],
  "idRecherche": "string"
}

L’objet calculs correspond à la liste d’objets calcul définis par une référence de champ et le type de calcul associé.

un type de calcul est : 0 ou SOMME, 1 ou MOYENNE, 2 ou NOMBRE.

L’objet idChampsRupture est une liste de référence de champs permettant la définition des ruptures.

L’objet idRecherche correspond à la référence d’une recherche au sens YellowBox.

Exemple

On veut à partir d’une recherche sur la table Societes : le nombre de sociétés et la somme de CA par type de société et par gestionnaire. On donne :

{
  "calculs": [
    {
      "typeCalcul": "NOMBRE",
      "idChampCalcul": "106"(ou 106 est le champ idElement de la table sociétés)
    },
        {
      "typeCalcul": "SOMME",
      "idChampCalcul": "120"(ou 120 est le champ CA cumule de la table sociétés)
    }
  ],
  "idChampsRupture": [
    "112",(ou 112 est le champ Type de la table sociétés)
    "126"(ou 126 est le champ Gestionnaire de la table sociétés)

  ],
  "idRecherche": "53"(ou 53 est l’id d’une recherche sur la table sociétés)
}

le service retourne une liste d’objets de type RuptureValeur.

une ruptureValeur contient :

  • un titre correspondant à la valeur de rupture
  • une liste de rupturevaleurs filles
  • une liste de calculsResults
  • un calculResult contient : un nom formé du type de calcul + id du champ de calcul ex: COUNT106 une valeur ex: 1

La forme de l’objet reçu du service est la suivante :

{
  "titre": "string",
  "ruptureValeursFilles": {},
  "calculResults": {
    "additionalProp1": 0,
    "additionalProp2": 0,
    "additionalProp3": 0
  }
}

Exemple

On reçoit :

[
  {
    "calculResults": {
      "COUNT106": 1,
      "SUM120": 0
    },
    "ruptureValeursFilles": {
      "Emilie": {
        "calculResults": {
          "COUNT106": 1,
          "SUM120": 0
        },
        "ruptureValeursFilles": {},
        "titre": "Emilie"
      }
    },
    "titre": "Suspect"
  },
  {
    "calculResults": {
      "COUNT106": 2186, 
      "SUM120": 0
    },
    "ruptureValeursFilles": {
      "Marie": {
        "calculResults": {
          "COUNT106": 48,
          "SUM120": 0
        },
        "ruptureValeursFilles": {},
        "titre": "Marie"
      },
      "Emilie": {
        "calculResults": {
          "COUNT106": 2138,
          "SUM120": 0
        },
        "ruptureValeursFilles": {},
        "titre": "Emilie"
      }
    },
    "titre": "Prospect"
  },
  ...
]

(truncated for brevity)