class NsExecPlanOperation

La classe NsExecPlanOperation représente les informations d'exécution d'un plan d'exécution donné.

Un objet NsExecPlanOperation est créé à la fin de chaque exécution d'un plan ou lors de l'appel à la méthode Start d'un objet NsExecPlan, vous permettant de contrôler le résultat de son déroulement.

Le serveur conserve pour chaque plan d'exécution un nombre fixe d'objets NsExecPlanOperation, défini par le champ MaxOperationsToKeep de la classe NsExecPlan.

ID : __int64 readonly

L'identificateur unique de l'opération.

ExecPlanID : __int64 readonly

L'identificateur du plan d'exécution parent, de type NsExecPlan.

StartDateTime : VARIANT readonly

La date de début de l'opération, au format UTC.

EndDateTime : VARIANT readonly

La date de fin de l'opération, au format UTC.

RunSource : enum NsExecPlanRunSource readonly

La source de déclenchement de l'opération.

Completed : VARIANT_BOOL readonly

Une variable booléenne indiquant si le plan d'exécution a été exécuté jusqu'à son terme, ou bien s'il a été annulé avant d'y parvenir.

MissingMembers : long readonly

Le nombre de membres qui n'ont pu être trouvés sur le serveur, par exemple parce qu'un membre pointait vers un objet récemment supprimé du serveur de sauvegarde.

NonReachedUsers : long readonly

Le nombre d'utilisateurs qui n'ont pu être contactés par le serveur, par exemple parce qu'ils étaient déconnectés ou bien que leur poste était éteint.

ExpectedBackups : long readonly

Le nombre de sauvegardes que le serveur avait prévu d'exécuter.

ExecutedBackups : long readonly

Le nombre de sauvegardes effectivement exécutées.

CompletedBackups : long readonly

Le nombre de sauvegardes dont l'exécution est arrivée à son terme.

SucceededBackups : long readonly

Le nombre de sauvegardes dont l'exécution est arrivée à son terme sans erreurs.

VARIANT_BOOL LoadFromID(NsConnection Connection, __int64 OperationID)

Charge en mémoire l'exécution du plan d'exécution d'identificateur OperationID

VARIANT_BOOL Cancel(NsConnection Connection)

Annule l'exécution de l'opération représentée par l'objet. Cette fonction renvoit un résultat booléen égal à true seulement si l'opération était en cours d'exécution et qu'elle a pu être arrêtée avec succès, false sinon.

VARIANT_BOOL Delete(NsConnection Connection)

Supprime de la base de données les informations de l'opération représentées par l'objet.

Calcul du temps d'exécution et du taux de succès moyen d'un plan

Set connection = CreateObject("NsAPI.NsConnection")
Set sysutils = CreateObject("NsAPI.NsScriptUtils")

if connection.ConnectToLocalServer then
  set server = CreateObject("NsAPI.NsServer")

  if server.Load(connection) then ' Chargement des infos serveur
    set execPlans = server.ExecPlans(connection) ' Obtention de la liste des plans d'exécution programmés

    ' Demander un nom du plan
    execPlanName = InputBox("Saisissez le nom d'un plan d'exécution à examiner : ", "Test de l'API UB", "")

    ' Le nom du plan a été saisi ?
    if execPlanName <> "" then
      ' Existe t-il ?
      p = execPlans.FindByName(execPlanName)
      if (p > -1) then
        ' Le plan existe : on récupère ses informations d'exécution
        set operations = execPlans(p).Operations(connection)
        
        ' Le plan a t-il au moins été exécuté une fois ?
        if operations.Count = 0 then
          MsgBox "Le plan d'exécution n'a jamais été exécuté !"
        else
          execTime = 0
          successRate = 0
          for each operation in operations ' Pour chaque opération...
            ' On récupère le temps d'exécution de l'opération en minutes...
            execTime = execTime + DateDiff("n", operation.StartDateTime, operation.EndDateTime)
            ' ... Et le taux de succès (sauvegardes réussies / sauvegardes prévues)
            successRate = successRate + ((operation.SucceededBackups / operation.ExpectedBackups) * 100)
          next
          ' Affichage de temps d'exécution moyen du plan d'exécution :
          MsgBox "Temps d'exécution moyen : " & Round(execTime / operations.Count) & " minutes."
          ' Affichage du taux de succès moyen du plan d'exécution :
          MsgBox "Taux de succès moyen : " &  Round(successRate / operations.Count) & "%."
        end if
      else
        MsgBox "Le plan d'exécution n'a pu être trouvé sur le serveur."
      end if
    end if
  else
    MsgBox "Impossible de charger les informations serveur."
  end if

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