2014-09-08 2 views
0

Я использую готовый вариант Alfresco 4.2.f без настроек, и я пытаюсь настроить уведомление по электронной почте о том, добавлен ли новый документ в определенный папка. Итак, я добавил правило в папку, и я установил в качестве действия «Отправить письмо», используя в качестве шаблона «notify_user_email_it.html.ftl». Если я вставить документ, я не получаю электронную почту и здесь ошибка в журнале:Alfresco - Использование шаблона уведомлений по электронной почте не работает должным образом

Expression person is undefined on line 38, column 57 in workspace://SpacesStore/55088e2c-05ac-4264-8396-ee6f3c7021ad.   
    The problematic instruction:   
    ----------   
    ==> ${person.properties.firstName} [on line 38, column 55 in workspace://SpacesStore/55088e2c-05ac-4264-8396-ee6f3c7021ad]   
    ---------- 

Если я удалить из шаблона строки $ {person.properties.firstName}, то правило работы правильно, но почта, которую я получаю, не так ожидаема, вся интересная информация показана как в исходном FTL. Прикрепленное письмо, полученное, чтобы понять лучше.

Действительно странно, поскольку я ничего не настроил, возможно, это ошибка, но я ничего не нашел на JIRA ... У кого-то такое же поведение? Возможные обходы?

Заранее благодарен! enter image description here

ответ

1

В соответствии с этим JIRA, это не ошибка, которая просто не работает для пользователя admin. Вы пробовали это с обычным пользователем?

--- Update ---

Может быть, потому что это ошибка или неосуществленными функция что-то вроде следующего, чтобы исправить это в шаблоне:

<#if person??> 
.... set your person properties first & lastname 
<#else> 
.... is sure to be admin, so set the admin 
</#if> 
+0

Спасибо, я не нашел, что Джира, но это действительно то, о чем я говорил ... Я не понимаю: я создал правило как пользователь, не являющийся администратором, или я должен отправить электронное письмо адрес пользователя, не являющегося администратором? – CaptainAmerica

+0

Правило может быть создано как admin, оно не хранит свойства человека там. Просто отправьте письмо кому угодно, добавьте новый документ только как пользователь, не являющийся администратором. Таким образом, шаблон будет теперь объектом человека. –

+0

Не думаете ли вы, что вы можете проверить выражение в своем коде, а если не определено, установите его в общий «пользователь» или строку? – Teqnology

0

Вы должны передать параметры для шаблонов электронных писем вы можете попробовать с этим примером

var template = "Data Dictionary/Email Templates/Workflow Notification/<<Your File>>.html.ftl"; 
    var mail = actions.create("mail"); 
     mail.parameters.to = "[email protected]"; 
     mail.parameters.subject="Hello"; 
     mail.parameters.text="blablabla"; 
     mail.parameters.template = companyhome.childByNamePath(template); 
     var templateArgs = new Array(); 
     templateArgs['workflowTitle'] = "789789"; 
     templateArgs['workflowDescription'] = "879789"; 
     templateArgs['workflowId'] = "879789"; 

     var templateModel = new Array(); 
     templateModel['args'] = templateArgs; 
     mail.parameters.template_model = templateModel; 
     mail.execute(bpm_package); 

, то вы можете получить параметры, используя $ {args.workflowTitle} в шаблоне Email FTL файла

+0

Я предполагаю, что когда вы отправляете почту, вы не передаете параметр, как указано выше; Так может случиться, что вы получаете ошибки – vikash