06-16-2017 04:12 AM
Bonjour à tous,
Voila je souhaite exécuter un script chaque soir sur mes nœuds user Alfresco.
je sais que je dois faire un cron , mais je ne comprend pas à quoi correspond chaque balise du fichier XML.
De plus je suis sur une achi maven sdk 3 et je ne sais pas ou placer mon script pour qu'il soit déployée au chemin voulu
voila un bout code que j'ai fait mais il ne fonctionne pas (je sais que value est configuré pour 10 minute) :
<bean id="runScriptResetPassword" class="org.alfresco.repo.action.scheduled.CronScheduledQueryBasedTemplateActionDefinition">
<property name="transactionMode">
<value>UNTIL_FIRST_FAILURE</value>
</property>
<property name="compensatingActionMode">
<value>IGNORE</value>
</property>
<property name="searchService">
<ref bean="SearchService"/>
</property>
<property name="templateService">
<ref bean="TemplateService"/>
</property>
<property name="queryLanguage">
<value>lucene</value>
</property>
<property name="cronExpression">
<value>0 0/10 * * * ?</value>
</property>
<property name="jobName">
<value>resetOldPassword</value>
</property>
<property name="triggerName">
<value>SendMailEveryTenMinutesScheduleTrigger</value>
</property>
<property name='triggerGroup'>
<value>triggerGroup</value>
</property>
<property name="scheduler">
<ref bean="schedulerFactory"/>
</property>
<property name="actionService">
<ref bean="ActionService"/>
</property>
<property name="templateActionModelFactory">
<ref bean="templateActionModelFactory"/>
</property>
<property name="templateActionDefinition">
<ref bean="runScriptResetPassword"/>
</property>
<property name="transactionService">
<ref bean="TransactionService"/>
</property>
<property name="runAsUser">
<value>System</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:resetPassword.js"' )\}</value>
</entry>
</map>
</property>
</bean>
</beans>
06-16-2017 04:25 AM
Bonjour,
A la lecture de votre post j'en déduis que vous suivez cette page : Scheduled Actions
L'extrait XML que vous avez fournit correspond à la définition d'un bean spring se basant sur la classe CronScheduledQueryBasedTemplateActionDefinition
Votre script resetPassword.js doit se trouver dans le dictionnaire de donnée au vue de la configuration du bean :
<value>\$\{selectSingleNode('workspace://SpacesStore', 'lucene', 'PATH:"/app:company_home/app:dictionary/app:scripts/cm:resetPassword.js"' )\}</value>
Il n'est donc pas nécessaire de le mettre dans votre projet maven.
Si vous êtes plus à l'aise avec Java vous pouvez également définir des jobs via ce langage : Scheduled Jobs | Alfresco Documentation
Y.
06-16-2017 05:12 AM
Merci Yann de ta réponse
j'ai un peu avancé et commence a bien comprendre le système de cron dans Alfresco.
je pense avoir bien set mon cron mais j'ai une erreur :
2017-06-16 11:00:20,559 ERROR [quartz.core.JobRunShell] [DefaultScheduler_Worker-2] Job jobGroup_ver.jobA threw an unhandled Exception:
java.lang.ClassCastException: org.alfresco.repo.action.scheduled.SimpleTemplateActionDefinition cannot be cast to org.alfresco.repo.action.executer.ActionExecuter
at org.alfresco.repo.action.scheduled.SimpleTemplateActionDefinition.getAction(SimpleTemplateActionDefinition.java:178)
at org.alfresco.repo.action.scheduled.CronScheduledQueryBasedTemplateActionDefinition.getAction(CronScheduledQueryBasedTemplateActionDefinition.java:282)
at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition$1$1.execute(AbstractScheduledAction.java:477)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:464)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:333)
at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition$1.runTransactionalActions(AbstractScheduledAction.java:465)
at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition$1.doWork(AbstractScheduledAction.java:417)
at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:555)
at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition.execute(AbstractScheduledAction.java:399)
at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:563)
Merci encore !
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.