# Création d'un objet : champs ramenés d'objets liés nécéssaires

**URL:** <https://community.simplicite.io/t/creation-dun-objet-champs-ramenes-dobjets-lies-necessaires/2503>\
**Category:** Support\
**Tags:** v4-0\
**Created:** [July 20, 2020, 2:33pm UTC](https://community.simplicite.io/t/creation-dun-objet-champs-ramenes-dobjets-lies-necessaires/2503 "2020-07-20T14:33:24Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![JeanMichelC](https://community.simplicite.io/letter_avatar_proxy/v4/letter/j/e5b9ba/32.png) [@JeanMichelC](https://community.simplicite.io/u/JeanMichelC)\
**Post date:** [July 20, 2020, 2:33pm UTC](https://community.simplicite.io/t/creation-dun-objet-champs-ramenes-dobjets-lies-necessaires/2503/1 "2020-07-20T14:33:24Z")

</div>

J’ai une liaison 1…n : Jeune-- -\> Absence.

Lorsque je créé une absence dans le code Java, je renseigne le row\_id du jeune, mais j’ai l’impression qu’il me réclame les champs ramenés également ( Nom/prenom Jeune par exemple):  
com.simplicite.util.exceptions.ValidateException: ERR\_REQUIRED: Jeune| Jeune Nom

```auto
ObjectDB absence = this.getGrant().getTmpObject("NamAbsence");
                        absence.getField("namAbsDate").setValue(current.toString());
                        absence.getField("namAbsJenId").setValue(idJeune);
                        absence.getField("namAbsTypabId").setValue(idTypeAbsence);
                        absence.getField("namAbsGroupId").setValue(groupId);
                        new BusinessObjectTool(absence).validateAndSave();

```

Comment se fait-il qu’il me demande de renseigner les champs ramenés, la FK ne devrait-elle pas suffire ?

---

<div class="post-metadata">

**Author:** ![david](https://community.simplicite.io/user_avatar/community.simplicite.io/david/32/5703_2.png) [@david](https://community.simplicite.io/u/david)\
**Post date:** [July 20, 2020, 3:00pm UTC](https://community.simplicite.io/t/creation-dun-objet-champs-ramenes-dobjets-lies-necessaires/2503/2 "2020-07-20T15:00:58Z")

</div>

Non la FK suffit dans un contexte comme celui là, les attributs ramenés par jointeur ne sont pas requis.

Le seul cas où il est éventuellement nécessaire de les valoriser (manuellement ou via un `populate` explicite) c’est s’il y a du code dans votre objet `NamAbsence` qui les exploite (genre dans un `pre/postValidate/Create/Update/Delete`)

A mon avis votre variable `idJeune` est juste vide à cet endroit du code

---

<div class="post-metadata">

**Author:** ![JeanMichelC](https://community.simplicite.io/letter_avatar_proxy/v4/letter/j/e5b9ba/32.png) [@JeanMichelC](https://community.simplicite.io/u/JeanMichelC)\
**Post date:** [July 20, 2020, 3:08pm UTC](https://community.simplicite.io/t/creation-dun-objet-champs-ramenes-dobjets-lies-necessaires/2503/3 "2020-07-20T15:08:14Z")

</div>

Merci, `absence.populate(true)` avant la création à réglé le problème.

---

<div class="post-metadata">

**Author:** ![david](https://community.simplicite.io/user_avatar/community.simplicite.io/david/32/5703_2.png) [@david](https://community.simplicite.io/u/david)\
**Post date:** [July 20, 2020, 3:36pm UTC](https://community.simplicite.io/t/creation-dun-objet-champs-ramenes-dobjets-lies-necessaires/2503/4 "2020-07-20T15:36:43Z")

</div>

OK mais ça ne devrait pas être nécessaire, sauf dans le cas indiqué = si le code de l’objet que vous manipulez a besoin de ces champs ramenés pour faire je ne sais quoi. Si le code de votre objet n’exploite pas l’attribut ramené “nom” alors il n’y a **absolument** aucun besoin de ce `populate`.

Il y a donc forcément quelque chose au niveau de votre paramétrage ou votre code qui induit ce pb = vous avez peut être surchargé statiquement le caractère obligatoire/facultatif de l’attribut ramené au niveau de l’objet field ou dynamiquement via du code ou une contrainte ou dans le genre

S’agissant d’une FK le caractère obligatoire/facultatif ne doit être forcé **que** sur la FK, jamais sur les attributs ramenés.

Et au passage j’attire votre attention sur un sujet qui revient souvent : FK obligatoire =\> inner join, FK facultative =\> outer join. Quand on joue dynamiquement sur le caractère facultatif/obligatoire d’une FK il faut être extrêmement vigilant sur ce qu’on fait au risque d’avoir des comportements “étranges” en apparence (genre des records qui deviennent invisibles “aléatoirement”) mais qui s’expliquent très bien quand on a compris le inner vs outer join. Cf. [Le count d'objets affichés n'est pas identique à ceux en base](https://community.simplicite.io/t/le-count-dobjets-affiches-nest-pas-identique-a-ceux-en-base/2458/4)

---

<div class="post-metadata">

**Author:** ![system](https://community.simplicite.io/user_avatar/community.simplicite.io/system/32/4700_2.png) [@system](https://community.simplicite.io/u/system)\
**Post date:** [March 30, 2021, 6:46pm UTC](https://community.simplicite.io/t/creation-dun-objet-champs-ramenes-dobjets-lies-necessaires/2503/5 "2021-03-30T18:46:18Z")

</div>

Closed on March 30, 2021, 6:46pm UTC


