Envoi d'un email de rappel à échéance d'une tache

cancel
Showing results for 
Search instead for 
Did you mean: 
gdepo
Member II

Envoi d'un email de rappel à échéance d'une tache

Bonjour,
Je sollicite votre aide, ne trouvant nul par la solution.
Je souhaite pouvoir envoyer au destinataire d'une tache un email de rappel lorsque celle-ci arrive à échéance.
J'ai commencé à réfléchir au développement d'un script (lancement journalier par exemple) avec l'utilisation des CRON mais sans réel succès.
Avez-vous déjà eu cette problématique ? Comment avez-vous fait?

Merci de vos retours
4 Replies
jayjayecl
Active Member II

Re: Envoi d'un email de rappel à échéance d'une tache

Bonjour, voici 2 pistes parmi d'autres :
- une action CRON (par exemple scheduled action) qui requête une fois par jour les tâches en retard, et envoie les mails correspondants
- un "timer" associé à la tâche en question, qui lance une action d'envoi d'email à son échéance

Voir :
http://wiki.alfresco.com/wiki/Scheduled_Actions

http://wiki.alfresco.com/wiki/WorkflowAdministration#Timers
gdepo
Member II

Re: Envoi d'un email de rappel à échéance d'une tache

Merci de ce retour.

1/J'avais effectivement regardé du coté des scheduled action.
Cependant je n'arrive pas à lancer le script. Je suis parti du .sample

voici mon code :
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>
   
    <!–
    Define the model factory used to generate object models suitable for use with freemarker templates.
    –>
    <bean id="templateActionModelFactory" class="org.alfresco.repo.action.scheduled.FreeMarkerWithLuceneExtensionsModelFactory">
        <property name="serviceRegistry">
            <ref bean="ServiceRegistry"/>
        </property>
    </bean>
<bean id="alfresco_runScriptAction" 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:relanceMail.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>  
<bean id="alfresco_runScript" 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 do not have the aspect –>
        <property name="queryTemplate">
            <value>@cm\:to:${luceneDateRange(today,today)}</value>
        </property>

<!–
<property name="queryTemplate">
<value>@cm\:to:${luceneDateRange(today,today)}</value>
</property>

@cm\:created:${luceneDateRange(yesterday, "-P10Y")}
@cm:to:${luceneDateRange(today,today)}
PATH:"/app:company_home"
–>

        <property name="cronExpression">
            <value>0 0/5 * * * ?</value>
        </property>
        <property name="jobName">
            <value>Relance nursering</value>
        </property>
        <property name="jobGroup">
            <value>jobGroup</value>
        </property>
        <property name="triggerName">
            <value>triggerA</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="alfresco_runScriptAction"/>
        </property>
        <property name="transactionService">
            <ref bean="TransactionService"/>
        </property>
        <property name="runAsUser">
            <value>System</value>
        </property>
    </bean>
</beans>

Ci-dessous mon script js:
// create mail action
var mail = actions.create("mail");
mail.parameters.to = "user@dom.fr";
mail.parameters.subject = "Test envoi mail de relance";
mail.parameters.from = "user@dom.fr";
mail.parameters.template = root.childByNamePath("Company Home/Data Dictionary/Email Templates/notify_user_email.ftl");
mail.parameters.text = "some text, in case template is not found";
// execute action against a document   
mail.execute(doc);


2/Je n'avais pas vu le timer.
Dans ce cas peut-on ajouter le timer au workflow qui créé la tache? comment?

Merci d'avance de vos retours
jayjayecl
Active Member II

Re: Envoi d'un email de rappel à échéance d'une tache

1/
Pas de logs ?
Difficile de dire ce qui ne va pas, adoptez une méthode de tracking du problème :
- si on change la luceneQuery par une requête qui est sûre de renvoyer des résultats, cela fonctionne t'il ?
- si on configures une action js plus simple, cela fonctionne t'il ?
- pourquoi ne pas faire en sorte que votre action js ecrive des logs dans Alfresco, ca vous permettra de vérifier si elle est passée :
http://wiki.alfresco.com/wiki/JavaScript_API_Cookbook#Create_Backup_of_a_Document_And_Log_Doc_Proper...

2/ Je n'ai pas compris votre question, pourriez-vous la reformuler ?
gdepo
Member II

Re: Envoi d'un email de rappel à échéance d'une tache

Bonsoir,

J'effectue les modifications et reviens rapidement

Merci