JSON形式のタスクEXPORTがメモリ不足でできない

ASANAプロジェクトのJSONエクスポートが、「メモリ不足のためダウンロードできない」となるようになってしまいました。
JSONもCSVでのエクスポートと同様、サーバ上でファイル作成して、作成が完了したらメールで通知&ダウンロードできるようになることを希望します。

asanaで管理しているタスクを、整形しつつExcelの一覧化して定期的に提出しています。
作業効率向上のため、JSON形式でダウンロードしたプロジェクトタスクデータを、DXツールで整形させてExcelに出力できるようにしました。
ところが、ある時期を過ぎたころから、ASANAプロジェクトのJSONエクスポートが、「メモリ不足のためダウンロードできない」となるようになってしまいました。タスクが多すぎるのかもしれません。
しかたなく、CSVでダウンロードし、必要項目のみピックアップしてExcelに成形しなおす、という作業を手で行っています。
できれば作成済みのツールを用いてExcel一覧を簡単に作成できるようにしたいです。
CSVは作成が終わるとメールが届いてダウンロードできるようになっています。
JSONも同様に、サーバ上でファイル作成して、作成が完了したらメールで通知&ダウンロードできる
の方法で取得できるようになることを希望します。

1 Like

@福島亜秋美FukushimaAZUMI さん、ご提案ありがとうございます。
ぜひご自身でも「Vote (投票)」ボタンをお押しください。

先週体調を崩しておりまして、返信が遅くなり申し訳ありません。

結論から申しますと、JSONデータの取得方法の切り分けが実装されるには時間がかかりそうですので、
CSVファイルを利用するか、以下の方法で手動でフルJSONファイルを取得していただくのがよいと思います。

前提を整理

プロジェクトのJSONエクスポートは、APIコールへのショートカットとなっています。
毎回プロジェクトの上部から「エクスポート/印刷 > JSON」を選択しなくても、このURLをブックマークしたり繰り返しタスクの説明欄に貼り付けたりすることで直接アクセスできます。
https://app.asana.com/api/1.0/projects/{projectId}/tasks?opt_pretty&opt_expand=(this%7Csubtasks%2B)

CSVエクスポートには、サーバー側でデータを整理するため、専用のエンドポイントが用意されていますね。
https://app.asana.com/-/csv?id={fileId}&domain={domainId}
ファイルが小さければそのままダウンロードに進み、プロジェクトが大きい場合は、バックグラウンドで処理が継続され、ダウンロードリンクがメールで送られてきます。

この切り分けがJSONでも行われると確かに便利ではあります。

ご提案内容を確認

プロジェクトが大きい場合は、私の場合メモリ不足は再現できませんでしたが、APIコールがタイムアウトすることは確認しました。

開発にフィードバックはしますが、別のエンドポイントでラッピングせずにAPIを直接提供することのメリットもありますし、後述のページネーションを設定すると解決できることから、開発の優先順位は下がるものと思われます。

アクション

1. CSVファイルを使用する

目的がExcelファイルを使用することでしたら、CSVファイルをベースにした方が作業しやすい気がします。

2. APIのページネーションを使用する

データ量が多い場合、ページネーションを利用します。
プログラミング言語を使用して一度設定すれば、ツールによる「JSON→Excel」の変換がそのまま利用できると思います。

ここでは、手動の方法をお知らせします。

上限は100件なので、100を設定します。
https://app.asana.com/api/1.0/projects/{projectId}/tasks?opt_pretty&opt_expand=(this%7Csubtasks%2B)&limit=100

レスポンスの末尾に、次のページをリクエストするためのoffsetや、offsetを含むURIが提供されるので、URIをクリックして次の100件を取得します。
最後までデータを取り終わったら、JSONファイルを結合して使用します。

1 Like

丁寧におしえていただきありがとうございました!どれも有益な情報でした。
どの方法でも、無事取得することができました :sparkles:大感謝!!!感激です!!!

ご指摘にもあった通り、

  • 教えていただいたJSON取得方法でしばらくの間凌ぐ
  • その間にCSVで整形する自動化ツール作る

としないと、ヤバい未来が垣間見た気がしました。。。
(私以外JSON取得方法がわからず困っちゃう状態になりってしまいそう。)

special Thanksです!!!!

1 Like

@福島亜秋美FukushimaAZUMI さん

@Shun_Sakurai さんから解決策が出ていますが、別案を紹介します。

csvで得られたファイルの整形をexcelのpowerqueryを使って自動化するという方法はいかがでしょうか?
整形したい形がわからないので、もしかしたら、できないかもしれません。その際はご容赦ください。

2 Likes

excelのpowerquery、今までに使ったことなかったです。
是非挑戦してみたいと思いました :muscle:
今回の件以外にも応用の効きそうな情報です!!ありがとうございます!!!!

1 Like

@福島亜秋美FukushimaAZUMI さん

excel+powerqueryは結構使えますよ。
ちょっとAsanaから外れてしまいますが、REST APIも使える様なので、工夫すれば、直接JSONをページネーションして取得するということも可能かもしれません。
もしできれば、CSVが出来上がるのをメールで待つ必要がなくなるかもしれませんね。

どうしてもexcelでの提出が避けられない場合、Asana+excel/powerqueryは効率化の鍵になるかもしれません。

2 Likes

おお、資料まで調べていただいて…!
ありがとうございます。これはやってみないとですね。