Adapter in External object

Adapter in External object
0
Tags: #<Tag:0x00007fed44ebde88>

Bonjour,

J’ai crée un adapter qui doit importer un fichier csv.
Pour l’IHM, je veux faire un objet externe, j’ai suivi la doc https://docs.simplicite.io/documentation/01-core/adapter-code-examples.md

J’ai réussi à implémenter la première partie du paragraphe “Custom page” en utilisant setHTML(String) à l’interieur de la méthode display(Parameter).
Mais je n’arrive pas à implémenter la deuxième partie qui concerne le MyExternalObject.display

Pouvez-vous m’aider sur ce point ?

Merci de préciser la question et surtout votre besoin car display(Parameter) et MyExternalObject.display c’est la même chose.

Votre display doit retourner un contenu, soit de l’HTML, soit un redirect, soit du javascript, soit les 2, soit un byteArray…

Il n’y pas d’intérêt à faire un objet externe pour charger un fichier par adapter, les interfaces d’import CSV ou XML via adapter sont faits pour ça. Il suffit d’habiliter vos utilisateurs à ces objets externes.

il y a déjà un POST récent à ce sujet :

Mon besoin est de faire un adapter spécifiques afin d’importer plusieurs objets métiers via un fichier csv. J’ai donc fait un adapter et pour le tester je fais un objet externe afin d’upload le fichier csv puis appeler l’adapter pour importer les données du fichier.

Avec l’aide de la doc, j’ai réussi à afficher l’html de l’objet externe en faisant :

@Override
	public Object display(Parameters params) {
		try {
int tab = 1;
String form = "uploadform";
String Html = HTMLTool.openSimpleMultipartForm(form, params.getLocation());
		
Html += "<table class=\"workform\" style=\"width: 100%;\">";
Html += "<tr><td class=\"workfieldname\"><div class=\"workfieldname\">" + this.getGrant().T("UPLOAD") + "</div></td>";
Html += "<td class=\"workfield\"><div class=\"workfield\">";
Html += HTMLTool.fileInput(form, "file", 80, tab++) + "&nbsp;";
Html += HTMLTool.submit(form, "ok", this.getGrant().T("OK"), null, "buttonaction", tab++);
Html += "</div></td></tr></table>";
Html += HTMLTool.closeForm(form, "file", "ok");
setHTML(Html);

} catch (Exception e) {
			AppLog.error(getClass(), "display", null, e, getGrant());
			return e.getMessage();
		}
	}

Ce qui correspond à la première fonction du code Rhino de la partie “Custom Page”

Mais je n’arrive pas à faire la deuxième partie du code Rhino en Java qui correspond à la fonction “MyExternalObject.display = function(params)”

C’est une approche “old school” (i.e. pour Simplicité 3.x) ça peut encore marcher en mode compatibilité mais c’est pas un pattern recommandé.

Pour les pages spécifiques 4.0 il faut fonctionner en mode one page responsive, cf. https://docs.simplicite.io/documentation/01-core/externalobject-code-examples.md#responsive