このページの内容

高度な関数

式言語を構成する関数群を紹介します。以下では、各グループの関数、パラメーター、戻り値の型、使用例を確認できます。

1. テキストとパターンの関数

正規表現関数

正規表現を使ってパターンを検索、置換する関数です。

regexMatch

(text, pattern)

文字列が正規表現パターンに一致するかどうかを確認します。

パラメーター
text string 確認する文字列
pattern string 正規表現パターン
戻り値 真偽値
例
regexMatch("abc123", "[0-9]+") → true
regexMatch("hello", "^[0-9]+$") → false
関連項目

regexReplace

(text, pattern, replacement)

文字列内で正規表現パターンに一致する箇所をすべて置き換えます。

パラメーター
text string 入力文字列
pattern string 検索する正規表現パターン
replacement string 置換後の文字列
戻り値 文字列
例
regexReplace("abc123def456", "[0-9]+", "#") → abc#def#
regexReplace("hello world", "\s+", " ") → hello world
関連項目

regexExtract

(text, pattern, group?)

文字列から正規表現パターンに最初に一致する部分を抽出します。特定のキャプチャグループを抽出することもできます。

パラメーター
text string 入力文字列
pattern string 正規表現パターン
group (任意) number キャプチャグループのインデックス。0を指定すると、一致した部分全体を返します (既定: 0)
戻り値 文字列
例
regexExtract("abc123def", "[0-9]+") → 123
regexExtract("2025-01-15", "(\d{4})-(\d{2})", 1) → 2025
関連項目

文字列の操作

文字列を操作するその他の関数です。

repeat

(text, count)

指定した回数だけテキストを繰り返します。

パラメーター
text string 繰り返すテキスト
count number 繰り返す回数
戻り値 文字列
例
repeat("ab", 3) → "ababab"

countOccurrences

(text, search)

部分文字列が重複せずに出現する回数を数えます。

パラメーター
text string 検索するテキスト
search string 検索する部分文字列
戻り値 数値
例
countOccurrences("abcabc", "abc") → 2

split

(text, delimiter, index)

区切り文字でテキストを分割し、先頭を1として指定した位置の部分を返します。

パラメーター
text string 分割するテキスト
delimiter string 区切り文字
index number 返す部分の位置(1から始まるインデックス)
戻り値 文字列
例
split("a-b-c", "-", 2) → "b"

exact

(a, b)

大文字と小文字を区別して文字列を比較します。文字列が完全に一致する場合にtrueを返します。

パラメーター
a string 1つ目の文字列
b string 2つ目の文字列
戻り値 ブール値
例
exact("Hello", "hello") → false

2. 日付と期間の関数

期間の換算

ミリ秒単位の期間を、一般的な時間単位に換算します。

durationInDays

(ms)

ミリ秒を日数に換算します。

パラメーター
ms number ミリ秒単位の期間
戻り値 数値
例
durationInDays(86400000) → 1
durationInDays(caseThroughputTime) → 日数で表した処理時間

durationInHours

(ms)

ミリ秒を時間に換算します。

パラメーター
ms number ミリ秒単位の期間
戻り値 数値
例
durationInHours(3600000) → 1
durationInHours(stepDuration) → 時間で表したステップの所要時間

durationInMinutes

(ms)

ミリ秒を分に換算します。

パラメーター
ms number ミリ秒単位の期間
戻り値 数値
例
durationInMinutes(60000) → 1
durationInMinutes(waitingTime) → 分で表した待ち時間

durationInSeconds

(ms)

ミリ秒を秒に換算します。

パラメーター
ms number ミリ秒単位の期間
戻り値 数値
例
durationInSeconds(1500) → 1.5

日付の作成

各要素から日付を作成するか、文字列を日付として解析します。

date

(year, month, day)

年、月、日からUTCの日付を作成します。

パラメーター
year number 年
month number 月(1~12)
day number 月の日
戻り値 日付
例
date(2024, 1, 1) → 1704067200000
date(2024, 6, 15) → 2024年6月15日

toDate

(value, format?)

値を日付として解析します。エポックからのミリ秒などの数値と文字列を指定できます。

パラメーター
value any 日付に変換する値
format (任意) string 日付形式のパターン(任意)
戻り値 日付
例
toDate(1704067200000) → 1704067200000
toDate("2024-01-15") → 2024年1月15日
toDate("31/12/2024 23:45:59", "dd/MM/yyyy HH:mm:ss") → 1735688759000
注意事項

形式を指定する場合は、formatDateでサポートされているものと同じトークンを使用します。解析はUTCを基準に行われます。

today

()

現在の日付をUTCの午前0時として返します。

戻り値 日付
例
today() → 午前0時時点の現在の日付

日付の期間境界

日付を期間の境界に切り捨てるか、丸めます。

startOfDay

(date)

日付をその日の開始時刻(午前0時)に切り捨てます。

パラメーター
date date 切り捨てる日付
戻り値 日付
例
startOfDay(StartTime) → 同じ日の午前0時

startOfWeek

(date)

週の開始日(月曜日)を返します。

パラメーター
date date 日付
戻り値 日付
例
startOfWeek(StartTime) → 同じ週の月曜日

startOfMonth

(date)

月の初日を返します。

パラメーター
date date 日付
戻り値 日付
例
startOfMonth(StartTime) → 月の初日

startOfYear

(date)

その年の1月1日を返します。

パラメーター
date date 日付
戻り値 日付
例
startOfYear(StartTime) → 1月1日

endOfWeek

(date)

週の終了時刻(日曜日の23:59:59)を返します。

パラメーター
date date 日付
戻り値 日付
例
endOfWeek(StartTime) → 日曜日の終日

endOfMonth

(date)

月末の23:59:59を返します。

パラメーター
date date 日付
戻り値 日付
例
endOfMonth(StartTime) → 月末日の終わり

endOfYear

(date)

12月31日の23:59:59を返します。

パラメーター
date date 日付
戻り値 日付
例
endOfYear(StartTime) → 12月31日の終わり

日付の簡易関数

日付の差分や加算を簡単に計算する関数です。

daysBetween

(date1, date2)

2つの日付の差を日数で返します。

パラメーター
date1 date 開始日
date2 date 終了日
戻り値 数値
例
daysBetween(StartTime, EndTime) → 2つの日付の間の日数

hoursBetween

(date1, date2)

2つの日付の差を時間数で返します。

パラメーター
date1 date 開始日
date2 date 終了日
戻り値 数値
例
hoursBetween(StartTime, EndTime) → 2つの日付の間の時間数

minutesBetween

(date1, date2)

2つの日付の差を分数で返します。

パラメーター
date1 date 開始日
date2 date 終了日
戻り値 数値
例
minutesBetween(StartTime, EndTime) → 2つの日付の間の分数

secondsBetween

(date1, date2)

2つの日付の差を秒数で返します。

パラメーター
date1 date 開始日
date2 date 終了日
戻り値 数値
例
secondsBetween(StartTime, EndTime) → 2つの日付の間の秒数

addDays

(date, days)

日付に日数を加算します。

パラメーター
date date 基準日
days number 加算する日数
戻り値 日付
例
addDays(StartTime, 5) → 5日後の日付

addHours

(date, hours)

日付に時間数を加算します。

パラメーター
date date 基準日
hours number 加算する時間数
戻り値 日付
例
addHours(StartTime, 3) → 3時間後の日付

addMinutes

(date, minutes)

日付に分数を加算します。

パラメーター
date date 基準日
minutes number 加算する分数
戻り値 日付
例
addMinutes(StartTime, 30) → 30分後の日付

addSeconds

(date, seconds)

日付に秒数を加算します。

パラメーター
date date 基準日
seconds number 加算する秒数
戻り値 日付
例
addSeconds(StartTime, 45) → 45秒後の日付

endOfDay

(date)

指定した日付の当日末(23:59:59.999)を返します。

パラメーター
date date 入力日付
戻り値 日付
例
endOfDay(StartTime) → 同日の23:59:59

startOfQuarter

(date)

指定した日付が属する四半期の初日を返します。

パラメーター
date date 入力日付
戻り値 日付
例
startOfQuarter(StartTime) → 6月の日付の場合は2024-04-01

endOfQuarter

(date)

指定した日付が属する四半期の最終時刻を返します。

パラメーター
date date 入力日付
戻り値 日付
例
endOfQuarter(StartTime) → 6月の日付の場合は2024-06-30T23:59:59Z

3. 論理関数

複数条件の判定

値を複数のケースと照合します。

switch

(value, match1, result1, ..., default?)

値をケースの一覧と照合し、対応する結果を返します。複数条件を扱うifに似ています。

パラメーター
value any 照合する値
match1, result1, ... any 照合する値と結果の組み合わせ
default (任意) any 一致するものがない場合の既定の結果(任意)
戻り値 任意の型
例
switch("a", "a", 1, "b", 2, 0) → 1
switch(Status, "Open", 1, "Closed", 2, 0) → Openなら1、Closedなら2、それ以外は0
注意事項

可変長の引数を指定します:switch(value, match1, result1, match2, result2, ..., default)

範囲の確認

値が範囲内にあるかを確認するか、指定した範囲内に収めます。

between

(value, low, high)

値が下限と上限を含む範囲内にある場合にtrueを返します。

パラメーター
value number 確認する値
low number 下限
high number 上限
戻り値 ブール値
例
between(5, 1, 10) → true
between(Amount, 100, 1000) → Amountが100以上1000以下の場合はtrue

clamp

(value, min, max)

値を[min, max]の範囲内に収めます。

パラメーター
value number 範囲内に収める値
min number 最小値
max number 最大値
戻り値 数値
例
clamp(15, 0, 10) → 10
clamp(Score, 0, 100) → 0~100の範囲に制限したScore

letによる値の割り当て

複雑な式で使う中間値に名前を付けます。

let

(name, value, body)

値に名前を付け、その名前を使える状態で本体の式を評価します。

パラメーター
name string 変数名(文字列リテラル)
value any 割り当てる式
body any 割り当てた変数を使う式
戻り値 任意の型
例
let("avg", caseAvg(Amount), Amount - avg) → ケース平均からの差
let("x", Amount * 2, let("y", x + 3, x * y)) → letの入れ子

4. フロー、アクティビティ、SLAの関数

前後関係の判定

ケース内で、あるアクティビティの前に別のアクティビティが実行されたかを確認します。

directlyPrecededBy

(activity, predecessor)

ケース内で、2つ目のアクティビティが1つ目のアクティビティの直前に実行された場合にtrueを返します。

パラメーター
activity string 確認するアクティビティ
predecessor string 前に実行されたと想定するアクティビティ
戻り値 ブール値
例
directlyPrecededBy("Approve", "Review") → ReviewがApproveの直前に実行された場合はtrue
関連項目

eventuallyPrecededBy

(activity, predecessor)

ケース内で、2つ目のアクティビティが1つ目のアクティビティより前に実行された場合にtrueを返します。

パラメーター
activity string 確認するアクティビティ
predecessor string 前に実行されたと想定するアクティビティ
戻り値 ブール値
例
eventuallyPrecededBy("Ship", "Order") → ケース内でOrderがShipより前に実行された場合はtrue
関連項目

手戻りの検出

ケース内でアクティビティが繰り返される手戻りのパターンを特定します。

isRework

Property

現在のアクティビティがケース内ですでに実行されている場合はtrue

Type boolean

reworkCount

Property

ケース内で繰り返されたアクティビティの実行回数

Type number

activityOccurrence

Property

ケース内でのこのアクティビティの実行回数:初回は1、2回目は2、その後も同様です。

Type number

アクティビティの照会

ケース内にアクティビティがあるかを確認し、その出現回数を数えます。

hasActivity

(activityName)

指定したアクティビティがケース内のどこかにある場合にtrueを返します。

パラメーター
activityName string 確認するアクティビティの名前
戻り値 ブール値
例
hasActivity("Approve") → ケースにApproveアクティビティが含まれる場合はtrue

activityCount

(activityName)

指定したアクティビティがケース内に出現する回数を返します。

パラメーター
activityName string 数えるアクティビティの名前
戻り値 数値
例
activityCount("Review") → ケース内のReviewアクティビティの回数

アクティビティ間の時間

ケース内の特定のアクティビティ間にかかった時間を測定します。

timeBetween

(activityA, activityB)

アクティビティAの初回実行からアクティビティBの初回実行までの時間を返します。

パラメーター
activityA string 1つ目のアクティビティ
activityB string 2つ目のアクティビティ
戻り値 数値
例
timeBetween("Submit", "Approve") → SubmitからApproveまでの時間(ミリ秒)

timeSinceActivity

(activityName)

現在のイベントより前に、指定したアクティビティが最後に実行されてからの経過時間です。

パラメーター
activityName string アクティビティ名
戻り値 数値
例
timeSinceActivity("Start") → 直近のStartアクティビティからの経過時間

timeToActivity

(activityName)

現在のイベントより後に、指定したアクティビティが次に実行されるまでの時間です。

パラメーター
activityName string アクティビティ名
戻り値 数値
例
timeToActivity("Complete") → 次のCompleteアクティビティまでの時間

SLA関数

サービスレベル契約を監視し、違反を検出します。

slaBreached

(duration, threshold)

期間がSLAのしきい値を超えるとtrueを返します。

パラメーター
duration number 実際の期間
threshold number SLAのしきい値
戻り値 ブール値
例
slaBreached(100000, 86400000) → false
slaBreached(caseThroughputTime, 86400000) → ケースが24時間のSLAを超えるとtrue

slaRemaining

(startDate, slaDuration)

SLA違反までの残り時間を返します。違反後は負の値を返します。

パラメーター
startDate date 開始タイムスタンプ
slaDuration number ミリ秒単位のSLA期間
戻り値 数値
例
slaRemaining(caseStartTime, 172800000) → 48時間のSLAの残り時間

caseAge

Property

ケース開始から現在までの経過時間。最初のイベントからのミリ秒数で表します。

Type number

自己ループの検出

同じアクティビティが連続して発生する自己ループのパターンを検出し、回数を数えます。

isSelfLoop

Property

現在のアクティビティがケース内の前のアクティビティと同じ場合にtrueを返します。

Type boolean

selfLoopCount

Property

現在のケースで同じアクティビティが連続して繰り返された回数。

Type number

リソース分析

ケース内のリソースの引き継ぎや変更を検出します。

isResourceChange

(expr)

式の値が前のイベントから変わっている場合にtrueを返します。

パラメーター
expr any 変更を確認する列の式
戻り値 ブール値
例
isResourceChange(Resource) → リソースが前のイベントと異なる場合にtrue

resourceHandoffCount

(expr)

ケース内で値が変わった回数を数えます。

パラメーター
expr any 変更回数を数える列の式
戻り値 数値
例
resourceHandoffCount(Resource) → Alice→Alice→Bob→Bob→Aliceの場合は2
注意事項

Athenaを使用する式ではまだ利用できません。バックエンドのクエリでは、派生属性でisResourceChange(expr)とcaseCountIf(...)を組み合わせてください。

5. 統計、順位、値の変化

順位付け関数

ケース内またはすべてのイベントを対象に、式の値に基づいてイベントを順位付けします。

caseRank

(expr)

式の値で並べたときの、ケース内における現在のイベントの順位です。同順位の後には順位の飛びがあります。

パラメーター
expr number 順位付けに使う式
戻り値 数値
例
caseRank(Amount) → ケース内でAmountに基づいて順位付け

caseDenseRank

(expr)

ケース内の密順位です。同順位の後に順位の飛びはありません。

パラメーター
expr number 順位付けに使う式
戻り値 数値
例
caseDenseRank(Amount) → ケース内でAmountに基づく密順位

allRank

(expr)

すべてのイベントを対象に順位付けします。

パラメーター
expr number 順位付けに使う式
戻り値 数値
例
allRank(Duration) → Durationに基づく全体順位

allPercentRank

(expr)

すべてのイベントを対象に、0から1までのパーセント順位を返します。

パラメーター
expr number 順位付けに使う式
戻り値 数値
例
allPercentRank(Duration) → パーセント順位(0~1)

値の変化の検出

イベント間で値が変化したタイミングを検出します。

changed

(expr)

式の値が直前のイベントと異なる場合にtrueを返します。

パラメーター
expr any 変化を確認する式
戻り値 ブール値
例
changed(Resource) → 直前のイベントから担当者が変わった場合はtrue

caseChanges

(expr)

ケース内のすべてのイベントにおける値の変化回数を数えます。

パラメーター
expr any 変化を確認する式
戻り値 数値
例
caseChanges(Resource) → ケース内の担当者引き継ぎ回数
注意事項

Athenaを使用する式ではまだ利用できません。バックエンドのクエリでは、派生属性でchanged(expr)とcaseCountIf(...)を組み合わせてください。

条件付き累積集計

現在のイベントまでを対象に、条件付きの累積集計を計算します。

caseRunningSumIf

(expr, condition)

現在のイベントまでを対象に、条件付きの累積合計を計算します。

パラメーター
expr number 合計する式
condition boolean イベントを絞り込む条件
戻り値 数値
例
caseRunningSumIf(Amount, Status == "Paid") → StatusがPaidのイベントにおけるAmountの累積合計

caseRunningCountIf

(condition)

現在のイベントまでを対象に、条件付きの累積件数を計算します。

パラメーター
condition boolean 件数を数える条件
戻り値 数値
例
caseRunningCountIf(Activity == "Error") → Errorアクティビティの累積件数

caseRunningAvgIf

(expr, condition)

現在のイベントまでを対象に、条件付きの累積平均を計算します。

パラメーター
expr number 平均する式
condition boolean イベントを絞り込む条件
戻り値 数値
例
caseRunningAvgIf(Duration, Priority == "High") → 優先度の高いイベントの実行中平均時間

経過時間のプロパティ

ケース内の進捗と経過時間を測定するプロパティです。

elapsedSinceStart

Property

ケース開始からの経過時間(ミリ秒)。

Type number

remainingInCase

Property

ケース終了までの残り時間(ミリ秒)。

Type number

percentComplete

Property

ケースの進捗を0から1までの割合で表します。

Type number

条件付き集計関数の拡張

中央値、標準偏差、個別の値の件数を求める追加の条件付き集計関数です。

caseMedianIf

(expr, condition)

条件を満たすケース内のイベントを対象に、条件付き中央値を計算します。

パラメーター
expr number 値の式
condition boolean 絞り込み条件
戻り値 数値
例
caseMedianIf(Amount, Activity == "Review") → Reviewアクティビティの金額の中央値

allMedianIf

(expr, condition)

条件を満たすすべてのイベントを対象に、条件付き中央値を計算します。

パラメーター
expr number 値の式
condition boolean 絞り込み条件
戻り値 数値
例
allMedianIf(Amount, Status == "Complete") → 完了したイベント全体の中央値

caseStdDevIf

(expr, condition)

ケース内のイベントを対象に、条件付き標準偏差を計算します。

パラメーター
expr number 値の式
condition boolean 絞り込み条件
戻り値 数値
例
caseStdDevIf(Duration, Activity == "Review") → ケース内のReviewアクティビティの所要時間の標準偏差

allStdDevIf

(expr, condition)

すべてのイベントを対象に、条件付き標準偏差を計算します。

パラメーター
expr number 値の式
condition boolean 絞り込み条件
戻り値 数値
例
allStdDevIf(Amount, Priority == "High") → 優先度が高いイベント全体の標準偏差

caseCountDistinctIf

(expr, condition)

ケース内のイベントを対象に、条件に合う個別の値の件数を数えます。

パラメーター
expr any 値の式
condition boolean 絞り込み条件
戻り値 数値
例
caseCountDistinctIf(Category, Amount > 100) → 金額が大きいカテゴリの個別件数

allCountDistinctIf

(expr, condition)

すべてのイベントを対象に、条件に合う個別の値の件数を数えます。

パラメーター
expr any 値の式
condition boolean 絞り込み条件
戻り値 数値
例
allCountDistinctIf(User, Department == "Sales") → 営業部門のユーザーの個別件数

実行中集計関数の拡張

中央値、標準偏差、条件付き最小値・最大値を求める追加の実行中集計関数です。

caseRunningMedian

(expr)

現在のイベントまでの値の実行中中央値。

パラメーター
expr number 値の式
戻り値 数値
例
caseRunningMedian(Amount) → 金額の実行中中央値

caseRunningStdDev

(expr)

現在のイベントまでの実行中標準偏差。

パラメーター
expr number 値の式
戻り値 数値
例
caseRunningStdDev(Amount) → 実行中標準偏差

caseRunningMinIf

(expr, condition)

現在のイベントまでの条件付き実行中最小値。

パラメーター
expr number 値の式
condition boolean 絞り込み条件
戻り値 数値
例
caseRunningMinIf(Amount, Activity == "Review") → Reviewアクティビティの金額の実行中最小値

caseRunningMaxIf

(expr, condition)

現在のイベントまでの条件付き実行中最大値。

パラメーター
expr number 値の式
condition boolean 絞り込み条件
戻り値 数値
例
caseRunningMaxIf(Amount, Priority == "High") → 優先度が高いイベントの実行中最大値

6. JSON関数

JSONの値の抽出

パス式を使ってJSON文字列から値を抽出します。

jsonExtract

(json, path)

JSONPath式を使ってJSON文字列から値を抽出します。

パラメーター
json string JSON文字列
path string JSONPath式(例:"$.field")
戻り値 任意の型
例
jsonExtract("{\"name\":\"John\"}", "$.name") → John

jsonValue

(json, path)

JSON文字列からスカラー値を文字列として抽出します。

パラメーター
json string JSON文字列
path string JSONPath式
戻り値 文字列
例
jsonValue("{\"age\":30}", "$.age") → "30"

jsonArrayLength

(json)

JSON配列の長さを返します。

パラメーター
json string JSON配列の文字列
戻り値 数値
例
jsonArrayLength("[1,2,3]") → 3

7. 関連トピック

プロセスをより良く設計し、つながりのあるアーキテクチャを構築して、管理を続けましょう。

クレジットカード不要、待ち時間なしですぐにご利用いただけます。組織の業務の進め方を、明確につながるプロセス設計として可視化します。

プロセスアーキテクチャを構築し、オーナーシップと統制を定め、あらゆる階層で役割と責任を明確にします。

無料トライアルを開始して、プロセスのガバナンス、管理、継続的な改善を支える信頼できる基盤を築きましょう。