Job Runner

関連レコード一覧の条件でレコードを取得する

概要

関連レコード一覧フィールドと同じ条件でレコードを取得します。

使い方

「関連レコード一覧の条件でレコードを取得する」を行うアクションよりも先に「kintone 接続設定を行う」を行うようにアクションを配置します。

取得したレコードは別のアクションで使用することができます。

kintone アプリの画面に表示される関連レコード一覧とは以下の動きが異なります。

  • 「最大取得件数」を省略すると、条件に合致するすべてのレコードを取得します。
    • 合致するレコードが大量にあると、処理にとても時間がかかりますのでご注意ください。
  • 「表示するフィールド」以外のフィールドも取得します。
    • これにより、アプリの画面には表示しない関連レコードのフィールドも集計したり参照したりすることが可能です。

設定するパラメーター

「レコード」「関連レコード一覧フィールド」「API トークン」「最大取得件数」「自レコードも条件に一致した場合」を設定します。

レコード

関連レコード一覧フィールドを持っているレコードを指定します。

ここに複数行のレコードが含まれる場合、それぞれのレコードから関連レコードを取得します。

関連レコード一覧フィールド

関連レコード一覧フィールドを選択します。

API トークン

ここでは2つの API トークンを指定する必要があります。

ひとつは、関連レコードの元のアプリに対する API トークンです。「レコード」パラメーターの取得元のアプリ、と言い換えることもできます。

もうひとつは、関連レコード一覧フィールドの「参照するアプリ」に設定されているアプリにアクセスするための API トークンを指定します。

いずれも、「kintone 接続設定を行う」を行うアクションの中から選択します。

各 API トークンは次のアクセス権が必要です。

アプリ 必要な権限
元のアプリ ・レコード閲覧またはレコード追加
・アプリ管理
参照するアプリ ・レコード閲覧

最大取得件数

キーに合致するレコードが多い場合、このパラメーターを設定しておくと、取得件数を制限します。このパラメーター値を省略すると、キーに合致するレコードをすべて取得します。

合致するレコードの数が多いと、すべて取得するのは時間がかかります。そのような場合、このパラメーターを小さめの値にしておくと処理時間を短くすることができます。

「レコード」に複数行が含まれる場合、この「最大取得件数」はレコード1行分からの取得数制限になります。全ての「レコード」から関連レコードを取得したレコード数の合計を制限するわけではありません。

ゼロ以下を指定するとエラーになります。

自レコードも条件に一致した場合

関連レコードフィールドの設定で、「参照するアプリ」に自分自身を設定している場合、条件によっては取得結果に元レコード自身(以下「自レコード」)が含まれる可能性があります。このように自レコードが条件に一致した場合にこのレコードを結果に含めるか含めないかを選択します。

「自レコードも含めて取得する」の場合、自レコードが条件に一致すれば、自レコードも取得結果に含めます。「自レコードも含めて取得する」でも、自レコードが条件に一致していない場合は、結果に自レコードは含まれません。

「自レコードは除外する」の場合、自レコードが条件に一致しても、取得結果に自レコードを含めません。

関連レコードフィールドの「参照するアプリ」が他アプリを参照している場合、「自レコードも条件に一致した場合」は特に意味を持ちませんので、どちらを選んでいても構いません。

レコード取得条件の発生有無

条件 発生有無
レコード1行が準備できた時 発生します
レコード全行が準備できた時 発生します

※ 条件に合致するレコードが1行も存在しなかった場合は発生しません。

「レコード」パラメーターに複数行が含まれる場合は注意を要します。この場合、「レコード」パラメーターの1行につき、関連レコードを全て取得し終えるたびに「レコード全行が準備できた時」が発生します。「レコード全行が準備できた時」でつないだ場合、つないだ先から見えるこのアクションの結果は、ある「レコード」1行に対する関連レコード全行になります。他「レコード」の関連レコードは含まれません。

例えば「レコード」パラメーターに A, B, C という3つのレコードがあり、A の関連レコードが10行、B の関連レコードが5行、C が3行あるとすると、「レコード全行が準備できた時」は A, B, C の分で3回、「レコード1行が準備できた時」は10+5+3=18回発生します。

全ての「レコード」に対する関連レコード取得を終えた時を条件としたい場合は、「他のアクションの実行が完了した時」を使用してください。「他のアクションの実行が完了した時」でつないだ場合、「関連レコード一覧の条件でレコードを取得する」の結果は全ての「レコード」の関連レコードの集合を単純につなげたものになります。この中には同じレコードは繰り返し含まれる可能性もあります。

参考情報

「関連レコード情報がありません。」というエラーが発生する場合、以下を確認してください。

  • 元のアプリの API トークンを含めているか。
  • API トークンの権限は適切か。
  • 関連レコードのフィールドコードが変更されていないか。

注意事項

1つのカスタマイズ内で「関連レコード一覧の条件でレコードを取得する」を異なる複数のアクションから実行する場合、「API トークン」の指定に注意が必要です。レコードの取得元アプリが同じアプリで関連レコードフィールドから参照するアプリ異なる場合、それらすべての API トークンを、それぞれのアクションで指定する必要があります。

例えば、

  • アクションXでは元アプリがA、関連レコードフィールドから参照するアプリがB
  • アクションYでは元アプリがA、関連レコードフィールドから参照するアプリがC の場合、アクション X,Y ともに「API トークン」パラメーターにアプリ A,B,C 3つのトークンを付ける必要があります。

制限事項

  • 関連レコードフィールドの設定で「表示するレコードの条件」に計算フィールドを用いている場合、その計算フィールドの表示形式によってはレコードを取得できない場合があります。具体的には、以下のように計算の精度に対して表示形式側の精度が落ちているケースが該当します。
    • 計算値は時刻の精度まで計算されているが、表示形式が日付
    • 計算値は日付部分まで計算されているが、表示形式が時刻
    • 計算値が秒の精度まで計算されているが、表示形式が日付、時刻、時間

関連記事