Créer une Custom action qui invoque l'action standard "copy"

Bonjour,
je souhaiterai créer une “custom action” basée sur la fonction “copy” mais qui spécialise le comportement. Pour ce faire j’ai créé une action :que j’ai liée dans l’ui :
image
j’ai créé une méthode qui positionne un paramètre de session exploitée dans la méthode initCopy pour différentier les comportements lors d’une copie.
Enfin dans la custom action j’essai d’“invoker” l’action “copy” de la platefome. Cette approche ne semble pas fonctionner…, je vous partage le code :

public String newMinorRelease() {
	getGrant().setParameter("TYPE_OF_RELEASE", "Minor");
	ObjectDB obj = getGrant().getTmpObject("AS0ArchitectureStudy");
	obj.select(getRowId());

	try {
		 AppLog.warning("newMinorRelease:try ", null, getGrant());
		 String res = obj.invokeAction("copy");
                    return res;
        } 
     catch(Exception e) {
           return "Something went wrong";
        } 
     finally {
        
     }

}

Merci pour votre aide
Frédéric

Bonjour, la nuit ayant porté conseil, nous avons pu dépasser cette difficulté en jouant sur le retour de l’action newMinorRelease : return this.javascript("$('#list_AS0ArchitectureStudy_the_ajax_AS0ArchitectureStudy li[data-action=\"copy\"][data-rowid=\""+getRowId()+"\"]').click();");

Cela fonctionne comme souhaité pour les use cases UI…

Nous souhaitons désormais porter ce comportement dans une action appelable via la API mappées.
→ Nous avons déjà implémenté un mécanisme permettant d’invoquer les actions concernées par ce canal mais il nous manque un bout réaliser la copie elle-même : existe-t-il une API Java Simplicité permettant de réaliser cela ?

Une action exposée via les APIs REST est nécessairement une action “serveur” (implémentée en Java)

Pour réaliser une copie il faut faire quelquechose du genre:

try {
  obj.getTool().getForCopy(myRowId);
  (...)
  obj.getTool().validateAndSave();
} catch (Exception e) {
  (...)
}
1 Like

Super merci bcp pour ton retour rapide.
Si la nuit porte conseil, elle était aussi trop courte :sweat_smile:

Bonjour,
merci beaucoup, cela fonctionne !
Frédéric