Bonjour,
je tente de mettre en place une action dans Share :
J'ai donc déclaré dans share-config-custom :
<config evaluator="string-compare" condition="DocLibActions"> <actions> <action id="run-wkfactes" icon="document-assign-workflow" type="javascript" label="Lancer le process"> <param name="function">onActionSimpleRepoAction</param> <param name="action">run-wkfactes-action</param> <param name="successMessage">Lancement process Ok</param> <param name="failureMessage">Lancement process Erreur</param> <evaluator>selestat.evaluator.custom.isWebdelibExport</evaluator> </action> </actions> <actionGroups> <actionGroup id="folder-browse"> <action index="260" id="run-wkfactes" /> </actionGroup> </actionGroups> </config>
Puis :
<bean id="selestat.evaluator.custom.isWebdelibExport" parent="evaluator.doclib.metadata.hasAspect"> <property name="aspects"> <list> <value>export:webdelib</value> </list> </property> </bean>
Et enfin :
<bean id="run-wkfactes-action" parent="script"> <property name="scriptLocation"> <bean class="org.alfresco.repo.jscript.ClasspathScriptLocation"> <constructor-arg> <value>/Espace racine/Dictionnaire de données/Scripts/wkf_actes.js</value> </constructor-arg> </bean> </property> </bean>
L'action "Lancer le process" apparait bien dans Share mais mon problème c'est que je ne veut pas que le .js soit stocké sur le FS alfresco mais dans le Doclib.
En effet, ce js est stocké dans /Entrepot/Dictionnaire de données/Scripts/. C'est d'ailleurs un script qui est executé via cron (scheduled-jobs). Il d'ailleurs déclaré ainsi dans scheduled-jobs-context :
<bean id="runScriptAction2" class="org.alfresco.repo.action.scheduled.SimpleTemplateActionDefinition"> <property name="actionName"> <value>script</value> </property> <property name="parameterTemplates"> <map> <entry> <key> <value>script-ref</value> </key> <value>\$\{selectSingleNode('workspace://SpacesStore', 'lucene', 'PATH:"/app:company_home/app:dictionary/app:scripts/cm:wkf_actes.js"' )\}</value> </entry> </map> </property> <property name="templateActionModelFactory"> <ref bean="templateActionModelFactory"/> </property> <property name="dictionaryService"> <ref bean="DictionaryService"/> </property> <property name="actionService"> <ref bean="ActionService"/> </property> <property name="templateService"> <ref bean="TemplateService"/> </property> </bean>
Pour revenir au bean qui permet de déclarer le script JS de l'action, je ne connais que :
org.alfresco.repo.jscript.ClasspathScriptLocation
Cela ne permet que d'indiquer un script stocké dans un répertoire du FS.
Je ne sais pas si il est possible d'appeler un script stocké dans le doclib ? A l'instar de ce qu'il est possible de déclarer pour le Scheduled job.
Je voudrais à tout prix éviter de stocké ce script à deux endroits. Pour des questions maintenance et de dev, ce serait très pénible.
Merci
Cordialement
Discussions about Alfresco Content Services and Alfresco Process Services in French
Related:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.