Configuration du traitement d'import

La table de configuration permet de faire la correspondance entre les balises XML et les objets et champs d'openprod. 

1. Détails

image.png

Utiliser les Onchanges : Si cette case est coché, les onchanges se déclencheront lors 

Répertoire pour intégration des document D.T. : il s'agit de l'emplacement dans le quelle on va trouver les plans correspondant à des produits. Lors de l'exécution du traitement d'import, tous les fichier de ce dossier seront importés et associé a l'article ayant le même code que le nom du fichier

Séparateur indice documentaire : Permet de donner le séparateur entre le code produit et la version dans le nom des fichiers.

Dossier produit : Permet de préciser le dossier dans le quelle sera mis le document Open-Prod créer par l'import du fichier. dans cette zone, on peut utiliser les balises suivantes : product_code , product_version , active_company.  exemple :  Root/active_company/product_code.

Remarque : Si les dossier n'existent pas, ils seront créés. La date sera ajouté à la fin du nom du fichier pour éviter les doubons. 

Action serveur :  une fois l'import réalisé, cette action serveur se déclenchera. 

Remarque : si l'action serveur est créer sur le modèle xml.import.processing. L'appel de la fonction get_all_data_by_model(Model,Type) pour récupérer tous les enregistrements du modèle demandé crée ou modifié par le traitement d'import.  Exemple :

#récupère la liste des produits créés ou modifiés par le traitement d'import
product_rcs=object.get_all_data_by_model('product.product',['create','update']) 

 Cela permettra par exemple d'activer toutes les nomenclatures importées. 

2. Balises

dans cette partie il faut décrire la structure du fichier XML et y faire correspondre des objets ou champs openprod. 

image.png

Type Neutre : Balise ne corredpondant pas à un élément de openprod. 

image.png

Type Objet : Balise corredpondant à un objet openprod (exemple : Nomenclature) 

image.png

image.png

image.png

image.png

Dans ce cas, il est nécessaire de préciser les champs suivant : 

Objet : Modèle openprod correspondant

Domaine de recherche : permet de sélectionner l'enregistrement à mettre à jour (si la case mettre à jour l'objet est chochée) ; si l'enregistrement n'est pas trouvé et que la case "Créer l'enregistrement est crée alors l'enregistrement sera créé. Si la condition du domaine renvoie plusieurs enregistrement l'import échouera.  Particularité : dans ce cas :  [["code","=",""]] les "" seront remplacé par la valeur de la balise liée que code décrite dans les balises enfant. Dans les exemples ci-dessus on constate que 2 balises sont mappées sur l'objet nomenclature cependant, dans un cas le domaine précise ["bom_id","!=",false] pour les lignes et dans l'autre cas  ["bom_id","=",false] pour les entêtes. Remarque : si on met un domaine jamais vrai, un enregistrement sera crée pour chaque balise rencontrée ! 

Nom du champs dans l'objet parent : si la balise parente est un objet, il faudra préciser le champs correspondant dans l'objet parent (exemple : champs composant de l'entête de nomenclature)

Type d'import de liste : si le nom du champs dans l'objet parent est un one2many ou many2many alors on pourra décider soit de remplacer les enregistrement trouvés, soit de les ajouter. 

Est requis :  permet de renvoyer une erreur si cette balise n'est pas trouvée

Balise enfant : dans le cas d'une balise de type objet (exemple : produit), on peut détailler les balises enfants (exemple : code, nom...) 

Type Champ : Balise corredpondant à un champ openprod (exemple : code) 

 

image.png

image.png

image.png

Champs en relation avec le texte : permet de faire la correspondance avec le champ Open-Prod si la balise contient du texte  exemple :  <Libelle>Vis 45544</Libelle> (remarque : ce mode de relation ne fonction pas toujours très bien. Préférer les relation par attribut quitte à les convertir dans le pré-traitement)

Attribut cible : permet de faire la correspondance avec le champ Open-Prod si la valeur est contenu dans un attribut de la balise :   exemple :  <Code value="PR45544"/>. dans ce cas, il faut commencer par créer la relation avec les attributs plus bas avant de pouvoir sélectionner l'attribut dans la liste. 

 


Revision #6
Created 21 November 2022 14:28:59 by Alexis CHAPEL
Updated 13 September 2024 07:50:40 by Emeric ORSEL