公開日:2020-11-04
わだっちです。こんにちは。
前回のつづきとして
Customineカスタマイズをするうえで「どのように想像しながら組み立てていくか」について、例題をもとに書いてみます。
「そもそもCustomineって?」という方はコチラへ
顧客管理⇒案件管理などで、「顧客の情報を引き継いで案件レコードを作成したい」 よくあるやつです。
こんなとき、まずは標準機能で
- 案件管理アプリでルックアップを設定して、顧客管理アプリの情報を取得できるようにする
- 顧客管理アプリでアクションを設定して、アクションボタンで案件管理レコードにキー(ルックアップ)を引き継いだ作成画面に遷移できるようにする
などして、構築を進める事が多いと思います。
ここで、実際にユーザがアプリを操作する状況を想像すると
- 01.「顧客管理アプリで対象の顧客に絞り込んで、アクションボタン押して のステップが多くて面倒くさい」
- 02.「アクションでルックアップのキーは引き継いでくれるけど、結局遷移先の案件管理アプリで取得をクリックしないと保存時にエラーになる」
- 03.「案件管理アプリでルックアップ取得しようとした際に、対象の顧客を絞り込むのがやはり面倒くさい」
- 04.「ファイル読み込みを考慮して、ルックアップのキーになるフィールドは重複不可にしたいけど、それだと顧客名とかは厳しいし、コードにすると全部覚えてられないし、名称+コードにしたらっていうのもちょっと微妙・・・」
などなど、出来る/出来ないのレベルでは出来ているけど、操作性というか、ちょっとした利便性を考慮すると、沢山の「こうなれば良いな」が出てきます。
kintoneの標準機能のみで、すべて「よしなに」解決出来れば良いのですが、残念ながら限界があり、突き詰めた結果「カスタマイズしないと」となる事が多い訳です。
想像できたら、次に「どうカスタマイズすれば便利になるだろうか」を考えることになります。
[01][03]あたりを念頭に、次のような事を考えてみます。
- 案件管理アプリで、特定のキーワードを入力して貰い、「データ取得」のようなボタンを押して貰って、ルックアップのキーとなるフィールドに値を反映してはどうか
- そもそも、ルックアップをやめて、値を直接コピーするようにしてみたらどうか
※例として2つほどあげましたが、ここに「正解」はありません
前者を例に、Customine設定手法の流れを解説します。
最終的にやりたい事は、顧客管理アプリから参照したデータを、案件管理アプリのレコードに反映するという事ですが、まず、「どういったタイミングでカスタマイズを動かそうとしているか」を考えます。
[03]を考慮すると、「もっと簡単にルックアップできたら良いな」なんで、「追加/編集画面」での操作中とします。
編集画面を開くと、「キーワード入力できるフィールド」と「ボタン」とが表示されている必要があり、カスタマイズが動作する起点(タイミング)としては、「ボタン」を押す事で始まる事になりますよね。
「ボタン」はどこから出てくるのかと言えば、kintoneの設定では無く、「カスタマイズ」で表示する事になります。
という訳で、まずは「編集画面が表示されたら、ボタンを表示する」からカスタマイズスタートです。
Customineの「やること」選択画面や、ドキュメントサイトで「ボタン」と検索すると、「ボタンをスペースに配置する」という「やること」が見つかるので、これを設定してみます。
※他にも「ボタンを配置する」の「やること」はひっかかりますが、ここでは省略させて貰います
ドキュメントを見ると、次のように書かれています。
「アプリにボタンを設置するスペースフィールドを配置しておいてください。 スペースフィールドには要素IDを設定しておいてください。」
という事で、kintone側でボタンを配置するための「スペース」を追加します。
追加が終わったら、Customineの「ボタンをスペースに配置する」アクション、「場所」パラメータでそのスペースを指定します。
これで、無事にカスタマイズ動作の起点となるボタンの表示ができました。
次に考えるのは、「ボタンを押したときに何がしたいか」ですがこれは「キーワードに入力された値をもとに顧客管理レコードを参照する」なので、そうできる「やること」を探します。
※ここでは単純に、顧客の名称のみを「キーワード」の対象として参照することを解説します
※「クエリで条件を指定してレコードを取得する」の「やること」を使うと、より便利で複雑な参照にも対応出来るのですが、少し難易度が上がります
「キー(完全一致)」で参照したいのではなく、「キーワード(部分一致)」で参照したい訳なので、「キーを指定してレコードを取得する」の「やること」は適していません。
ですので、一旦「全顧客」のレコードを取得して、取得したレコードから「キーワード」で絞り込むという流れで実装してみます。
「ボタンクリック」⇒「全レコードを取得する」⇒「取得したレコードを絞り込む」でアクションを繋げていきます。
※ここで、「全レコードを取得する」と「取得したレコードを絞り込む」の結果は、どちらも「レコード」であると意識しておきます
ボタンと違って、うまく動いているかの確認がし辛いので、「レコードの一覧をポップアップで表示する」を繋げます。
これに繋げることで、「全レコードを取得する」と「取得したレコードを絞り込む」の結果を視覚的に確認できるようになります。
今回やりたいのは、「キーワード(部分一致)」で参照したい なので、対象となるレコードが複数となる事を想定しておく必要があります。
それに対して、案件として顧客を登録する場合は、1顧客である場合がほとんどであり、今回もその前提です。
という事で、「取得したレコードを絞り込む」の結果として得た複数の候補(レコード)から、一つを選択してもらう必要が出てくる訳ですが、ここでも「レコードの一覧をポップアップで表示する」の「やること」が活躍します。
次に、「ポップアップで候補から一つを選択」しただけでは、何も起こらないので、その選択した「結果のレコード」から、ルックアップフィールドに「値」を反映する「やること」を追加します。
ここまでの全体のカスタマイズはこう↓です。
ボタンを表示 > キーワードで顧客管理データを参照 > 結果をポップアップ表示で、選択させる > 選択結果をもとにフィールドに値反映
ここまでやると、「ああ出来た出来た」と思ってしまいがちです。
間違いではないのですが、[02]の「結局遷移先の案件管理アプリで取得をクリックしないと保存時にエラーになる」が解決していません。ので、それを解決します。
ここまでの流れでルックアップフィールドにキーの値はセットされている状態にできているので、あとは自動的に「取得」が実行されるようにしてやれば良いです。
この場合の「やること」は「ルックアップを取得しなおす」が適しています。 ※「ルックアップ」で検索しましょう
これで、値をセットした後で「取得」も勝手にしてくれるので、[02]も解決ですね。
この「やること」は、アクションから画面遷移した瞬間に、自動で「取得」したいなんていう時にも使えます。
[01]~[04]については、全部解決!(めでたしめでたし)となる場合もあるとは思いますが、ここであらためて使う人の立場になって考えてみます。
- キーワードに何も入力されていない状態でボタン押しちゃう人が居ないかな
- キーワードで参照した結果、候補が無かったなんてことがないかな
- このボタン(ボタン用のスペース)とか、キーワード入力するためのフィールドって、詳細画面では見えちゃうと邪魔じゃないかな
- 1回、顧客を取得できたら、その段階でもう用無しだし画面上見えないほうがよいのかな
- 取得成功していれば、見えないだけじゃなくてキーワードに入力した値も空の状態に戻すほうが良いかな
- いやいやでも、(この顧客取得/選択)を間違う事だってあり得るし、ルックアップをクリアした場合なんかは、またボタン等を表示しないといけないよな
こうした「使う人視点のちょっとした事」が想像できれば、あとはそれぞれ「どう解決できるか」を考えるだけです
<キーワードに何も入力されていない状態でボタン押しちゃう人が居る>
- キーワードに入力あり⇒以降の処理
- キーワードに入力なし⇒アラートを表示して入力をうながす
<キーワードで参照した結果、候補が無かった>
- 結果がある場合⇒問題なく次の処理を実行する
- 結果が無い場合⇒アラートを表示して、そこで処理(カスタマイズ動作)を終わらせる
<詳細画面で見せたくない>
<取得できている状態なら非表示>
<取得成功でキーワードを空に>
<ルックアップをクリアした場合には再度表示>
といった感じで、一つの「やりたいこと」から、利用者目線で、どんどん「使い易く」なるように、バージョンアップしていくことができるのは、プラグインとCustomineとの大きな違いであり、とても価値のある事だと思います。
そして、一見難しそうでも、慣れるとこうした「設定」をしていくのはそれほど「難しい」と感じなくなります。
むしろ、あれこれ考えながら試行を繰り返し、思っていた事が「出来た」ときの嬉しさ、楽しさを強く感じるようになります。
※コードを意識せず、利用者の為に何か出来ることがあって、喜ばれる/成果になるのは双方のモチベーションに繋がります
もちろん、こうした「想像して変えていく」というのは、「独り善がり」では失敗や、人の為にならないケースも多いです。
「こんなはずじゃなかった」とならないよう、少なくとも慣れるまでは、なるべく利用者(第三者)を巻き込んで、少しづつ改善していくことをお勧めします。
それと、「kintone(標準機能)による動作範囲」と「Customineカスタマイズによる動作範囲」とは、ご自身のなかで明確に線引き(理解)できるようになる事をお勧めします。でないと、いざ改修しようとした時に、どこに手を付ければ良いのか、原因がどこにあるのかがわからず、苦労する事も多いと思います。
こうした、ノウハウの習得に時間がかかりそう(難しそう)という方については、「gusuku Boostone」というサービスもあります。
kintoneのノウハウを多く持つ弊社スタッフが、社内でkintoneを使って改善をされている方の右腕となってサポートし、「考え方」「作り方」といった一人でモヤモヤしているとなかなか身に付け辛い「知見」を習得する事ができるサービスので、興味のある方は検討してみてください。
今回、書いてみて思いました。。。長いですよね。
「思考の流れ」を文章化するのって、短くまとめるのが難しいですね(-_-;)
最後まで読んでいただけた方、感謝です。
それではこのへんで。
投稿者プロフィール
-
"kintone「かかりつけ医」「伴走者」「よろず屋」 kintoneに関する提案、構築、相談など幅広く色々やっています。
元ユーザという事もあり、お客様に近い距離でのやり取りを主な生業としています。"
最新の投稿
- gusuku2020年11月4日Customineカスタマイズ時に使う人の操作や思考を想像してみる
- kintone2020年8月31日イメージ(想像)してみよう
- community2019年12月17日大阪初開催! kintone Café JAPAN 2019
- community2019年12月10日視点が変わったCybozu Days