Documentation Frappe Framework

Frappe Framework

Utiliser l’outil de migration de données

L’exemple pousse des articles vers un service imaginaire Atlas. Le connecteur implémente insert, update et delete. L’outil est encore en bêta.

2 min de lectureMis à jour le Source : docs.frappe.io

Rôle

Introduit en version 9, l’outil abstrait la synchro entre une source distante et un DocType. L’exemple pousse des articles ERPNext vers un service imaginaire, Atlas. La page le dit encore en bêta, et renvoie les anomalies vers les issues ERPNext.

Plan et mapping

Un Data Migration Plan groupe des mappings. L’exemple s’appelle Atlas Sync.

Un Data Migration Mapping est un jeu de règles champ à champ. Item to Atlas Item se définit ainsi :

RéglageExemple
Remote ObjectnameAtlas Item
Remote primary keyid
Local DocTypeItem
Mapping TypePush, Pull, ou Sync (les deux dans un cycle)
Page LengthTaille de lot

Le mapping de base aligne les noms de champs. En push ou pull seulement, le champ source peut être un littéral entre guillemets, "GadgetTech", ou un eval, "eval:frappe.db.get_value('Company', 'Gadget Tech', 'default_currency')". En push, le fieldname local peut donc être une chaîne ou un eval, pas seulement un champ. En Sync, les deux noms sont tour à tour une cible : un littéral n’y est pas possible.

Le mapping se rattache ensuite au plan.

Pour un mapping ajouté à un plan, un module est généré dans le module du plan. Ici, item_to_atlas_item sous data_migration_mapping, dans Integrations. On peut y écrire pre_process, qui reçoit le document source, et post_process, qui reçoit source, cible et d’éventuels arguments. Le corps de ces méthodes n’est publié que sur une image.

Connecteur

Un Data Migration Connector joint la source. La page part de deux types et en ajoute un, Atlas, avec hostname, username et password.

Le fichier atlas_connection.py se crée dans frappe/data_migration/doctype/data_migration_connector/connectors/, à côté des autres. Il faut insert, update, delete, et la connexion dans __init__. Le modèle cité est frappe_connection.py. Le code lui-même n’est que sur une image. Il faut aussi importer le connecteur dans data_migration_connector.py. La modification n’est montrée que par une capture.

Exécution

Un Data Migration Run prend le plan et le connecteur. Il gère file, lots et mises à jour delta. Run pousse les articles et affiche la progression en temps réel. Un run réussi ne se relance pas : il en faut un autre. Le suivant ne pousse que les éléments changés ou en échec au run précédent.

Point d’attention

Sync n’accepte pas de littéral ni d’eval à la place d’un nom de champ. Un run terminé avec succès est figé.