Developer Guide
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

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

Liferay DXP 7.3+

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

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

<#assign variableName = "Variable Name" />

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

${variableName}

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

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

ワークフロー通知コンテキストで使用可能な変数を表示するには、 TemplateNotificationMessageGenerator クラスの DEBUG レベル ログ記録 を有効にします。

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

  2. [ログレベル]タブをクリックします。

  3. この設定でログレベルを追加します。

    • ロガー名: com.liferay.portal.workflow.kaleo.runtime.internal.notification.TemplateNotificationMessageGenerator
    • ログレベル: デバッグ
  4. アセット(例:ブログエントリ)のワークフロー定義 (例:単一承認者定義)をアクティブ化します。

  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.
    

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

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

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

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

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

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

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

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

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

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

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

変数名値操作説明またはリンク
${saxReaderUtil} ✔SaxReaderUtil
${getterUtil} ✔GetterUtil
${portalPermission} ✔ポータルパーミッション
${entryClassPK}✔ エントリークラスのプライマリーキー
${layoutPermission} ✔レイアウトパーミッション
${expandoTableLocalService} ✔ExpandoTableLocalService
${localeUtil} ✔LocaleUtil
${groupId}✔ グループのID
${portalUtil} ✔PortalUtil
${validator} ✔Validator
${dateUtil} ✔DateUtil
${serviceLocator} ✔ServiceLocator
${serviceContext} ✔ServiceContext
${jsonFactoryUtil} ✔JSONFactoryUtil
${stringUtil} ✔StringUtil
${freeMarkerPortletPreferences} ✔TemplatePortletPreferences
${dateFormats} ✔FastDateFormatFactory
${dateFormatFactory} ✔DateFormatFactory
${userPortraitURL}✔ ブログのエントリーにのみ適用され、ユーザーのポートレートのURLを返します。
${portal} ✔Portal
${commonPermission} ✔CommonPermission
${userURL}✔ ブログエントリーにのみ適用され、ログインしたユーザーのプロフィールページのURLを返します。 UserImpl#getDisplayURLを参照してください。
${expandoValueLocalService} ✔ExpandoValueLocalService
${entryType}✔ ワークフローのエントリのタイプ(例:Blogs Entry)
${organizationPermission} ✔OrganizationPermission
${passwordPolicyPermission} ✔PasswordPolicyPermission
${expandoColumnLocalService} ✔ExpandoColumnLocalService
${taskComments}✔ レビュアが残したコメント(ある場合)。
${staticFieldGetter} ✔StaticFieldGetter
${htmlUtil} ✔HtmlUtil
${languageUtil} ✔LanguageUtil
${enumUtil} ✔beansWrapper.getEnumModels()の結果を返します。 Enum へのアクセス
${windowStateFactory} ✔WindowStateFactory
${companyId}✔ ポータルのCompany/Virtual InstanceのIDです。
${unicodeFormatter} ✔UnicodeFormatter
${propsUtil} ✔PropsUtil
${browserSniffer} ✔BrowserSniffer
${portletProviderAction}✔ PortletProvider#Action 呼び出しの結果を返します
${taskName}✔ 通知が入っているタスクの名前
${httpUtil} ✔HttpUtil
${portletURLFactory} ✔PortletURLFactory
${imageToken}✔ WebServerServletToken.getToken(long imageId)からの画像トークンは非推奨であり、削除されます。
${groupPermission} ✔GroupPermission
${timeZoneUtil} ✔TimeZoneUtil
${unicodeLanguageUtil} ✔UnicodeLanguageUtil
${expandoRowLocalService} ✔ExpandoRowLocalService
${auditRouterUtil} ✔AuditRouterUtil
${kaleoTaskInstanceToken} ✔ワークフロースクリプトに関してはドキュメントを参照してください
${accountPermission} ✔AccountPermission
${httpUtilUnsafe} ✔${httpUtil}と同様に、 Httpのインスタンスですが、ローカルネットワークにアクセスするために使用できます。
${workflowTaskAssignees}✔ ワークフロースクリプトに関してはドキュメントを参照してください
${random} ✔ランダム 数値を生成する Java ユーティリティ。非推奨であり、将来削除される予定です。
${rolePermission} ✔RolePermission
${portletPermission} ✔PortletPermission
${paramUtil} ✔ParamUtil
${locationPermission}✔ OrganizationPermissionUtil.getOrganizationPermission()の結果を返します。
${calendarFactory} ✔CalendarFactory
${webServerToken}✔ WebServerServletToken.getToken(long imageId)からの画像トークン
${sessionClicks} ✔SessionClicks
${userPermission} ✔UserPermission
${entryClassName}✔
${userGroupPermission} ✔UserGroupPermission
${arrayUtil} ✔ArrayUtil
${userName}✔ ワークフローに最後に介入したユーザーのユーザー名
${userId}✔ ワークフローに最後に介入したユーザーのユーザーID。 ロジックを理解するには、ワークフロー スクリプトの記事を参照してください。
${prefsPropsUtil} ✔PrefsPropsUtil
${url}✔ ページに表示される特定のコンテンツタイプのURL(例:ブログのエントリー、メッセージボードのメッセージ、およびWikiページ
${kaleoInstanceToken}✔ ワークフロースクリプティングの記事をご覧ください。
${utilLocator} ✔UtilLocator
${objectUtil} ✔new LiferayObjectConstructor()を返します。
${urlCodec} ✔URLCodec
${portletModeFactory} ✔PortletModeFactory
${imageToolUtil} ✔ImageToolUtil
${auditMessageFactoryUtil} ✔AuditMessageFactoryUtil
${staticUtil} ✔beansWrapper.getStaticModels()の結果を返します。 静的メソッドへのアクセス