1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

WD [Travail collectif] Projet commun : SauveSage

Discussion dans 'Windev' créé par channibal, Sept 6, 2018.

  1. channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277
    Bonsoir,

    Voila, si vous voulez bien, reprenant notre travaille collectif.

    Après avoir remarqué chez des clients qui utilisent SAGE, suite à des mauvaises manipulations, des pertes graves de données, j'ai crée un petit utilitaire qui fait la sauvegarde.

    C'est simple à faire et ça marche très bien.
    MAIS c'est pas vraiment très pratique qu'on est obligé de lancer, chaque jour, la sauvegarde manuellement avant de partir :)

    Le projet :

    Création et amélioration d'un utilitaire de sauvegarde de la base de données pour le produit SAGE.

    Cette base se compose de 2 fichiers: 1 Commercial et 1 Comptable qu'on va tout simplement les sauvegarder.

    P.S. : Pour faire simple la base se trouve sur le mème post avec une connexion locale sans C/S (installation mono)

    Principal Problématique à résoudre :

    1 - La sauvegarde des fichiers ne peut pas se faire à chaud. Il faut que le logiciel SAGE soit fermé.
    j'ai essayé plusieurs APIs MicroSoft sans succès.
    2 - L'automatisation de l'opération ne peut pas se faire vu que le logiciel doit être fermé.

    Travail à faire :

    1 - Trouver une solution pour la Sauvegarde à chaud
    2 - Automatisation de l’opération de sauvegarde (jour, heure, période...)
    3 - Faire tourné l'utilitaire en arrière plan avec SAGE (tache windows ...)

    4 - Éliminer les sauvegardes anciennes et ne garder que les N dernières sauvegardes par exemple pour ne pas encombrer l'espace de travail.
    5 - Créer au moins 2 profiles pour les utilisateurs, un Superviseur et un User, avec les taches adéquates pour chacun.


    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    P.S. Si vous êtes pas trop chauds pour le faire ou vous n'avez pas un SAGE installé sous la main vous pouvez utiliser l'utilitaire comme il est chez vous ou chez vous clients pas de soucis ;)
    P.S. 2 Pour ceux qui n'ont pas windev il y a l’exécutable et l'installateur inclues

    Bon Dev.
     
    #1 channibal, Sept 6, 2018
    Dernière édition: Sept 6, 2018
    Tags:
  2. channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277
    Bonjour,

    Oui mais dans tous les cas il faut résoudre le problème de la sauvegarde à chaud avant

    Théoriquement les APIs peuvent le faire mais sans succès, même chose avec CopyFileA ou CopyFileExA

    Code (Text):
    bErreurON est un booléen = Faux

    HLitPremier(F_Params)
    gsFichierGest = F_Params.FichGest
    gsFichierCompta = F_Params.FichCompta
    gsCheminSauve = F_Params.RepSauve

    gsCheminSauve = ComplèteRep(gsCheminSauve)+DateVersChaîne(DateDuJour(),"JJMMAAAA")+HeureVersChaîne(HeureSys(),"HHMMSS")

    SI PAS fRepCrée(gsCheminSauve) ALORS
        Erreur(ErreurInfo())
        bErreurON = Vrai
    FIN

    gsCheminGest = ComplèteRep(gsCheminSauve) + fExtraitChemin(gsFichierGest,fFichier+fExtension)

    // Blocage des threads
    APIParamètre(apiBloqueThreads, Vrai)



    SI API("kernel32.dll", "CopyFileA", &gsFichierGest, &gsCheminGest, Faux) = 0 ALORS
        Erreur(ErreurInfo())
        bErreurON = Vrai
    SINON
        ToastAffiche("Copie du fichier commercial encours...",toastCourt,cvBas,chCentre,VertPastel)
        Multitâche(400)  
    FIN



    gsCheminCompta = ComplèteRep(gsCheminSauve) + fExtraitChemin(gsFichierCompta,fFichier+fExtension)

    SI API("kernel32.dll", "CopyFileA", &gsFichierCompta, &gsCheminCompta, Faux) = 0 ALORS
        Erreur(ErreurInfo())
        bErreurON = Vrai
    SINON
        ToastAffiche("Copie du fichier comptable encours...",toastCourt,cvBas,chCentre,JaunePastel)
        Multitâche(400)
    FIN

    SI PAS bErreurON ALORS
        Info("Sauvegarde terminée")
    FIN


     
    Le code fonctionne parfaitement quand les fichiers sont fermés, mais pas s'ils sont utilisés par SAGE :

    [​IMG]

    Je ne pense pas que c'est un problème de droit mais avec Windows tout est possible!!
     
  3. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    3,013
    J'aime reçus:
    1,618
    Pour information les logiciels comme backup exec ou ghost créer un verou logiciel de blocage des fichiers a un instant T pour pouvoir faire leur sauvegarde a chaud sous windows.
    Je crois qu'il existe une commande dos pour créer ce verrou mais je n'arrive pas a la retrouvé.
     
  4. irobot

    irobot Active Member
    MEMBRE WX

    Inscrit:
    Jan 10, 2018
    Messages:
    143
    J'aime reçus:
    131
    pour les sauvegarde à chaud ( ouverts) , quel que soit le soft, il faut passer par volume shadow copy (VSS). La doc est la :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
  5. channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    pour les sauvegarde à chaud ( ouverts) , quel que soit le soft, il faut passer par volume shadow copy (VSS). La doc est la :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Cliquez pour agrandir...
    Bonjour,

    Merci pour la suggestion :)

    J'ai déjà fais le tour des classes et assemblages snapshot VSS en open sources mais tout se base sur des classes DotNet abstraites, ce qui implique : Dérivation impossible en windev :(

    J'ai ajouté l'assemblage

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    au projet. Code Source de l'assemblage par

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Pour le vswriter.h header ou VSCS SDK 7.2 c'est par

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    J'ai mis les fichiers .h ici :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Peut être qu'on pourra réécrire les classes en WLangage.

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
    suenodesign apprécie ceci.
  • irobot

    irobot Active Member
    MEMBRE WX

    Inscrit:
    Jan 10, 2018
    Messages:
    143
    J'aime reçus:
    131
    y a plus simple, par vssadmin :)

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
  • Partager cette page

    Chargement...