使用Workday的Edit_Worker_Additional_Data接口传自定义字段遇验证错误求助
问题:Workday Edit_Worker_Additional_Data接口自定义字段验证错误
使用Workday的Edit_Worker_Additional_Data接口传递额外数据时,因缺少预期数据格式文档,一直遭遇验证错误。参考相关问题后,仍因不清楚如何初始化cus namespace出现命名空间错误。
自定义字段信息
| 项 | 值 |
|---|---|
| Custom List | T-Shirt Sizes |
| Custom Field Type Name | T-Shirt Sizes |
| Web Service Alias | tShirtSize |
| List Value Name | Web Service Alias |
| M - Xs | mXs |
| M - S | Ms |
当前XML请求体
<soapenv:Body> <bsvc:Edit_Worker_Additional_Data_Request xmlns:bsvc="urn:com.workday/bsvc" bsvc:version="v38.1"> <!-- Optional: --> <bsvc:Business_Process_Parameters> <!-- Optional: --> <bsvc:Auto_Complete>true</bsvc:Auto_Complete> <!-- Optional: --> <bsvc:Run_Now>true</bsvc:Run_Now> </bsvc:Business_Process_Parameters> <bsvc:Worker_Custom_Object_Data> <bsvc:Effective_Date>2022-11-18</bsvc:Effective_Date> <bsvc:Worker_Reference bsvc:Descriptor="string"> <!-- Zero or more repetitions: --> <bsvc:ID bsvc:type="Employee_ID">3671</bsvc:ID> </bsvc:Worker_Reference> <bsvc:Business_Object_Additional_Data> <!-- You may enter ANY elements at this point --> <bsvc:tShirtSizes> <bsvc:tShirtSizesField>mXs</bsvc:tShirtSizesField> </bsvc:tShirtSizes> </bsvc:Business_Object_Additional_Data> </bsvc:Worker_Custom_Object_Data> </bsvc:Edit_Worker_Additional_Data_Request> </soapenv:Body>
遇到的验证错误
- Invalid Subelement tShirtSizes-urn:com.workday/bsvc for element Effective_Dated_Web_Service_Additional_Data
- Invalid Subelement T-Shirt_Sizes-urn:com.workday/bsvc for element Effective_Dated_Web_Service_Additional_Data
解决方案
1. 声明正确的自定义命名空间
自定义字段必须使用Workday租户专属的自定义命名空间,而非默认的bsvc命名空间。在请求根节点添加命名空间声明,格式为urn:com.workday/custom/[你的租户名称],示例:
xmlns:cus="urn:com.workday/custom/YourTenantName"
替换YourTenantName为实际租户名,可通过Workday租户配置或API文档确认该命名空间。
2. 调整自定义字段结构
自定义字段直接放在Business_Object_Additional_Data下,使用自定义命名空间前缀,不需要额外嵌套层级。根据你的字段信息,正确的字段节点是cus:tShirtSize,值为对应选项的Web Service Alias(如mXs):
<bsvc:Business_Object_Additional_Data> <cus:tShirtSize>mXs</cus:tShirtSize> </bsvc:Business_Object_Additional_Data>
3. 完整请求示例
整合后的正确请求体如下:
<soapenv:Body> <bsvc:Edit_Worker_Additional_Data_Request xmlns:bsvc="urn:com.workday/bsvc" xmlns:cus="urn:com.workday/custom/YourTenantName" bsvc:version="v38.1"> <bsvc:Business_Process_Parameters> <bsvc:Auto_Complete>true</bsvc:Auto_Complete> <bsvc:Run_Now>true</bsvc:Run_Now> </bsvc:Business_Process_Parameters> <bsvc:Worker_Custom_Object_Data> <bsvc:Effective_Date>2022-11-18</bsvc:Effective_Date> <bsvc:Worker_Reference bsvc:Descriptor="string"> <bsvc:ID bsvc:type="Employee_ID">3671</bsvc:ID> </bsvc:Worker_Reference> <bsvc:Business_Object_Additional_Data> <cus:tShirtSize>mXs</cus:tShirtSize> </bsvc:Business_Object_Additional_Data> </bsvc:Worker_Custom_Object_Data> </bsvc:Edit_Worker_Additional_Data_Request> </soapenv:Body>
4. 关键注意事项
- 自定义字段的节点名称必须与
Web Service Alias完全一致(即tShirtSize,而非tShirtSizes) - 所有自定义字段必须使用自定义命名空间前缀,不能使用
bsvc前缀 - 确认命名空间中的租户名称拼写准确,否则仍会触发验证错误
内容的提问来源于stack exchange,提问作者Zain Arshad
相关产品推荐
相关产品推荐

