修改行程自定义字段
说明
当审批流程处于webHook且是循环等待节点类型时,支持通过单据外码和行程序号修改单据下一条或多条行程的C级字段,目前为覆盖操作。
该接口只修改目标行程的自定义字段,不修改行程时间、城市、出差天数、费用映射、关联人、同行人等行程系统字段,也不修改父单据自定义字段。
接口限制
10次/秒
接口地址
修改行程C级字段
/api/openapi/form/travelRoute/customFields/update
请求类型
PUT
请求参数
参数说明
| 参数名称 | 类型 | 是否必填 | 参数说明 |
|---|---|---|---|
| formCode | String(50) | 是 | 单据外码 |
| formType | String(20) | 是 | 单据类型 |
| travelRouteList | Array | 否 | 行程自定义字段更新列表。推荐使用该字段一次更新同一单据下多个行程 |
travelRouteList 说明
travelRouteList 用于在一次请求中更新同一张单据下的多条行程。每个列表项结构如下:
| 参数名称 | 类型 | 是否必填 | 参数说明 |
|---|---|---|---|
| formRankCode | String(50) | 是 | 行程序号编码,用于定位单据下唯一行程 |
| customObject | customObject | 是 | 当前行程需要更新的字段内容 |
如果请求中传入非空 travelRouteList,接口会按列表处理;如果未传 travelRouteList,则使用顶层 formRankCode 和 customObject 作为单行程更新,兼容旧版调用方式。
同一请求的 travelRouteList 中不允许出现重复 formRankCode。任一行程更新项校验失败或持久化失败时,本次请求整体失败,不保留部分成功的行程修改。
formType说明
| 值 | 名称 |
|---|---|
| REIMBURSE | 报销单 |
| PRECONSUME | 申请单 |
formRankCode 说明
formRankCode 为行程在单据中的序号编码,可通过单据详情查询接口返回的行程数据获取。
当 formRankCode 未匹配到行程,或同一单据下匹配到多条有效行程时,接口会返回失败,不会回退使用行程下标或其他字段定位。
customObject 说明
customObject为json字符串,每个单元又是json字符串,结构如下。key为字段业务编码。
| 参数名称 | 类型 | 是否必填 | 参数说明 |
|---|---|---|---|
| fieldType | String(50) | 是 | 字段类型 |
| value | Object | 是 | 字段值 |
fieldType 说明(仅限以下几种)
| 值 | 名称 |
|---|---|
| SingleTextInput | 单行文本 |
| MultiTextInput | 多行文本 |
| NumberInput | 数字 |
| AmountInput | 金额 |
| DateTimeInput | 日期时间(日期、日期区域格式不同) |
| CityInput | 城市 |
| OptionInput | 内部选项 |
| StaffInput | 员工 |
| OptionMultiInput | 选项(多选) |
| Hyperlink | 超链接 |
| TableInput | 明细表 |
CityInput 说明
地址类型字段传参时,value 传地址完整编码即可:
{
"fieldType": "CityInput",
"value": {
"location": "domestic-ZH4-ZH4_0"
}
}
接口会校验地址编码是否存在。持久化到行程 customObject 时,系统会补全为标准地址对象:
{
"code": "ZH4_0",
"name": "上海市",
"fullCode": "domestic-ZH4-ZH4_0",
"fullName": "上海-上海市",
"location": "domestic-ZH4-ZH4_0"
}
如果地址编码不存在,接口会返回失败,不会修改任何行程自定义字段。
参数样例
{
"formCode": "MK23040012",
"formType": "PRECONSUME",
"travelRouteList": [
{
"formRankCode": "TR001",
"customObject": {
"travel_reason": {
"fieldType": "SingleTextInput",
"value": "客户现场支持"
},
"travel_amount": {
"fieldType": "AmountInput",
"value": {
"amount": 200,
"currency": "CNY"
}
},
"travel_city": {
"fieldType": "CityInput",
"value": {
"location": "domestic-ZH4-ZH4_0"
}
}
}
},
{
"formRankCode": "TR002",
"customObject": {
"travel_reason": {
"fieldType": "SingleTextInput",
"value": "门店巡检"
},
"travel_date": {
"fieldType": "DateTimeInput",
"value": {
"currentTime": 1682091576488
}
},
"travel_staff": {
"fieldType": "StaffInput",
"value": [
"2001291"
]
},
"travel_option": {
"fieldType": "OptionInput",
"value": {
"bizCode": "RDD230419Z1G79J4"
}
}
}
}
]
}
兼容旧版单行程入参:
{
"formCode": "MK23040012",
"formType": "PRECONSUME",
"formRankCode": "TR001",
"customObject": {
"travel_reason": {
"fieldType": "SingleTextInput",
"value": "客户现场支持"
}
}
}
响应参数
响应参数说明
| 参数名称 | 类型 | 是否必填 | 参数说明 |
|---|---|---|---|
| code | String | 是 | 响应码 |
| message | String | 否 | 错误信息 |
| data | String | 否 | 响应体 |
参数样例
正常响应参数示例
{
"code": "ACK",
"message": "",
"data": "",
"success": "true"
}
异常响应参数示例
{
"code": "NACK",
"message": "当前单据不处于webhook节点,不允许修改",
"data": "",
"success": "false"
}
注意事项
- 仅支持父单据处于webhook节点时调用。
- 仅支持申请单和报销单行程。
formCode为单据外码,接口内部会根据formType和formCode定位内部单据。- 使用
travelRouteList时,每一项的formRankCode都必须能定位到唯一有效行程,否则本次请求整体失败。 - 同一请求中不允许重复传入相同
formRankCode。 customObject仅合并本次传入的字段,未传入字段会保留原值。- 地址类型字段会校验地址编码,并补全为包含
code、name、fullCode、fullName、location的地址对象。
修改记录
2026-05-28 新增
2026-05-29 支持一次请求修改同一单据下多个行程,并补充地址类型字段校验和持久化对象说明