Exemple de mise en oeuvre

Exemple de mise en place d’une source de données externe alimentant un modèle OpenProd à partir d’une table SQL distante contenant des clients ou des tiers.

Exemple

  1. Créer la configuration de connexion
    Créer une configuration nommée par exemple ERP secondaire - PostgreSQL ou SQL Server avec :

2. Créer la source de données
Créer une source nommée Clients externes puis associer la configuration précédente.

3. Saisir la requête SQL
Exemple :
SELECT customer_name AS Name, customer_code AS test, city AS test2, last_update FROM customer_export WHERE active = true

Dans cet exemple, la colonne Name alimente automatiquement le champ x_name du modèle généré.
Les colonnes test et test2 deviendront respectivement x_test et x_test2.

4. Prévisualiser
Utiliser le bouton Prévisualiser la requête pour vérifier que les colonnes exposées, les libellés et les lignes retournées correspondent au besoin.

5. Générer le modèle OpenProd
Cliquer sur Créer ou mettre à jour le modèle et l’interface.
Le module crée alors un modèle manuel du type x_external_clients_externes avec les champs nécessaires et l’interface OpenProd associée.

6. Charger les données
Cliquer sur Charger ou recharger les données pour importer les lignes dans le modèle généré, puis ouvrir la liste avec le bouton dédié.

7. Variante incrémentale
Si la table source contient une date de modification, la requête peut être adaptée avec %date après une première synchronisation réussie.

Utilisation dans une action serveur

Il est possible d'utiliser un enregistrement du module directement dans une action serveur.

La méthode à utiliser est mf_execute, qui attend comme paramètres une requête SQL via query, des paramètres d’exécution optionnels via execute_params, et un booléen metadata permettant de préciser si le retour doit inclure uniquement les lignes ou également les métadonnées de colonnes.

image.png

Côté Openprod, pour faire de la lecture en test il est recommandé d'utiliser la méthode UserError qui permet d'afficher soit les noms des colonnes, soit leur contenu. Ici avec les variables cols et rows.

Affichage de la variable 'cols' :

image.png