Aller au contenu

    Problème de suppression d’objets liés à un projet P5 supprimé

    La suppression d’un projet dans P5 est une action sensible, qu’il faut réaliser avec précautions, car elle peut entrainer de nombreux problèmes. Ces problèmes touchent en général les objets liés au projet supprimé.

    La suppression d’un projet peut être réalisée de 2 manières :

    → Dans un écran de Processes via le bouton en forme de croix rouge (en client léger ou en client lourd)
    Depuis le client lourd et l’utilitaire de suppression d’un fichier (Fichier > Administration > Supprimer un fichier…)

    Utilitaire suppression

    Utilitaire de suppression d’un fichier (fichier commun ou projet) en client lourd

    Les problèmes traités ici ne concernent que les projets supprimés via le bouton supprimer de l’interface et pas l’utilitaire de suppression d’un fichier qui supprime définitivement le fichier en BDD.

    Les liens entre un projet et les autres objets P5 :

    On peut avoir 2 types d’objets P5 liés à un projet :

    Les objets auxquels est relié le projet : il s’agit par exemple des objets d’arborescence P5. Pour ces objets, le lien est stocké au niveau des attributs du projet par une référence à l’ONB de l’objet P5.
    Par exemple, pour indiquer que le projet est lié à un élément nommé « R&D » dans l’OBS, P5 va stocker en base dans le champ OBS du projet l’ONB de l’élément « R&D ».
    Les objets « stockés » dans un projet :  il s’agit par exemple des taches, sous-projets, dépenses etc. Pour ces objets le lien est porté au niveau de l’objet par le champ DATASET qui contient alors l’ONB du projet.

    Pour des raisons de cohérence des données et pour permettre l’archivage des projets, l’outil standard de suppression des projets dans P5 (bouton « Supprimer l’objet sélectionné ») ne supprime pas physiquement le projet en BDD. L’action réalisée en BDD n’est pas une suppression physique mais simplement la modification du champ DELETE du projet supprimé (de la valeur ‘undefined’ à la valeur ‘1’). Le projet est donc conservé en BDD mais n’est plus visible dans P5.

    Process suppression standard

    Suppression d’un projet via le bouton « Supprimer »

    Problème

    Prenons l’exemple d’un projet lié à un objet d’une arborescence OPX2 (ex. « R&D » dans l’arborescence des OBS). Si l’on supprime le projet en question celui-ci ne sera plus affiché dans P5 car il sera taggé comme supprimé. Si par la suite on souhaite modifier l’OBS et supprimer l’élément d’arborescence « R&D » P5 va refuser la suppression.

    Explication

    En effet lorsque l’on supprime « R&D » P5 va vérifier si d’autres objets dépendent de « R&D » et notamment s’il n’existe pas de projet liés à cet élément. Or la requête exécutée par P5 pour ce contrôle ne fait pas de différence entre les projets supprimés et les autres. La suppression est donc refusée car P5 trouve bien mon projet supprimé dans la table des projets P5 en BDD.

    Solution

    Une solution de contournement de ce problème consiste à supprimer les liens existants entre le projet que l’on souhaite supprimer et les éléments d’arborescence avant de le supprimer. Ceci peut être réalisé directement dans P5 ou en BDD.

    Si le projet a déjà été supprimé, la solution consiste à supprimer les liens existants entre le projet que l’on souhaite supprimer et les éléments d’arborescence directement dans en BDD. Pour cela il faut passer les champs du projet correspondants aux arborescences (OBS, RBS, BS1 etc.) à vide.