J’ai un business process de création d’un objet métier. Dans ce processus, l’utilisateur doit remplir plusieurs champs, dont l’un d’entre eux concerne le département juridique. Je souhaite que ce champ soit prérempli lorsque l’utilisateur arrive sur la page de création, car la table des départements ne comporte qu’un seul élément.
(Champ du département juridique)
Pour atteindre cet objectif, j’ai configuré le champ en activant l’option “Auto-select” dans la section “Auto-complétion” des paramètres de champ. Cependant, lorsque j’arrive sur le formulaire de création, le champ n’est pas automatiquement prérempli. Lorsque je clique dessus, une pop-up s’affiche avec la possibilité de choisir l’unique élément de la table des départements.
(section “Auto-complétion” des paramètres de champ)
(popup qui s’affiche après avoir cliqué que le champ)
Je me demande donc d’où pourrait venir le problème et pourquoi la complétion automatique ne fonctionne pas comme prévu. Ai-je manqué quelque chose dans ma configuration ou y a-t-il d’autres paramètres que je dois prendre en compte ?
Toute assistance ou suggestion pour résoudre ce problème serait grandement appréciée.
Ce champ de paramétrage ne permet pas de répondre à votre besoin, cf l’aide sur le champ “auto-complétion” :
Auto : à la sortie du champ, auto-sélectionne la valeur si un seul résultat a été trouvé
Il faut donc qu’il y ait eu un input de la part de l’utilisateur.
Pour modifier le comportement de la plateforme lors du click sur ce champ référence, il faut changer le paramétrage de la Présentation de l’attribut foreign key. Si vous sélectionnez “Liste déroulante”, pensez à définir comme étant indexables, votre objet lié ainsi que le champ ramené.
Pour répondre à votre besoin :
Si vous voulez valoriser ce champ lors de l’affichage du formulaire de création il faut valoriser la foreign-key associée dans le hook initCreate :
@Override
public void initCreate() {
setFieldValue("depLegalEntityId", "...");
}
Je vous remercie pour votre réponse et vos suggestions précédentes. J’ai pu résoudre la première partie de mon problème en faisant en sorte que le menu de sélection ne s’affiche plus lorsque l’utilisateur clique sur le champ.
Cependant, j’ai essayé d’implémenter le hook “initCreate” comme suggéré, mais je n’ai pas réussi à obtenir le préremplissage souhaité lors de l’affichage du formulaire.
Je tiens à préciser que je suis dans le contexte d’un business process lié à des activités où la première étape est la création de l’objet métier, ce n’est pas simplement un formulaire de création classique.
Serait-il possible de revoir cette solution ou de me fournir d’autres conseils spécifiques à mon contexte de business process pour résoudre ce problème de préremplissage du champ ?
Dans tous les cas le hook initCreate devrait être appelé.
Voici un exemple implémenté dans la Démo permettant de valoriser “BIM” comme fournisseur d’un produit créé via process.
@Override
public void initCreate() {
if(isProcessInstance()){ //only apply if object is created via process
String bimId = getGrant().simpleQuery("select row_id from demo_supplier where sup_code = 'BIM'");
setFieldValue("demoPrdSupId", bimId);
populate(true);
}
}
Si vous n’y parvenez toujours pas malgré l’exemple fourni, pouvez vous me partager votre code ?
Merci pour ce retour.
En fait quand je clique sur le bouton “Créer” en passant par mon objet métier j’ai bien le bon comportement. Le problème c’est quand je clique sur mon processus métier que je ne vois pas le préremplissage souhaité lors de l’affichage du formulaire, pourtant les deux pointent sur le même objet :