Modèles d'état

Enregistrer une spécification sous un nom pour la réexécuter, la partager et la planifier.

À quoi sert un modèle

Un modèle est une spécification enregistrée : source, colonnes, filtres, période, tri, regroupements, options, formats autorisés, destinataires. Il sert à :

  • réexécuter le même état sans renvoyer sa définition (generate avec modelId) ;
  • le partager avec les autres comptes de votre organisation (visibility: SHARED) ;
  • le planifier pour un envoi automatique.

Un modèle est rattaché à la compagnie (et au courtier) du compte qui le crée : il n'est visible que dans ce périmètre. Les modèles sans compagnie (créés par le Pool) en visibilité SHARED sont visibles de tous.

Créer — POST /provider/reports/models

{
  "name": "Quittancement du mois — WAFA",
  "description": "Quittances émises du mois, triées par date",
  "sourceCode": "RECEIPTS",
  "columns": [
    { "fieldName": "receiptRef" }, { "fieldName": "subscriberName" },
    { "fieldName": "netPremium" }, { "fieldName": "totalTtc" },
    { "type": "CALCULATED", "name": "tauxTaxes", "label": "Taxes / prime nette (%)", "definition": "(totalTaxes / netPremium) * 100" }
  ],
  "filters": [ { "fieldName": "paymentStatus", "operator": "EQUALS", "values": ["CONFIRMED"] } ],
  "scope": { "basedOn": "issuedAt", "relativeRange": "CURRENT_MONTH" },
  "sorting": { "fieldName": "issuedAt", "direction": "ASC" },
  "options": { "includeTotals": true, "hideSensitiveData": true },
  "allowedFormats": ["XLSX", "CSV"],
  "visibility": "SHARED"
}
ChampObligatoireDescription
nameouiNom, unique dans votre périmètre
descriptionnon
sourceCode ou definitionCodel'un des deuxBase du modèle
columns, filters, scope, sorting, grouping, optionsnonLa spécification (voir États personnalisés)
scopeModenonGLOBAL (défaut) ou PER_COMPANY
allowedFormatsnonFormats autorisés à la génération
visibilitynonPRIVATE (défaut) ou SHARED
recipientsTo, recipientsCcnonDestinataires par défaut

Réponse 201 : le ReportModel avec son id, createdDate, createdBy. Un nom déjà utilisé renvoie 400 « Un modèle avec ce nom existe déjà ».

Dans un modèle, préférez une période relative (relativeRange) à des bornes fixes : le modèle reste valable chaque mois et c'est ce qu'attend une planification.

Utiliser un modèle

// POST /provider/reports/generate
{ "modelId": "0d4f…", "format": "XLSX" }

Vous pouvez surcharger ponctuellement la période ou le format en les passant à côté de modelId.

Lire, modifier, dupliquer, supprimer

OpérationEndpointNotes
ListerGET /provider/reports/models?page=0&size=20Pagination dans le corps (content, page, size, totalElements, totalPages)
ConsulterGET /provider/reports/models/{id}
ModifierPATCH /provider/reports/models/{id}Corps = ReportModel partiel ; les champs fournis remplacent les existants
DupliquerPOST /provider/reports/models/{id}/duplicate?name=Copie201, copie en PRIVATE
SupprimerDELETE /provider/reports/models/{id}204 ; supprime aussi sa planification

Objet ReportModel : tous les champs de création, plus id, companyId, brokerId, createdDate, createdByUserId, createdBy, lastModifiedDate.

On this page