class NsBackupSourceStats

La classe NsBackupSourceStats décrit les statistiques d'un élément source d'une sauvegarde, de type NsBackupSource.

CountFiles : __int64 readonly

Le nombre de fichiers uniques stockés.

CountAllVersions : __int64 readonly

Le nombre total de fichiers et de leurs versions stockées.

StoredSize : __int64 readonly

Le volume de données stocké sur le serveur pour l'élément source.

TotalSize : __int64 readonly

Le volume total de données sur le poste client représenté par l'élément source.

CountBrokenFiles : __int64 readonly

Le nombre de transferts en attente de reprise associés à l'élément source.

BrokenFilesSize : __int64 readonly

Le volume total de données en attente de reprise associés à l'élément source.

VARIANT_BOOL LoadFromID(NsConnection Connection, __int64 RootID)

Charge en mémoire les statistiques de l'élément source possédant l'identificateur RootID.

Recherche de la sauvegarde contenant le plus grand nombre de fichiers en attente de reprise

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 backups = server.AllBackups(connection) ' Récupérer la liste des sauvegardes
    set sourceStatsWithMaxBrokenFiles = nothing
    set sourceWithMaxBrokenFiles = nothing
    set backupWithMaxBrokenFiles = nothing
    
    for each backup in backups ' Pour chaque sauvegarde...
      set sources = backup.Sources(connection) ' Récupérer ses sources...
      
      for each source in sources ' Pour chaque source...
        set stats = CreateObject("NsAPI.NsBackupSourceStats")
        
        if not stats.LoadFromID(connection, source.ID) then ' Charger ses statistiques
          MsgBox "Impossible de charger les statistiques sur la source de sauvegarde #" & sysutils.Int64ToStr(source.ID)
        else
          ' On vérifie que la sauvegarde examinée contient bien des fichiers en attente de transfert
          if not sysutils.CompareInt64(stats.BrokenFilesSize, 0) = 0 then
            if sourceStatsWithMaxBrokenFiles is nothing then
              set sourceStatsWithMaxBrokenFiles = stats
            end if
            ' Est ce qu'on référence effectivement la sauveagarde avec le plus
            ' grand nombre de transferts en attente ?
            if sysutils.CompareInt64(stats.BrokenFilesSize, sourceStatsWithMaxBrokenFiles.BrokenFilesSize) > 0 then
              set sourceStatsWithMaxBrokenFiles = stats
              set sourceWithMaxBrokenFiles = source
              set backupWithMaxBrokenFiles = backup
            end if
          end if
        end if
      next
    next
    
    if not sourceStatsWithMaxBrokenFiles is nothing then
      MsgBox "La sauvegarde contenant le plus de transferts en attente est la sauvegarde n°" & sysutils.int64ToStr(backupWithMaxBrokenFiles.ID) & ", """ & backupWithMaxBrokenFiles.Name & """, les fichiers proviennent de : " & sourceWithMaxBrokenFiles.PathName
    else
      MsgBox "Aucune sauvegarde ne contient des fichiers en attente de transfert."
    end if
  else
    MsgBox "Impossible de charger les informations serveur."
  end if

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