kintone データをCSV出力するとテーブルフィールドがJSON形式になってしまう場合の対処法 フォローする
BizteX Connect は kintone の API(エーピーアイ:システム同士がデータをやり取りするための仕組み)を通じてデータを取得します。
kintone のサブテーブル(テーブル形式の入力欄)は、1 行分のレコードに対して複数行のテーブルデータが紐づく構造です。API から取得すると JSON 配列として 1 つのセルに格納されます。
対処方法
テーブル行を個別のCSV行として展開したい場合は、「一般コネクタ 繰り返し」アクションと「Google Sheets 行の追記/更新」などを使ってテーブル行を1件ずつ取り出します。その後、表データとして取得、CSV化します。
- 「kintone レコードの一覧取得」でレコード一覧を取得します。
- 「一般コネクタ 繰り返し」で取得したレコードを1件ずつ処理します。
- 繰り返しの中でさらに「一般コネクタ 繰り返し」を入れ子にし、各レコードのテーブルフィールド(サブテーブルの値)を1行ずつ処理します。
- テーブルの各行データを「Google Sheets 行の追記/更新」などに書き出す。
- 繰り返し処理の終了後、「Google Sheets 範囲のセルの取得」などで書き出したシート全体を「表データ」として取得する。
- 取得した表データを「表データをCSVファイルに出力」でCSV化する。
上記以外の方法として、以下のような対応方法もご検討ください。
- kintone側に出力用アプリを用意する
kintone側に、テーブルデータを1行1レコードとして保存する「出力用アプリ」を別途作成いただき、Connectではそのアプリから一覧取得してCSV出力を行います。
- スプレッドシートなどに展開後、 JSONの展開などはスプレッドシートの関数もしくはGASなどで整形する
注意事項
- レコードを1件ずつ、テーブル要素の内容も1行ずつ処理するため、レコード数が多い場合、リクエスト制限を超過しエラーになる可能性があります。
- テーブルフィールドを入れ子の繰り返しで処理する場合、テーブル行が 0 件のレコードでも繰り返しが実行されます。テーブルが空の場合は「シナリオ制御 中断判定」または「シナリオ制御 スキップ判定」でスキップするよう設計してください。
関連ヘルプ記事