AnsweredAssumed Answered

Passaggio parametri a javascript chiamato da WebService

Question asked by chicco0386 on Mar 24, 2011
Latest reply on Mar 24, 2011 by openpj
Ciao a tutti,
allora di seguito vi posto la risposta data da OpenPj ad un mio dubbio, ovvero la possiblitò di passare parametri ad un javascript eseguito da remoto attraverso le WebService API Alfresco.

Purtroppo non è possibile passare parametri di input con il metodo ExecuteScript e quello che trovi utilizzando la classe ActionUtils.executeScript in realtà ti consente di eseguire uno script, ma non è possibile passare dei parametri di input ad una esecuzione di uno script Javascript. Questo perché l'azione definita in Alfresco ha un solo parametro di input che è il node reference del nodo dello script all'interno del repository.

Allora le soluzioni possibili sono 2:

1. Creare una nuova custom action, ed in questo caso sarebbe possibile definire dei parametri di input, ma bisogna sviluppare utilizzando la Foundation API di Alfresco (Java).

2. Utilizzare il medesimo script, ma cambiandolo per poter implementare un WebScript, in questo modo è possibile fornire dei parametri di input per lo script.

Di seguito i passi per ognuna di queste possibilità.

1. Custom Action

Per quanto riguarda il primo caso dovresti:

1. Creare una nuova custom action utilizzando la Java API di Alfresco che abbia n argomenti di input nel seguente modo:

http://wiki.alfresco.com/wiki/Custom_Actions

In questo modo una volta registrata la nuova azione sarà possibile invocarla da Java, JavaScript API e dalle API remote come ad esempio la WS API.

2. Utilizzare l'ActionService da WS API (lato client) per poter richiamare questa action remotamente passandogli anche i parametri di input che sono stati definiti.

WebScript

In questo caso invece potresti implementare un nuovo WebScript utilizzando come model lo script Javascript già definito (DeclarativeWebScript):
http://wiki.alfresco.com/wiki/Web_Scripts

Una volta realizzato il WebScript potresti richiamarlo utilizzando qualsiasi libreria che ti consente di fare chiamate Http, come ad esempio HttpClient.

Spero ti sia utile.

Ciao
Piergiorgio

GRAZIE
Piergiorgio

Outcomes