Attribut d'action pour type Document

Est-ce que les attributs de type Document sont pris en compte dans les attributs d’action ?
Je souhaite faire un ajout en masse de document suite à une sélection en liste.

Simplicité version 4.0
patch level P25
Built on2021-08-31 22:38

Bonjour,

Non implémenté en V4 qui ne supporte que des paramètres clé/valeur via une Map<String,String> passée en paramètre de la méthode de l’action.

En V5, par contre la méthode peut également prendre en paramètre l’action qui possède des accesseurs aux attributs action.getConfirmField

Voir la documentation des actions :

https://docs.simplicite.io/documentation/01-core/custom-actions-examples.md

public String myAction(Action action) {
    String lang = getGrant().getLang();
    // String field (text, date...)
    String param = action.getConfirmField(lang, "myStringField").getValue();
    // Document field
    ObjectField myDocField = action.getConfirmField(lang, "myDocField");
    DocumentDB doc = myDocField!=null ? myDocField.getDocument() : null;
    AppLog.info(getClass(), "myAction", "DOCUMENT " + doc, getGrant());
    if (doc!=null) {
        // Uploaded tmp file from UI
        java.io.File file = doc.getUploadFile();
        AppLog.info(getClass(), "myAction", "DOCUMENT FILE " + file, getGrant());
        // do something with the document...
        // You must remove the file from /tmp directory when used
        file.delete();
    }
    // ...
}

Attention, le document en paramètre n’est pas en mémoire, c’est un fichier temporaire sur le serveur, donc à détruire quand l’action l’a consommé et via InputStream pour éviter de le charger en mémoire.

Merci Francois pour ce retour, je ne peux donc pas le faire en 4.0

Autre question :
Est il possible de filtrer l’input d’un processus métier sur une sélection en liste ? : Idée : mettre en oeuvre un processus métier pour permettre l’ajout en masse du document.

  • La fonction standard de mise à jour en masse d’une liste peut mettre à jour un document sur une liste filtrée = pas besoin de créer un screenflow qui fait la même chose
  • Sinon comme on faisait avant d’avoir les actions avec Attributs, on développait un objet externe avec un HTML form / input file + call ajax pour faire une action custom en back.

Mais bon c’est aller à contre courant, autant utiliser cette charge de travail pour passer en V5.

Merci pour ces retours.
Les migrations en V5 sont prévues en T4 2021 et puis en 2022.
Sujet clos.

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