「なにもしない」でカスタマインらしさを無視する

# 結論
条件が「他のアクションの実行が完了した時」以外の場合、やることはすべて「なにもしない」にする！  
というマイルールをご紹介します。

## 私の経歴
kintone歴は1年半ほどです！もともとはプログラム開発をしていましたが、最近はカスタマインしか触っていません！  
アドベントカレンダーへの参加は今回が初めてです。よろしくお願いします。

## 目次
- [カスタマインを使っているときの私の悩み](#カスタマインを使っているときの私の悩み)
- [カスタマインらしさとは](#カスタマインらしさとは)
- [お悩みその1の解決策：アクショングラフで条件分岐を見やすくする](#お悩みその1の解決策アクショングラフで条件分岐を見やすくする)
- [お悩みその2の解決策：アクションの構造はそのままで、画面上にて処理状況を確認する](#お悩みその2の解決策アクションの構造はそのままで画面上にて処理状況を確認する)
- [お悩みその3の解決策：「なにもしない」を入れておけば、アクションの追加が簡単に](#お悩みその3の解決策なにもしないを入れておけばアクションの追加が簡単に)
- [まとめ](#まとめ)

---

## カスタマインを使っているときの私の悩み
1. **カスタマイズが長く複雑になり、次の日に見てもわからず絶望する**  
2. **処理がどこまで進んでいるのか、意図通りに動いているのかがわかりにくい**  
3. **アクションとアクションの間に、後からアクションを追加しづらい**

---

## カスタマインらしさとは
カスタマインらしいカスタマイズとは、シンプルなアクションで、カスタマイズの画面を見ただけで何をやっているのか分かるくらいのカスタマイズです。  
そのほうがメンテナンスもしやすいし、良いですよね。まさに「Keep it simple, stupid.」という考え方です。

ただし、やろうと思えばどこまでも作り込めてしまうのがカスタマインの良さでもあり、悩ましいところです。  
途中から楽しくなりすぎて、結果的に複雑怪奇なものが出来上がってしまう…というのは、半分冗談で半分本当です。

そこで、「なにもしない」を使うことで、このような悩みを解決していきます。

---

## お悩みその1の解決策：アクショングラフで条件分岐を見やすくする
例えば、このようなアプリがあるとします。  
![00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270775/9ce89ef8-774d-db01-74ad-f7775d5a5bd3.png)
ドロップダウンの値が『計算する』の場合にボタンを押すと、数値Aと数値Bの足し算結果を計算結果フィールドに書き込みたいとします。（自動計算でやれっていうのはなしで）

素直に書くと、このようなカスタマイズになります。  
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270775/c201a9b8-05a7-456b-bd6d-6f1eb37aa159.png)

アクショングラフはこちらです。  
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270775/ed92fddb-1f82-9852-edbe-35c1dfa997a9.png)  

実行すると、このような結果が得られます。  
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270775/9dd9fe91-8c1d-75be-fa85-db90268624a5.png)


ボタンを押すとドロップダウンの値を確認し、フィールドに値をセットするという流れが1つのアクションで完結しています。  
これは、カスタマインらしさが全面に出たシンプルな作りです。

ただし、このようにマイルールに沿って「なにもしない」をカスタマイズに組み込むと、条件分岐が増えてカスタマイズ画面は複雑化しますが、、
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270775/8c00ec27-eb2e-c704-4410-17ad5d8e7312.png)

アクショングラフはこのようになります。
![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270775/c19c93e5-bbfe-5e0f-7fa8-8aefe80f07e5.png)

今回のポイントは、「**条件分岐をアクショングラフで見やすくする**」ということです。  
カスタマイズ画面のシンプルさを犠牲にしてでも、「アクショングラフの流れが見やすいこと」に全振りしてます。

処理が複雑になればなるほど、カスタマイズを理解するうえで頼りになるのは結局アクショングラフなんです。（個人の感想）

いやいや、条件分岐を見やすくするだけなら、「なにもしない」を使う必要ないやろ！っていう突込みがありそうですが、それはお悩み２、３を踏まえてのことです。

---

## お悩みその2の解決策：アクションの構造はそのままで、画面上にて処理状況を確認する
見出しの日本語が下手すぎて消えたくなるのですが、、、

カスタマインの処理がどこまで進んでいるか、皆さんはどのように確認していますか？  
ブラウザのデベロッパーツールを使いこなせる方は良いのですが、私は以下のような方法をよく使っています：  

- **「情報ダイアログを表示する」でメッセージを表示して確認**  
- **「レコードの一覧をポップアップで表示する」で取得したレコードが想定通りか確認**  

マイルール適用後のカスタマイズでは、「なにもしない」を一時的に「情報ダイアログを表示する」に置き換えることで、アクションを崩さずに確認用メッセージを出せます。

例えば、先ほどの条件分岐部分、アクション14の「なにもしない」を
![06_0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270775/25dee981-dd8e-60ed-85ac-2caba54efb2e.png)

このように変更します。  
![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270775/d5857cff-7394-097d-c6df-93468c064a95.png)

すると、条件が「計算する」に該当したタイミングで画面上にメッセージが出力され、処理が意図通り進んでいることやフィールドの値が正しく取得できていることを確認できます。
![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270775/a41234d7-c445-e561-f263-8626bbf8c5f8.png)

確認が終われば、再度「なにもしない」に戻せば良いだけ、という点もポイントです！  

単純な例ではあまりメリットを感じないかもしれませんが、条件分岐が複雑に絡む場合、現在の処理状況や扱っている値を確認できると、不具合の切り分けが容易になり、とても便利です！

---

## お悩みその3の解決策：「なにもしない」を入れておけば、アクションの追加が簡単に
例えば、「なにもしない」を使っていないカスタマイズでボタンを押した際にメッセージを表示したい場合を考えます。  
メッセージを入れる前の状態。
![08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270775/70a3035c-b8ed-71c7-5ab5-4ddb68d5e13b.png)

通常の手順では、次のような作業が必要になります：  
1. アクション2を複製  
2. アクション2を「情報ダイアログを表示する」に変更  
3. 複製したアクション15の条件を「他のアクションの実行が完了した時」に変更  
4. アクション15の条件パラメータを2に変更  
5. アクション15の「フィールド値が特定の値ならば」という条件を削除  
6. アクション3の条件パラメータを15に変更  

この手順を経て、ようやくこのようなカスタマイズになります。  
![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270775/f9207661-31c8-07ed-2cad-b2b287d138b0.png)

一方、「なにもしない」を事前に組み込んでおいた場合、
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270775/2df390d8-c662-4e99-d5c5-d2f0ec1b8dbc.png)

このように作業が簡略化されます：  
1. アクション5と13の間に「情報ダイアログを表示する」を挿入  
2. 挿入したアクション16の条件を「他のアクションの実行が完了した時」に変更  
3. アクション16の条件パラメータを5に変更  
4. 後続のアクション13、14の条件パラメータを16に変更  

メッセージ追加後がこちら。  
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270775/15ab0a0f-d423-7384-f5d8-15360eee16c8.png)

手順が減り、追加したアクション以外の修正は条件のパラメータだけで済みます。  
これにより、処理を後から追加しやすくなるので、条件分岐など大枠の構造を先に作り、枝葉部分を後から埋めるという作り方が可能になります。

---

## まとめ
これらの悩みを「なにもしない」を活用して解決する方法をご紹介しましたが、いかがでしたでしょうか？  
ある程度複雑なカスタマイズになりそうな場合は、ぜひ試してみてください。  

ただし、そもそもカスタマインらしくない**複雑なアクションを組まないのが一番**です。

ちなみに、例外もあります。それが、**テーブルの行を特定して処理を行う場合**です。  
テーブルの行を特定するような条件と組み合わせることで、特定の行だけフィールドの値をセットするなどのことができるのですが、この場合は**やること**と**行を特定する条件**を組み合わせることになります！
（参考：[サポートページリンク](https://support.gusuku.io/ja-JP/support/solutions/articles/36000126504)）

余談
カスタマイズを画像で書き出すと、情報ダイアログのメッセージは空欄になるんですね！
以上です！