カスタマイズ

テーブル付きでレコードを書き出す

概要

レコードをフィールドの値を書き換えながら書き出します。テーブルを書き出すことができます。

使い方

条件を組み立ててレコードを取得する」など、レコードを取得するアクションで取得したレコードを書き出します。

同じアプリにフィールドの値を書き換えながら書き出すこともできますし、別のアプリに新しいレコードとして書き出すことも可能です。

レコードを書き出す」とほぼ同じですが、「テーブル付きでレコードを書き出す」では書き出す内容にテーブルを含めることができます。

同様の「やること」に「テーブル付きでレコードを1つずつ書き出す」がありますが、以下の2点が異なります。

  • 「テーブル付きでレコードを書き出す」はレコードをまとめて保存するのに対し、「テーブル付きでレコードを1つずつ書き出す」は1レコードずつ保存します。
    • その結果、「テーブル付きでレコードを1つずつ書き出す」では書き出し先アプリに「レコードの編集」に対する Webhook が設定されていればその Webhook に通知が発生します。「レコードを書き出す」では Webhook 通知は発生しません。
    • レコード数が多い場合、「テーブル付きでレコードを書き出す」の方が kintone API 呼び出し回数が少なく済み、高速です。
  • 「テーブル付きでレコードを書き出す」では別のアプリへ新規レコード追加として書き出すことができますが、「テーブル付きでレコードを1つずつ書き出す」では同じアプリのレコードへの上書き保存しかできません。
    • ただし、「テーブル付きでレコードを書き出す」で別のアプリへ書き出しを行うには、書き出し元と書き出し先でテーブルの構造が同じでなければならない、という制約があります。
「やること」 別アプリへ書き出し テーブルの書き出し Webhook
レコードを書き出す × ×
レコードを1つずつ書き出す × ×
テーブル付きでレコードを書き出す ×
テーブル付きでレコードを1つずつ書き出す ×

設定するパラメーター

「レコード」「書き出し先アプリ」「マッピング」「書き出し先テーブル」「書き出し対象テーブル行の条件になるフィールド」「条件」「比較値」「テーブルに対するマッピング」「更新または追加」を設定します。

レコード

書き出し元となるレコードを取得したアクションを指定します。

書き出し先アプリ

書き出し先のアプリを選択します。

元となるレコードと同じアプリでも、異なるアプリでも構いません。

マッピング

書き出すレコードのフィールド値を設定します。

このパラメーターの詳しい記述方法はフィールドマッピングの記述方法を参照してください。

フィールドに対してマッピングの式を空にした場合、空の値を書き出すのではなく、そのフィールドは書き出しません。更新の場合は元のレコードの値を維持し、追加の場合はアプリ設定上の初期値がセットされることになります。

このマッピングで「セットする値」に記載したフィールドは、書き出し元のレコードのアプリのフィールドになります。

書き出し先テーブル

書き出し先アプリ内のどのテーブルに書き出すかを選択します。

書き出し元にも同じフィールドコード、同じ構造のテーブルが必要です。

書き出し対象テーブル行の条件になるフィールド(1)

特定の条件に合うテーブル行だけに対して「テーブルに対するマッピング」を適用したい場合に、その条件になるフィールドを「書き出し先テーブル」から選択します。

この条件に合わなかったテーブル行は「テーブルに対するマッピング」が適用されず、そのテーブル行の全フィールドがコピーされます。そのテーブル行を出力しないという意味ではありません

全てのテーブル行に「テーブルに対するマッピング」を適用したい場合は、条件を空(フィールド未選択)にしてください。

実行時には「書き出し先」ではなく「書き出し元」のテーブル行に対して条件をチェックすることになります。

条件(1)

書き出し対象テーブル行の条件になるフィールドと比較値との比較方法を選択します。

比較値(1)

条件になるフィールドの値と比較する値を設定します。空にすると空の値と比較します。

直接値を指定するか、または式を使用することができます。

式を用いる場合は注意が必要です。比較中の行のテーブル内フィールド値を参照することはできません。

書き出し対象テーブル行の条件になるフィールド(2)

書き出し対象テーブル行の条件になるフィールド(3)

2つ目、3つ目の条件を指定したい場合に選択します。条件が1つでよい場合は省略できます。

書き出し対象テーブル行の条件になるフィールド(1)と同じテーブルから選択する必要があります。

条件(2)

条件(3)

2つ目、3つ目の条件を指定したい場合に選択します。条件が1つでよい場合は省略できます。

比較値(2)

比較値(3)

2つ目、3つ目の条件を指定したい場合に選択します。条件が1つでよい場合または空の値と比較したい場合は省略できます。

テーブルに対するマッピング

書き出し先テーブルへのマッピングを記述します。

マッピング元のテーブルは、書き出し元のテーブルのフィールドコードのテーブルであるとみなされます。

例えば、「レコード」にアプリが A、「書き出し先アプリ」が B の場合、「書き出し先テーブル」は B から選択しますが、そのフィールドコードが Table_1 だった場合、マッピング元のテーブルは A の Table_1 になります。つまり、A の Table_1 から B の Table_1 へマッピングされます。

フィールドに対してマッピング式を空にした場合、空の値を書き出すのではなく、マッピング元テーブルの同じフィールドコードのフィールド値がコピーされます。

このマッピングで「セットする値」に記載したフィールドは、マッピング元テーブルのフィールドになります。

更新または追加

「既存レコードを更新」を選んだ場合、書き出し元と同じレコードの値を上書き更新します。

「新規にレコードを追加」の場合は上書きではなく別の新しいレコードを追加します。

「既存レコードを更新」は、書き出し元のレコードの取得元アプリと、「書き出し先アプリ」は同じアプリである必要があります。

競合の検出について

「既存レコードを更新」の場合、更新の競合はチェックされます。

「新規にレコードを追加」はチェックされません。

Webhook 通知

本「やること」を実行しても更新先アプリの Webhook 通知は発生しません。

制限事項

  • 複数のテーブルを一度に書き出すことはできません。

  • 書き出し先のテーブルのフィールドコードと書き出し元のテーブルのフィールドコードが同じである必要があります。異なるフィールドコードのテーブルへ書き出すことはできません。

  • 書き出し対象テーブル行を条件パラメーターで絞り込む場合、テーブル内の2つのフィールドを比較して絞り込むことはできません。このような条件分岐を行いたい場合は、テーブルに対するマッピングでif関数を使用してください。

  • 書き出し対象テーブル行の条件を4つ以上指定することはできません。

関連記事