Imports et Conflits

Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Imports et Conflits

Message non lu par Xavier »

Imports et Conflits


Assez rapidement, la solution retenue pour gérer les conflits lors des imports a été en fait de ne pas les gérer, et de laisser l'utilisateur s'en occuper.
L'idée était donc d'importer les objets dans un dossier Import, visible dans chaque outil impacté par l'import.

Ainsi donc, importer un fichier contenant cette hiérarchie :

Code : Tout sélectionner

[x] Contacts
    [x] Perso
        [x] Famille
dans cette hiérachie :

Code : Tout sélectionner

[ ] Contacts
    [ ] Perso
        [ ] Famille
        [ ] Amis
        [ ] Divers
    [ ] Pro
        [ ] Société
        [ ] Client A
devait donner comme résultat :

Code : Tout sélectionner

[ ] Contacts
    [x] Import
        [x] Perso
            [x] Famille
    [ ] Perso
        [ ] Famille
        [ ] Amis
        [ ] Divers
    [ ] Pro
        [ ] Société
        [ ] Client A
Cela aurait été à l'utilisateur d'analyser les objets importées, et de décider lesquels déplacer dans les dossiers locaux et lequels effacer du dossier Import.


Cette solution imposant un trop grand nombre de manipulations de la part de l'utilisateur, il y a un sérieux risque de non-utilisation, ce qui donnerait au final des développements inutiles. Un import plus pratique est donc à l'étude.

L'analyse des modes d'import en GT et du comportement d'une recopie de dossiers sous Windows a permis de lister un certain nombre de cas.

Vocabulaire :
- Un objet interne est un objet stocké en local.
- Un objet externe est un objet provenant du fichier d'export.

Règles :
- Un objet est recherchée par son Label (nom d'un Contact ou d'un groupe d'Identifiants, titre d'une Note, etc) et par le dossier qui le contient. Un objet qui aura été déplacé sera donc interprêté comme un nouvel objet. (La notion d'identifiant unique n'existe plus, elle créerait autant de problèmes qu'elle en résoudrait.)
- Si un objet candidat à l'import est trouvé en local, une comparaison de ses données est faite. Cette comparaison ne portera que sur les champs utilisateurs (cryptables) et non sur les Propriétés de l'objet. Un Contact qui est Ouvert en local mais Fermé dans le fichier d'export sera donc considéré comme identique.
Imports.PNG
Notes:
1 - Le nouvel objet est importé.
2 - Si les objets sont identique, l'objet externe n'est pas importé afin de conserver les propriétés de l'objet interne.
3 - Cette option a été abandonnée.
4 à 7 - Ce sera à l'utilisateur de choisir le mode d'import avant de lancer la procédure.
4 - Cette option correspond à un remplacement systématique.
5 et 6 - Ces options remplacent la fenêtre de confirmation que Windows affiche pour chaque conflit de fichier déplacé. Ce sera à l'utilisateur de choisir laquelle de ces deux options il préfère. Dans ces deux options, l'utilisateur devra manuellement comparer les objets après l'import et décider lequel garder et lequel effacer.
5 - L'objet sera importé dans le dossier cible où se trouve l'objet interne.
6 - L'objet sera importé dans un dossier Conflits avec son arborescence.
7 - Option disponible au cas où, mais ne semble pas utile à première vue.
8 - Option annulée. Si l'utilisateur veut faire un rempacement total de ses données, il devra d'abord procéder à une purge de toutes les données, puis importer un fichier.
9 - Ce sera donc le comportement par défaut dans ce cas.

Quant aux protections :
- L'état de protection des objets importés sera ignoré. (Ils seront de toute façon soit tous en clair soit tous cryptés dans le fichier).
- Les objets importés hériteront de l'état de protection du dossier dans lequel ils seront importés.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Imports et Conflits

Message non lu par Xavier »

Et donc il n'y aura finalement pas de ComboBox :

Code : Tout sélectionner

Mode d'import :
- Insertion
- Remplacement
- Ajout
puisque le seul mode disponible sera Insertion mais il y aura une ComboBox :

Code : Tout sélectionner

Conflits :
- Remplacer
- Ajouter
- Importer en conflit
- Ignorer
Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Imports et Conflits

Message non lu par Xavier »

La spécification des différents types d'imports doit être réouverte, car les règles définies l'année dernières ne sont plus valides : :(
  • La synchronisation des données via FTP étant descopée, elle devra se faire via import, et l'outil ne propose pour le moment que du merge.
  • Toutes les données XT4 ont maintenant un UID.
De toutes façon, les principes décrits plus hauts ne collent plus avec le code, par exemple l'import avec conflit n'a jamais vu le jour.


En reprenant l'étude des besoins, on a maintenant :
  • Synchronisation globale (hors Raccourcis) entre deux postes.
  • Restauration globale (avec Raccourcis) suite à perte des données.
  • Import partiel pour restauration ou échange de données entre utilisateurs.
Il y a un problème avec les Raccourcis qu'il ne faut pas importer systématiquement, ceux-ci étant spécifiques à un poste. Le fonctionnement prévu est :
  • Par défaut, les exports contiendront toutes les données, y compris les Raccourcis.
  • Lors de l'import, les Raccourcis ne seront pas pré-sélectionnés, l'utilisateur peut cliquer pour en forcer l'import.

L'import actuel est en mode merge, donc il ajoute des données ou remplace les données existantes, mais n'efface pas les données qui ne sont pas dans le fichier (sous-entendu qui ont été effacées ou déplacées sur l'autre poste). Il faut donc absolument ajouter un mode "remplacement" qui commencerait par effacer les données locales avant l'import. Afin de rester compatible avec la gestion des Raccourcis décrite plus haut, l'effacement ne se fera pas au niveau de l’application mais de chaque outil. L'objectif est de pouvoir importer tous les dossiers en mode "remplacement global" sauf les Raccourcis.


Il y a de nombreux cas d'import possibles. Il a été envisagé de tous les proposer mais cela rendrait l'interface trop compliquée, et l'usage de certains semble très rare. Afin de ne pas devoir tout réécrire, le nouvel algorithme va se contenter de modifier légèrement l'algo existant. Les couleur signifient :
  • Fonction existante.
  • Fonction manquante, ne sera pas ajoutée.
  • Fonction manquante, va être ajoutée.
AlgoImport.png
Qq notes sur le fonctions "refusées" (en rouge) :
2 - Ajout systématique, donc création de doublon, à priori inutile, mais peut si besoin être accomplie via 13 - Fusion / Comparer / Ajouter.
7 - Remplacement systématique dans un merge : sera très utile mais est faisable via 12 - Fusion / Comparer / Remplacer, même si un peu plus long à cause de la comparaison des contenus.
8 - Ajout systématique dans un merge, à priori inutile, et faisable via 13 - Fusion / Comparer / Ajouter.
15 - Ne rien faire lors d'une fusion, choix risqué car le contenu n'est pas comparé, au pire réalisable via 10 - Fusion / Comparer et 14 - Fusion / Comparer / Ne rien faire.


Il semble donc que la totalité des cas pourra être gérée, via le simple ajout d'une CheckBox "Effacer les données des outils à importer" et la correction du bug en ligne 13 qui me fait des doublons. :)
-> Si vous avez des remarques ou des besoins particuliers, merci de les lister ASAP...

Le topic va être mis à décanter jusqu'au week-end prochain, il y a d'autres bugs à corriger...
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Répondre