文档首页/ 工业数字模型驱动引擎/ API参考/ API/ 数据建模引擎/ 基础数据服务/ 根据唯一键为“是”的属性更新实例的指定字段 - SaveUsingPost
更新时间:2026-07-28 GMT+08:00
分享

根据唯一键为“是”的属性更新实例的指定字段 - SaveUsingPost

功能介绍

本接口用于根据数据模型中“唯一键”为“是”的属性(业务唯一键),对数据实例执行指定字段的保存或更新操作。

  • 更新(Update):若系统中已存在匹配该唯一键的实例,则仅更新请求体中传入的指定字段。

  • 创建(Insert):若系统中不存在匹配该唯一键的实例,则自动创建一条新实例。

在调用本接口前,请确保目标数据模型已满足实例化条件:

  1. 已在应用设计态完成数据模型(数据实体或关系实体)的创建与发布。具体操作请参见创建数据实体创建关系实体应用发布

  2. 已将对应应用成功部署至运行态。具体操作请参见部署应用

接口约束

  • 数据模型中必须存在“唯一键”属性设置为“是”的属性,否则无法使用此接口。

  • 未在params对象中传入的自定义业务属性,其原有值将被保留。若您的业务需求是将某个特定字段清空(置为Null),则必须通过needSetNullAttrs数组显式指定需要置空的属性英文名称,直接传空字符串通常无效。

  • 如果执行的是“创建”操作,传入的唯一键值不能与库中已有数据冲突;如果执行的是“更新”操作,修改后的唯一键值也不能与其他实例冲突。

  • 建议传入modifier(更新者账号)参数。系统会自动更新lastUpdateTime并递增rdmVersion(系统版本号),确保数据变更具备完整的审计轨迹。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

授权信息

账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项

URI

POST /rdm_{identifier}_app/publicservices/api/{modelName}/save

表1 路径参数

参数

是否必选

参数类型

描述

identifier

String

参数解释:

应用的唯一标识。

  • 于2023年06月01日之前创建的应用,其唯一标识为该应用的名称。

  • 于2023年06月01日之后创建的应用,其唯一标识为该应用的ID。

获取方法请参见获取运行服务清单 - ListEnvs

约束限制:

不涉及。

取值范围:

  • 于2023年06月01日之前创建的应用:由英文字母和数字组成,长度为1-36个字符。

  • 于2023年06月01日之后创建的应用:由英文字母和数字组成,且长度为32个字符。

默认取值:

不涉及。

modelName

String

参数解释:

数据模型的英文名称。

约束限制:

不涉及。

取值范围:

以大写字母开头,只能包含字母、数字、“_”,且长度为1-60个字符。

默认取值:

不涉及。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释:

IAM用户的token。

获取方法请参见获取IAM用户Token

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

表3 请求Body参数

参数

是否必选

参数类型

描述

applicationId

String

参数解释:

应用ID,用于指定实例所属的应用。

当URL路径中已能明确应用上下文时,此参数可不传。

获取方法请参见获取租户下的应用清单 - ListApps

约束限制:

不涉及。

取值范围:

由英文字母和数字组成,且长度固定为32个字符。

默认取值:

不涉及。

params

Array of PersistableModelSaveDTO objects

参数解释:

请求参数对象。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

表4 PersistableModelSaveDTO

参数

是否必选

参数类型

描述

createTime

String

参数解释:

创建时间。使用UTC+0时间格式,格式为yyyy-MM-ddTHH:mm:ss.SSSZ。

例如:2025-12-04T03:50:40.599+0000。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

creator

String

参数解释:

创建者账号。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

id

String

参数解释:

数据实例的唯一标识。如指定id,系统将根据id进行匹配;如未指定id,系统将根据uniqueKey进行匹配。

约束限制:

不涉及。

取值范围:

-9223372036854775808到9223372036854775807的整数。

默认取值:

不涉及。

lastUpdateTime

String

参数解释:

最后更新时间。使用UTC+0时间格式,格式为yyyy-MM-ddTHH:mm:ss.SSSZ。

例如:2025-12-04T03:50:40.599+0000。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

modifier

String

参数解释:

更新者账号,用于记录执行更新操作的用户。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

needSetNullAttrs

Array of strings

参数解释:

需要置空的自定义属性列表,包括基本属性、扩展属性和分类属性。

约束限制:

属性名称长度不能超过1000个字符。

取值范围:

不涉及。

默认取值:

不涉及。

rdmExtensionType

String

参数解释:

扩展类型,用于指定数据模型的具体扩展类型。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

tenant

ObjectReferenceParamDTO object

参数解释:

租户信息,用于指定实例所属的租户。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

uniqueKey

String

参数解释:

数据模型的唯一键属性,用于业务层面的唯一标识。当id未指定时,系统将根据此属性进行匹配;若实例不存在则自动创建。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

表5 ObjectReferenceParamDTO

参数

是否必选

参数类型

描述

id

String

参数解释:

数据实例ID,用于唯一标识引用的数据实例。

获取方法请参见分页查询实例 - ShowFindUsingPost

约束限制:

不涉及。

取值范围:

-9223372036854775808到9223372036854775807的整数。

默认取值:

不涉及。

clazz

String

参数解释:

类名,用于指定引用对象的类类型。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

响应参数

状态码:200

表6 响应Body参数

参数

参数类型

描述

result

String

参数解释:

请求处理结果状态。

取值范围:

  • SUCCESS:请求成功。

  • FAIL:请求失败。

data

Array of longs

参数解释:

请求数据。

errors

Array of strings

参数解释:

异常信息列表。当result为FAIL时,返回具体的错误描述,包含失败原因及建议处理方式。

取值范围:

不涉及。

请求示例

示例:根据唯一键保存单个实例(指定字段更新)

根据uniqueKey为“save接口通过唯一键更新值”保存实例。如果实例已存在则更新指定字段,不存在则创建。操作人为test1。

POST https://dme.cn-north-4.huaweicloud.com/rdm_04219627d6794f37ae26e8aba250415d_app/publicservices/api/PersistableModel/save

{
  "applicationId" : "04219627d6794f37ae26e8aba250415d",
  "params" : [ {
    "id" : "1",
    "modifier" : "test1",
    "creator" : "test1",
    "rdmExtensionType" : "PersistableModel",
    "uniqueKey" : "save接口通过唯一键更新值",
    "tenant" : {
      "id" : "-1",
      "clazz" : "Tenant"
    }
  } ]
}

响应示例

状态码:200

OK,表示请求成功。

{
  "result" : "SUCCESS",
  "data" : [ 1 ],
  "errors" : [ ]
}

状态码

状态码

描述

200

OK,表示请求成功。

错误码

请参见错误码

相关文档