我开发了一种方法,按以下顺序执行以下步骤:
1)通过/ gdc / md // obj /
获取报告的元数据
2)从中获取报告定义并将其用作调用/ gdc / xtab2 / executor3的有效负载。
3)使用该调用的结果作为对/ gdc / exporter / executor的调用的有效负载
4)对返回的URI执行GET以下载生成的CSV
所以这一切都运行正常,但问题是我经常会找回空白的CSV或不完整的CSV。我的解决方法是在获取URI和实际调用URI上的GET之间设置sleep()。然而,随着我们的数据增长,我必须不断增加延迟,即使这样我也无法保证获得完整的数据。有没有办法确保报告在调用URI之前已将数据导出到文件中?
答案 0 :(得分:1)
问题是导出作为异步任务运行 - 导出器任务完成其作业后,在POST
到/gdc/exporter/executor
的有效负载(以/gdc/exporter/result/{project-id}/{result-id}
的形式)中返回的URL的结果可用。
如果任务尚未完成,则GET
至/gdc/exporter/result/{project-id}/{result-id}
应返回状态代码202
,这意味着&#34;我们仍在导出,请等待&#34;。< / p>
因此,您应该定期轮询结果网址,直到它返回包含有效负载的状态200
(如果发生错误,则为40x
/ 50x
。)