05-07-2007 11:34 AM
<bean id="sendTestMail" 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="stores">
<list>
<value>workspace://SpacesStore</value>
</list>
</property>
<!– Find all nodes that have the aspect my:expiring and are due tomorrow –>
<property name="queryTemplate">
<value>
+PATH:"/app:company_home/*//*"
+ASPECT:"{http://www.mydomain.org/model/content/1.0}expiring"
@my\:expirationDate:${luceneDateRange(today, "P1D")}
</value>
</property>
<property name="cronExpression">
<value>10 * * * * ?</value>
</property>
<property name="jobName">
<value>mydomainExpirationChecker</value>
</property>
<property name="jobGroup">
<value>mydomainJobGroup</value>
</property>
<property name="triggerName">
<value>mydomainTriggerEC</value>
</property>
<property name="triggerGroup">
<value>mydomainTriggerGroup</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="sendTestMailAction"/>
</property>
<property name="transactionService">
<ref bean="TransactionService"/>
</property>
<property name="runAsUser">
<value>System</value>
</property>
</bean>
<bean id="sendTestMailAction" class="org.alfresco.repo.action.scheduled.SimpleTemplateActionDefinition">
<property name="actionName">
<value>mail</value>
</property>
<property name="parameterTemplates">
<map>
<entry>
<key><value>to</value></key>
<value>lorenz@mydomain.org</value>
</entry>
<entry>
<key><value>from</value></key>
<value>lorenz@mydomain.org</value>
</entry>
<entry>
<key><value>text</value></key>
<value>this is a test</value>
</entry>
<entry>
<key><value>subject</value></key>
<value>test from scheduler</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>
05-08-2007 10:21 AM
I now wonder how I could change the above to send some meaningful messages, i.e. using an email template containing a reference to the content linked to the things the query found.
Another thing I was not able to figure out is how I manage to execute some JavaScript code instead of the above email action.
05-08-2007 11:26 AM
<bean id="javaAction" 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:mydomain-scheduled-action.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>
…
<property name="queryTemplate">
<value>PATH:"/app:company_home"</value>
</property>
<property name="cronExpression">
<value>30 * * * * ?</value>
</property>
<property name="jobName">
<value>mydomainExpirationChecker</value>
</property>
<property name="jobGroup">
<value>mydomainJobGroup</value>
</property>
<property name="triggerName">
<value>mydomainTriggerEC</value>
</property>
<property name="triggerGroup">
<value>mydomainTriggerGroup</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="javaAction"/>
</property>
<property name="transactionService">
<ref bean="TransactionService"/>
</property>
<property name="runAsUser">
<value>System</value>
</property>
</bean>
05-08-2007 12:30 PM
06-17-2007 10:57 AM
06-18-2007 05:31 AM
Just in case somebody is interested. The following SimpleTemplateActionDefinition does the trick on the "action-side":Hi
07-30-2007 08:07 AM
<bean id="moveAction" class="org.alfresco.repo.action.scheduled.SimpleTemplateActionDefinition">
<property name="actionName">
<value>move</value>
</property>
<property name="parameterTemplates">
<map>
<entry>
<key>
<value>destination-folder</value>
</key>
<value>${selectSingleNode('workspace://SpacesStore', 'lucene', 'PATH:"//cm:Folder_x0020_Archive"')</value>
</entry>
<entry>
<key>
<value>assoc-type</value>
</key>
<value>${node.primaryParentAssoc.typeQName}</value>
</entry>
<entry>
<key>
<value>assoc-name</value>
</key>
<value>${node.primaryParentAssoc.QName}</value>
</entry>
<!– <entry>
<key>
<value>deep-copy</value>
</key>
<value>false</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>
<bean id="moveTutorialEveryTenMinutes" 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="stores">
<list>
<value>workspace://SpacesStore</value>
</list>
</property>
<property name="queryTemplate">
<value> @wca\:expirationDate:${luceneDateRange(today,today)}</value>
</property>
<property name="cronExpression">
<value>0 0/1 * * * ?</value>
</property>
<property name="jobName">
<value>jobC</value>
</property>
<property name="jobGroup">
<value>jobGroup</value>
</property>
<property name="triggerName">
<value>triggerC</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="moveAction"/>
</property>
<property name="transactionService">
<ref bean="TransactionService"/>
</property>
<property name="runAsUser">
<value>System</value>
</property>
</bean>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.