式の使用
式を使用して、データ・オブジェクトに格納されているデータの評価と計算を実行します。
データ・アソシエーションの構成時およびユーザー・タスクのプロパティの構成時に式を作成できます。
式の作成
-
式を作成するには、ユーザー・タスクのプロパティ・フィールドから
をクリックします。 これにより、式モードが有効になり、式を作成および構築するためのオートコンプリート・オプションを提供するインライン式ビルダーを使用できます。 式を使用して、タスク・タイトル、サマリー、期日および割当先を動的に決定できます。
-
データ関連付けの構成中に式を作成するには、データ関連付けエディタの入力または出力フィールドに式を直接入力します。 式を作成および構築するためのオートコンプリート・オプションを提供するインライン式ビルダーを使用できます。
式に関する注意事項
- データ・オブジェクト、演算子および関数を使用して式を作成します。 式フィールドにカーソルを置くと、式を作成できる推奨オブジェクトのリストが表示されます。
- オブジェクトを選択すると、次のレベルの関連する提案がフィールドの下に表示されます。 提案はコンテキスト依存です。 たとえば、「タイトル」フィールドに表示される提案は、「期日」フィールドの提案とは異なります。
- Ctrlを押しながらSpaceを押して、タブと提案をさらに追加します。 また、検索フィールドが表示され、「プロセス」や「アクティビティ」などの様々なタブでデータ・オブジェクトを検索できます。
- 式フィールドに入力される予定のタイプは、フィールドの右上に自動提示されます。
- 式が無効な場合、たとえば文字列フィールドに数値を入力すると、エラーの詳細を示すエラー・メッセージが表示されます。
- 構成された式が長すぎる場合は、Ctrlキーを押しながらEnterキーを使用してフィールドを展開します。
単純式
単純な式は、基本的な式言語およびサポートを使用して定義されます。 通常、単純な式では、ワークフロー内のデータ・オブジェクトに基づいて計算が実行されます。 データ・オブジェクトの値を使用して式および条件を記述することができますが、データ・オブジェクト内の値を明示的に変更することはできません。
次に、演算子を使用した式の例を示します。
-
totalAmount - discount -
activationCount > 3 -
unitsSold <= 1200
演算子の優先度
演算子の優先度は、コンパイラが演算子を評価する順序を定義します。 カッコを使用して式での演算子の優先度を変更できます。
-
加算、減算
-
乗算、除算、余り
-
プラス、マイナス
-
より小さい、より大きい、以下、以上
-
等しい、等しくない
-
否定
-
条件付きAnd
-
条件付きOr
次の各項では、タイプごとの演算子および関数を示します。
単項
| 演算子 | 名前 | 説明 |
|---|---|---|
| + | プラス | 数値オペランドの値には影響しません。 特定の値が正の数であることを明示的に示すために使用されます。 |
| - | マイナス | 演算式を否定します。 |
| ! | 否定 | 論理完全演算子です。 ブール式の値を否定します。 |
平等と関係
| 演算子 | 名前 | 説明 |
|---|---|---|
| = または == | 等しい | 最初のオペランドと2番目のオペランドが等しい場合にtrueを返します |
| != | 等しくない | 最初のオペランドと2番目のオペランドが等しくない場合にtrueを返します |
| > | より大きい | 最初のオペランドが2番目のオペランドより大きい場合にtrueを返します |
| >= | 以上 | 最初のオペランドが2番目のオペランドより大きいか等しい場合にtrueを返します |
| < | より小さい | 最初のオペランドが2番目のオペランドより小さい場合にtrueを返します |
| <= | 以下 | 最初のオペランドが2番目のオペランドより小さいか等しい場合にtrueを返します |
条件
| 演算子 | 名前 | 説明 |
|---|---|---|
| および | 条件付きAnd | 両方のオペランドがtrueに評価された場合にtrueを返します |
| または | 条件付きOr | どちらかのオペランドがtrueに評価された場合にtrueを返します |
String
| Function/Operator | 説明 | 式の使用方法 | 使用結果 |
|---|---|---|---|
| + | 文字列の連結 | "pine" + "apple" | "pineapple" |
| == | 等しい | "apples" == "apples" | true |
| != | 等しくない | "apples" != "oranges" | true |
| > | より大きい | "word" > "work" | false |
| >= | 以上 | "work" >= "work" | true |
| < | より小さい | "word" < "work" | true |
| <= | 以下 | "work <= "work" | true |
| contains | 最初の引数文字列に2番目の引数文字列が含まれる場合にtrueを返し、それ以外はfalseを返します | "caramel".contains("ram") | true |
| endsWith | 最初の引数文字列が2番目の引数文字列で終わる場合にtrueを返し、それ以外はfalseを返します | "immutable".endsWith("table") | true |
| length | 文字列の文字の数を返します | "house".length() | 5 |
| lowerCase | 引数内のすべての文字を小文字に変換して文字列を返します | "Example".lowerCase() | "example" |
| startsWith | 最初の引数文字列が2番目の引数文字列で始まる場合にtrueを返し、それ以外はfalseを返します | "caramel".startsWith("car") | true |
| substring | 最初の引数の部分文字列(2番目の引数で指定した場所から文字列の最後まで)を返します | "care".substring(2) | "are" |
| substring | 最初の引数の部分文字列(2番目の引数で指定した場所から、3番目の引数で指定した長さ)を返します | "care".substring(1,3) | "car" |
| upperCase | 引数内のすべての文字を大文字に変換して文字列を返します | "Example".upperCase() | "EXAMPLE" |
| replaceAll | 指定されたパターンに一致するこの文字列の各部分文字列を、指定された置換に置き換えます。 | "care".replaceAll("e", "t") | "cart" |
| indexOf | 指定された部分文字列の最初の出現のインデックスを返します。そうでない場合は -1を返します。 | "care".indexOf("a") | 2 |
数値
次の表に、IntegerとNumberの両方の演算子を示します。
| 演算子 | 説明 | 式の使用方法 | 使用結果 |
|---|---|---|---|
| + | 加算 | 2 + 8 | 10 |
| - | 減算 | 7 - 4 | 3 |
| * | 乗算 | 3 * 4 | 12 |
| / | 除算 | 3 / 2 | 1.5 |
| % | 余り | 3 % 2 | 1 |
| == | 等しい | 12 == 13 | false |
| != | 等しくない | 12 != 13 | true |
| > | より大きい | 15 > 16 | false |
| >= | 以上 | 15 >= 15 | true |
| < | より小さい | 12 < 10 | false |
| <= | 以下 | 12 <= 12 | true |
| abs | 数の絶対値を返します | abs(- 6) | 6 |
上記の他に、Numberでも次の特定の演算子を使用できます。
| 演算子 | 説明 | 式の使用方法 | 使用結果 |
|---|---|---|---|
| floor | 引数以下の整数の最大の(正の無限大に最も近い)数を返します | floor(5.60) | 5 |
| ceil | 引数以上の整数の最小の(負の無限大に最も近い)数を返します | ceil(5.60) | 6 |
| round | 引数に最も近い整数である数を返します | round(5.60) | 6 |
日付と時間
日付および時間タイプには、Date、TimeおよびDateTimeがあります。 これらすべてに次の演算子があります。
| 演算子 | 説明 |
|---|---|
| + | 加算(2番目の引数が期間の場合にのみ有効) |
| - | 減算(2番目の引数が期間の場合にのみ有効) |
| == | 等しい |
| != | 等しくない |
| > | より大きい |
| >= | 以上 |
| < | より小さい |
| <= | 以下 |
| format | 提供された書式ピクチャを使用して、日時の書式設定された文字列を返します |
また、Date、TimeおよびDateTimeには、それぞれにリストされている特定の演算子があります。
日付
| 演算子 | 説明 |
|---|---|
| year | 日時引数の年コンポーネントを表す数を返します。 |
| month | 日時引数の月コンポーネントを表す数を返します。 |
| day | 日時引数の日付コンポーネントを表す数を返します。 |
時間
| 演算子 | 説明 |
|---|---|
| 時間 | 日時引数の時間コンポーネントを表す、0から23の間(両端を含む)の数を返します |
| 分 | 日時引数の分コンポーネントを表す、0から59の間(両端を含む)の数を返します。 |
| 秒 | 日時引数の秒コンポーネントを表す、0から59の間(両端を含む)の数を返します。 |
DateTime
| 演算子 | 説明 |
|---|---|
| year | 日時引数の年コンポーネントを表す数を返します。 |
| month | 日時引数の月コンポーネントを表す数を返します。 |
| day | 日時引数の日付コンポーネントを表す数を返します。 |
| 時間 | 日時引数の時間コンポーネントを表す、0から23の間(両端を含む)の数を返します。 |
| 分 | 日時引数の分コンポーネントを表す、0から59の間(両端を含む)の数を返します。 |
| 秒 | 日時引数の秒コンポーネントを表す、0から59の間(両端を含む)の数を返します。 |
| timezone | UTCからの時間オフセットを表す、区間値を返します。 |
| toTimezone |
指定されたタイムゾーンIDに対応する時間オフセットで表される日時を返します。 タイムゾーンIDを指定するには、次のオプションがあります:
ノート: タイムゾーンID値を二重引用符で囲む必要があります。タイムゾーンIDの詳細は、Javaプラットフォーム・ドキュメントの「クラスZoneId」を参照してください。 |
Boolean
| 演算子 | 説明 | 式の使用方法 | 使用結果 |
|---|---|---|---|
| == | 等しい | true == true | true |
| != | 等しくない | true != false | true |
| および | 条件付き - And | true and false | false |
| または | 条件付き - Or | true or false | true |
| not | ブール式の値を反転する論理完全演算子 | not true | false |
期間
| 演算子 | 説明 |
|---|---|
| == | 等しい |
| != | 等しくない |
| > | より大きい |
| >= | 以上 |
| < | より小さい |
| <= | 以下 |