Documentation

ワークフロー通知テンプレート変数

対象:Liferay CE/DXP 7.3+

一部の変数は、ワークフローの通知コンテキストに自動挿入されます。 これらは、ワークフローの通知テンプレートで使用すると便利です。

通常、Freemarkerでは、変数を明示的に宣言する必要があります。

<#assign variableName = "Variable Name" />

インジェクトされた変数はすでに宣言されており、テンプレート内で直接使用することができます。

${variableName}

これらの変数を使用するには、ワークフローの通知コンテキストで利用可能な変数を知っておく必要があります。 利用できる変数は、ワークフロー定義の詳細やワークフロー内のアセットに応じて変化します。 ここで紹介する方法は、特定のコンテキストに合わせて変数のリストを取得する方法を示していますので、推測で行う必要はありません。

ワークフロー通知テンプレート変数の確認

DEBUGレベルの ロギングTemplentNotificationMessageGenerator クラスで有効にして、ワークフローの通知コンテキストで利用可能な変数を表示します。

  1. コントロールパネル → 構成 → サーバーの管理 に移動します。

  2. [Log Levels]タブをクリックします。

  3. この設定でLog Levelを追加します。

    • ロガー名com.liferay.portal.workflow.kaleo.runtime.internal.notification.TemplateNotificationMessageGenerator

    • ログレベルDEBUG

  4. アセット(Blogs Entryなど)に対して、ワークフロー定義 (唯一の承認者定義など)をアクティブにすることができます。

  5. テストエントリを送信すると、ログメッセージが表示され、ワークフローで使用可能な通知テンプレートの変数が表示されます。

例えば、唯一の承認者のワークフローでは、アセットの初回提出時にこれらの変数が表示されます。

2020-03-30 14:21:42.089 DEBUG [liferay/kaleo_graph_walker-2][TemplateNotificationMessageGenerator:94] saxReaderUtil (class com.sun.proxy.$Proxy447)
2020-03-30 14:21:42.097 DEBUG [liferay/kaleo_graph_walker-2][TemplateNotificationMessageGenerator:94] getterUtil (class com.liferay.portal.kernel.util.GetterUtil_IW)
2020-03-30 14:21:42.098 DEBUG [liferay/kaleo_graph_walker-2][TemplateNotificationMessageGenerator:94] portalPermission (class com.liferay.portal.service.permission.PortalPermissionImpl)
2020-03-30 14:21:42.098 DEBUG [liferay/kaleo_graph_walker-2][TemplateNotificationMessageGenerator:94] entryClassPK (class java.lang.String)
2020-03-30 14:21:42.098 DEBUG [liferay/kaleo_graph_walker-2][TemplateNotificationMessageGenerator:94] layoutPermission (class com.liferay.portal.service.permission.LayoutPermissionImpl)
2020-03-30 14:21:42.098 DEBUG [liferay/kaleo_graph_walker-2][TemplateNotificationMessageGenerator:94] expandoTableLocalService (class com.sun.proxy.$Proxy43)
2020-03-30 14:21:42.098 DEBUG [liferay/kaleo_graph_walker-2][TemplateNotificationMessageGenerator:94] localeUtil (class com.liferay.portal.kernel.util.LocaleUtil)
2020-03-30 14:21:42.099 DEBUG [liferay/kaleo_graph_walker-2][TemplateNotificationMessageGenerator:94] groupId (class java.lang.String)
2020-03-30 14:21:42.099 DEBUG [liferay/kaleo_graph_walker-2][TemplateNotificationMessageGenerator:94] portalUtil (class com.liferay.portal.util.PortalImpl)
...

上の出力のスニペットを見ると、 saxReaderUtil, getterUtil, portalPermission, entryClassPK, layoutPermission, expandoTableLocalService, localeUtil, groupId, portalUtil は、これらのメッセージがログに出力される原因となったコンテキストで利用可能です。

ワークフロー通知テンプレート変数の使用

コンテクストに注入される通知変数は、主に2つのタイプに分類されます。

  1. 変数は、単一の値を提供します。 変数が単一の値を提供する場合、その値を通知に表示するために使用することができます。また、通知メッセージに表示される他の有用な情報を取得する操作のパラメータとして渡すこともできます。

例: 唯一の承認者の定義では、FreeMarkerのテンプレートでこの通知を提供しています。

${userName} sent you a ${entryType} for review in the workflow.

userNameentryType が値を提供しているので、通知は次のように表示されます。

Joe Bloggsさんから、ワークフローで確認するためのブログのエントリが送られてきました。

また、値型変数の内容を確認することもできます。 唯一の承認者の定義には、この通知テンプレートも含まれています。

Your submission was reviewed<#if taskComments?has_content> and the reviewer applied the following ${taskComments}</#if>.

レビュアがタスクコメントを提供した場合は、そのコメントが表示されます。 そうでない場合は、通知の送付先は

あなたの提出物はレビューされました

  1. オペレーション 変数はLiferay DXPのJavaクラスを公開しているので、通知テンプレートでその操作にアクセスすることができます。 これらの変数については、クラスの Javadoc を熟知するか、 ソースコード を見て、その動作を理解する必要があります。

例: このFreeMarkerは、デフォルトのロケールを使用して、特定のパターン(月/日/年、時間:分)で現在の日付を取得します。

${dateUtil.getCurrentDate("MM/dd/yyyy, HH:mm",  localeUtil.getDefault())}`

ワークフロー通知テンプレートの変数について

これらは、Blogsエントリーの唯一の承認者の定義 を有効にして、新しいエントリーを公開用に送信したときに記録される変数です。

Variable Name

Value

Operation

Description or Link

${saxReaderUtil}

SaxReaderUtil

${getterUtil}

GetterUtil

${portalPermission}

PortalPermission

${entryClassPK}

The primary key of the Entry Class

${layoutPermission}

LayoutPermission

${expandoTableLocalService}

ExpandoTableLocalService

${localeUtil}

LocaleUtil

${groupId}

The ID of the group

${portalUtil}

PortalUtil

${validator}

Validator

${dateUtil}

DateUtil

${serviceLocator}

ServiceLocator

${serviceContext}

ServiceContext

${jsonFactoryUtil}

JSONFactoryUtil

${stringUtil}

StringUtil

${freeMarkerPortletPreferences}

TemplatePortletPreferences

${dateFormats}

FastDateFormatFactory

${dateFormatFactory}

DateFormatFactory

${userPortraitURL}

Applies only to Blogs Entries; returns the URL to the User's portrait.

${portal}

Portal

${commonPermission}

CommonPermission

${userURL}

Applies only to Blogs Entries; returns the URL to a logged in User's profile page. See .

${expandoValueLocalService}

ExpandoValueLocalService

${entryType}

The type of entry in the workflow (e.g., Blogs Entry)

${organizationPermission}

OrganizationPermission

${passwordPolicyPermission}

PasswordPolicyPermission

${expandoColumnLocalService}

ExpandoColumnLocalService

${taskComments}

The comments, if any, left by the reviewer

${staticFieldGetter}

StaticFieldGetter

${htmlUtil}

HtmlUtil

${languageUtil}

LanguageUtil

${enumUtil}

Returns the result of beansWrapper.getEnumModels(); for Accessing Enums

${windowStateFactory}

WindowStateFactory

${companyId}

The ID of the portal's Company/Virtual Instance

${unicodeFormatter}

UnicodeFormatter

${propsUtil}

PropsUtil

${browserSniffer}

BrowserSniffer

${portletProviderAction}

Returns the outcome of the PortletProvider#Action call

${taskName}

The name of the task the notification is in

${httpUtil}

HttpUtil

${portletURLFactory}

PortletURLFactory

${imageToken}

An image token from WebServerServletToken.getToken(long imageId) ; is deprecated and will be removed

${groupPermission}

GroupPermission

${timeZoneUtil}

TimeZoneUtil

${unicodeLanguageUtil}

UnicodeLanguageUtil

${expandoRowLocalService}

ExpandoRowLocalService

${auditRouterUtil}

AuditRouterUtil

${kaleoTaskInstanceToken}

See the documentation on workflow scripting

${accountPermission}

AccountPermission

${httpUtilUnsafe}

Like ${httpUtil}, an instance of Http , but can be used to access the local network

${workflowTaskAssignees}

See the documentation on workflow scripting

${random}

A Java utility for generating Random numbers; is deprecated and will be removed in the future

${rolePermission}

RolePermission

${portletPermission}

PortletPermission

${paramUtil}

ParamUtil

${locationPermission}

Returns the outcome of OrganizationPermissionUtil.getOrganizationPermission()

${calendarFactory}

CalendarFactory

${webServerToken}

An image token from WebServerServletToken.getToken(long imageId)

${sessionClicks}

SessionClicks

${userPermission}

UserPermission

${entryClassName}

${userGroupPermission}

UserGroupPermission

${arrayUtil}

ArrayUtil

${userName}

The User Name of the last user to intervene in the workflow

${userId}

The User ID of the last user to intervene in the workflow. See the Workflow Scripting article to understand the logic.

${prefsPropsUtil}

PrefsPropsUtil

${url}

a URL for certain content types that are displayed on a page (e.g., Blogs Entries, Message Boards Messages, and Wiki Pages

${kaleoInstanceToken}

See the Workflow Scripting article.

${utilLocator}

UtilLocator

${objectUtil}

Returns a new LiferayObjectConstructor()

${urlCodec}

URLCodec

${portletModeFactory}

PortletModeFactory

${imageToolUtil}

ImageToolUtil

${auditMessageFactoryUtil}

AuditMessageFactoryUtil

${staticUtil}

Returns the result of beansWrapper.getStaticModels(); for Accessing static methods