Problème de transition d'états et de sélection de références

Request description

Bonjour,

Depuis la mise à jour 5.2, nous avons remarqué plusieurs problèmes majeur :

  • Les transitions d’état ne s’effectuent plus
  • Les clefs techniques sont apparus dans les listes
  • Nous n’arrivons plus à sélectionner un utilisateur (il n’y a pas la loupe). Je précise que nous sommes sur le compte Designer

Je suis sûr que le problème 1 est lié à la MAJ. Pour les problèmes 2 et 3, pas sûr, mais j’ai un doute quand même.

Problème 2 et 3 :
ID technique :


Nom et prénom (champs ramenés grâce à la clef technique) :

MCD :

Technical information

Instance /health
[Platform]
Status=OK
Version=5.2.2
BuiltOn=2022-04-29 15:38
Git=5.2/a2c69b2ee78658770a248e617730e607252990ca
Encoding=UTF-8
EndpointIP=10.201.58.85
EndpointURL=http://siparex-simplicite-dev-777bcd4cfc-dqxdr:8080
TimeZone=Europe/Paris
SystemDate=2022-05-02 16:15:27
Simplicité logs
NA

je confirme le pb de Transition d’état.
Action avec transition d’état - Defect - Simplicité Software Community Forum (simplicite.io)

1 Like

Je viens de faire plusieurs tests, et si le usr_login est dans le formulaire. Les problèmes 2 et 3 disparaissent.
Dans les précédentes versions, il n’y avait pas besoin de mettre le usr_login dans le formulaire. Il fallait juste en faire un attribut d'objet de l’objet métier sinon on avait des warnings.

Maintenant, il faut en plus le mettre dans le formulaire (en non-visible pour garder le même effet car je ne veut pas de ce champs). Intéressant à savoir. :slight_smile:

Oui, je suis dans le même cas que vous.

Je souhaite que mon statut reste en lecture seul. Mais dans cette configuration depuis la MAJ les transitions d’états ne s’effectuent plus.

Bonjour, il s’agit effectivement d’une régression. Ca sera corrigé à la prochaine révision, désolé pour le dérangement.

tu as une date pour la correction ?

Bonjour,

C’est assez ambigu comme correctif.

Si le statut n’était pas modifiable côté front/UI mais quand même modifiable côté back/DB, c’est plutôt la version précédente qui avait un bug. En V4, on pouvait effectivement avoir un statut en lecture seule mais modifiable via le bouton de transition, ce qui représente en fait une faille de sécurité côté serveur.

Dans nos cas de test, le statut est modifiable (via le champ ou via les boutons) : ce sont les statuts suivants qui sont présents ou pas dans la liste. Le champ n’a pas à être en lecture.

Mais effectivement il faut faire quelque chose.

  1. soit on retire les transitions si le statut n’est pas modifiable, ce qui serait à mon sens le correctif.
  2. soit pour reconduire ce fonctionnement historique, on va devoir gérer ce cas particulier de mise à jour du statut en donnant une priorité à la transition sur le caractère modifiable du champ (donc sans retirer les contrôles sur les champs non-modifiables).

On va livrer le 2) au plus vite pour compatibilité ascendante d’un truc louche, en se rappelant bien que le 1) ne devra donc pas être considéré comme un bug (pouvoir faire une transition d’un champ non modifiable).

@rosanneQuily @Elcoco

1 Like

Le statut sera ré-envoyé au serveur pour mise à jour même s’il est en lecture seule en v5.2.3.

1 Like

merci @Francois car bcp d’impacts chez nous sans ce correctifs.

1 Like

Effectivement, tous nos modules de notre coté fonctionnent avec la méthode 2). J’attends donc la version 5.2.3. Merci beaucoup :slight_smile: .

@Francois Petite question : Si il est important pour vous d’avoir la méthode 1), pourquoi ne pas mettre un paramètre uniquement disponible pour les statuts qui nous permettrait de choisir entre la méthode 1) et 2), avec par défaut la méthode 1) ?
Exemple :

  • Lecture seule (avec transition d’état)
  • Lecture seule (totale)

J’émets juste l’idée au cas où.

Ce qui plaide pour le fonctionnement historique 2) c’est de pouvoir contraindre l’utilisateur à passer par une action de transition avec des champs à renseigner (pour compléter le changement d’état avec des données pas forcement liées à l’objet métier, comme un email, un commentaire, une PJ dans un autre objet métier…).

Si on lui autorise de modifier le champ “statut” directement depuis le formulaire, il n’aura pas a saisir ces champs “complémentaires” dans le processus global.

On avait oublié ce cas en renforçant la sécurité des appels des champs read-only dans cette version.
Le correctif est prêt et n’a plus qu’à être livré en v5.2.3.

En attendant, le contournement est de rendre le statut modifiable.

Problème 2 et 3 : ça ne me dit rien, les ID ne sont jamais affichés, il y a un problème de typage de vos champs.

1 Like

J’ai juste rajouté le usr_login dans le formulaire en non-visible (pour pas que le champ apparaisse) et les 2 problèmes ont été fixé.

On en revient à un pb de paramétrage sur vos champs clés fonctionnelles manquant dans vos objets.
Il faut vérifier que lorsque vous avez une référence vers un autre objet, que les champs clés soient bien ramenés :

  • pour lever toute ambiguïté via le ref picker + save avec une clé partielle vers un seul row ID (votre autre post, la back force la FK à null si ça ne matche pas)
  • idem pour les exports XML ou JSON qui n’ont que la clé fonctionnelle pour retrouver l’ID lié à l’import. dans une base cible, ici sans usr_login, impossible de savoir de qui on parle.

Après analyse, de nombreux vieux paramétrages ont des clés étrangères incomplètes fonctionnellement (par exemple ne ramène que le nom, mais pas la clé complète nom/prenom/date naissance, car trop pensé pour un écran donné et non pas pour une API déterministe).

En 5.1 la UI était “compréhensive” et permettait d’avoir des clés techniques partiellement identifiées par quelques champs clés fonctionnelles ou des row_id. (si la clé est totallement absente, on ne peut rien faire comme ici sans usr_login)

Mais cela posait déjà des problèmes sur les autres interfaces d’import XML ou mise à jour par API (sans aucun row_id ou fk techniques car variables d’une base à l’autre). Une clé pas ou partiellement fournie ne permet pas de retrouver le row_id de l’objet (lié ou principal) de façon sûre et unique pour mise à jour.

La 5.2 ayant renforcé ce point, l’audit permet désormais de le signaler au niveau de la définition de l’objet. Mais comme peu de designers ont été sensibilisés à cela, on va ajouter à la prochaine livraison 5.2.3 un traitement qui ajoutera temporairement les champs manquants (en mémoire) avec des warnings dans les logs.

Cela reste un contournement à un défaut de paramétrage des objets déjà présent en 5.1 ou avant.
Une fois l’objet corrigé le warning disparaitra.

1 Like