はじめに

カスタマインでは、kintoneのユーザー選択フィールドの値をダイアログを表示してユーザーに選択させ、選択された値をレコードの一括更新などの様々な処理で利用できます。


そういった場合に利用する「やること」として「ユーザーをリストから選択するダイアログを表示する」がありますが、

このやることの「選択肢となるユーザーのリスト」に指定可能なのは1つのユーザー選択フィールドの値か、「グループ(ロール)に所属するユーザーを取得する」などのユーザーのリストを返す「やること」のアクションの結果を指定する必要があるため、一覧画面では使用が難しいです。


この記事では、社員名簿などのアプリにユーザー選択フィールドが配置されており、1レコードに1ユーザーが登録されているレコードを取得し、ダイアログで表示して選択する方法をご紹介します。


ダイアログの選択肢の元になる社員名簿アプリ:


なお、詳細画面などでグループ選択フィールドで指定されたグループに所属するユーザーや、固定のユーザーをダイアログの選択肢として表示する方法については下記の記事をご覧ください。

「ユーザーをリストから選択するダイアログを表示する」のユーザーリスト指定方法


この記事では、下記の2パターンをご紹介します。


やること「ユーザーをリストから選択するダイアログを表示する」を使用する例

やること「ユーザーをリストから選択するダイアログを表示する」の「選択肢となるユーザーのリスト」に、社員名簿アプリから取得したレコードのユーザー選択フィールドの値を表示し、選択可能にします。


なお、この方法であれば、複数のユーザーを選択してユーザー選択フィールドに値のセットが可能です。



まず、一覧画面に「ボタンをメニュー位置に配置する」でボタンを配置し、条件「ボタンを押した時」に社員名簿アプリのレコードを取得します。

下記の例では「全レコードを取得する」を使用していますが、「条件を組み立ててレコードを取得する」などでも問題ありません。


次に、やること「キーを指定してレコードを取得する」でテキストテンプレートを保存したアプリのレコードを取得します。


テキストテンプレートの内容

テキストテンプレートを管理するアプリには、下記のようなテンプレートを用意して保存してください。

このテンプレートは、取得したレコード内のユーザー選択フィールドの値を、JSON形式に変換するためのものです。


テキストテンプレートの記載方法は、「テキストテンプレートの記述方法」をご確認ください。


コピーが可能となるように、テンプレートの内容は下記をご参考にご記載ください。

※「ユーザー選択」の部分は、実際に利用されるアプリのユーザー選択フィールドのフィールドコードを指定してください。


[

$FOR レコード IN @

$FOR ユーザー IN レコード.ユーザー選択

{

"code":"${ユーザー.code}",

"name":"${ユーザー.name}"

},

$END

$END


JSONの読み込み

上記のテンプレートを元に、やること「テンプレートをもとにテキストを生成する」でレコードからJSON文字列を生成し、

やること「JSONを読み込む」でリストで利用するために読み込みます。

なお、このとき、「JSON文字列」には下記のようにご指定ください。


${left($4,count($4)-2)}]


「$4」の部分は、やること「テンプレートをもとにテキストを生成する」のアクション番号です。

この式は、やること「テンプレートをもとにテキストを生成する」で生成したJSONの最後の「,(カンマ)」が不要なので削除するための式です。


最後に、やること「ユーザーをリストから選択するダイアログを表示する」で「JSONを読み込む」のアクションの結果を表示します。


ダイアログで選択した値は、ユーザー選択フィールドへのマッピングで使用できます。

複数のユーザーをまとめて選択してセットする事が可能です。


以上が、やること「ユーザーをリストから選択するダイアログを表示する」でレコードから取得したユーザー選択フィールドの値を表示し選択する手順です。


やること「レコードの一覧をポップアップで表示する」を使用する例

こちらの方法の場合、選択可能なユーザーは1名だけですが、カスタマイズはシンプルです。


まず、一覧画面に「ボタンをメニュー位置に配置する」でボタンを配置し、条件「ボタンを押した時」に社員名簿アプリのレコードを取得します。

下記の例では「全レコードを取得する」を使用していますが、「条件を組み立ててレコードを取得する」などでも問題ありません。



やること「レコードの一覧をポップアップで表示する」で社員名簿のレコードを表示する際に、
「表示するフィールド」にユーザー選択フィールドを指定し、「選択方法」に単一選択(ラジオボタン)を指定してください。


※「選択方法」に複数選択(チェックボックス)を指定して複数ユーザーを選択しても、選択したユーザー(レコード)の内1ユーザーしかセットできません。


ダイアログで選択した値は、ユーザー選択フィールドへのマッピングで使用できます。


以上が、やること「レコードの一覧をポップアップで表示する」でレコードから取得したユーザー選択フィールドの値を表示し選択する手順です。


ご不明な点がございましたら、チャットでお問い合わせください。

Customineドキュメントサポートページも、ぜひご活用ください。