如何处理超出预定项目时间的速率限制 - Exact Online

How to deal with ratelimit off booked project hours - Exact Online

我的目标是从 Exact Online 获取 2020-2021 年的项目预订时数。目前,我正在尝试使用 Postman 获取正确的数据,然后我想在 Python 中实现它。我用的是project/TimeTransactionAPI.

我正在做的 API 电话:

https://start.exactonline.nl/api/v1/<division_code>/project/TimeTransactions?$select=ID,Activity,ActivityDescription,Date,ProjectDescription,ProjectCode,Quantity,ModifierFullName,Modified,HourStatus,CreatorFullName,Attachment,ItemDescription,Type

不幸的是,GET 请求 returns 只有 2013 年、2014 年和 2015 年预订的小时数。这是由每次调用 60 行的页面大小造成的(每次请求只能获得 60 条数据记录) .

我试图通过使用 skiptoken 来解决这个问题,它的下一个值在每个请求结束时给出。 skiptoken的作用是获取接下来的60条数据记录。我已经尝试了多次,但我仍然只收到 2013 年、2014 年和 2015 年的时间。此外,我使用 2021hourentryID 作为 skiptoken(所以我期望的是只得到从 2021 年开始的几个小时),但从 2013 年、2014 年和 2015 年开始也只有几个小时。

带有 skiptoken 的 URL 看起来像这样:

https://start.exactonline.nl/api/v1/<division_code>/project/TimeTransactions?$select=ID,Activity,ActivityDescription,Date,ProjectDescription,ProjectCode,Quantity,ModifierFullName,Modified,HourStatus,CreatorFullName,Attachment,ItemDescription,Type&;$skiptoken=guid'1aa0ec3d-e40f-45e5-99de-03b04580c8e9'

有熟悉这个问题并能帮助我的人吗?

正如 Guido Leenders 所指出的,您需要一个过滤器。以下示例消除了 2020 年 1 月 1 日之前具有 Date 的所有时间交易。

$filter=Date ge DateTime'2020-01-01'

这将使完整的 URI:

https://start.exactonline.nl/api/v1/<division_code>/project/TimeTransactions?$select=ID,Activity,ActivityDescription,Date,ProjectDescription,ProjectCode,Quantity,ModifierFullName,Modified,HourStatus,CreatorFullName,Attachment,ItemDescription,Type&$filter=Date ge DateTime'2020-01-01'