数式
データフロープラグインでは、データ変換の変換方法や、レコード抽出の数式フィルターで数式を使用できます。フィールド値を組み合わせた計算、文字列加工、条件判定などを、データフローの処理途中で行えます。
サポート関数、演算子、配列定数、空のフィールドの扱いなど、数式の基本仕様は計算プラグインと同様です。関数ごとの詳細は、計算プラグインのサポート関数一覧を参照してください。
数式の基本書式
数式は、Excel ライクな関数や演算子を使って記述します。
- 文字列は
"(ダブルクォーテーション)で囲みます。 - 式中の半角スペースは無視されます。ただし、文字列中の半角スペースは除きます。
- フィールドコードは
"などで囲まず、直接記述します。 - 先頭の
=は省略して記述します。実行時には=が付いていても評価されますが、入力時の検証ではエラー表示される場合があります。
例:
CONCAT(会社名, " ", 担当者名)
IF(金額 >= 100000, "高額", "通常")
数式入力フォームでは、関数名やフィールドコードの補完を利用できます。候補を使うことで、フィールドコードの入力間違いや関数名の表記ゆれを減らせます。
数式に含めることができるフィールド
数式には、データフロー上で扱っているフィールドを指定できます。
主に次のようなフィールドを指定できます。
- 数値
- 文字列(1行)
- 文字列(複数行)
- ドロップダウン
- ラジオボタン
- 計算
- 日付
- 日時
- 時刻
- 作成日時
- 更新日時
- チェックボックス
- 複数選択
- レコード番号
データフロープラグインでは、計算プラグインとは異なり、レコード番号を数式に指定できます。
また、データ変換で「変換対象のフィールド」と同じフィールドを数式内に指定できます。たとえば、既存の文字列(1行)フィールドを対象にして、そのフィールド自身の値を使って表記ゆれ修正や文字列連結を行えます。
関連レコード一覧内のフィールドは、データフロープラグインの数式には指定できません。
未入力フィールド(空値)の数値評価仕様
数式内で数値型または計算フィールドを参照する場合、そのフィールドに値が入力されていない(空値である)ときは、自動的に 0(ゼロ)として扱われて数式が評価されます。
これは、kintoneの標準の「計算」フィールドにおける未入力値を 0 として扱う仕様に合わせた挙動です。
- 評価例:
- 数値フィールド(未入力)に対して
100を加算する数式(数値フィールド + 100)を実行した場合、0 + 100とみなされ、計算結果は100となります。 - 数値フィールド(未入力)が 0 以上であるかを判定する数式(
数値フィールド >= 0)を実行した場合、0 >= 0とみなされて判定結果はTRUE(真)になります。
- 数値フィールド(未入力)に対して
テーブル内フィールドの扱い
数式にテーブル内フィールドを含める場合、変換対象やフィルター対象との位置関係によって、同一行の値として扱うか、配列として扱うかが変わります。
配列として扱われる場合
次の場合、テーブル内フィールドは配列として扱われます。
- データ変換の変換対象がテーブル外のフィールドで、数式にテーブル内フィールドを含めた場合
- レコード抽出の数式フィルターで、数式にテーブル内フィールドを含めた場合
- データ変換の変換対象がテーブル内のフィールドで、数式に異なるテーブル内のフィールドを含めた場合
配列として扱われる場合は、SUM、COUNT、TEXTJOIN など、配列を扱える関数と組み合わせて使用します。
同一行の値として扱われる場合
次の場合、テーブル内フィールドは同一行の値として扱われます。
- データ変換の変換対象がテーブル内のフィールドで、数式に同じテーブル内のフィールドを含めた場合
- テーブル内フィルターの数式フィルターで、数式に同じテーブル内のフィールドを含めた場合
この場合、各テーブル行ごとに同じ行の値を使って数式が評価されます。たとえば、同じテーブル内の 数量 と 単価 を使って 数量 * 単価 を計算できます。
例
同じテーブル内の 小計 を変換対象にする場合、同じ行の 数量 と 単価 を使って行ごとに計算します。
| 数量(テーブル内) | 単価(テーブル内) | 数式:数量 * 単価 の結果(小計) |
|---|---|---|
| 2 | 100 | 200 |
| 5 | 50 | 250 |
一方、テーブル外の 合計金額 を変換対象にする場合、テーブル内の 小計 は列全体の配列として扱われます。この場合は、SUM(小計) のように配列を扱える関数で集計します。
| 変換対象 | 数式 | 結果 |
|---|---|---|
| 合計金額(テーブル外) | SUM(小計) |
450 |
区切り文字について
数式の結果をチェックボックスや複数選択などの複数値フィールドに設定する場合、値を分割するための区切り文字は、数式内ではなくデータ変換プロセッサーの設定として扱います。
区切り文字が必要な変換を行う場合は、データ変換の設定を確認してください。
契機パラメーターの参照
データフロープラグインでは、ジョブの実行契機(各種イベントや詳細画面の実行ボタンなど)となった元のレコード値や、実行時のシステム情報を数式内で動的に参照・注入できます。
詳しくは契機パラメーターを参照してください。
注意事項
サポートされていない関数や不正な書式を含む数式は、設定時にエラー表示されます。実行時に評価できない場合、データ変換では空値として扱われたり、文字列系フィールドに#VALUE!などのエラー文字列が設定されたりすることがあります。数式フィルターでは対象外として扱われることがあります。処理対象のフィールド値が空の場合や、想定した型と異なる場合にも結果が変わることがあるため、運用前にプレビューやテスト実行で確認してください。