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








