Primavera P6 est un outil de planification développé par Oracle. C'est l'un des outils de planification et d'ordonnancement les plus utilisés dans les projets EPC et particulièrement l'Oil & Gas. Ces projets, sont quelques fois critiqués pour leurs manque de coordination principalement de l'historique des leçons apprises (lessons learned).Surtout les données des projets qui sont souvent éparpillés dans une multitudes de sites et machines. Avec l’importance croissante des données et le développement d’algorithmes d’apprentissage artificiel et automatique, il existe une opportunité d’exploiter les données pour améliorer la prévisibilité de la planification des projets, comme dans l’exemple du secteur EPC oil & Gas.
Cependant, nous pouvons envisager des collectes et traitement de données manuellement. Cette opération necessite de nombreux traitements manuels de données impliquant le logiciel et les feuilles de calcul Primavera P6. Ces processus sont si laborieux qu'essayer d'effectuer cette tâche manuellement fais perdre beaucoup de temps et d'énergie.
À partir de là, nous pouvons écrire des codes pour extraire les données du fichier Primavera afin des les utiliser jusqu'à établir une bibliothèque que nous pouvons adapter et réutiliser selon nos besoins. Nous pouvons aussi envisager la crétion de dashboard avec la merveilleuse Django Framework pour saisir et visualiser instentanements les rapports des projets ent tout site et toute machine.
La première chose à faire est de comprendre la structure des fichiers et des bases de données ainsi que les outils necessaires pour se connecter à ce BD, extraire et analyser les données.
Nous pouvons soit nous connecter directement aux BD soit extraire des données à partir des fichiers XER.
Dans cette partie nous allons commencer par la plus simple qui est l'exractions des données des XER.
Dans d'autre tutos nous allons voir comment extraire les données directement des BD de divers sites et divers machines.
Ensuite il faudra mettre en place votre environnement virtuel, personellement j'utilse Linux, et donc la tâche est trés simple.
Une fois notre environnement est activé, nous pouvons à l'aide de lignes de commande installer et utiliser la bibliothèque grâce au formidable utilitaire python pip.
Windows:
pip install xer-reader
Linux/Mac:
pip3 install xer-reader
Une fois l'installation est terminée
Étape 1 :
importez la bibliothèque en tapant le code suivant :
from xer_reader import XerReader
Étape 2 :
Créez une nouvelle instance d'un objet XerReader en passant le fichier XER comme argument. XerReader peut accepter le chemin du fichier représenté sous la forme d'un objet str ou pathlib Path, ou d'un fichier binaire reçu en réponse à des requêtes, Django, Flask, FastAPI, etc...
file = r"/path/to/file.xer"
reader = XerReader(file)
Les attributs
data [str] - Le contenu du fichier XER sous forme de chaîne.
export_date [datetime] - La date à laquelle le fichier XER a été exporté.
export_user [str] - L'utilisateur P6 qui exporte le fichier XER.
export_version [str] - La version P6 utilisée pour exporter le fichier XER.
file_name [str] - Le nom du fichier sans l'extension '.xer'.
Étape 3 :
check_errors() -> liste[str]
Vérifie le fichier XER pour les tables manquantes et les données orphelines et renvoie les résultats sous forme de liste d'erreurs.
Des tables manquantes peuvent survenir lorsqu'une entrée du tableau 1 pointe vers une entrée du tableau 2 mais que le tableau 2 n'existe pas du tout.
Les données orphelines se produisent lorsqu'une entrée du tableau 1 pointe vers une entrée du tableau 2 mais que l'entrée du tableau 2 n'existe pas.
delete_tables(*table_names : str) -> str
Supprime un nombre variable de tables (table_names) des données du fichier XER et renvoie une nouvelle chaîne (ne modifie pas l'attribut XerReader.data).
Dans l'exemple suivant, les tables associées aux champs définis par l'utilisateur sont supprimées du contenu du fichier XER et stockées dans une nouvelle variable new_xer_data, qui peut ensuite être écrite dans un nouveau fichier XER :
new_xer_data = reader.delete_tables("UDFTYPE", "UDFVALUE")
avec open("New_XER.xer", "w", encoding=XerReader.CODEC) comme new_xer_file :
new_xer_file.write(new_xer_data)
get_table_names() -> list[str]
Renvoie une liste de noms de tables inclus dans le fichier XER.
get_table_str(table_name: str) -> str
Renvoie le texte séparé par des tabulations pour une table spécifique dans le fichier XER.
has_table(table_name: str) -> bool
Renvoie True si la table (nom_table) est trouvée dans le fichier XER.
parse_tables() -> dict[str, Table]
Renvoie un dictionnaire avec le nom de la table comme clé et un objet Table comme valeur.
to_csv(file_directory: str | Path) -> None
Générez un fichier CSV pour chaque table du fichier XER en utilisant « tab » comme délimiteur. Les fichiers CSV seront créés dans le répertoire de travail actuel.
Facultatif : transmettez une chaîne ou un objet Path (file_directory) pour spécifier un dossier dans lequel stocker les fichiers CSV.
to_excel() -> None
Générez un fichier Excel (.xlsx) avec chaque tableau du fichier XER sur sa propre feuille de calcul. Le fichier Excel sera créé dans le répertoire de travail actuel.
to_json(*tables: str) -> str
Générez une représentation sous forme de chaîne conforme à JSON des tables du fichier XER.
Facultatif : transmettez les noms de tables spécifiques à inclure dans la chaîne json.
pour plus d'information vous pouvez consulter la Documentation Oracle
Si vous desirez une formation veuillez nous contacter à notre page contact ou par email admin@tidjma.tn
Comments