开发者社区 > 云效DevOps > 正文

云效的GetWorkItemActivity和ListWorkitemTime,这些接口能通过筛选?

云效的GetWorkItemActivity和ListWorkitemTime,GetProjectInfo 这些接口能通过筛选时间条件查询拉取吗?要不每次拉取数据都需要花费太长的时候进行全量拉取,如果只是拉取一个任务还好,但是如果是拉取上万个任务的时候,这个时间就会变得很长了? Error: InvalidParam.Workitem code: 500, 翻页数据超过1万条,请您增加过滤条件缩小范围后再查询 request id: 8E3533FB-9D4F-55B1-A080-5DE7B8825EBB 这种问题要怎么解决?

展开
收起
真的很搞笑 2023-07-05 10:50:28 113 0
9 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    对于云效中的 GetWorkItemActivity、ListWorkitemTime 和 GetProjectInfo 这些接口,目前官方文档并未提供直接通过时间条件进行筛选的参数。

    当需要拉取大量任务数据时,如果不加筛选条件进行全量拉取,确实可能会导致查询时间过长或数据量超过限制的错误。

    为了解决这个问题,您可以考虑以下几种方法:

    1. 分页查询:将拉取任务的请求进行分页处理,每次请求只获取一部分数据。通过指定每页的任务数量和页码来逐步获取所有任务数据,这样可以避免一次性拉取过多数据。

    2. 增加筛选条件:如果您有其他字段可用作筛选条件,例如任务类型、状态等,可以尝试在请求中添加这些筛选条件,缩小数据范围,以减少返回结果的数量。

    3. 制定时间段:如果可行的话,您可以根据任务的创建时间或更新时间来设定一个时间段范围,然后根据时间范围进行多次请求,以获取在该时间段内的任务数据。

    4. 使用增量同步:如果您的需求是获取最新变更的任务数据,可以考虑使用增量同步的方式。通过记录上一次同步的时间戳或版本号,只获取自上次同步以来发生变更的任务数据,避免重复拉取已经同步过的数据。

    2023-08-07 23:15:49
    赞同 展开评论 打赏
  • 可以先过滤任务的时间,比如:

    http(s)://[Endpoint]/?Action=GetTaskListFilter
    &OrgId=5ebbc0408123212b59xxxxx
    &ProjectId=5ebbc0408123212b59xxxxx
    &ScenarioFieldConfigId=5ebbc0408123212b59xxxxx
    &Name=任务名称
    &OrderCondition=startDate
    &Order=DESC
    &ExecutorId=5ebbc0408123212b59xxxxx
    &TagId=5ebbc0408123212b59xxxxx
    &DueDateStart=希望查询的开始时间(2020-11-24T16:00:00.000Z)
    &DueDateEnd=希望查询的开始时间(2020-11-24T16:00:00.000Z)
    &CreatorId=5ebbc0408123212b59xxxxx
    &InvolveMembers=5ebbc0408123212b59xxxxx
    &IsDone=false
    &Priority=0
    &PageSize=11
    &PageToken=sssssssssssssssssssssss
    &ObjectType=TASK
    &TaskFlowStatusId=5ebbc0408123212b59xxxxx
    &SprintId=5ebbc0408123212b59xxxxx
    &Extra={}
    &公共请求参数
    

    然后再通过这些接口去拉取。

    也可以尝试GetWorkItemActivity在加过滤条件,你可以使用该活动的Input参数中的filters字段来指定过滤条件。

    示例GetWorkItemActivity中增加过滤条件:

    from datetime import datetime
    
    activity_data = {
        "action": "GetWorkItemActivity",
        "input": {
            "filters": {
                "status": "open",
                "priority": "high",
                "created_date": {
                    "$gt": datetime(2022, 1, 1),
                    "$lt": datetime(2022, 6, 30)
                }
            }
        }
    }
    

    在上面的示例中,我们使用了三个过滤条件:

    • "status": "open" 表示只获取状态为"open"的工作项。

    • "priority": "high" 表示只获取优先级为"high"的工作项。

    • "created_date" 表示只获取创建日期在2022年1月1日到2022年6月30日之间的工作项。"$gt"和"$lt"分别表示大于和小于,用于指定日期范围。

    你可以根据自己的需求,根据工作项的字段来增加其他的过滤条件。

    2023-07-31 15:36:22
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    调用此接口可以筛选任务、需求、缺陷https://help.aliyun.com/document_detail/256540.html?spm=a2c4g.455846.0.i8
    image.png

    2023-07-31 12:04:52
    赞同 展开评论 打赏
  • 从事java行业9年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    您好,云效API接口 GetWorkItemActivity - 查询工作项动态 和 ListWorkitemTime - 获取工作项工时明细列表 和 GetProjectInfo - 获取项目详情 根据官方文档来看的话是不支持通过实践条件筛选的
    image.png
    但是您可以通过云效管理后台进行工作项筛选
    image.png
    也可以通过云效管理后台项目协作进行项目筛选
    image.png

    2023-07-27 13:24:28
    赞同 展开评论 打赏
  • 云效的 GetWorkItemActivity、ListWorkitemTime 和 GetProjectInfo 这些接口在拉取数据时,可以通过筛选时间条件查询来限制范围。这能够帮助减少数据量,提高查询效率。以下是一些建议和具体操作:
    image.png
    image.png

    1. 利用日期过滤:根据你的需求,在查询参数中添加适当的日期过滤条件,例如指定开始和结束日期,以仅获取在指定时间范围内创建或更新的工作项。

    2. 分页查询:使用分页查询来控制每次请求返回的结果数量。通过设置每页返回的最大记录数,并使用页码或游标进行分页,以避免一次性获取全部数据。通常,云效接口会提供相应的参数来实现分页查询。

    3. 特定状态或类型的过滤:如果你只对特定状态或类型的工作项感兴趣,可以将其作为过滤条件添加到查询参数中,以减小结果集的大小。

    4. 避免冗余字段:在查询时,只请求需要的字段,而不是获取所有可用字段。这可以减少数据传输的大小和处理时间。

    5. 并发请求:如果你需要拉取大量工作项数据,可以考虑使用并发请求来加快数据获取速度。将任务划分为多个并发请求,每个请求获取部分数据,然后合并结果。

    对于错误消息 "Error: InvalidParam.Workitem code: 500, 翻页数据超过1万条,请您增加过滤条件缩小范围后再查询",它表示你的查询结果超过了云效接口的限制。根据建议的错误消息,你可以尝试添加更多的过滤条件来缩小范围,以减少返回结果的数量。

    2023-07-26 22:38:12
    赞同 展开评论 打赏
  • 可以通过时间条件来筛选数据,以减少拉取数据的时间和数量。以下是云效API文档中关于时间筛选条件的说明:

    • GetWorkItemActivity接口:可以通过startTime、endTime参数来指定开始时间和结束时间,只返回指定时间范围内的工作项活动记录。
    • ListWorkitemTime接口:可以通过startTime、endTime参数来指定开始时间和结束时间,只返回指定时间范围内的工作项时间记录。
    • GetProjectInfo接口:不支持时间筛选条件。

    如果拉取的数据量过大,可以考虑使用分页查询方式,将数据分批拉取,以减少单次拉取数据的数量。在调用以上接口时,可以指定pageSize和pageIndex参数来实现分页查询。例如,每次只拉取1000条数据,可以先设置pageSize=1000,然后依次调用接口,逐页拉取数据,直到全部数据都被拉取完为止。

    另外,如果在拉取数据时出现错误提示"翻页数据超过1万条,请您增加过滤条件",可以根据错误提示增加过滤条件,例如增加时间筛选条件,或者其他适当的筛选条件,以减少拉取数据的数量。

    2023-07-26 10:11:59
    赞同 1 展开评论 打赏
  • 北京阿里云ACE会长

    是的,云效的 GetWorkItemActivity、ListWorkitemTime、GetProjectInfo 等接口都支持通过时间条件进行筛选查询。您可以通过在请求参数中添加时间范围来筛选指定时间段内的任务/工作项数据,以减少拉取数据的数量和时间。

    例如,在 GetWorkItemActivity 接口中,您可以使用参数 start_time 和 end_time 来指定时间范围,如下所示:

    apache
    Copy
    https://app.cloud.tencent.com/tsw/workitem/api/GetWorkItemActivity?project_id=xxx&start_time=2022-01-01T00:00:00Z&end_time=2022-01-31T23:59:59Z
    这将返回在 2022 年 1 月 1 日至 2022 年 1 月 31 日之间创建或更新的工作项数据。

    类似地,ListWorkitemTime 和 GetProjectInfo 等接口也支持类似的时间筛选参数。

    如果您在使用这些接口时出现 "翻页数据超过1万条,请您增加过滤条件缩小范围后再查询" 的错误,这意味着您的查询结果超过了云效的限制,需要添加更多的过滤条件来缩小查询范围。

    您可以尝试添加更多的筛选条件,例如状态、标签、类型等,以减少查询结果的数量,并确保查询结果在 1 万条以内。如果您需要查询的数据量仍然很大,建议使用分页或增量查询的方式,以便可以逐步获取数据并避免查询超时。

    https://help.aliyun.com/document_detail/460482.html?spm=a2c4g.217008.0.i7

    image.png

    https://help.aliyun.com/document_detail/460489.html?spm=a2c4g.460482.0.i0

    image.png

    2023-07-25 20:06:34
    赞同 展开评论 打赏
  • CSDN全栈领域优质创作者,万粉博主;InfoQ签约博主;华为云享专家;华为Iot专家;亚马逊人工智能自动驾驶(大众组)吉尼斯世界纪录获得者

    云效的GetWorkItemActivity、ListWorkitemTime和GetProjectInfo接口都可以通过筛选时间条件来查询数据。

    具体来说,您可以在API请求中指定开始时间和结束时间,以获取在该时间范围内发生的事件或工作项的时间信息。这些接口通常会接受一个时间范围参数,例如startDate和endDate,您可以将这些参数设置为您想要查询的时间范围,以获取相应的时间数据。

    2023-07-25 09:35:50
    赞同 展开评论 打赏
  • 全栈JAVA领域创作者

    是的,云效的GetWorkItemActivity和ListWorkitemTime,GetProjectInfo这些接口可以通过筛选时间条件查询拉取。您可以使用过滤条件来缩小范围,以避免每次拉取数据都需要花费太长的时间进行全量拉取。

    例如,您可以使用以下过滤条件来限制返回的任务数量:

    • GetWorkItemActivity:startDate=2022-01-01T00:00:00Z,endDate=2022-01-31T23:59:59Z
    • ListWorkitemTime:startDate=2022-01-01T00:00:00Z,endDate=2022-01-31T23:59:59Z
    • GetProjectInfo:createdDate=2022-01-01T00:00:00Z,updatedDate=2022-01-31T23:59:59Z

    这样可以确保您只获取所需的任务数据,从而减少查询时间。

    2023-07-24 19:58:12
    赞同 展开评论 打赏
滑动查看更多
问答分类:
问答地址:

云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。

热门讨论

热门文章

相关电子书

更多
云效助力企业软件供应链生产效能提升 立即下载
云效 DevOps 客户案例集(公共云) 立即下载
云效 立即下载