カスタマインは、「やること」と「条件」を組み合わせてカスタマイズを作成します。
この「条件」は、下記の2つを指定する役割を持っています。
アクションを実行するタイミング
アクションを実行するかどうか
条件には複数の条件を指定可能です。
「アクションを実行するタイミング」の条件は必ず指定する必要があり、
一番目の条件として指定します。
「アクションを実行するかどうか」の条件の指定は任意で、
二番目以降の条件として指定可能で、複数指定することもできます。
なお、上記の例のように一つのアクションに複数の条件を指定した場合、”すべての条件が満たされた時(いわゆるAND)”にアクションは実行されます。
複数の条件を指定する場合の例は、下記のページをご確認ください。
複数の条件を設定する場合の「かつ(AND)」と「または(OR)」の指定方法は?
「アクションを実行するタイミング」を指定する条件
アクションを実行するタイミングを指定します。
この条件は、アクションの先頭に、一つだけ必ず指定します。
「詳細画面を表示した時」「一覧画面を表示した時」などの画面を表示したタイミングや、
「レコードを保存する直前(削除時は除く)」のような kintone の保存ボタンを押したとき、
カスタマインで作成したボタンを押したタイミングの「ボタンを押した時」など、
様々な条件があります。
指定可能な条件については、下記のカテゴリーでまとめられています。
kintone アプリのカスタマイズ
kintone を開いているユーザーの操作に基づいた条件です。
「イベント」
kintone のイベントに対応した条件です。
画面の表示やフィールドの値が変わったタイミングなどがあります。その他条件
カスタマイン独自の条件です。
カスタマインで作ったボタン・タブが押された時や、
カスタマイズの順番を指定する「他のアクションの実行が完了した時」などが含まれます。プラグイン連携
カスタマインと連携している外部サービスのための条件です。
外部サービスの画面を表示した時などの条件が含まれます。
Job Runner のカスタマイズ
その他条件
「実行予定時刻になった時」「Webhook を開始した時」など、Job Runner 独自の条件が用意されています。
Job Runner はユーザーの操作に基づいて動作するカスタマイズではなく、
毎時・毎日など決まった時間になったら動作するカスタマイズや、
kintone アプリの Webhookの通知を受け取って実行するカスタマイズを作成できます。
「実行予定時刻になった時」は定期実行タスクでスケジュールで指定された実行時刻になった時を指定するための条件で、
「Webhook を開始した時」は kintone アプリの Webhook のカスタマイズで、 kintone からの Webhook の通知を受け取った時を指定する条件です。
「アクションを実行するかどうか」を指定する条件
カスタマインではこの条件のことを「追加条件」と呼びます。
この条件の役割は、アクションを実行するかどうかを指定することで、プログラミングにおけるIF文の役割を担います。
たとえば、フィールドの値を条件にする「フィールド値が特定の値ならば」、「フィールド値が空ならば」や、
カスタマインのアクションの実行結果を条件にする「アクションの結果が特定の値ならば」、
操作が行われたのがどの画面かを条件にする「現在の画面が追加画面ならば」などがあります。
指定可能な条件については、下記のカテゴリーでまとめられています。
kintone アプリのカスタマイズ
「画面」(追加条件)
追加画面・編集画面・一覧画面など複数の画面で行われる可能性がある操作で、特定の画面のときだけ処理を行いたいときに使用します。「フィールド条件」(追加条件)
フィールドの値や、フィールドのアクセス権によってフィールドが閲覧可能かどうか、などの条件を指定したいときに使用します。
Job Runner のカスタマイズ
「フィールド条件」(追加条件)
kintone アプリのカスタマイズと同様に、フィールドの値などを条件に指定できます。「Webhook」(追加条件)
kintone アプリの Webhook のカスタマイズで使用する条件です。
Webhook の通知 の種類によってカスタマイズを分けたい場合に使用します。「その他条件」(追加条件)
他のカテゴリーに分類できない条件がまとめられています。
「アクションの結果が特定の値ならば」「ステータスが特定の値ならば」などがあります。
条件の順番
一つのアクションに複数の条件を指定する場合、条件は上から順番に評価されます。
条件の組み合わせによっては、指定する順番を誤ると想定通りに動かず、エラーになってしまう場合があります。
たとえば下記のような条件を指定している場合を例にとります。
カスタマインの条件は上から順番に評価されますので、1、2、3の順に評価されます。
上記のように条件「レコードを保存する直前(削除時は除く)」と「ステータスが特定の値ならば」を組み合わせて使用する場合、
追加画面でレコードを保存すると下記のようなエラーが表示されます。
このエラーは、条件「ステータスが特定の値ならば」を追加画面で使用したことにより発生しています。
条件には「現在の画面が追加画面でないならば」を指定しているにもかかわらず、追加画面でこのエラーが表示されるのは、条件の順番が適切ではなく「現在の画面が追加画面でないならば」より先に「ステータスが特定の値ならば」が評価されてしまうことに起因します。
追加画面では「ステータスが特定の値ならば」が評価されることを防ぐために、下記のように条件の順番を変更します。
条件の移動はできないため、一旦「ステータスが特定の値ならば」を削除し、一番下に改めて追加してください。
このように変更すれば、先に「現在の画面が追加画面でないならば」が評価され、
追加画面でなければ「ステータスが特定の値ならば」が評価されますが、
追加画面であれば「ステータスが特定の値ならば」は評価されないため、
「レコード追加画面では使用できないカスタマイズが設定されています。」のようなエラーは表示されなくなります。
条件の反転
一部の条件は、条件を反転して逆の条件にできます。
たとえば、「フィールド値が特定の値ならば」は、反転すると「フィールド値が特定の値でないならば」になります。
反転した条件は、基本的にドキュメントに記載がありません。(※ 一部、「フィールド値が空ならば」「フィールド値が空でないならば」のように反転した条件のドキュメントが存在する条件もあります)
【参考】探している条件が出てこない?
前述の通り、条件の一つ目に指定可能な条件と、二つ目以降に指定可能な条件は種類が異なります。
そのため、カスタマインのカスタマイズで条件を指定する時も、一つ目と二つ目以降では選択肢として表示される条件が異なります。
一つ目の条件
二つ目以降の条件
指定可能な条件が初めから絞り込まれた状態で表示されていますので、探している条件が選択肢に出てこないときは、
その条件が「アクションを実行するタイミング」、「アクションを実行するかどうか」のどちらに該当するのか確認してみてください。