Mapping avec attributs liés à une FK

Tags: #<Tag:0x00007f49169554f0>

Bonjour,

Je souhaite utiliser la fonctionnalité de mapping pour alimenter plusieurs champs.

Je constate que je peux ramener les attributs mappés uniquement s’ils sont propres à l’objet. Autrement dit, je ne peux pas récupérer des attributs d’objets liés à une FK (je peux cependant récupérer l’id de la FK sans soucis).

L’exemple ci-dessous correspond au mapping souhaité qui ne remonte pas d’information
image
Pouvez-vous me confirmer que cette action est bien possible dans Simplicité ?

Merci

Jean-Baptiste

Je ne comprends pas le cas d’usage de mélanger FK par référence et mapping par valeur ?

  • Le mapping sert à lier des champs de 2 objets : recherche des valeurs de l’objet lié pour les ramener par valeur (exemple : le code postal d’une ville). Les champs peuvent être modifiables, c’est alors comme une aide à la saisie de valeurs qui existent dans un autre objet.

  • Lorsqu’il y a une FK (champ Id technique + objet référencé), c’est un lien par référence donc une recherche du row_id de la référence, les champs liés ne sont pas copiés mais juste ramenés par jointure (ex : le produit d’un commande)
    Les champs joints sont en lecture seule, si on les passe en modifiable, alors il y aura un update de l’objet référencé en cas de mise à jour.

Quel est le besoin de valoriser des champs joints par datamap ?
Vous voulez qu’un datamap recopie une FK et tous ses champs liés ?

Bonjour François,

Le besoin est lié à la particularité de notre modèle.

Nous avons un objet (un poste) qui fait référence à un autre objet (un autre poste) via une clé virtuelle (recherche via la clé fonctionnelle) et non par lien FK.

Pour faire cette association, nous avons créé un champ texte et ajouté un mapping pour récupérer des infos de la clé fonctionnelle.

Cela nous permet actuellement d’afficher un code à l’écran, et nous souhaitons l’agrémenter d’un libellé.

Pour ajouter le libellé, nous avons donc réalisé un second mapping afin d’alimenter un autre champ texte. Or la valeur souhaitée correspond à un libellé d’objet lié par une FK à notre objet de référence.


cf : sur l’image, il s’agit du libellé associé au code ‘05S5’

Ce libellé ne sera pas stocké en BDD et est recalculé à chaque initUpdate du formulaire.

Si besoin, nous pouvons faire ce lien via requête AJAX. Nous avions pensé au mapping pour rester cohérent avec la récupération des données de nos liens virtuels.

Je reste disponible si besoin de plus d’explication.
Jean-Baptiste

Un datamap peut bien ramener 2 champs :

  • Les 2 datamaps doivent avoir le même nom logique (pour grouper tous les champs dans un seul bouton loupe, sinon chaque attribut aura son mapping)
  • Le libellé doit être en “out” pour être valorisé en retour du pickup

Je peux regarder sur votre instance partagée si c’est ce que tu as fait et que ça ne fonctionne pas.

ok je te prépare l’instance avec le paramétrage, et je t’envoie un mail dès que ce sera disponible