修改行程自定义字段

说明

当审批流程处于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 支持一次请求修改同一单据下多个行程,并补充地址类型字段校验和持久化对象说明
Copyright © 杭州每刻科技有限公司 www.maycur.com all right reserved,powered by Gitbook该文件修订时间: 2026-09-23 10:19:53

results matching ""

    No results matching ""

    results matching ""

      No results matching ""