getSelectedIds ne fonctionne plus dans un print template quand Simplicité ouvre une autre fenêtre

depuis la version 5.3, le getSelectedIds() pour générer des exports ne fonctionne plus.

on coche les éléments de la liste qu’on veut extraire et le getSeletedIds() est vide

image

Pb urgent car toutes nos applications en prod en V5 sont impactées

image

Bonjour Rosanne,

Les ids sélectionnés sont surement sur une autre instance.

Que contient this.getSelectedIds() directement ?

c’est vide.
je suis sur une vue, je passe par l’instance name suite à un post repondu par nathalie

Ok merci,
Je reproduis avec la démo sur l’export des contacts, qui exporte tout et pas la sélection.
On corrige rapidement.

merci … ça sonne de partout à la région :frowning:

Ok, j’ai trouvé d’où ça vient.

En 5.3, on a isolé les objets par tab du navigateur / pour pouvoir ouvrir 2 onglets dans une même session et travailler sur des objets distincts. On avait trop de support nous remontant des bugs inter-onglets… car pour tomcat c’est le même JSESSIONID et donc en back c’était les mêmes objets.
Simplicité passe par un _tabId dans le session storage du navigateur.

Le cas du print dans Excel est une URL dans un _target=blank donc un tab à part qui n’utilise pas l’objet de l’autre onglet. Le fix va devoir passer le _tabid en paramètre dans ce cas.

Pour contourner en attendant de livrer un correctif, il faut chercher l’instance de l’autre tab :

initList

// keep in mind the current tab of list
String tabId = getGrant().getClientTabId();
getGrant().setParameter("fix_excel_tabid", tabId);

method print

String tabId = getGrant().getParameter("fix_excel_tabid");
getGrant().setClientTabId(tabId); // other tab context
ObjectDB opener = getGrant().getObject(getInstanceName(), getName());
List<String> ids = opener.getSelectedIds();

ok, je modifie mes script et je teste ça.

ok, ça fonctionne.
je vais repasser sur mes autres scripts …

Ok désolé, c’est un cas de test qu’on n’a pas.
on avait bien vu et corrigé le problème sur les exports standard mais le print template est passé sous les radars.

Ce sera poussé dans la 5.3.3 asap

j’ai corrigé ce qui était urgent.

on a aussi ce message partout :
om.simplicite.webapp.servlets.ui.ExternalObjectServlet|service||Evénement: External object events not granted

Il doit y avoir une URL inconnue qui est appelée, si Simplicité ne connait pas l’URL il essaye de résoudre un objet externe.

Ici c’est une URL en /events donc relative aux websockets (wss://) qui ne doit pas être autorisé quelque part ou rewrité en https…

Est ce que les websockets sont ouvertes ?

je n’en ai aucune idée !
ou est ce que je peux voir ça ?

c’est un autre sujet :wink:

see docs Websocket

Pour les activer sur tomcat c’est au niveau des JVM arguments
server.websocket=true|false

Pour remonter des logs serveur dans la console du navigateur, c’est via un param system :
USE_WEBSOCKET_LOGS=yes/no

A mon avis c’est à true mais l’infra les rewrite en https. Regarde les appels WS depuis Network dans ton navigateur.
On va ajouter un test si c’est un /events qui arrive au mauvais endroit, pour pas le traiter comme un objet externe.

c’est ça

effectivement, c’est un autre sujet. j’aurais du ouvrir un sujet global sur la 5.3 :wink:

Problème de tuyauterie TCP. Mais ça n’a rien à voir avec la 5.3 à mon avis.

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.