2016-02-26 2 views
0

Я создал рабочий процесс согласования контента в liferay 6.2. Я хочу показать имя пользователя и другие значения переменных, которые используются в теге шаблона в теме письма.Как получить доступ к значению Liferay Variable в контексте Workflow

Я добавил описание тега, чтобы показать тему электронной почты, но когда я пытаюсь использовать переменную в этом, она показывает переменную как строку вместо ее значения.

Ниже мой шаблон

<actions> 
     <notification> 
      <name>Review Notification</name> 
      <description><![CDATA[${userName}]]> test sent you a <![CDATA[${entryType}]]> for review in the workflow.</description> 
      <template>${userName} sent you a ${entryType} for review in the workflow.</template> 
      <template-language>freemarker</template-language> 
      <notification-type>email</notification-type> 
      <notification-type>user-notification</notification-type> 
      <execution-type>onAssignment</execution-type> 
     </notification> 
     <notification> 
      <name>Review Completion Notification</name> 
      <description>Your submission has been reviewed and the reviewer has applied the following ${taskComments}.</description> 
      <template>Your submission has been reviewed and the reviewer has applied the following ${taskComments}.</template> 
      <template-language>freemarker</template-language> 
      <notification-type>email</notification-type> 
      <recipients> 
       <user/> 
      </recipients> 
      <execution-type>onExit</execution-type> 
     </notification> 
    </actions> 

В описании тега я использовал переменные $ {имя пользователя} и $ {EntryType}, но вместо того, чтобы показать

«Тест послал вам веб-контент Статью для рассмотрения в рабочий процесс «.

он показывает: "$ {имя_пользователя} отправил вам $ {entryType} для просмотра в рабочем процессе."

Но в теле письма он отображается хорошо. Любая справка

ответ

1

К сожалению, вы не можете передавать какие-либо переменные в этот раздел, предполагая, что вы не производите никаких изменений в исходном источнике Liferay.

String notificationMessage = notificationMessageGenerator.generateMessage(kaleoNotification.getKaleoClassName(), kaleoNotification.getKaleoClassPK(), kaleoNotification.getName(), kaleoNotification.getTemplateLanguage(), kaleoNotification.getTemplate(), executionContext); 
String notificationSubject = kaleoNotification.getDescription(); 

Указанные выше строки несут ответственность за создание сообщений. Поскольку вы можете видеть, что messageMessage создается с использованием executeContext и некоторых других параметров, которые хранят переменные контекста и в конце заменяют ваши токены переменными действительными значениями. Описание просто прост. Строка передается вперёд, поэтому в этом случае такая замена не выполняется.

Смежные вопросы