如何获取用户个人目标列表?Workday接口技术问询
如何获取用户创建/拥有的目标列表(Workday Performance Management API)
以下是几种可行的实现方案,结合你提到的API接口展开说明:
1. 复用Performance_Management/Manage_Goals接口查询
虽然Manage_Goals主要用于创建和更新目标,但它同样支持查询操作。指定目标所属的Worker,并将Add_Only参数设为0(非仅添加模式),就能获取该用户创建或拥有的目标列表。
调整后的请求示例:
<soapenv:Body> <bsvc:Manage_Goals_Request bsvc:Add_Only="0" bsvc:version="v42.1"> <bsvc:Manage_Goals_Data> <bsvc:Worker_Reference> <bsvc:ID bsvc:type="WID">e1541aaaaaaaaaa764515dc7bd0000</bsvc:ID> </bsvc:Worker_Reference> <!-- 可额外添加目标状态、时间范围等筛选条件 --> </bsvc:Manage_Goals_Data> </bsvc:Manage_Goals_Request> </soapenv:Body>
2. 扩展Performance_Management/Get_Organization_Goals_Request的筛选逻辑
用这个接口获取组织内所有目标后,可通过返回结果中的Goal_Owner_Reference或Created_By_Worker_Reference字段,筛选出指定用户的目标。部分Workday版本还支持在请求的Request_Criteria中直接添加Worker_Reference参数,缩小返回范围:
<soapenv:Body> <bsvc:Get_Organization_Goals_Request bsvc:version="v42.1"> <bsvc:Request_Criteria> <bsvc:Supervisory_Organization_Reference> <bsvc:ID bsvc:type="WID">e1541aaaaaaaaaa764515dc7bd0000</bsvc:ID> </bsvc:Supervisory_Organization_Reference> <bsvc:Worker_Reference> <bsvc:ID bsvc:type="WID">目标所属用户的WID</bsvc:ID> </bsvc:Worker_Reference> </bsvc:Request_Criteria> </bsvc:Get_Organization_Goals_Request> </soapenv:Body>
3. 给Integrations/Get_References添加精准筛选条件
通过扩展Request_Criteria,指定目标所有者的Worker信息,可直接返回该用户相关的目标引用:
<soapenv:Body> <bsvc:Get_References_Request bsvc:version="v42.1"> <bsvc:Request_Criteria> <bsvc:Reference_ID_Type>Goal_Reference_ID</bsvc:Reference_ID_Type> <bsvc:Worker_Reference> <bsvc:ID bsvc:type="WID">e1541aaaaaaaaaa764515dc7bd0000</bsvc:ID> </bsvc:Worker_Reference> <!-- 可补充目标状态、创建时间等筛选条件 --> </bsvc:Request_Criteria> </bsvc:Get_References_Request> </soapenv:Body>
其他思路的优缺点
- 获取组织所有目标后本地筛选:可行但效率较低,若组织目标数量大,会增加数据传输和处理成本。
- 从用户资料关联目标:若Workday中用户资料与目标的关联关系完善,可直接获取,但如果目标未关联到用户资料,会出现数据遗漏。
内容的提问来源于stack exchange,提问作者JTW
相关产品推荐
相关产品推荐

