Les objets externes de type Web Page sont-ils toujours fonctionnels ?
J’ai tenté l’implémentation de base et quand j’essaie d’accéder à mon objet, j’ai la chaîne retournée par le DisyplayBody à l’écran
Un exemple basique qui correspond au cas d’une simple page publique est celui-ci
public class MyExtObject extends com.simplicite.webapp.web.JQueryWebPageExternalObject {
private static final long serialVersionUID = 1L;
@Override
public String displayBody(Parameters params) {
try {
JQueryWebPage wp = getPage();
wp.appendJSInclude(HTMLTool.simpliciteClientJS()); // If using the npm JS client lib
wp.appendJSInclude(HTMLTool.getResourceJSURL(this, "CLASS"));
wp.appendCSSInclude(HTMLTool.getResourceCSSURL(this, "STYLES"));
wp.setReady(getName() + ".render(" + params.toJSONObject().toString() + ")");
return HTMLTool.getResourceHTMLContent(this, "HTML");
} catch (Exception e) {
AppLog.error(null, e, getGrant());
return e.getMessage();
}
}
}
Avec le triptique usuel de resources HTML/JS/CSS, ex: le JS:
class MyExtObject{
static render(params) {
const app = simplicite.session({ endpoint: 'uipublic' }); // instnanciate the npm client lib for the public user
app.info(`Lib version: ${simplicite.constants.MODULE_VERSION}`);
...
}
}```
Pour rappel, pour une UI custom, surtout en zone publique, il est préférable d’utiliser la lib JS cliente disponible sur npm : https://www.npmjs.com/package/simplicite
Celle ci est plus simple à utiliser que les libs JS internes de la UI générique et elle s’intègre dans les frameworks JS usuels : React/Vue/Angular, cf. les exemples sur GitHub
Pour travailler avec le user implicitepublic (comme dans l’exemple ci-dessus) il faut juste bienhabiliter les objets métier qui vont bien au groupe PUBLIC
Merci beaucoup David, comme ça ça fonctionne très bien.
J’avais assisté au Webinaire et regardé le replay plusieurs fois, mais je ne crois pas que les objets Page web y étaient abordés.
Et j’ai l’impression que le tuto que j’ai utilisé dans la doc n’est plus valable en 6.2.