Ouverture d'un formulaire sans passer par la liste

Tags: #<Tag:0x00007fdd47302fb0>

Bonjour,

j’aurais besoin que lorsque l’on clique dans un des onglets dans la liste des menus à gauche, ca ouvre directement un formulaire sans passer par l’interface liste
Dans mon formulaire, j’ai juste besoin de deux champs vide à remplir et d’un bouton Action pour activer un code

Sauriez-vous comment faire cela ?

[Platform]
Status=OK
Version=4.0.P24
BuiltOn=2020-10-02 23:49 (revision 8e96d3fd43dabe50e8858a5f77c2f6e6f81d97bd)
DBPatchLevel=4.0;P24;85c7c9ef76f59db24dbbcd0462ba60a2

Cordialement,
KWu

Il y a plusieurs approches possibles mais je ne vois pas comment vous envisagez de pointer sur un record particulier “en dur” d’un objet depuis un menu.

Si votre besoin est d’aller vers le formulaire de création dans ce cas vous pouvez le faire via un raccourci (il y a des exemples dans la demo)

Si c’est un objet a 1 seul record et 2 champs à saisir pour lancer une action,
ce n’est pas vraiment un objet (avec une table et des colonnes) mais plutôt un détournement pour un usage particulier.

Je ferai plutôt un objet externe :

  • avec un HTML élémentaire 2 inputs + 1 bouton
  • une methode back liée au bouton dans le code de l’objet externe
  • et un item de menu sur cet objet externe

Ou une Action sur un autre objet existant (qui a à voir avec ce que fait l’action) avec 2 champs de saisie + méthode callback.

Je n’ai pas de record précis à récupérer, je veux juste un formulaire vide avec deux champs que l’utilisateur remplira puis clickera sur un bouton valider/action qui va lancer un code
Est ce qu’il faut toujours aller dans un formulaire de création si je ne veux pas enregistrer les informations ? J’ai juste besoin de ce formulaire à des instants précis, faire l’action, puis les valeurs dans les champs ne sont plus utiles

Dans ce cas c’est clairement un objet externe (une page specifique) qu’il faut implémenter.
Votre approche où vous “détournez” l’usage d’un objet métier n’est pas la bonne.

Il y a un exemple d’objet externe de cet type dans la démo:

Code serveur => https://github.com/simplicitesoftware/module-demo/blob/master/src/com/simplicite/extobjects/Demo/DemoPlaceNewOrder.java
Code client => https://github.com/simplicitesoftware/module-demo/blob/master/resources/ObjectExternal/DemoPlaceNewOrder/SCRIPT.js

Il ne correspond pas exactement à ce que vous voulez faire et son approche est un peu “old school” car il s’agit d’un refactoring d’une page légacy 3.x mais c’est l’idée générale

Un objet externe est lui directement configurable dans le menu, exemple avec l’objet ci-dessus:


Et c’est bien conforme au besoin qui se cachait derrière votre question initiale.

ne pas ignorer cette piste bien plus simple

  • que du paramétrage d’une action avec confirmation
  • le code est à mettre dans la méthode de l’objet
  • mais ce sera accessible au travers de la liste d’un objet (et pas du menu)

Bonjour David, François,
le besoin initial (tel que je l’ai compris, appliquer un traitement simple sur quelques propriétés d’un ou plusieurs objets métier) aurait-il pu être supporté par les concepts processus métier / activités ?

Oui un workflow permet de paramétrer une activité de type “Condition” qui contient des champs libres + coding dans le validate de l’activité, et router vers d’autres activités…

Mais c’est un peu lourd, s’il s’agit de faire une seule activité avec 2 champs.
Un workflow c’est bien s’il y a au moins 2 activités ;-)
Idem pour un objet externe.

Depuis que les Actions ont des attributs, j’ai tendance à toujours passer par là pour les questions “mono-formulaire” avec code.

Les 2 options workflow ou objet externe sont compatibles avec le besoin d’avoir une entrée dans le menu. L’approche par action sur un objet métier non (en tout cas pas directement).

Pour le reste ces 3 concepts permettent de faire des formulaires ad hoc qui déclenchent un traitement.