関数とGroovy式

このトピックでは、アラート・コンポーザを使用してアラートを構成するときに使用できる、様々な関数およびGroovy式について説明します。

個人の戻り属性には、次のいずれかになります。

  • PersonId

  • WorkEmail

  • DisplayName

  • FirstName

  • LastName

  • UserName

関数

この表は、アラートでサポートされている関数を示しています。最大25個の結果が取得されます。結果が25個を超えると、警告メッセージがログに表示されます。

関数

説明

使用方法

  • 名前: hrRepList

  • 表示名: 人事担当者

PersonIdのHR担当者個人属性を返します。

受信者セクション

Email is : ${AlertUtils.toString(AlertUtils.hrRepList(PersonId).WorkEmail)}

User name : ${AlertUtils.toString(AlertUtils.hrRepList(PersonId).UserName)}

本文または件名セクション

First Name is: ${AlertUtils.hrRepList(PersonId).FirstName)}

First Name is: ${AlertUtils.toString(AlertUtils.hrRepList(PersonId).FirstName)}

ループの例

First Name is: ${AlertUtils.loop('emps','${AlertUtils.toString(AlertUtils.hrRepList(emps.PersonId).FirstName)}')}

受信者セクション

Email is: Christopher.Brown@example.com,William.Jones@example.com

User Name is: Christopher.Brown,William.Jones

本文または件名セクション

First Name is: [Christopher,William]

First Name is: Christopher,William

ループの例

First Name is: Christopher,William

  • 名前: payRepList

  • 表示名: 給与担当者

PersonIdの給与担当者個人属性を返します。

受信者セクション

Email is : ${AlertUtils.toString(AlertUtils.payRepList(PersonId).WorkEmail)}

User name : ${AlertUtils.toString(AlertUtils.payRepList(PersonId).UserName)}

本文または件名セクション

First Name is: ${AlertUtils.toString(AlertUtils.payRepList(PersonId).FirstName)}

ループの例

First Name is: ${AlertUtils.loop('emps','${AlertUtils.toString(AlertUtils.payRepList(emps.PersonId).FirstName)}')}

受信者セクション

Email is: Christopher.Brown@example.com,William.Jones@example.com

User Name is: Christopher.Brown,William.Jones

本文または件名セクション

First Name is: Christopher,William

ループの例

First Name is: Christopher,William

  • 名前: benRepList

  • 表示名: 福利厚生担当者

PersonIdの福利厚生担当者個人属性を返します。

受信者セクション

Email is : ${AlertUtils.toString(AlertUtils.benRepList(PersonId).WorkEmail)}

User name : ${AlertUtils.toString(AlertUtils.benRepList(PersonId).UserName)}

本文または件名セクション

First Name is: ${AlertUtils.toString(AlertUtils.benRepList(PersonId).FirstName)}

ループの例

First Name is: ${AlertUtils.loop('emps','${AlertUtils.toString(AlertUtils.benRepList(emps.PersonId).FirstName)}')}

受信者セクション

Email is: Christopher.Brown@example.com,William.Jones@example.com

User Name is: Christopher.Brown,William.Jones

本文または件名セクション

First Name is: Christopher,William

ループの例

First Name is: Christopher,William

  • 名前: unionRepList

  • 表示名: 組合代表

PersonIdの組合代表個人属性を返します。

受信者セクション

Email is : ${AlertUtils.toString(AlertUtils.unionRepList(PersonId).WorkEmail)}

User name : ${AlertUtils.toString(AlertUtils.unionRepList(PersonId).UserName)}

本文または件名セクション

First Name is: ${AlertUtils.toString(AlertUtils.unionRepList(PersonId).FirstName)}

ループの例

First Name is: ${AlertUtils.loop('emps','${AlertUtils.toString(AlertUtils.unionRepList(emps.PersonId).FirstName)}')}

受信者セクション

Email is: Christopher.Brown@example.com,William.Jones@example.com

User Name is: Christopher.Brown,William.Jones

本文または件名セクション

First Name is: Christopher,William

ループの例

First Name is: Christopher,William

  • 名前: empManagerList

  • 表示名: 従業員マネージャ

PersonIdの従業員のマネージャ個人属性を返します。

受信者セクション

Email is : ${AlertUtils.toString(AlertUtils.empManagersList(PersonId).WorkEmail)}

User name : ${AlertUtils.toString(AlertUtils.empManagersList(PersonId).UserName)}

本文または件名セクション

First Name is: ${AlertUtils.toString(AlertUtils.empManagersList(PersonId).FirstName)}

受信者セクション

Email is: Diane.Brown@example.com

User Name is: Diane.Brown

本文または件名セクション

First Name is: Diane

  • 名前: roleMemberList

  • 表示名: ロール別のロール・メンバー

指定されたロール・コードの特定のロールに割り当てられているすべてのアクティブ・ユーザーを返します。

受信者セクション

指定されたRole_NameまたはRole_Codeが割り当てられている個人詳細を持つユーザーを返します

Email is: ${AlertUtils.toString(AlertUtils.roleMemberList("CUSTOM_X_JOB_ROLE_CODE").WorkEmail)}

User name is: ${AlertUtils.toString(AlertUtils.roleMemberList("CUSTOM_X_JOB_ROLE_CODE").UserName)}

本文または件名セクション

First Name is: ${AlertUtils.toString(AlertUtils.roleMemberList("CUSTOM_X_JOB_ROLE_CODE").FirstName)}

ループの例

First Name is: ${AlertUtils.loop('emps','${AlertUtils.toString(AlertUtils.roleMemberList("CUSTOM_X_JOB_ROLE_CODE").FirstName)}')}

受信者セクション

Email is: Christopher.Brown@example.com,William.Jones@example.com

User Name is: Christopher.Brown,William.Jones

本文または件名セクション

First Name is: Christopher,William

ループの例

First Name is: Christopher,William

  • 名前: toString

  • 表示名: なし

オブジェクトの配列をカンマ区切り文字列に変換します。

${assignments.AssignmentName}

${AlertUtils.toString(assignments.AssignmentName)}

[Assignment A, Assignment B]

Assignment A, Assignment B

  • 名前: person

  • 表示名: 個人詳細

PersonIdの個人属性を返します。

個人名は ${AlertUtils.person(emps.PersonId).DisplayName}

個人名は Edward

  • 名前: userName

  • 表示名: ユーザー名

指定されたUserNameの個人属性を返します。

${AlertUtils.userName(emps.UserName).WorkEmail}

simon.stringer@example.com

  • 名前: getSysdate

  • 表示名: システム日付

システム日付を返します。

${AlertUtils.getSysdate()}

Date : 2016-04-25

  • 名前: getSystimestamp

  • 表示名: システム・タイム・スタンプ

システムの日付と時刻を返します。

${AlertUtils.getSystimestamp()}

TimeStamp: 2016-04-25 23:44:52.0

  • 名前: formatNumber

  • 表示名: フォーマット番号

指定されたJava数値書式に数値を書式設定します。サポートされている書式は、https://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.htmlを参照してください。

給与は ${AlertUtils.formatNumber(assignments[0].SalaryAmount, '9,999,999')}

Salary is 46,064

  • 名前: formatDate

  • 表示名: フォーマット日付

指定されたJava日付書式に日付を書式設定します。サポートされている書式は、https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.htmlを参照してください

ノート: 指定する日付は、Application Developer Framework (ADF) REST応答のデフォルトの日付書式である、[yyyy-MM-dd]書式である必要があります。

日付は : ${AlertUtils.formatDate(emps.HireDate, 'dd-MMM-yyyy')}

Date is : 21-Apr-2007

  • 名前: formatJSON

  • 表示名: JSONの書式設定

AttributeListパラメータで指定された特定の属性セットに対し、書式設定されたJSONを(階層が存在する場合は階層型で)返します。

Format Jsonnull${AlertUtils.formatJSON('emps.PersonId','emps.DisplayName','assignments.AssignmentName','assignments.AssignmentId','visas.VisaPermitNumber','visas.VisaPermitExpiration')} }}}

Format Jsonnull{ "emps" : { "PersonId" : "300100016699983", "DisplayName" : "ANC_Manager_Vision1 Absence", "assignments" : [ { "AssignmentName" : "E955160008173479", "AssignmentId" : "300100016700747" } ], "visas" : [ { "VisaPermitNumber" : "US85966798", "VisaPermitExpiration" : "2018-05-13" }, { "VisaPermitNumber" : "US85966798", "VisaPermitExpiration" : "2014-05-13" }, { "VisaPermitNumber" : "US85966798", "VisaPermitExpiration" : "2014-05-13" } ] } } }}}

  • 名前: formatXML

  • 表示名: XMLの書式設定

{{AttributeList}}パラメータで指定された特定の属性セットに対し、書式設定されたXMLを(階層が存在する場合は階層型で)返します。

Format Xml ${AlertUtils.formatXML('emps.PersonId','emps.DisplayName','assignments.AssignmentName','assignments.AssignmentId','visas.VisaPermitNumber','visas.VisaPermitExpiration')}

Format Xml

<emps> <data> <PersonId>300100016699983</PersonId> <DisplayName>ANC_Manager_Vision1 Absence</DisplayName> <assignments> <data> <AssignmentName>E955160008173479</AssignmentName> <AssignmentId>300100016700747</AssignmentId> </data> </assignments> <visas> <data> <VisaPermitNumber>US85966798</VisaPermitNumber> <VisaPermitExpiration>2018-05-13</VisaPermitExpiration> </data> <data> <VisaPermitNumber>US85966798</VisaPermitNumber> <VisaPermitExpiration>2014-05-13</VisaPermitExpiration> </data> <data> <VisaPermitNumber>US85966798</VisaPermitNumber> <VisaPermitExpiration>2014-05-13</VisaPermitExpiration> </data> </visas> </data> </emps>

  • 名前: showDisplayValue

  • 表示名: 表示値の表示

LOV属性の表示値を返します。

性別は ${AlertUtils.showDisplayValue('Gender')}

Gender is Male

名前: getLookupMeaning

ユーザーのプリファレンス言語に基づいて参照の意味を返します。

Lookup meaning ${AlertUtils.getLookupMeaning(<LookupType>,<LookupCode>)}

${AlertUtils.getLookupMeaning('YES_NO','Y')}

はい

名前: getLookupMeaning

国別仕様ストライプに対するユーザーのプリファレンス言語に基づいて、参照の意味を返します

${AlertUtils.getLookupMeaning(<LookupType>,<LookupCode>, <LegislationCode>)}

${AlertUtils.getLookupMeaning('GENDER','M','US')}

男性

  • 名前: getURI

  • 表示名: URI

指定されたアプリケーション名およびコンテキストのURIを作成します。

Url is ${AlertUtils.getURI('HcmCoreApp','/hcmRestApi/resources/11.13.18.05/locations')}

Url is http://<host>:<port>//hcmRestApi/resources/11.13.18.05/locations

  • 名前: loop

  • 表示名: ループ

コレクションをループします。この機能は、次のようにメッセージ・コンテンツ内に表を作成するために使用できます。

${AlertUtils.loop('ResourceName1,ResourceName2' , 'Content1','Content2')}

リソース名はカンマで区切られ、その後に指定されるコンテンツは指定された順序でデータを追加するために使用されます。各ResourceName1レコードに対し、ResourceName2の対応するコンテンツが追加されます。これはネストされた方法で行われます。

ルール

  • リソース名のリストは階層順にする必要があります。すべての子リソースの前に親リソースを指定する必要があります(ルート・レベルの子リソースの場合を除く)。

    たとえば、ルートがemps、子がassignments、孫がemprepsである階層を考えます。emprepsでループを作成するには、assignmentsリソースもAPIに含める必要があります。

    ${AlertUtils.loop('assignments,empreps','<tr><td>${AssignmentNumber}</td>','<td>${Name}</td></tr>')}

  • 各レベルの属性を直接参照できます。式${parentResourceName.AttributeName}を使用すると、子コンテンツ内で親属性にアクセスできます。

    例: ${emps.PersonId}

  • イベント・アラートの場合、ルート・キーワードを使用して最上位レベルの親にアクセスできます。

  • 任意のリソースのコンテンツを空にできます。空の文字列をコンテンツとして挿入します。(empsリソース・コンテンツが空になっているサンプル2を参照してください。)

サンプル1

${FirstName}さんこんにちは。

次の30日間に、この従業員のビザが失効します。

<table>

${AlertFct.loop('visas','<tr><td>${VisaPermitCountry}</td><td>${VisaPermitNumber}</td></tr>')}

</table>

よろしくお願いいたします。

サンプル2

${FirstName}さんこんにちは。

次の30日間に、この従業員のビザが失効します。

<table border=1>

${AlertUtils.loop('emps,visas','','<tr><td>${emps.LastName}</td><td>${VisaPermitCountry}</td><td>${VisaPermitExpiration}</td></tr>')}

</table>

よろしくお願いいたします。

サンプル1

Johnさんこんにちは。

次の30日間に、この従業員のビザが失効します。

Country		Visa Number
US		NBC-88457
US		234234

よろしくお願いいたします。

サンプル2

Johnさんこんにちは。

次の30日間に、この従業員のビザが失効します。

Name		Issuing Country		Expiration Date
Employee1		US		2016-03-14
Employee1		IN		2016-03-20
Employee2		US		2016-02-18
Employee3		US		2015-05-01
Employee4		US		2015-12-14
Employee5		US		2015-05-17
Employee5		UK		2015-09-17

よろしくお願いいたします。

Groovy式

アラート・コンポーザでは、変数の置換および実行時に指定された値に基づく条件の追加を行うGroovy式がサポートされています。次の表に、いくつかの例を示します。

Groovy式

${FirstName}さんこんにちは。

${visas[0].Country}で発行されたあなたのビザが ${visas[0].ExpirationDate}に失効します。

Johnさんこんにちは。

GBで発行されたあなたのビザが2018-09-28に失効します。

${FirstName}さん、

<%

asgStr ="";

for(visa in visas)

{

asgStr = asgStr + visa.VisaPermitCountry+" ";

}

print("従業員に対して複数のビザが発行されています: "+asgStr);

%>

よろしくお願いいたします。

管理者

Johnさん、

従業員: US INに対して複数のビザが発行されています

よろしくお願いいたします。

管理者