Objet service contenant un champ d'objet associé à un modèle d'état -> erreur relation service does not exists / searchGroupBy

Request description

Erreur dans la log système suite à l’affichage de la liste d’un objet service (basé sur une API REST). Cet objet contient notamment un champ associé à un modèle d’état. Dans la configuration, pas de groupBy, pas de menu bannette, pas d’état visible dans le menu, pas de tableau de bord.

J’ai l’impression que l’objet service ne tient pas compte de cette configuration car les états sont visibles dans le menu et l’erreur suivante est générée dans la log système :

2026-02-09 11:00:38,929|SIMPLICITE|ERROR||http://bca-71077-cron-86ddd46c5d-bmnhg:8080||ECOREDB001|system|com.simplicite.util.engine.ObjectManager|query||Error SQL query: jdbc/simplicite: select * from (select null as c0, null as c1, null as c2, t.legal_text_statut as c3, null as c4, null as c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, count(*) as count from service t group by t.legal_text_statut) t0 order by t0.c3 asc
    org.postgresql.util.PSQLException: ERROR: relation "service" does not exist
     Position: 207
     at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2734)
     at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2421)
     at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372)
     at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:518)
     at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:435)
     at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:196)
     at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:139)
     at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:123)
     at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:123)
     at com.simplicite.util.engine.DBAccess.query(DBAccess.java:683)
     at com.simplicite.util.engine.DBAccess.query(DBAccess.java:520)
     at com.simplicite.util.engine.ObjectManager.searchGroupBy(ObjectManager.java:762)
     at com.simplicite.util.engine.ObjectDirect.searchGroupBy(ObjectDirect.java:339)
     at com.simplicite.util.ObjectDB.searchGroupBy(ObjectDB.java:1051)
     at com.simplicite.util.tools.JSONTool.list(JSONTool.java:3429)
     at com.simplicite.webapp.tools.JSONServletTool.search(JSONServletTool.java:787)
     at com.simplicite.webapp.ObjectJson.search(ObjectJson.java:410)
     at com.simplicite.webapp.tools.JSONServletTool.businessObjectService(JSONServletTool.java:567)
     at com.simplicite.webapp.servlets.AbstractJSONServlet.process(AbstractJSONServlet.java:155)
     at com.simplicite.webapp.servlets.AbstractJSONServlet.service(AbstractJSONServlet.java:129)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)

Technical information

Instance /health
---paste the content of your-instance.com/health---
Simplicité logs
---paste the content of the **relevant** server-side logs---
Browser logs
---paste content of the **relevant** browser-side logs---
Other relevant information

----E.g. type of deployment, browser vendor and version, etc.----

Bonjour

Sur quelle(s) version(s)/révision(s) de la v6 ce pb a-t-il été constaté ?

Bonjour David,

merci beaucoup pour ta réactivité.

Il s’agit d’une 6.2.15, l’upgrade en 6.2.22 est en cours (pas d’upgrade prévu à court terme sur la 6.3 mais c’est dans les tuyaux).

OK, pourras tu nous confirmer si le pb est toujours présent suite à la mise à jour en 6.2 (il y a ~350 commits d’écart entre 6.2.15 et 6.2.22) ?

Merci

Je confirme la reproduction sur une 6.2.22 :

2026-02-09 12:33:07,591|SIMPLICITE|ERROR||http://bca-71077-cron-586898b664-fhkqx:8080||ECOREDB001|system|com.simplicite.util.engine.ObjectManager|query||Error SQL query: jdbc/simplicite: select * from (select null as c0, null as c1, null as c2, t.legal_text_statut as c3, null as c4, null as c5, null as c6, null as c7, null as c8, null as c9, null as c10, null as c11, count(*) as count from service t group by t.legal_text_statut) t0 order by t0.c3 asc
    org.postgresql.util.PSQLException: ERROR: relation "service" does not exist
     Position: 207
     at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2846)
     at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2531)
     at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:429)
     at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:526)
     at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:436)
     at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:196)
     at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:139)
     at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:123)
     at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:123)
     at com.simplicite.util.engine.DBAccess.query(DBAccess.java:683)
     at com.simplicite.util.engine.DBAccess.query(DBAccess.java:520)
     at com.simplicite.util.engine.ObjectManager.searchGroupBy(ObjectManager.java:762)
     at com.simplicite.util.engine.ObjectDirect.searchGroupBy(ObjectDirect.java:339)
     at com.simplicite.util.ObjectDB.searchGroupBy(ObjectDB.java:1057)
     at com.simplicite.util.tools.JSONTool.list(JSONTool.java:3433)
     at com.simplicite.webapp.tools.JSONServletTool.search(JSONServletTool.java:785)
     at com.simplicite.webapp.ObjectJson.search(ObjectJson.java:410)
     at com.simplicite.webapp.tools.JSONServletTool.businessObjectService(JSONServletTool.java:565)
     at com.simplicite.webapp.servlets.AbstractJSONServlet.process(AbstractJSONServlet.java:155)
     at com.simplicite.webapp.servlets.AbstractJSONServlet.service(AbstractJSONServlet.java:129)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:197)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)

OK merci !
On regarde ça et on te tient au courant

1 Like

Il n’y a pas d’attribut paramétrable pour dire d’avoir ou non un sous menu des états pour un objet ayant un diagramme d’états :

  • l’attribut booléen Menu banettes ne joue que sur la présence ou pas de la bannette dans le sous menu
  • l’attribut enum multiuple Vue des états du menu/List de tableaux de bord ne joue que sur les capacités de dashboarding associées à l’objet avec diagramme d’état, notamment la présence du dashdoard du sous menu (cf. l’aide de l’attribut)

Il faut donc le dire via code au niveau du postLoad, ex:

@Override
public void postLoad() {
    setMenuStates(false);
}

@Francois que penses tu d’ajouter la possibilité d’inhiber le sous menu des états au niveau du paramétrage de l’objet ? (à moins que ça ne soit déjà possible autrement…)

En tout cas, dans le cas d’un objet service, utiliser setMenuStates(false) fait bien disparaitre les erreurs SQL indiquées.

On va tout de même essayer de rendre les choses plus malignes pour éviter de générer des requêtes SQL inappropriées

1 Like

La solution proposée basée sur le postLoad (setMenuStates(false)) fonctionne parfaitement.

Si cela est repris par le socle (par configuration ou inclus dans le fonctionnement interne), nous pourrons le retirer.

Merci beaucoup.

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

On me rappelle que l’accès via le sous menu se paramètre au niveau de chacun des statuts:

Et que si aucun statut du diagramme n’est en “Direct access” il n’y a pas le sous menu.