class NsExecPlan

Les plans d’exécution permettent de coordonner le déclenchement d’un ensemble de sauvegardes depuis le poste serveur pendant une plage horaire donnée. Par exemple, vous pouvez utiliser les plans d’exécution pour sauvegarder durant la nuit les postes d’une entreprise et obtenir un résumé détaillé des opérations effectuées ainsi que des problèmes rencontrés.

Un plan d'exécution est représenté par une structure de données du type NsExecPlan. Chaque exécution du plan génère une strucure NsExecPlanOperation qui synthéthise le résultat de l'exécution du plan. Vous pouvez spécifier un ensemble de sauvegardes à exécuter en définissant la propriété AllBackups à true, ou bien en créant et associant des objets de type NsExecPlanMember au plan d'exécution.

ID : __int64

L'identificateur unique du plan d'exécution. Les constantes suivantes peuvent-être utilisées :

  • THEXECPLAN_CREATE = -1 : l'objet n'existe pas et doit être créé.

Name : BSTR

Le nom du plan d'exécution.

StartHour : long

Un nombre entre 0 et 23 représentant l'heure de début d'exécution du plan.

StopHour : long

Un nombre entre 0 et 23 représentant l'heure de fin d'exécution du plan. Si des sauvegardes s'exécutent encore lorsque l'heure de fin d'exécution du plan est atteinte, elles seront automatiquement annulées par le serveur.

Days : NsExecPlanDays

Une valeur représentant les jours d'activation du plan d'exécution.

AllBackups : VARIANT_BOOL

Si la valeur de ce champ est à true, le plan d'exécution exécute toutes les tâches de sauvegarde créées sur le serveur. Si la valeur de ce champ est à false, la liste exacte des sauvegardes devant être exécutée est gérée en créant des éléments de type NsExecPlanMember.

MaxConcurrentBackups : long

Nombre maximum de sauvegardes pouvant être lancées de manière concurrentes. Si cette propriété est initialisée à 0, toutes les sauvegardes sont lancées en même temps. Sinon, le serveur de sauvegarde déclenche et relance les sauvegardes durant la plage horaire de manière à ce que ce nombre d'opérations concurrentes soit respecté.

MaxOperationsToKeep : long

Le nombre maximum de résumés des dernière opérations (de type NsExecPlanOperation) à conserver.

ReportingMode : NsExecPlanReportingMode

Les options de reporting du plan d'exécution. Les options suivantes peuvent-être combinées :

  • THEXECPLAN_RPT_SENDEMAIL = 1 : Un e-mail doit être envoyé à l'administrateur pour résumer le déroulement du plan d'exécution.

Options : long

Les options supplémentaires du plan. Les valeurs suivantes peuvent être combinées :

  • THEXECPLANOPT_AUTO_SHUTDOWN = 1 : Eteint les postes une fois leurs sauvegardes effectuées.

LastExecDate : VARIANT readonly

La dernière date d'exécution au format UTC. Si le plan d'exécution n'a jamais été exécuté, la date de création du plan est renvoyée.

LastOperationID : __int64 readonly

L'identificateur unique de la dernière opération si elle existe (NsExecPlanOperation), -1 sinon.

IsRunning : VARIANT_BOOL readonly

Retourne une variable booléenne indiquant si le plan d'exécution est actuellement en cours d'exécution.

VARIANT_BOOL LoadFromID(NsConnection Connection, __int64 ExecPlanID)

Charge en mémoire le plan d'exécution possédant l'identificateur ExecPlanID.

VARIANT_BOOL Update(NsConnection Connection)

Met à jour le plan d'exécution représenté par l'objet.

VARIANT_BOOL Delete(NsConnection Connection)

Supprime le plan d'exécution représenté par l'objet.

NsExecPlanOperation Start(NsConnection Connection, VARIANT EndDate)

Démarre manuellement le plan d'exécution, en définissant une date de fin d'exécution spécifiée par EndDate. Si l'opération réussit, l'opération créée correspondante est renvoyée, sinon, une référence d'objet invalide est retournée.

VARIANT_BOOL GetComments(NsConnection Connection, BSTR Comments)

Retourne les commentaires associés à l'objet.

VARIANT_BOOL SetComments(NsConnection Connection, BSTR Comments)

Definit les commentaires associés à l'objet.

NsCustomAttributes CustomAttributes(NsConnection Connection)

Retourne les attributs personnalisés associés à l'objet.

NsExecPlanMemberCollection Members(NsConnection Connection)

Retourne les membres du plan d'exécution, correspondant aux sauvegardes qui seront exécutées par le plan.

NsExecPlanOperationCollection Operations(NsConnection Connection)

Retourne les opérations engendrées par les exécutions du plan, si elles ont été réalisées.

Parcours des plans d'exécution créés sur le serveur

Set connection = CreateObject("NsAPI.NsConnection")

if connection.ConnectToLocalServer then
   set server = CreateObject("NsAPI.NsServer")
   
   if server.Load(connection) then
     set execPlansList = server.ExecPlans(connection) 'Récupérer la liste des plans d'exécution
     
     MsgBox "Le serveur possède " & execPlansList.Count & " plans d'exécution."
     
     for each execPlan in execPlansList
       MsgBox execPlan.Name 'Afficher le nom de chaque plan
     next
     
   end if
   
   connection.Disconnect
else
  MsgBox "Connexion au serveur impossible."
end if

Création d'un plan d'exécution sauvegardant tout le serveur

const epdExecPlanDayNone = &h00000000
const epdExecPlanDayMonday = &h00000001
const epdExecPlanDayTuesday = &h00000002
const epdExecPlanDayWednesday = &h00000004
const epdExecPlanDayThursday = &h00000008
const epdExecPlanDayFriday = &h00000010
const epdExecPlanDaySaturday = &h00000020
const epdExecPlanDaySunday = &h00000040

Set connection = CreateObject("NsAPI.NsConnection")

if connection.ConnectToLocalServer then
   set execPlan = CreateObject("NsAPI.NsExecPlan")

   execPlan.ID = -1 'Constante nécessaire pour créer le plan
   execPlan.Name = "Sauvegarde de tout le serveur"
   execPlan.StartHour = 20 'Heure de début de plan: 20h
   execPlan.StopHour = 6 'Heure de fin de plan : 6h du matin
   execPlan.Days = epdExecPlanDayMonday or epdExecPlanDayTuesday or epdExecPlanDayWednesday or epdExecPlanDayThursday or epdExecPlanDayFriday ' Tous les jours de la semaine
   execPlan.AllBackups = true 'Toutes les sauvegardes
   execPlan.MaxConcurrentBackups = 3 '3 sauvegardes à la fois
   execPlan.MaxOperationsToKeep = 10 '10 exécutions à garder
   execPlan.ReportingMode = 0 'Pas d'e-mails de notification
   execPlan.Options = 0 'Pas d'options supplémentaires
   
   if execPlan.Update(connection) then 'Création sur le serveur
     ' Le plan d'exécution est créé. On le lance !
     execPlan.Start connection, DateAdd("h", 6, Now)
   else
     MsgBox "Impossible de créer le plan d'exécution."
   end if

   connection.Disconnect
else
  MsgBox "Connexion au serveur impossible."
end if