Skip to main content

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.