DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Gestion de HFSQL Client/Serveur
  • Présentation
  • Tâches planifiées dans le Centre de Contrôle HFSQL
  • Créer une tâche planifiée
  • Supprimer une tâche planifiée
  • Modifier une tâche planifiée
  • Tâches planifiées par programmation
  • Création d'une tâche planifiée
  • Historique d'exécution des tâches planifiées
  • Manipulation des tâches planifiées en WLangage
  • Exemple d'utilisation de la fonction HDéclareExterne dans une procédure stockée
  • Exemple de test d'une procédure stockée
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
HFSQL Client/Serveur : Tâches planifiées
HFSQL Client/ServeurDisponible uniquement avec ce type de connexion
Présentation
Les tâches planifiées permettent de planifier des tâches automatiques. Il est possible de définir des tâches planifiées au niveau du serveur HFSQL. Ces tâches planifiées correspondent à l'appel d'une procédure stockée.
L'appel d'une procédure stockée permet d'exécuter le code de votre choix, par exemple maintenance personnalisée, édition de statistiques, etc.
Les tâches planifiées peuvent être gérées :
Exécution de plusieurs tâches planifiées successivement : Si la tâche planifiée précédente n'est pas terminée, la nouvelle tâche planifiée ne s'exécute pas, et une notification est envoyée par le serveur.
Tâches planifiées dans le Centre de Contrôle HFSQL

Créer une tâche planifiée

Dans le Centre de Contrôle HFSQL, les tâches planifiées peuvent être définies au niveau du serveur ou de la base de données.
Pour créer une tâche planifiée :
  1. Connectez-vous si nécessaire à un serveur HFSQL et affichez la description du serveur ou d'une de ses bases (double-clic sur le nom du serveur ou de la base dans l'arborescence).
  2. Cliquez sur l'onglet "Eléments planifiés".
  3. Dans le ruban, dans le groupe "Eléments planifiés", déroulez "Nouvelle planification" et sélectionnez "Planifier une tâche". L'assistant de création d'une tâche planifiée se lance.
  4. Sélectionnez le mode d'exécution de la tâche : la tâche peut être exécutée :
    • Périodiquement. L'assistant vous permet ensuite de définir la fréquence d'exécution de la tâche.
    • et/ou à chaque démarrage du serveur HFSQL. Si cette option est sélectionnée, il est nécessaire d'indiquer si :
      • la tâche est bloquante : dans ce cas, le serveur HFSQL sera inaccessible pendant l'exécution de la tâche.
      • la tâche doit être exécutée en tâche de fond : dans ce cas, le serveur HFSQL pourra être utilisé dès son démarrage.
  5. Sélectionnez :
    • la base de données contenant la procédure stockée à exécuter.
    • la collection contenant la procédure stockée à exécuter.
    • la procédure stockée à exécuter.
      Attention : Pour qu'une procédure stockée lancée depuis une tâche planifiée accède aux données, il faut utiliser la fonction HDéclareExterne. Cette fonction permet de déclarer des sources de données qui seront utilisées dans les traitements de la procédure stockée. En effet, lorsqu'une procédure stockée est lancée depuis le Centre de Contrôle HFSQL, il n'y a pas d'analyse en cours et les données HFSQL Client/Serveur ne sont pas immédiatement accessibles.
      Si la fonction HDéclareExterne n'est pas utilisée dans le code de la procédure stockée, la procédure provoquera une erreur fatale, notée dans le journal des événements du système.
      Remarque : lorsqu'une procédure stockée est lancée depuis une application WINDEV, WEBDEV ou WINDEV Mobile avec la fonction HExécuteProcédure, elle utilise l'analyse de l'application et peut donc utiliser directement des données HFSQL Client/Serveur.
  6. Définissez la fréquence de la tâche : mois, jour, heure.
  7. Donnez une description à votre tâche planifiée et validez l'assistant.
  8. La tâche planifiée apparaît dans l'onglet "Eléments planifiés" du Centre de Contrôle HFSQL.

Supprimer une tâche planifiée

Pour supprimer une tâche planifiée :
  1. Connectez-vous si nécessaire à un serveur HFSQL et affichez l'onglet du serveur ou de la base de données voulu.
  2. Cliquez sur l'onglet "Eléments planifiés".
  3. Sélectionnez la tâche planifiée à supprimer.
  4. Dans le ruban, dans le groupe "Eléments planifiés", cliquez sur "Supprimer".
    Vous pouvez également utiliser le menu contextuel de l'élément planifié (option "Supprimer").

Modifier une tâche planifiée

Pour modifier une tâche planifiée :
  1. Connectez-vous si nécessaire à un serveur HFSQL et affichez l'onglet du serveur ou de la base de données voulu.
  2. Cliquez sur l'onglet "Eléments planifiés".
  3. Sélectionnez la tâche planifiée à modifier.
  4. Dans le ruban, dans le groupe "Eléments planifiés", cliquez sur "Editer".
    Vous pouvez également utiliser le menu contextuel de l'élément planifié (option "Editer").
  5. Une fenêtre de description de l'élément planifié apparaît. Toutes les caractéristiques saisies dans l'assistant sont regroupées sur plusieurs onglets :
    • Onglet "Général" : Définit si la tâche est active et son type (sauvegarde ou procédure stockée).
    • Onglet "Planification" : Définit les options d'exécution de la tâche planifiée (mois, jour, heure, nombre d'exécutions, exécution au démarrage).
    • Nouveauté 2025
      Onglet "Historique des exécutions" : Cet onglet apparaît lorsque la tâche planifiée a été exécutée automatiquement. Cet onglet liste les différentes exécutions automatiques de la tâche planifiée, en indiquant :
      • la date de début de la tâche,
      • l'état de la tache : terminée, en cours, en erreur,
      • la durée d'exécution,
      • l'utilisateur qui a lancé la tâche,
      • si le lancement a été fait manuellement (lancement via la fonction HExécutePlanification).
  6. Validez.
Tâches planifiées par programmation

Création d'une tâche planifiée

La gestion des tâches planifiées par programmation est réalisée grâce à une variable de type hTâchePlanifiée et à plusieurs fonctions WLangage.
Pour créer une tâche planifiée par programmation :
  1. Créez une variable de type hTâchePlanifiée et décrivez les différentes caractéristiques de la tâche planifiée.
  2. Ajoutez la tâche planifiée grâce à la fonction HAjoutePlanification (ou la fonction HAjouteTâche).
Remarques :
  • Pour ajouter une tâche planifiée, il est nécessaire de posséder :
    • le droit de gérer les tâches (constante hDroitGèreTâche).
    • le droit d'exécuter la commande liée à la tâche planifiée.
  • La tâche sera exécutée avec l'identité de l'utilisateur défini par la connexion.
  • Par compatibilité, il est également possible de créer une tâche planifiée permettant la sauvegarde de la base. Il est cependant conseillé de créer une sauvegarde planifiée. Pour plus de détails, consultez Comment sauvegarder des bases de données HFSQL Client/Serveur ?.
Nouveauté 2025

Historique d'exécution des tâches planifiées

Un historique des exécutions est automatiquement enregistré lors de l'exécution automatique de la tâche planifiée (ou lors de son exécution via la fonction HExécutePlanification). Il est possible de manipuler cet historique par programmation, via une variable de type hHistoriquePlanification et les fonctions suivantes :
Liste l'historique d'exécution d'un élément planifié sur un serveur HFSQL : tâche planifiée (procédure stockée), sauvegarde, optimisation, rafraîchissement d'une vue matérialisée.
Supprime l'historique d'exécution d'un élément planifié sur un serveur HFSQL : tâche planifiée (procédure stockée), sauvegarde, optimisation, rafraîchissement d'une vue matérialisée.
Purge la totalité de l'historique d'exécution des éléments planifiés sur un serveur HFSQL.

Manipulation des tâches planifiées en WLangage

Les tâches planifiées peuvent être manipulées via :
  • les fonctions de gestion des tâches planifiées :
    HAjouteTâcheAjoute une tâche planifiée sur le serveur défini par la connexion.
    HGèreTâcheActive ou désactive une tâche planifiée d'un serveur HFSQL Client/Serveur.
    HInfoTâcheRenvoie les caractéristiques d'une tâche planifiée dans une variable de type hTâchePlanifiée.
    HListeTâcheListe les tâches planifiées d'un serveur HFSQL Client/Serveur pour une connexion donnée.
    HModifieTâcheModifie une tâche planifiée sur le serveur HFSQL défini par la connexion.
    HSupprimeTâcheSupprime une tâche planifiée d'un serveur HFSQL Client/Serveur.
  • les fonctions de gestion des éléments planifiés (conseillées) :
    HAjoutePlanificationAjoute un nouvel élément planifié sur un serveur HFSQL : tâche planifiée (procédure stockée), sauvegarde, optimisation ou rafraîchissement d'une vue matérialisée.
    HExécutePlanificationExécute immédiatement un élément planifié sans tenir compte de sa planification : tâche planifiée (procédure stockée), sauvegarde, optimisation, rafraîchissement d'une vue matérialisée.
    HListePlanificationListe les éléments planifiés définis sur un serveur HFSQL : tâches planifiées (procédure stockée), sauvegarde, optimisation, rafraîchissement d'une vue matérialisée.
    HModifiePlanificationModifie un élément planifié sur un serveur HFSQL : tâche planifiée (procédure stockée), sauvegarde, optimisation, rafraîchissement d'une vue matérialisée.
    HSupprimePlanificationSupprime un élément planifié sur un serveur HFSQL : tâche planifiée (procédure stockée), sauvegarde, optimisation, rafraîchissement d'une vue matérialisée.
Exemple d'utilisation de la fonction HDéclareExterne dans une procédure stockée
La procédure suivante déclare un fichier de données avec la fonction HDéclareExterne afin de pouvoir l'utiliser dans une tâche planifiée :
PROCÉDURE NomDeLaProcédureStockée()

// Vérification de l'existence du fichier logique
SI PAS HFichierExiste(MaConnexion, CODEPOSTAUX) ALORS
	// Fichier non connu, il faut le déclarer
	// Attention, pour déclarer un nouveau fichier dans une procédure stockée HFSQL, il faut :
	//  - NE PAS utiliser de connexion : C'est la base en cours sur laquelle 
	//		se trouve la procédure stockée qui sera utilisée
	//  - NE PAS donner un chemin complet : Le fichier sera recherché dans la base en cours. 
	//		Il est possible d'indiquer un sous-répertoire de la base de données. 
	//  - donner le nom complet du fichier, extension comprise (.FIC)
	SI PAS HDéclareExterne("CODEPOSTAUX.FIC", "CODEPOSTAUX") ALORS
		// Erreur de déclaration du fichier
		RENVOYER HErreurInfo()
	FIN
FIN

// Utilisation du fichier de données
// POUR TOUT CODEPOSTAUX 
//	//Traitement...
// FIN

// Traitement OK, sans erreur
RENVOYER ""
Exemple de test d'une procédure stockée
Le code suivant permet de tester une procédure stockée dans des conditions similaires à celles de son exécution dans une tâche planifiée :
// Fermeture de l'analyse en cours (la tâche planifiée n'a pas d'analyse en cours)
HFermeAnalyse()
// Déclaration de la connexion à la base HFSQL 
// Cette base contient la procédure stockée
cnxProcedureStockeeHFSQL est une Connexion
cnxProcedureStockeeHFSQL.Provider = hAccèsHFClientServeur
cnxProcedureStockeeHFSQL.Utilisateur = "ADMIN"
cnxProcedureStockeeHFSQL.MotDePasse = ""
cnxProcedureStockeeHFSQL.Serveur = "NomServeur:4900"
cnxProcedureStockeeHFSQL.BaseDeDonnées = "NomBaseDeDonnées"
// Ouverture de la connexion à la base HFSQL
HOuvreConnexion(cnxProcedureStockeeHFSQL)
SI ErreurDétectée = Vrai ALORS
	Erreur("Echec de l'ouverture de la connexion à la base HFSQL", HErreurInfo())
	RETOUR
FIN
// Exécution de la procédure stockée HFSQL avec récupération de son résultat
sRes est une chaîne
sRes = HExécuteProcédure(cnxProcedureStockeeHFSQL, "NomDeLaProcédureStockée")
// Exploitation du résultat
...
Version minimum requise
  • Version 10
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 17/10/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale