java - SmartSheet Java API getSheet,但只有一些行
问题描述
我在公司内部使用的应用程序中使用 SmartSheet API (Java SDK),发现应用程序的初始启动时间越来越长。我得出的结论是,至少部分延迟是从 SmartSheet 获取整个工作表,然后过滤掉我之前处理过的所有行。除了我已经处理的那些行之外,我有没有办法得到所有的东西?我在 SmartSheet 中有一个“商店编号”列,可以输入我已经处理过的商店列表来过滤列表。
但据我所知,没有办法做到这一点。我错了吗?如果是这样,我该怎么做?
我找到了SmartShet API 文档,但它们没有清楚地解释如何使用包含和排除可选参数。我能找到的所有 SmartSheet 示例都将这两个值都设置为 null。我希望 excludes 能给我一种方法来排除我知道我已经处理过的行,但是我找不到关于如何使用这个功能的明确文档。
解决方案
不幸的是,无法像查询数据库中的表那样使用 Smartsheet API 查询工作表数据——也就是说,您无法发出类似SELECT * FROM Sheet WHERE store_number NOT IN (1, 3, 5)
.
通常,include
andexclude
参数提供了一种使响应更大(即,使用该include
参数返回比默认情况下通常返回的更多数据)或更小的方法(即,使用该exclude
参数不返回通常由默认)。例如,默认情况下不会包含附件元数据——但如果您?include=attachments
在请求中指定参数,它将被包含在内。
指定exclude=filteredOutRows
参数允许您影响响应中返回的行 - 但要使此参数满足您所描述的场景,工作表必须当前应用一个过滤器来过滤掉您不希望的行被退回。似乎怀疑这在您的场景中是否正确(并且似乎无法通过 API 以编程方式设置/更新工作表过滤器),因此这对您来说似乎不是特别有用。
** 更新以添加有关报告的信息 **
您可能会考虑另一种选择。您可以手动创建一个查询表格的报告(即通过 Smartsheet UI),并为该报告指定标准,从报告结果中排除指定的商店编号集。然后您可以更改您的应用程序,使其通过报告获取数据而不是直接从工作表中获取数据。这里唯一的问题是无法通过 Smartsheet API 创建或更新报告——因此您必须手动创建报告(通过 Smartsheet UI),然后定期手动更新报告(通过 Smartsheet UI)添加要从结果中排除的其他商店编号。不理想,但取决于您尝试从响应中排除的数据量,以及要排除的商店编号集更改的频率,这种方法可能对您可行。
推荐阅读
- haskell - 查找 Haskell 模块所属的包
- javascript - 是否有机会在不更新本机状态的情况下获取当前时间(每秒)
- c# - Postgresql 查询返回 NullReferenceException
- android - 文件结构未在颤振项目中加载
- c - 状态机编码 - 我卡住了
- ruby-on-rails - RoR 将会议信息传递到模态
- ios - Flutter iOS 应用的越狱检测
- javascript - 按值比较数组中的所有对象
- httprequest - 通过代理路由 HTTP 请求
- android-studio - Kotlin:LoadURL onReceivedError() 未触发