class NsBackupCommit

La classe NsBackupCommit décrit le résumé d'une opération de sauvegarde réalisée sur le serveur du point de vue de la base de données. La propriété IsComplete permet de déterminer si à une date données les données stockées sur le serveur représentent un état stable des données sur le poste client, c'est à dire si la sauvegarde ayant exécutée l'opération a pu aller jusqu'à son terme ou non.

Lors de l'exécution d'une sauvegarde, l'ensemble des modifications apportées au jeu de données (création de nouveaux fichiers, mises à jour fichiers existants, suppression de fichiers, etc.) est taggée à l'aide d'une structure de données de type NsBackupCommit. Chaque fichier stocké par le serveur référence au moins l'objet NsBackupCommit dans le contexte duquel il a été créé. Il peut également référencer l'objet NsBackupCommit dans le contexte duquel il a été supprimé, si le document a été marqué comme effacé sur le poste client ou s'il a été remplacé par une version plus récente.

Lorsqu'un objet NsBackupCommit n'est plus référencé par aucun fichier de la sauvegarde, il est automatiquement détruit par le serveur.

Les informations UpdatedFiles, UpdatedBytes, RemovedFiles et RemovedBytes sont calculées dynamiquement en fonction des fichiers stockés au moment de la requête. Ils n'incluent que les fichiers référencés dans la base à l'instant présent. Si vous désirez obtenir des statistiques qui représentent le résumé de l'évolution d'une sauvegarde au fil du temps, utilisez plutôt un objet de type NsOperationSummary.

ID : __int64 readonly

L'identificateur unique de l''opération transactionnelle.

StartDate : VARIANT readonly

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

ValidationDate : VARIANT readonly

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

UpdatedFiles : __int64 readonly

Le nombre de fichiers mis à jour.

UpdatedBytes : __int64 readonly

Le volume de données mis à jour, en octets.

RemovedFiles : __int64 readonly

Le nombre de fichiers supprimés.

RemovedBytes : __int64 readonly

Le volume de données supprimé en octets.

IsComplete : VARIANT_BOOL readonly

Une variable booléenne, indiquant si l'opération a été menée jusqu'à sa fin ou si elle reflète une exécution non terminée de la sauvegarde.

IsCDPOperation : VARIANT_BOOL readonly

Une variable booléenne, indiquant si l'opération a exécutée dans le cadre d'une opération de sauvegarde continue.

Recherche d'une date de restauration stable pour une sauvegarde donnée

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 backupsList = server.AllBackups(connection)
    
    ' On demande le nom d'une sauvegarde
    backupName = InputBox("Saisissez le nom d'une sauvegarde :", "Test de l'API UB", "")

    if backupName <> "" then ' L'utilisateur a saisi une valeur ?
      p = backupsList.FindByName(backupName) ' On cherche le backup correspondant
      if p = -1 then ' Trouvé ?
        MsgBox "La sauvegarde saisie n'a pas pu être trouvée sur le serveur."
      else
        ' On récupère la liste des commits
        set commitsList = backupsList(p).Commits(Connection)
        set stableCommit = nothing
        
        ' On recherche le commit le plus récent. Les objets
        ' sont triés dans l'ordre chronologique inverse, donc la date du
        ' premier commit issu d'une sauvegarde complète correspond
        ' à une date de restauration correspondant à un état stable des données.
        for each commit in commitsList
          if commit.IsComplete then ' Sauvegarde terminée ?
            set stableCommit = commit ' Oui : alors on a le bon commit
            exit for
          end if
        next
        
        if stableCommit is nothing then ' Trouvé ?
          MsgBox "Aucune date de restauration stable - la sauvegarde ne s'est jamais terminée correctement."
        else
          MsgBox "Date de restauration correspondant à un état stable des données : " & sysutils.UTCToLocal(stableCommit.ValidationDate)
        end if
      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