エブリサイトのウィジェット「編集テーブル」に複数の行を入力した際、すべての行ではなく、特定の行だけを kintoneアプリのテーブルに登録したい場合があります。


この記事では、チェックボックスで選択された行だけを絞り込んで、kintoneアプリの新しいレコードのテーブルにセットする方法を紹介します。


動作イメージ

「編集テーブル」のうち、「追加対象」にチェックが入った行だけを kintoneアプリのテーブルにセットします。以下の例では、「商品A」と「商品C」の2行を選択しています。



「登録する」ボタンを押すと、新しい kintoneレコードが作成され、テーブルには選択した「商品A」と「商品C」の2行だけがセットされます。また、テーブル外の「登録名」フィールドには、固定値で「エブリサイトから登録」をセットします。


kintone の設定

【設定例】フォーム

登録先の kintoneアプリには、次のフィールドを配置します。


フィールド名

フィールドコード

フィールドタイプ

備考

登録名

登録名

文字列(1行)


テーブル

テーブル

テーブル


商品名

商品名

文字列(1行)

「テーブル」内フィールド

数量

数量

数値

「テーブル」内フィールド



【設定例】APIトークン

APIトークンを用意します。「アクセス権」は「レコード追加」をチェックします。



エブリサイトの設定

【設定例】接続設定

kintone の設定で取得した APIトークンを設定します。接続設定タブの説明については、次の記事をご覧ください。



※この例では【認証可否】を「認証なしで利用可」にしています。実際に利用する際は、サイトの公開範囲や利用者に応じて設定してください。


【設定例】画面デザイン

画面デザインに2つのタイルを用意します。


上のタイルにはウィジェット「編集テーブル」を配置し、商品名・数量・追加対象を入力できるようにします。

下のタイルにはウィジェット「シンプルパネル」を配置し、登録処理を実行するボタンを設置します。



【設定例】ウィジェット編集

編集テーブル(ウィジェットID:商品入力テーブル)

ウィジェット「編集テーブル」の【列になるアイテム】には、「文字列入力(1行)」・「数値入力」・「単一チェックボックス」の3つを配置します。



各アイテムのパラメーターを次のように設定します。


アイテム

アイテムID

アイテム名

文字列入力(1行)

商品名

商品名

数値入力

数量

数量

単一チェックボックス

追加対象

追加対象


「商品名」と「数量」は、ヘッダーと各セルにアイテム名が重複して表示されないよう、「アイテム名を表示しない」をチェックします。

「追加対象」は、【ラベル】を空欄とし、【編集不可にする】と【初期状態でオンにする】はオフにします。


・商品名

・数量



・追加対象




シンプルパネル(ウィジェットID:登録パネル)

ウィジェット「シンプルパネル」には、アイテム「ボタン(塗りつぶし)」を1つ配置します。



アイテムのパラメーターを次のように設定します。


アイテム

アイテムID

アイテム名

ボタン(塗りつぶし)

登録ボタン

登録ボタン


「登録ボタン」は、【ラベル】に「登録する」と指定します。


・登録ボタン




【設定例】ページ内処理

「登録する」ボタンを押すと、編集テーブルの入力値から「追加対象」にチェックが入った行を絞り込み、kintoneアプリの新しいレコードのテーブルに登録する処理を設定します。


ページ内処理タブの説明については、次の記事をご覧ください。



全体の設定例を下記に示します。


編集テーブルの入力値を取得する

アクション1 では、「登録する」ボタン(登録ボタン)を押した時に、編集テーブル(商品入力テーブル)のすべての行の入力値を取得します。


やること「テーブルやリストウィジェット内の入力値をまとめて取得する」では、テーブルの各行に入力された値を、アイテムID を列名とするレコード形式で取得できます。


 やること「テーブルやリストウィジェット内の入力値をまとめて取得する」

【テーブル】

商品入力テーブル


 条件「ボタンを押した時」

【ボタン】

登録ボタン



追加対象の行を絞り込む

次にアクション2 では、アクション1 で取得したレコードから、「追加対象」にチェックが入った行だけを絞り込みます。


単一チェックボックスの値は、チェックされている場合は「true」、チェックされていない場合は「false」になります。そのため、今回は「追加対象」の値を文字列として true と比較し、チェックを入れた行だけを取得します。


 やること「レコードを絞り込む」

【レコード】

1

【条件になる列】

追加対象

【比較方法】

文字列として比較

【条件】

等しい

【比較値】

true


 条件「他のアクションの実行が完了した時」

【アクション】

1



kintone にレコードを追加する

最後にアクション3 では、アクション2 で絞り込んだ行をテーブルにセットした新しいレコードを、kintoneアプリに追加します。

今回、「登録名」フィールドには、固定の文字列「エブリサイトから登録」をセットします。


「追加対象」にチェックを入れた行が1行以上ある場合だけレコードを追加するため、count 関数 を使ってアクション2 の結果の件数を取得します。追加条件「数値が条件を満たすならば」で、count($2) が 0 より大きい場合だけ実行するように設定します。


 やること「kintone にレコードを追加する」

【追加先アプリ】

149

※登録先の kintoneアプリID を入力してください

【kintone 接続設定】

テーブル追加テスト

※事前に設定した接続設定を選択してください

【マッピング】

登録名 = "エブリサイトから登録"

テーブル.商品名 = $2.商品名

テーブル.数量 = $2.数量

【反映タイミング】

即座に反映する


 条件「他のアクションの実行が完了した時」

【アクション】

2


 追加条件「数値が条件を満たすならば」

【比較する値(A)】

= count($2)

【条件】

大きい(>)

【比較する値(B)】

0



やること「kintone にレコードを追加する」でテーブルにマッピングをする場合は、次のように指定します。

 セット先のフィールドコード:テーブルのフィールドコード.テーブル内フィールドのフィールドコード

 セットする値:テーブルにセットする値を配列で指定


アクション2 で絞り込んだ行の「商品名」と「数量」は、それぞれ $2.商品名、$2.数量 で配列として参照できます。そのため、【マッピング】を次のように指定すると、チェックを入れた行だけを kintone のテーブルにセットできます。



まとめ

以上が、編集テーブルに入力された行から特定の行だけを絞り込み、kintone のテーブルにセットして新しいレコードを追加する方法でした。

やること「レコードを絞り込む」を組み合わせることで、「編集テーブル」のすべての行ではなく、必要な行だけを kintoneアプリに登録できます。


本記事で紹介した内容以外にも、エブリサイトの ドキュメントページ や サポートページ では、さまざまな設定方法や活用例を紹介しています。ぜひあわせてご活用ください。