如何通过Workfront API为任务添加Hour对象?技术问题咨询
解决Workfront API创建Hour对象关联Task的问题
我之前也被Workfront这模糊的文档坑过!咱们一步步来搞定你的问题:
1. 创建Hour对象失败(返回ID: null)的原因及修复
你当前的请求漏掉了必填的用户关联字段——Workfront的工时记录必须绑定到具体用户(谁记录的工时),同时还有一种更可靠的关联Task的方式:
方式一:补充必填的userID字段
修改POST请求体,添加userID(可以是你调用API的用户ID,或者需要记录工时的目标用户ID):
{ "objCode": "HOUR", "entryDate": "2018-01-18", "hours": 1, "status": "SUB", "taskID": "<task id>", "userID": "<your user id>" }
方式二:通过Task资源的子端点创建(更推荐)
直接通过Task的专属端点创建关联的Hour,Workfront会自动帮你绑定Task,不用手动传taskID:
POST https://company.attask-ondemand.com/attask/api/v7.0/task/<task ID>/hour?apiKey=<api key>
请求体可以简化为:
{ "objCode": "HOUR", "entryDate": "2018-01-18", "hours": 1, "status": "SUB", "userID": "<your user id>" }
2. 查询Hour时看不到taskID的解决办法
Workfront API默认只返回对象的核心字段,关联字段(比如taskID)需要显式指定返回。修改你的GET请求,加上fields参数:
GET https://company.attask-ondemand.com/attask/api/v7.0/hour/search?taskID=<task ID>&apiKey=<api key>&fields=ID,objCode,entryDate,hours,status,taskID
这样返回的结果里就会出现taskID字段了。
额外排查点
- 确认你的API密钥拥有工时记录权限,以及对目标Task的编辑/工时记录权限;
- 检查
taskID和userID是否是Workfront系统中有效的ID(通常是大写字母+数字的组合,没有多余符号); - 如果还是失败,可以在请求URL后加
&debug=true参数,Workfront会返回更详细的错误信息,帮你快速定位问题。
内容的提问来源于stack exchange,提问作者Liam
相关产品推荐
相关产品推荐

