Erreur sur la fonction search() de BusinessObjectTool

Bonjour,

Je souhaite faire une mise à jour d’un objet métier “DF_Livraison” depuis un webhook (objet externe). Voici le code:

	private void updateCard(JSONObject card) {
		try {
			AppLog.info(getClass(), "updateCard", card.toString(2), getGrant());
			String o = "DF_Livraison";
			ObjectDB obj = Grant.getSystemAdmin().getObject("webhook_" + o, o);
			BusinessObjectTool objt = new BusinessObjectTool(obj);
			obj.resetFilters();
			obj.getField("df_livraison_id").setFilter(card.getString("id"));
			List<String[]> rows = objt.search();
			/*if (rows.size() == 1) {
				obj.setValues(rows.get(0), true);
				if (card.has("name"))
					obj.setFieldValue("trelloCardExName", card.getString("name"));
				if (card.has("desc"))
					obj.setFieldValue("trelloCardExDescription", card.getString("desc"));
				objt.validateAndSave();
			}*/
		} catch (Exception e) {
			AppLog.error(getClass(), "updateCard", null, e, getGrant());
		}
	}

Voici l’erreur

    com.simplicite.util.exceptions.SearchException: Search error on object DF_Livraison
     at com.simplicite.util.tools.BusinessObjectTool.search(BusinessObjectTool.java:223)
     at com.simplicite.extobjects.DeFilippis.WebhookLivraisonTrello.updateCard(WebhookLivraisonTrello.java:45)
     at com.simplicite.extobjects.DeFilippis.WebhookLivraisonTrello.post(WebhookLivraisonTrello.java:72)
     at com.simplicite.webapp.services.RESTServiceExternalObject.display(RESTServiceExternalObject.java:397)
     at com.simplicite.webapp.servlets.AbstractExternalObjectServlet.service(AbstractExternalObjectServlet.java:120)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
     at com.simplicite.webapp.filters.RewriteFilter.doFilter(RewriteFilter.java:83)
     at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:37)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
     at com.simplicite.tomcat.valves.APISessionValve.invoke(APISessionValve.java:187)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
     at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
     at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367)
     at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
     at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1598)
     at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
     at java.base/java.lang.Thread.run(Thread.java:830)
2020-01-20 14:37:22,867 INFO [com.simplicite.util.engine.ObjectManager] SIMPLICITE|http://demo.simplicite.io:16778||ERR_GRANT|system|com.simplicite.util.engine.ObjectManager|search||

Je me demande si l’erreur vient du manque de droit de l’objet externe sur mon objet métier DF_Livraison?

Avez vous une idée?

Ecrire cela:

String o = "DF_Livraison";
Grant.getSystemAdmin().getObject("webhook_" + o, o);

suppose que le user système (Grant.getSystemAdmin()) a des droits appropriés sur l’objet DF_Livraison.

Pour donner des droits au user système il faut ajouter le groupe de droit qui contient les droits en question au profil du groupe ADMIN.

Cf. le module d’exemple le groupe TRELLO_USER a les droits en CRUD sur l’objet TrelloCardExample :


Et ce groupe fait partie des profiles du groupe ADMIN:

Super, c’est ce qu’il me manque. Merci