La classe NsOperationSummary résume l'exécution d'une opération transactionelle sur le serveur de sauvegarde.
Utilisez cette classe lorsque vous désirez obtenir des informations sur l'exécution des opérations de sauvegarde, restauration, réinitialisation ou suppression effectuées depuis l'agent client. Toute opération, qu'elle soit lancée manuellement ou de manière planifiée par le client, ainsi que les exécutions issues des plans d'exécutions et des demandes d'exécution serveur, se voit rajouter une entrée de type NsOperationSummary.
Depuis la version 8 du logiciel, les opérations de sauvegarde locale et d'extraction de données sont également mémorisées et modélisées par cette classe.
Pour consommer un volume raisonnable de la base de données, les objets de type NsOperationSummary sont conservés durant une durée choisie par l'administrateur et accessible via la propriété TimeResolution de la classe NsServer. Au delà de cette durée, ces informations sont automatiquement supprimées par le serveur de sauvegarde.
L'identificateur unique du résumé de l'opération.
L'identificateur de la sauvegarde serveur (NsBackup) concernée par l'exécution, -1 sinon.
L'identificateur de la sauvegarde local (NsLocalBackup) concernée par l'exécution, -1 sinon.
L'identificateur de l'opération en base de données (NsBackupCommit) ayant modifié les fichiers.
L'identificateur de l'objet NsExecPlanOperation dans le contexte duquel s'est exécuté la tâche, si celle-ci l'a été dans le contexte d'un plan d'exécution, -1 sinon.
L'identificateur de l'objet NsDataAccessLogEntry contenant les informations sur les fichiers accédés par l'opération le cas échéant, -1 sinon.
Le nom de la sauvegarde concernée par l'opération. Ce champ permet d'obtenir une information minimale sur la sauvegarde, même si celle-ci a été supprimée du serveur depuis l'exécution (dans ce cas, le champ BackupID ne pointe plus vers un objet valide dont les informations peuvent être examinées).
La source d'exécution ayant initié l'opération.
La plateforme cliente ayant exécuté l'opération.
L'identificateur de l'utilisateur (NsUser) ayant initié l'exécution.
Le type de la transaction effectuée.
La date de début de l'opération, au format UTC.
La date de fin de l'opération, au format UTC.
Réservé.
Le type de terminaison de l'opération.
Une variable booléenne indiquant si l'opération a été réalisée dans le cadre d'une opération de sauvegarde continue.
Le nombre de fichiers supprimés.
Le nombre de fichiers mis à jour.
Le nombre d'erreurs.
Le nombre d'octets envoyés.
Le nombre d'octets reçus.
Le nombre de millisecondes passées à envoyer ou recevoir des données durant l'opération.
Le nombre de millisecondes passées valider l'opération sur le serveur (fichiers et base de données).
Le pourcentage (blocs de données réutilisés / nombre total de blocs) au niveau global de la transaction. Plus cette valeur tends vers 100, plus cela signifie que des données sur le serveur ont pu être réutilisées pour construire les fichiers à sauvegarder
Un numéro interne identifiant la séquence d'opérations effectuée sur la sauvegarde jusqu'à qu'elle se complète. Les opérations successives ne se terminant pas correctement partagent la même valeur de BackupRestoreSessionID. Lorsqu'une opération effectuée sur la sauvegarde va à son terme, cette valeur est incrémentée et AttemptNumber est réinitialisé à zéro.
Un numéro de tentative, réinitialisé à chaque fois qu'une operation sur la sauvegarde va jusqu'à son terme, incrémenté dans le cas contraire.
Charge en mémoire le résumé de l'opération possédant l'identificateur OperationID
Récupère le rapport de l'opération mis en forme par le serveur, au format texte, et le place à l'emplacement spécifié par FilePath.
Récupère le rapport de l'opération mis en forme par le serveur, au format spécifié par Renderer, et le place à l'emplacement spécifié par FilePath.
Set connection = CreateObject("NsAPI.NsConnection") Set sysutils = CreateObject("NsAPI.NsScriptUtils") nsTransactionTypeBackup = 1 ' Renvoit une sauvegarde à partir de son nom Function FindBackupByName(backups, name) set FindBackupByName = Nothing for each backup in backups if StrComp(backup.Name, name, vbTextCompare) = 0 then set FindBackupByName = backup Exit Function end if next End Function if connection.ConnectToLocalServer then set server = CreateObject("NsAPI.NsServer") if server.Load(connection) then ' Chargement des infos serveur ' Demander un nom de sauvegarde backupName = InputBox("Saisissez le nom d'une sauvegarde sur le serveur (ex : Ma sauvegarde) : ", "Test de l'API UB", "") ' L'utilisateur a t-il saisi un nom de backup ? if backupName <> "" then set backup = FindBackupByName(server.AllBackups(connection), backupName) ' Est ce qu'on a bien trouvé une sauvegarde valide ? if backup is Nothing then MsgBox "Erreur : la sauvegarde """ & backupName & """ n'a pu être trouvée sur le serveur." else reportsPath = "" ' Récupérer tous les événements enregistrés pour la sauvegarde set eventList = backup.History(connection, 0) ' Demander à l'utilisateur un dossier où stocker les rapports de sauvegarde set objShell = CreateObject("Shell.Application") set objFolder = objShell.BrowseForFolder(0, "Selectionnez un dossier ou stocker les rapports : ", 0, "") if IsObject(objfolder) Then reportsPath = objFolder.Self.Path ' Si le chemin des rapports a bien été choisi... if reportsPath <> "" then set fso = CreateObject("Scripting.FileSystemObject") for each evt in eventList ' Pour chaque événement enregistré... if evt.TransactionType = nsTransactionTypeBackup then ' Si l'opération était une sauvegarde... dateOfEvent = sysutils.UTCToLocal(evt.ValidationDate) ' On obtient la date locale à partir de la date UTC ' Construire le chemin de stockage du rapport reportLocation = fso.BuildPath(reportsPath, evt.BackupName & " - " & Day(dateOfEvent) & "_" & Month(dateOfEvent) & "_" & Year(dateOfEvent) & " - " & Hour(dateOfEvent) & "h " & Minute(dateOfEvent) & ".txt") ' Téléchargement du rapport ! if not evt.GetOperationReportAsText(connection, reportLocation) then MsgBox "Erreur lors du téléchargement de l'opération #" & sysutils.Int64ToStr(evt.ID) end if end if next 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