Docly Child

kintoneのレコードを取得

202 views

この記事では、kintoneのレコードを一括取得する方法を紹介します。

アクションの実行には、kintoneのコネクションが必要です。
kintoneコネクションの登録方法については、以下をご参照ください。
参考:kintoneと連携する


 Kintoneのレコードを取得する

kintoneGetRecords(レコードを一括取得する)アクションを使用することによって、kintoneのレコードが取得できます。

レコード取得時には、出力するフィールドを絞り込んだり、クエリによって条件を満たすレコードのみを出力したり、レコードの順番を並び替えたりすることも可能です。
以下より、方法を紹介します。

フィールドやクエリを指定しない場合、
以下の設定のみで、あるアプリの全レコード・全フィールドを出力できます。

  • KintoneGetRecordsを設定します。
  • プロバイダーIDを直接入力するか、ピッカーから選択します。
  • アプリIDを直接入力するか、ピッカーから選択します。

 

出力するフィールドを絞り込むことも可能です。
「フィールド」に、出力したいフィールドコード(フィールド名ではありません)を配列形式でご入力ください。
ここでは、最初の画像のアプリから「都道府県」「行き先」フィールドのみを出力してみます。
※ただし、レコードidは必ず出力されます

  • KintoneGetRecordsアクションの詳細設定を開きます。
  • 「フィールド」に以下を入力します。
    ["都道府県","行き先"]

出力するフィールドを「都道府県」「行き先」とした上で、以下条件を満たすレコードのみを抽出してみます。
都道府県が「兵庫県」または「青森県」と完全一致するレコード

  • KintoneGetRecordsアクションの詳細設定を開きます。
  • 「フィールド」に以下を入力します。
    ["都道府県","行き先"]
  • 「クエリ」に以下を入力します。
    都道府県 = "兵庫県" or 都道府県 = "青森県"

以下3つの方法があります。

# レコードを一括取得する
+kintone_get_records_1:
  action>: kintoneGetRecords
  provider: ''
  appId: ''
  fields: []
  meta:
    display:

# レコードを一括取得する
+kintone_get_records_2:
  action>: kintoneGetRecords
  provider: ''
  appId: ''
  fields: ["都道府県","行き先"]
  meta:
    display:

# レコードを一括取得する
+kintone_get_records_3:
  action>: kintoneGetRecords
  provider: ''
  appId: ''
  fields: ["都道府県","行き先"]
  query: '都道府県 = "兵庫県" or 都道府県 = "青森県"'
  meta:
    display:

 取得した値をスプレッドシートやExcelに貼り付ける

kintoneGetRecordsアクションのアウトプットを「加工」すると、
スプレッドシートやExcelへの貼付けが可能となります。

この「加工」は、ConvertJSONToArrayアクションによって可能です。

詳細は、ConvertJSONToArrayの記事をご参照ください。
参考:ConvertJSONToArray(JSONを配列に変換)

 レコードの添付ファイルをダウンロードする

kintoneGetRecordsアクションでは、レコードの添付ファイルを直接的にダウンロードすることができません。
添付ファイルをダウンロードする場合は、ブラウザ上でkintoneにアクセスし、ダウンロードを実行するコード(JavaScript)を実行する必要があります。

ここでは、この添付ファイルをダウンロードするワークフロー(コピペ可能)を紹介します。

本タブ下部にあるコード(YAML)エディタモードからコピペいただけます。(コピペ方法はこちら
実際に使用する際には、以下3つの情報を事前にご準備ください。

  • アプリのAPIトークン(取得方法はこちら
  • サブドメイン(URLから取れます。https://ここがサブドメイン.cybozu.com/)
  • 添付ファイルのフィールドコード(アプリの設定画面から確認可能です)

上記3つの情報は、ワークフロー上部の3アクション(変数に保存)の該当する箇所の値にご指定ください。

また、ワークフローのkintoneGetRecordsアクションのプロバイダIDやアプリIDには、ご自身の環境のものをご指定ください。

# 変数に保存_kintoneのサブドメイン https://ここがサブドメイン.cybozu.com/
+store_value_7:
  action>: StoreValue
  key: subdomain
  value: 'サブドメイン'

# 変数に保存_アプリのAPIトークン
+store_value_1:
  action>: StoreValue
  key: kintoneToken
  value: 'APIトークン'

# 変数に保存_添付ファイルのフィールドコード
+store_value_2:
  action>: StoreValue
  key: fileFieldCode
  value: '添付ファイルのフィールドコード'

# レコードを一括取得する
+kintone_get_records_1:
  action>: kintoneGetRecords
  provider: kintone_1170648c1741c72a439c
  appId: 5
  fields: []
  meta:
    display:
      provider:
        type: chip
        label: 'kintone (8vekw.cybozu.com)'
        icon: kintone

# 各要素について繰り返す_レコード
+for_each_1:
  for_each>:
    record: +kintone_get_records_1
  _do:

    # ブラウザを開く_使用しているKintoneのログインページ(CORS回避のため)
    +open_browser_1:
      action>: OpenBrowser
      url: 'https://${subdomain}.cybozu.com/login'
      lang: 'ja-JP'
      headless: true
      useShadowDomSelector: false

    # 各要素について繰り返す_添付ファイル
    +for_each_2:
      for_each>:
        fileKeyData: ${record[fileFieldCode]}
        withIndex: hoge2
      _do:

        # ページ内でJavaScriptを実行する_既存ファイルのダウンロード
        +inject_script_1:
          action>: InjectScript
          browser: +open_browser_1
          code: "const fileName = \"${fileKeyData.name}\";\nconst url =\n  \"https://\" +\n  \"${subdomain}\" +\n  \".cybozu.com/k/v1/file.json?fileKey=\" +\n  \"${fileKeyData.fileKey}\";\nconst xhr = new XMLHttpRequest();\nxhr.open(\"GET\", url);\nxhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\nxhr.setRequestHeader(\"X-Cybozu-API-Token\", \"${kintoneToken}\");\nxhr.responseType = \"blob\";\nxhr.withCredentials = true;\nxhr.send();\nxhr.onreadystatechange = function() {\n  // 通信が正常に完了したか確認\n  if (xhr.readyState === 4 && xhr.status === 200) {\n    const xhrBlob = new Blob([xhr.response], { type: xhr.response.type });\n    const blobUrl = URL.createObjectURL(xhrBlob);\n    const a = document.createElement(\"a\");\n    document.body.appendChild(a);\n    a.download = fileName;\n    a.href = blobUrl;\n    a.click();\n    a.remove();\n    URL.revokeObjectURL(blobUrl);\n  }\n};\n"
          returnValue: false

    # ブラウザを閉じる
    +close_browser_1:
      action>: CloseBrowser
      browser: +open_browser_1

# ダウンロード完了を待つ_タイムアウトはご調整ください
+wait_for_download_1:
  action>: WaitForDownload
  timeout: 10000

# ダウンロードファイル一覧
+get_download_files_1:
  action>: GetDownloadFiles
  order: DESC
  sort_by: CREATED
<kintone>kintoneGetRecords/キントーン

このページは役に立ちましたか?