cancel
Showing results for 
Search instead for 
Did you mean: 

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

gdepo
Champ in-the-making
Champ in-the-making
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 4

jayjayecl
Confirmed Champ
Confirmed Champ
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
Champ in-the-making
Champ in-the-making
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
Confirmed Champ
Confirmed Champ
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
Champ in-the-making
Champ in-the-making
Bonsoir,

J'effectue les modifications et reviens rapidement

Merci
Getting started

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.