詳細情報:
OmniScript での数式または集計の作成
数式要素または集計要素を使用して、計算値を設定し、複数の項目のデータを評価するための式を作成します。たとえば、対象ライフイベントの情報を受け入れる場合、対象ライフイベントに入力された日付が今日の日付から 30 日以内かどうかを判断する数式を作成できます。
数式要素と集計要素では、次の定数と種別がサポートされます。
-
OmniScript 要素と JSON ノード。差し込み項目として渡されます (%Element1% や %JSONnode1% など)。
-
数値と整数 (5 + 3.145 など)
-
引用符で囲まれた文字列リテラル (「ABC」+「DEF」など)
-
Boolean — true || false など
-
配列 — "[1,2, 3, 4, 5]" など)
-
日付 — 2/3/24 など
データ型が Date の数式は、Day.js ライブラリを使用して日付形式に従って解釈されます。日付が解釈されないようにするには、[データ型] を [テキスト] に設定します。
-
Null
これらの要素は OmniScript でも同様に動作します。ただし、集計要素は、要素の平均化や集計などの集計目的で使用する必要があります。数式要素では、 Supported Formula Operators と Omniscript Functions の両方を使用できます。たとえば、日付要素に 365 日を追加して契約終了日を決定することができます。これは、次の数式の例を使用して実行できます。
DATE(YEAR(%DateElement%), MONTH(%DateElement%), DAYOFMONTH(%DateElement%) +365)
今日の日付から 1 週間後の日付を設定するには、次の数式の例を使用します。
DATE(YEAR(TODAY()), MONTH(TODAY()), DAYOFMONTH(TODAY()) +7)
- 要素パネルから、[数式] 要素または [集計] 要素をスクリプト構造にドラッグします。
-
プロパティパネルの [式] で、関数名をクリックして OmniScript 関数を追加します。
この関数は、[式] セクションで事前入力されます。関数内に OmniScript 要素を追加するには、要素をパーセント記号 (%) で囲み、差し込み項目を使用します。
- この要素を繰り返し可能ブロックで使用する場合は、「繰り返し可能ブロックでの要素の評価」を参照してください。
- 数式要素を使用している場合は、引き続き [式] テキストボックスの [サポートされている数式演算子] サポートされる数式演算子を使用して数式を作成します。
- OmniScript UI に要素を表示しない場合は、[非表示] をクリックします。
-
数式の結果に応じて追加の要素を作成します。
「条件付きビュープロパティを使用した動的フォームの作成」および「OmniScript での表示メッセージング」を参照してください。
- 数式または集計をテストするには、[プレビュー] をクリックします。
- サポートされる数式演算子
OmniScript の数式項目では、次の演算子がサポートされています。 - OmniScript 関数
OmniScript の集計要素と数式要素に関数を追加できます。
サポートされる数式演算子
OmniScript の数式項目では、次の演算子がサポートされています。
演算子 |
意味 |
|---|---|
+ |
Addition (追加) |
- |
減算 |
* |
乗算 |
/ |
除算 |
^ |
パワー |
= |
次の文字列と一致する |
<> |
Not equals |
> |
Greater than |
< |
Less than |
>= |
>= |
<= |
<= |
&& |
および |
|| |
または |
( ) |
括弧 |
OmniScript でサポートされる関数についての詳細は、「Create a Formula or Aggregate in an Omniscript (OmniScript での数式または集計の作成)」を参照してください。OmniScript への数式項目の追加についての詳細は、「Create a Formula or Aggregate in an OmniScript (OmniScript での数式または集計の作成)」を参照してください。
OmniScript 関数
OmniScript の集計要素と数式要素に関数を追加できます。
OmniStudio データマッパーと Integration Procedure の関数のリストについては、「サポートされるデータマッパーと Integration Procedure の関数」を参照してください。
[数式] 要素で使用できるサポートされている数式演算子のリストについては、「Create a Formula or Aggregate in an OmniScript (OmniScript での数式または集計の作成)」を参照してください。
次の表に、使用可能なさまざまな OmniScript 関数とそのしくみを示します。
関数名 |
例 |
詳細 |
|---|---|---|
ABS(number) |
ABS(%Friends%) == 6.52534 |
絶対値を返します。 |
BOOLEAN(値) |
true または false を返します。 |
|
CURRENCY(値) |
通貨で書式設定された値を返します。12345 は 12,345.00 と表示されます。 1.2345 などの小数部を追加すると、デフォルトで項目に 1.23 の値と小数点 2 桁が表示されます。すべての小数値を表示する必要がある場合は、[マスク] 項目に値を追加します。この例では、Mask フィールドの値 #.#### に 4 つのすべての 10 進値が表示されます。 |
|
INTEGER(値) |
INTEGER(%Friends%) == 6 INTEGER("12.5") == 12 |
指定された数値を小数点以下の桁数のない整数に変換します。数値は切り上げられません。文字列も受け入れます。 |
NULL |
オブジェクトの値を null で表示します。 |
|
NUMBER(値) |
NUMBER(%Friends%) == 128 |
文字列を数値に変換します。 |
POW(数値、指数) |
POW(%Friends%, 3) == 274.625 |
指数値を返します。 |
RANDOM() |
RANDOM() |
0 から 1 までの乱数を返します。この関数は、A/B テストでよく使用されます。RANDOM() 関数はパラメーターを受け付けません。 |
ROUND(数値、小数点以下) |
ROUND(%Friends%, 3) == 6.525 |
数値を特定の定義された小数点以下の桁数に丸めます。 |
関数名 |
例 |
詳細 |
|---|---|---|
AND(); |
IF(((%reset%="Yes" AND( %reboot%="Yes")), "Closed", "Escalated") |
両方の条件を満たした場合に関数を実行する論理演算子。 |
COUNTIF(values, expression_or_value) |
COUNTIF(%MyArray%, >10) |
条件を満たした場合に繰り返される要素数を返します。 |
EQUALS( Field_Name, 'Condition') |
IF( 次の文字列と一致する(%Department%,'401(k)'), "Then Result", 「その他の結果」 ) |
EQUALS 関数は、項目を特定の値または別の項目と比較するときに使用します。 |
IF(EXPRESSION,THEN, ELSE) |
IF(((%reset%="Yes" || %reboot%="Yes"), "Closed", "Escalated") |
EXPRESSION が True に評価された場合は THEN が返され、それ以外の場合は ELSE が返されます。 |
OR() |
IF(((%reset%="Yes" OR( %reboot%="Yes")), "Closed", "Escalated") |
|
SUMIF(values, expression_or_value) |
SUMIF(%MyArray%, >5) |
条件を満たした場合、すべてのカンマ区切り要素と値の合計を返します。 |
関数名 |
例 |
詳細 |
|---|---|---|
CASE(値, $CASE) |
CASE(%Name%, UPPER) == "TONY JONES" CASE(%Name%, LOWER) == "tony jones" CASE(%Name%, SENTENCE) == "Tony jones" CASE(%Name%,title) == "Tony Jones" |
$CASE 種別に基づいてケースを変更します。$CASE は LOWER、UPPER、SENTENCE、TITLE のいずれかである必要があります。 |
CONCATENATE(value1, value2, ..., valueN) |
CONCATENATE(%FirstName%, " ", %LastName%) == "Tony Jones" |
要素/文字列を 1 つの文字列に連結します。 |
CONTAINS(input_string,value) |
CONTAINS(%FirstName%, "Tony") == True |
値が文字列に含まれているかどうかを評価します。 |
SPLIT(text, splitToken, limit); |
SPLIT("Tony Jones", " ", 2) == "Tony", "Jones" |
|
STRING(値) |
STRING(%Friends%) == "6.5" |
任意の値を文字列に変換します。 |
SUBSTRING(text, startIndex, endIndex) |
SUBSTRING("Substring!, 3, 9) == "string" |
指定された 2 つのインデックス間の文字列から文字を抽出し、値を返します。 |
関数名 |
例 |
詳細 |
|---|---|---|
AGE(dateOfBirth) |
AGE(%Birthdate%) == 7 |
指定された誕生日が今日の日付である年齢 (年) を返します。日付要素を使用します。 |
AGEON(dateOfBirth, futureDate) |
AGEON(%Birthdate%,"07-09-2024") == 16 |
将来の日付に特定の誕生日があるユーザーの年齢 (年)。日付要素を使用します。 |
DATE(値) |
DATE(%DOB%) == 1978 年 7 月 19 日 16 時 00 分 GMT-0700 (PDT) |
日付要素を使用します。完全な JavaScript 形式を返します。 |
DATEDIFF(date1, date2) |
DATEDIFF(%DOB%,%TODAY%) == 13559 |
2 つの日付の差 (日数)。値は常に正の整数になります。日付要素を使用します。 |
DAYOFMONTH(date) |
DAYOFMONTH(%TODAY%) == 2 |
日付を返します。日付要素を使用します。 |
DAYOFWEEK(date) |
DAYOFWEEK(%TODAY%) == 4 |
曜日を整数として返します。月曜日は 1、日曜日は 7 です。 |
HOUR(日付) |
ローカル時間に従って現在の時間を返します。 |
|
MINUTE(date) |
ローカル時間に従って現在の分を返します。 |
|
MOMENT() |
MOMENT(%policyStartDate%).add(1, 'year').subtract(1, 'day') |
Moment.js の moment オブジェクトを返します。 これを使用して、複雑な日付書式設定、計算、操作、比較などを実行できますMOMENT() 関数には、MOMENT(NOW()) などのパラメーターを含める必要があります。この関数に .calendar() を追加することをお勧めします。 |
MONTH(日付) |
MONTH(%TODAY%) == 9 |
整数の月。日付要素を使用します。 |
NOW() |
NOW() == Thu Aug 27 2019 16:32:00 GMT -0700 (PDT) |
現在の日時を完全な JavaScript 形式で返します。ミリ秒は常に 0 に設定されます。 $Vlocity.NOW 環境変数はユーザーまたは組織のタイムゾーンを適用し、NOW() 関数は UTC 時間を適用します。 |
TODAY() |
TODAY() == Thu Aug 27 2019 00:00:00 GMT -0700 (PDT) |
今日の日付を返します。時刻は常に午前 0 時に設定されます。 |
YEAR(日付) |
YEAR(%TODAY%) == 2019 |
日付の年を整数として返します。日付要素を使用します。 |
関数名 |
例 |
詳細 |
|---|---|---|
ARRAY(value1, value2, ..., valueN) |
ARRAY(%Child1%,%Child2%, %Child3%,%Child4%) == [4,3,1,2] |
要素の値の配列を返します。 |
average(配列) |
average(%Age%) == 2.5 |
集計: 指定された数値の平均値を返します。繰り返し要素を使用します。 |
average(value1, value2, ..., valueN) |
average(%Child1%,%Child2%, %Child3%,%Child4%) == 2.5 |
指定された数値の平均を返します。 |
COUNT(配列) |
COUNT(%Age%) == 4 |
Aggregate (集計): 繰り返し要素数を返します。 |
EXISTS(array_or_value, expression_or_value) |
EXISTS([%FirstName%,%LastName%], "Tony") == true |
指定された値が 1 つ以上の要素に存在する場合に true を返します。[集計] に、EXISTS(%FirstName%,"Tony" など) という繰り返し要素の名前を入力します。FirstName は繰り返し可能です。 |
MAX(配列) |
MAX(%AGE%) == 4 |
Aggregate (集計): 指定された数値の最大値を返します。繰り返し要素を使用します。 |
MAX((value1, value2,..., valueN) |
MAX(%Child1%,%Child2%, %Child3%,%Child4%) == 4 |
指定された要素のグループの最大値を返します。 |
MIN(配列) |
MIN(%AGE%) == 1 |
集計: 指定された数値の最小値を返します。繰り返し要素を使用します。 |
MIN((value1, value2, ..., valueN)) |
最小 (%Child1%,%Child2%, %Child3%,%Child4%) == 1 |
指定された要素のグループの最小値を返します。 |
SUM(配列) |
SUM(%AGE%) == 10 |
Aggregate (集計): 繰り返し可能な要素内のすべての値の合計を返します。 |
SUM(value1, value2, ..., valueN) |
SUM(%Child1%,%Child2%, %Child3%,%Child4%) == 10 |
すべてのカンマ区切りの要素と値の合計を返します。 OmniScript で数式入力を SUM 数式と共に使用する場合、[式] テキストボックスでは、小数部の精度がデフォルトで 2 に設定されます。これは、数式で目的の小数値の数を指定しても発生します。たとえば、数式 |
