Prévisualiser un état

POST /provider/reports/preview — voir les lignes, les totaux, la période appliquée et l'estimation avant de générer.

Pourquoi prévisualiser

L'aperçu exécute l'état en mémoire et renvoie une page de résultats sans produire de fichier. Il sert à vérifier une spécification (colonnes, filtres, période), à afficher un tableau dans votre application, ou à connaître le nombre de lignes et la taille estimée avant de lancer une génération.

Requête — POST /provider/reports/preview

{
  "definitionCode": "RECAP_PROD_COMPAGNIE",
  "scope": { "basedOn": "issuedAt", "relativeRange": "PREVIOUS_MONTH", "timezone": "Africa/Abidjan" },
  "format": "XLSX",
  "page": 0,
  "size": 20
}
ChampTypeDescription
definitionCodestringÉtat du catalogue dont on prend les réglages par défaut (optionnel si sourceCode est fourni)
sourceCodestringSource interrogée ; obligatoire sans definitionCode
columnsReportColumnSpec[]Colonnes demandées ; vide = colonnes par défaut
filtersReportFilter[]Filtres ; absent = filtres par défaut de l'état, [] = aucun filtre
scopeReportScopePériode : basedOn, relativeRange ou dateRange, timezone
sortingReportSorting{ fieldName, direction }
groupingstring[]Champs de regroupement ; absent = celui de l'état, [] = désactivé
optionsReportOptionshideSensitiveData, includeTotals, includeLogo, aggregated
formatenumFormat visé, utilisé pour l'estimation (défaut PDF)
companyIdstringComptes Pool uniquement : restreindre à une compagnie
page, sizeintPagination de l'aperçu (défauts 0, 20)

Le détail de chaque bloc de la spécification est dans États personnalisés.

Réponse

{
  "columns": [
    { "key": "companyLabel", "label": "Compagnie", "type": "STRING", "totalizable": false },
    { "key": "rowCount", "label": "Nombre", "type": "INTEGER", "totalizable": true },
    { "key": "netPremium", "label": "Prime nette", "type": "MONEY", "totalizable": true },
    { "key": "totalTtc", "label": "Prime totale", "type": "MONEY", "totalizable": true }
  ],
  "rows": [
    { "companyLabel": "ATLANTIQUE ASSURANCE", "rowCount": 304, "netPremium": 6655516, "totalTtc": 8563940 },
    { "companyLabel": "WAFA ASSURANCES CI", "rowCount": 8280, "netPremium": 215452849, "totalTtc": 271746305 }
  ],
  "page": 0, "size": 20, "total": 18, "totalPages": 1,
  "summary": [
    { "key": "netPremium", "label": "Prime nette", "value": 1223354885.6, "type": "MONEY", "currency": "FCFA" }
  ],
  "estimate": {
    "rows": 18, "columns": 4, "format": "XLSX",
    "estimatedSizeBytes": 7440, "estimatedGenerationMs": 300,
    "estimatedSizeLabel": "7 Ko", "estimatedTimeLabel": "< 1 s"
  },
  "resolvedFrom": "2026-10-01T00:00:00",
  "resolvedTo": "2026-10-31T23:59:59",
  "anchorLabel": "basée sur la date d'émission",
  "timezone": "Africa/Abidjan"
}
ChampDescription
columns[]Colonnes effectivement résolues : key, label, type, totalizable (sommée dans les totaux)
rows[]Une entrée par ligne, clés = columns[].key. Les dates sont en ISO 8601, les montants en nombre, les ENUM sous leur libellé
page, size, total, totalPagesPagination (aussi dans les en-têtes X-Page, X-Size, X-Total, X-Total-Pages)
summary[]Tuiles de synthèse sur tout le résultat (pas seulement la page)
estimateTaille et durée estimées du fichier pour format
resolvedFrom, resolvedToBornes réellement appliquées après résolution de la période relative
anchorLabel, timezoneAncre et fuseau appliqués

En mode récapitulatif, la colonne rowCount (« Nombre ») est ajoutée automatiquement et les colonnes non totalisables qui ne sont pas des dimensions de regroupement disparaissent.

Bonnes pratiques

  • Prévisualisez avec size: 1 pour obtenir rapidement total et estimate avant une génération volumineuse.
  • Si total dépasse 25 000 lignes, le PDF sera refusé : passez format: XLSX ou CSV, ou réduisez la période.
  • L'aperçu applique exactement les mêmes règles de périmètre que la génération : ce que vous voyez est ce que contiendra le fichier.

On this page