Cybozu developer networkのTipsのURL:

https://developer.cybozu.io/hc/ja/articles/200295019

今回は詳細画面でボタン一つでユーザー選択フィールドを更新するカスタマイズをご紹介します!

例えばタスク管理アプリで、担当者が割り振られていないタスクの中に、自分がやるべきタスクを発見した場合、担当者のフィールドに自分を追加する必要があります。

でも、レコード編集画面を開き、ユーザー選択から自分を選択して保存する、なんて面倒ですよね?最低でも6クリックは必要だと思います。

「担当者に自分を自動で追加する」、言うのは簡単ですが、kintoneアプリをJavaScriptでカスタマイズするのはハードルが高い…。

Customineなら、担当者に自分を追加するボタンが簡単に作れますよ!

Customineの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。


アプリのフォーム

今回のカスタマイズに必要なフィールドは二つです!


フィールド

  • 担当者:ユーザー選択フィールド

  • ボタンを設置するためのスペースフィールド(要素ID:button_space)


やりたいこと

レコード詳細画面に、クリックすると「担当者」にログインユーザーを追加し、レコードを更新するボタンを作成する。


Customineの設定

ボタンの設置

まずは「担当者」の横のスペースにボタンを設置しましょう。


やること

ボタンをスペースに配置する」を使用します。

  • 場所:設置するスペースフィールドを選択します。

  • ラベル:ボタンに表示する文を入力します。今回は「担当者に自分を追加」です。


条件

詳細画面を表示した時」を選択します。


ボタン機能の設定1:ログインユーザーの取得

次はボタンの中身を作っていきます。更新の前に「担当者」フィールドに追加する自分のユーザー情報取得しておく必要があります。


やること

ログインユーザーを取得する」を使用します。今回は別のアクションで「担当者」フィールドに追加するので、「セット先フィールド」は入力しません。


条件

ボタンを押した時」を使用します。


ボタン機能の設定2:担当者にログインユーザーを追加する


やること

フィールドの選択を追加する」を使用します。

  • フィールド:担当者

  • 値:=$(ログインユーザー取得のアクション番号)

フィールドの選択を追加する」は複数の選択肢を選択できるタイプのフィールドで、既に選択していた選択肢を残したまま、まだ選択していない選択肢を選択済みの状態にすることができます。「フィールドに値をセットする」を使った場合は元の値を上書きしてしまうので、必要に応じて使い分けてください。


条件

ログインユーザーの取得に続けて実行したいので、「他のアクションの実行が完了した時」を使用します。


ボタン機能の設定3:画面の再読み込み

実は、ここまでの3アクションでレコード更新が完了しています!

Customine では、詳細画面や一覧画面のように、本来の kintone 画面上ではレコード保存が行われない画面でも、フィールド値を修正するようなアクションを実行すると、自動的にレコードを保存する機能があるんです!

でもあれ?見た目には変化がない…

大丈夫!ページを再読み込みすれば、ちゃんと更新された状態になりますよ!

でもどうせなら再読み込みまで自動でやって 欲しいですよね?

そこで再読み込みのアクションを加えてあげましょう。



やること

画面をリロードする」を使用します。


条件

これも続けて実行したいのですが、今回は「他のアクションの実行が完了した時」ではなく、「レコードが自動的に保存された時」を使用します。

今回のように自動的にレコードが保存された後に別のアクションを行いたい場合は「レコードが自動的に保存された時」を使います。(「他のアクションの実行が完了した時」はレコードの保存より前に実行されてしまうことがあります。)

テスト


上の様に設定が完了したら、「kintoneアプリへ登録」し、動作チェックしてみましょう。

詳細画面でボタンを押すと…?

担当者に自分が追加されましたね!


終わりに

出来るはずなのにうまくいかない!と思っても、そんなときのために別のアクションが用意されていたりします。Customineヘルプサポートで解決のヒントを探してみてください!

色々設定してどんどん便利なアプリにしてくださいね!

もし分からないことがありましたら、フォーラムの方でご質問ください。