Paramétrage avancé
1. Configuration d'un champ relationnel
Il existe trois types de champs relationnels dans Open-Prod :
- many2one : mon modèle est lié par ce champ à un seul enregistrement d’un autre modèle, et cet autre modèle contient un champ one2many qui traduit la relation inverse.
Ex : un contact est lié à un seul pays, et dans le sens inverse un pays peut être lié à une multitude de contacts.
- one2many : mon modèle est lié par ce champ à une multitude d’enregistrements d’un autre modèle, et cet autre modèle contient un champ one2many qui traduit la relation inverse.
Ex : un produit peut être lié à une multitude de lignes de commande de vente, et dans le sens inverse une ligne de commande de vente n’est liée qu’à un seul produit.
- many2many : mon modèle est lié par ce champ à une multitude d’enregistrements d’un autre modèle, et cet autre modèle contient un champ many2many qui traduit la relation réciproque.
Ex : un partenaire peut être lié à une multitude de catégories, et réciproquement une catégorie peut être liée à une multitude de partenaires.
2. Configuration de l’export d’un champ relationnel
Concrètement, cela veut dire qu'il est possible de paramétrer l'export de champs d'un modèle relié au modèle initialement paramétré pour l'export.
Pour cela, revenir sur la s"lection des champs de partenaire à exporter et sélectionner un champ relationnel. Dans l'exemple ci-dessous, il s'agit du champ country-id
qui est un champ "many2one". Valider la sélection puis enregistrer l'entièreté du formulaire.
Pour poursuivre dans cet exemple, si l'on revient sur le formulaire de configuration d’export du modèle Partenaire, on voit que le modèle Pays a été ajouté automatiquement à la liste des configurations des modèles enfants.
Ce modèle enfant est paramétrable au même titre que le modèle parent, et l'on peut donc sélectionner des champs de ce modèle à exporter.
En cliquant sur le modèle Pays en modification, on retrouve la même interface de configuration que pour le modèle parent, mais cette fois pour le modèle enfant. Cette structure est récursive : ainsi, il est possible d'exporter des champs relationnels de champs relationnels de champs relationnels… et ce à l’infini.
3. Modifications de champs à l'export
Lors d'un export, il est possible de paramétrer des exécutions de modifications. On peut par exemple modifier certains champs ou bien déclencher une méthode particulière.
Retourner en modification de l'export et du modèle à exporter. Aller dans l'onglet Setters. Pour ajouter un champ à modifier, cliquer sur Ajouter un élément. Dans le formulaire qui s'ouvre, sélectionner le ou les champ(s) à modifier puis valider la sélection.
Dans l'exemple ci-dessous, le champ Notes
de chacun des enregistrements exportés se verra attribuer la valeur "Nouvelle note".
Il est également possible d'appeler une méthode Python particulière. Cela requiert des compétences en développement, il est donc préférable de se rapprocher de votre chargé de clientèle ou du service R&D de 1Life pour des demandes de ce type.
4. Exécution automatique d'un export ou d'un import
Pour pouvoir exécuter automatiquement un export, il faut utiliser le système de Cron (action planifiée) d’Open-Prod. Le bouton "Générer le cron pour cet export", surligné ci-dessous, simplifie cette création de Cron. Cliquer dessus pour créer un nouveau Cron.
Dans la fenêtre qui s'affiche, paramétrer la fréquence d'exécution de l'export puis cliquer sur "Ok". Dans l'exemple ci-dessous, le Cron va s'exécuter toutes les 5 minutes à partir du 31/08/2022 à 12h00.
Une action planifiée pour exécuter cet export est ainsi créée. Elle peut être modifiée depuis le menu « Action planifiées » d’Open-Prod. Il est également possible de la supprimer à tout moment en utilisant le bouton "Supprimer le cron pour cet export" (qui a remplacé le bouton de création utilisé plus tôt).
Les exports exécutés par l'action planifiée sont visibles dans l'onglet Historique de la section Monitoring, tout comme ceux exécutés manuellement.