Rapports

Rapports préparés

Exécuter un rapport lent en arrière-plan avec les rapports préparés, et désactiver leur activation automatique.

Rapports préparés

Un rapport préparé s'exécute en arrière-plan. Vous consultez le résultat quand le calcul est terminé, sans bloquer votre navigateur. Ce mode convient aux rapports lents.

Fonctionnement

Quand l'option Rapport préparé est cochée sur un rapport :

  1. Vous ouvrez le rapport et choisissez les filtres.
  2. Vous cliquez sur Générer un nouveau rapport.
  3. La demande passe au statut « En file d'attente », puis s'exécute en arrière-plan.
  4. À la fin, le rapport affiche le résultat avec le message « Ce rapport a été préparé… » et la date de calcul.

Chaque calcul est enregistré dans un document Rapport préparé (Prepared Report) avec son statut, ses filtres et l'heure de fin. Ces documents sont supprimés après 14 jours par défaut. Changez cette durée dans Paramètres des journaux.

Activation automatique

Un rapport de script peut passer seul en mode préparé. Si une exécution dure plus de 15 secondes, Dodock coche Rapport préparé sur ce rapport. L'exécution en cours continue jusqu'à la fin et affiche son résultat. Les exécutions suivantes se font en arrière-plan.

Désactiver l'activation automatique

Certains rapports doivent toujours s'exécuter en direct. Pour eux, cochez Désactiver l'automatisation des rapports préparés. Ce champ apparaît seulement pour un rapport de type « Rapport de Script ».

  1. Ouvrez la liste Rapport avec la recherche (Ctrl+K).
  2. Ouvrez le rapport concerné.
  3. Cochez Désactiver l'automatisation des rapports préparés.
  4. Enregistrez.

Le rapport ne passe plus seul en mode préparé, quelle que soit sa durée. Si Rapport préparé est déjà coché, décochez-le aussi.

Un rapport lent sans mode préparé occupe le navigateur pendant tout le calcul. Il peut aussi atteindre le délai maximal du serveur.

Configurer par code

Dans le fichier JSON d'un rapport standard, ajoutez :

{
  "disable_prepared_report_automation": 1
}

Ou dans un patch Python :

frappe.db.set_value("Report", "Nom du rapport", "disable_prepared_report_automation", 1)

L'ancien champ disable_prepared_report n'existe plus. Un patch de migration a reporté sa valeur : il a coché disable_prepared_report_automation et décoché prepared_report sur les rapports concernés.

Choisir le bon réglage

SituationRéglage
Rapport rapide, utilisé en temps réelLaissez l'activation automatique.
Rapport lent, accepté en arrière-planCochez Rapport préparé.
Rapport qui doit toujours s'afficher en directCochez Désactiver l'automatisation des rapports préparés et décochez Rapport préparé.