08-04-2021 11:01 AM
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
08-10-2021 09:30 AM
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.