Récupérer nom du fichier dans adapter

Bonjour,

Y a-t-il une méthode pour récupérer le nom du fichier importé via un adapter?

  • Quelle version ? import par script, Java ou via IHM ?
  • Quel est le besoin d’avoir le nom du fichier ?

L’adapter n’a pas d’API pour remonter au fichier puisqu’il peut servir à importer des données d’origine différente et pas uniquement un fichier (Webservice /io, fichier, zip, bytes, String …).

C’est pourquoi la supervision des imports possède un champ “origine”.

Dans votre cas, ou pour tout besoin spécifique, il faut passer ce dont vous avez besoin en paramètre de l’adapter : exemple "var1=filename var2=xyz"
Récupérable ensuite par un this.getParameter("var1") dans le code.

En V4, on va ajouter des accesseurs getOrigin et getTrackId dans l’Adapter mais cela ne répondra pas forcement à votre besoin.

Import java sur simplicite 3.0.
Le fichier est uploadé par l’utilisateur via un objet externe.

Le nom du fichier contient 2 dates dont j’ai besoin pour mon import.

Votre besoin est donc d’avoir 2 dates en entrée, le nom de fichier reste un moyen technique de passer 2 paramètres.

Si c’est un “file upload” via un objet externe basé sur un POST HTTP multi-part, vous pouvez déjà récupérer le nom du fichier dans les paramètres passés en variable de votre objet externe.

L’objet externe peut ensuite transmettre ces 2 dates à l’adapter via le hashmap/hashtable.
Car l’import a besoin de 2 dates (traitement back pérenne), pas du nom de fichier (couche IHM qui pourra changer un jour avec 2 champs dates par exemple).

J’ai essayé de passer le nom du fichier en paramètre mais simplicité me renvoie une erreur.

La méthode ‘com.simplicite.util.Integration.importADP(com.simplicite.webapp.GrantWeb,string,java.lang.String,java.lang.String,java.util.HashMap)’ est introuvable (#34)

Le code que j’ai utilisé :

var p = new HashMap();
var file = params.getDocument("file");
p.put("filename", file.path);
var data = new java.lang.String(file.data);
if (Tool.isEmpty(data)) throw new Exception("No data");
var res = Integration().importADP(g, "ImportCoutReal", data, file.path, p);

La javadoc 3.0 doit indiquer Hashtable et non HashMap.

En 3.0 Simplicité utilisait encore des Hashtable et des Vector (héritage de vieux JDK supporté).
A partir de la 3.2, ce sont des interfaces Map et List partout.