ADF : Positionner une valeur par défaut à une liste de valeurs LOV

Lors de la saisie de données sur un formulaire par l’intermédiaire de liste de valeurs déroulante, il peut être parfois intéressant de fixer par défaut une valeur à la liste, par exemple une valeur qui se répète souvent, afin de limiter les cas nécessitant la sélection.
Dans le cadre d’un Fusion Web Project ADF, ce cas d’utilisation peut être résolu par diverses façons.
Nous en étudierons une qui a lieu au niveau du projet Model.
Prenons pour exemple un formulaire d’enregistrement de participants à une épreuve sportive.
Parmi les données nécessaires à l’enregistrement, la nationalité du participant se fera au travers d’une liste de choix déroulante; le but étant de positionner par défaut dans le champ de saisie encore vide la nationalité française.

1ère étape : construction de l’Entity et de la ViewObject Updateable qui serviront à la mise à jour des données des participants

La construction de ces objets ADF est considérée comme acquise sinon il vous faudra vous référer à comment créer une Entity et à comment créer une ViewObject Updateable du Fusion Developer’s Guide for Oracle ADF.

ViewObject Updateable servant à l’enregistrement des participants
L’attribut PersonNationalityId correspond à la nationalité que l’on veut configurer avec une LOV prenant une valeur par défaut.
C’est une clef étrangère de type Number.

2ème étape : construction de la LOV

La LOV est construite à partir d’une ViewObject ReadOnly.
Elle contient deux attributs, l’id de la nationalité servant de valeur pour l’attribut PersonNationalityId et le nom de la nationalité servant de valeur d’affichage pour la liste déroulante.
Voir comment utiliser les LOV dans des attributs de ViewObjects.

construction de la LOV (LOV_PersonNationalityId) au niveau de l’attribut PersonNationalityId

3ème étape : positionnement de la valeur par défaut pour la LOV

L’astuce consiste à positionner une valeur par défaut au niveau du champ Value pour l’attribut PersonNationalityId dans l’Entity sous-jacente à la vue. On y met donc la valeur de l’id de la nationalité correspondante à celle voulue (8 pour la nationalité française dans notre exemple).

détails de l’attribut PersonNationalityld au sein de l’Entity
A l’affichage, lors de l’arrivée sur le formulaire de saisie des informations des participants, tous les champs de saisie seront vides exceptés celui de la liste des nationalités, positionnée sur la valeur française.

formulaire d’enregistrement des participants
Rque : on peut aussi positionner la valeur par défaut au niveau de la ViewObject Updateable au lieu de le faire au niveau de l’Entity. Il sera néanmoins, dans la plupart des cas, préférable de le faire au niveau le plus bas de la couche Model (à savoir l’Entity) pour des raisons de réutilisabilité notamment.