# 另存实例数据 - SaveAsUsingPost
#### 功能介绍
本接口用于对指定数据模型的数据实例执行另存为（SaveAs）操作。系统将以指定的源实例为模板，克隆其数据并生成一条全新的实例记录。
在另存过程中，用户可以灵活控制新实例的属性值：
- 未作特殊指定的属性，将完全保持与源实例一致。
  
- 可通过entityToSave为指定属性赋予新的值。
  
- 可通过needSetNullAttrs将指定属性强制清空（置为Null）。
  
另存操作不会修改或覆盖源实例，而是生成一个具有全新系统主键（id）的新实例。此功能常用于工业场景中的"图纸/模型版本迭代"、"BOM复制建版"或"基于历史数据快速创建新对象"等业务。
在调用本接口前，请确保目标数据模型已满足实例化条件：
1. 已在应用设计态完成数据模型（数据实体或关系实体）的创建与发布。具体操作请参见[创建数据实体](https://support.huaweicloud.com/usermanual-idme/idme_usermanual_0007.html)、[创建关系实体](https://support.huaweicloud.com/usermanual-idme/idme_usermanual_0022.html)和[应用发布](https://support.huaweicloud.com/usermanual-idme/idme_usermanual_0085.html)。
   
2. 已将对应应用成功部署至运行态。具体操作请参见[部署应用](https://support.huaweicloud.com/consog-idme/idme_consog_0022.html)。
   
 
#### 接口约束
- 源实例必须存在且未被软删除。
  
- 另存会生成一条全新实例。如果新实例的uniqueKey（业务唯一键）与库中已有数据冲突，将导致创建失败。建议在另存时通过entityToSave传入新的uniqueKey值，或确保系统配置了自动唯一键生成规则。
  
- 建议传入creator和modifier，以记录新实例的创建者与另存操作人。系统会自动为新实例生成全新的createTime和lastUpdateTime。
  
 
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/iDMEClassicAPI/doc?api=SaveAsUsingPost)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-idme/idme_api_0017.html)。
#### URI
POST /rdm_{identifier}_app/publicservices/api/{modelName}/saveAs
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| identifier | 是    | String | **参数解释：** 应用的唯一标识。 - 于2023年06月01日之前创建的应用，其唯一标识为该应用的名称。   - 于2023年06月01日之后创建的应用，其唯一标识为该应用的ID。    获取方法请参见[获取运行服务清单 - ListEnvs](https://support.huaweicloud.com/api-idme/ListApps.html)。 **约束限制：** 不涉及。 **取值范围：** - 于2023年06月01日之前创建的应用：由英文字母和数字组成，长度为1-36个字符。   - 于2023年06月01日之后创建的应用：由英文字母和数字组成，且长度为32个字符。    **默认取值：** 不涉及。 |
| modelName  | 是    | String | **参数解释：** 数据模型的英文名称。 **约束限制：** 不涉及。 **取值范围：** 以大写字母开头，只能包含字母、数字、"_"，且长度为1-60个字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** IAM用户的token。 获取方法请参见[获取IAM用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
表3请求Body参数 
| 参数            | 是否必选 | 参数类型                                                                                                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| applicationId | 否    | String                                                                                               | **参数解释：** 应用ID，用于指定实例所属的应用。 当URL路径中已能明确应用上下文时，此参数可不传。 获取方法请参见[获取租户下的应用清单 - ListApps](https://support.huaweicloud.com/api-idme/ListApps.html)。 **约束限制：** 不涉及。 **取值范围：** 由英文字母和数字组成，且长度固定为32个字符。 **默认取值：** 不涉及。 |
| params        | 是    | [PersistableModelSaveAsDTO] object | **参数解释：** 请求参数对象。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                |
   
 表4PersistableModelSaveAsDTO 
| 参数                 | 是否必选 | 参数类型                                                                                             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| id                 | 否    | String                                                                                           | **参数解释：** 新实例的唯一标识。如不填写，系统将自动生成。 **约束限制：** 不涉及。 **取值范围：** -9223372036854775808到9223372036854775807的整数。 **默认取值：** 不涉及。                                                                                                                                   |
| modifier           | 否    | String                                                                                           | **参数解释：** 修改者名称，用于记录执行另存操作的用户。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                             |
| lastUpdateTime     | 否    | String                                                                                           | **参数解释：** 最后更新时间。使用UTC+0时间格式，格式为yyyy-MM-ddTHH:mm:ss.SSSZ。 例如：2025-12-04T03:50:40.599+0000。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                 |
| creator            | 否    | String                                                                                           | **参数解释：** 创建者账号。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                           |
| createTime         | 否    | String                                                                                           | **参数解释：** 创建时间。使用UTC+0时间格式，格式为yyyy-MM-ddTHH:mm:ss.SSSZ。 例如：2025-12-04T03:50:40.599+0000。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                   |
| rdmExtensionType   | 否    | String                                                                                           | **参数解释：** 扩展类型，用于指定数据模型的具体扩展类型。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                            |
| tenant             | 否    | [ObjectReferenceParamDTO] object | **参数解释：** 租户信息。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                            |
| sourceEntityNumber | 否    | String                                                                                           | **参数解释：** 源模型的编号，用于指定数据来源模型。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                               |
| sourceInstanceId   | 是    | String                                                                                           | **参数解释：** 源实例的唯一标识。对于单实例，使用实例的id；对于版本实例，使用versionId。 获取方法请参见[分页查询实例 - ShowFindUsingPost](https://support.huaweicloud.com/api-idme/ShowFindUsingPost.html)。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| needSetNullAttrs   | 否    | Array of strings                                                                                 | **参数解释：** 需要从源实例中置空的自定义属性列表，包括基本属性、扩展属性和分类属性。这些属性在新实例中将设置为空值。 **约束限制：** 属性名称长度不能超过1000个字符。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                |
| entityToSave       | 否    | Object                                                                                           | **参数解释：** 需要覆盖的属性值对象。可指定源实例中某些属性的新值，未指定的属性保持与源实例一致。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                        |
| entityToReturn     | 否    | Object                                                                                           | **参数解释：** 需要返回的属性对象，用于控制响应中返回的字段信息。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                        |
| uniqueKey          | 否    | String                                                                                           | **参数解释：** 数据模型的唯一键属性，用于业务层面的唯一标识。若指定，新实例将使用此值作为唯一键。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                        |
   
 表5ObjectReferenceParamDTO 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| id    | 是    | String | **参数解释：** 数据实例ID，用于唯一标识引用的数据实例。 获取方法请参见[分页查询实例 - ShowFindUsingPost](https://support.huaweicloud.com/api-idme/ShowFindUsingPost.html)。 **约束限制：** 不涉及。 **取值范围：** -9223372036854775808到9223372036854775807的整数。 **默认取值：** 不涉及。 |
| clazz | 否    | String | **参数解释：** 类名，用于指定引用对象的类类型。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                    |
   
#### 响应参数
**状态码：200**
表6响应Body参数 
| 参数     | 参数类型                                                                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| result | String                                                                                                      | **参数解释：** 请求处理结果状态。 **取值范围：** - SUCCESS：请求成功。   - FAIL：请求失败。    |
| data   | Array of [PersistableModelViewDTO] objects | **参数解释：** 请求数据。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| errors | Array of strings                                                                                            | **参数解释：** 异常信息列表。当result为FAIL时，返回具体的错误描述，包含失败原因及建议处理方式。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
 表7PersistableModelViewDTO 
| 参数               | 参数类型                                                                          | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| className        | String                                                                        | **参数解释：** 类名，表示数据实例的具体类类型。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| createTime       | String                                                                        | **参数解释：** 创建时间。使用UTC+0时间格式，格式为yyyy-MM-ddTHH:mm:ss.SSSZ。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| creator          | String                                                                        | **参数解释：** 创建者账号。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| id               | String                                                                        | **参数解释：** 数据实例的唯一标识。 **取值范围：** -9223372036854775808到9223372036854775807的整数。                                                                                                                                                                                                                                                                                                                                                                                                                              |
| rdmDeleteFlag    | Integer                                                                       | **参数解释：** 软删除标识，用于标识实例是否已被逻辑删除。 **取值范围：** - 0：表示未删除。   - 1：表示已删除。    |
| rdmExtensionType | String                                                                        | **参数解释：** 扩展类型，表示数据模型的具体扩展类型。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| rdmVersion       | Integer                                                                       | **参数解释：** 系统版本号，用于标识实例的版本信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| modifier         | String                                                                        | **参数解释：** 更新者账号。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| lastUpdateTime   | AnyType                                                                       | **参数解释：** 最后更新时间。使用UTC+0时间格式，格式为yyyy-MM-ddTHH:mm:ss.SSSZ。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| tenant           | [TenantViewDTO] object | **参数解释：** 租户信息，表示实例所属的租户详情。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| uniqueKey        | String                                                                        | **参数解释：** 数据模型的唯一键属性。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   
 表8TenantViewDTO 
| 参数               | 参数类型                                                                          | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| className        | String                                                                        | **参数解释：** 租户对象的类名。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| code             | String                                                                        | **参数解释：** 租户编码，用于多租户场景下的租户唯一标识。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| createTime       | String                                                                        | **参数解释：** 租户对象的创建时间。使用UTC+0时间格式，格式为yyyy-MM-ddTHH:mm:ss.SSSZ。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| creator          | String                                                                        | **参数解释：** 租户对象的创建者账号。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| dataSource       | String                                                                        | **参数解释：** 租户使用的数据源名称，用于多租户数据隔离。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| description      | String                                                                        | **参数解释：** 租户描述信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| disableFlag      | Boolean                                                                       | **参数解释：** 租户失效标识，用于标识租户是否已失效。 **取值范围：** - true：失效。   - false：未失效（默认）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| id               | String                                                                        | **参数解释：** 租户的唯一标识。 **取值范围：** -9223372036854775808到9223372036854775807的整数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| kiaguid          | String                                                                        | **参数解释：** 租户KIA密级。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| lastUpdateTime   | String                                                                        | **参数解释：** 租户的最后更新时间。使用UTC+0时间格式，格式为yyyy-MM-ddTHH:mm:ss.SSSZ。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| modifier         | String                                                                        | **参数解释：** 租户的更新者账号。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| name             | String                                                                        | **参数解释：** 租户中文名称。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| nameEn           | String                                                                        | **参数解释：** 租户英文名称。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| rdmDeleteFlag    | Integer                                                                       | **参数解释：** 软删除标识。 **取值范围：** - 0：表示未删除。   - 1：表示已删除。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| rdmExtensionType | String                                                                        | **参数解释：** 租户扩展类型。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| rdmVersion       | Integer                                                                       | **参数解释：** 租户对象的系统版本号。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| securityLevel    | String                                                                        | **参数解释：** 租户安全密级，用于标识租户信息的安全等级。 **取值范围：** - internal：内部公开。   - secret：秘密。   - confidential：机密。   - top_secret：绝密。    |
| tenant           | [TenantViewDTO] object | **参数解释：** 租户信息，表示当前租户的父租户信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
#### 请求示例
**示例：另存实例（保持与源实例一致）**
将ID为1的实例另存为新实例，新实例的uniqueKey设置为saveAs_demo_001，操作人和创建者均为test1。
```
POST https://dme.cn-north-4.huaweicloud.com/rdm_04219627d6794f37ae26e8aba250415d_app/publicservices/api/PersistableModel/saveAs
{
  "applicationId" : "04219627d6794f37ae26e8aba250415d",
  "params" : {
    "sourceInstanceId" : "1",
    "tenant" : {
      "id" : "-1",
      "clazz" : "Tenant"
    },
    "rdmExtensionType" : "PersistableModel",
    "creator" : "test1",
    "modifier" : "test1",
    "uniqueKey" : "saveAs接口另存",
    "needSetNullAttrs" : [ ]
  }
}
```
#### 响应示例
**状态码：200**
```
{
  "result": "SUCCESS",
  "data": [
    {
      "id": "574609957815586816",
      "creator": "test1",
      "modifier": "XDM_Developer xxx",
      "createTime": 2023-12-08T06:54:49.680+0000,
      "lastUpdateTime": 2023-12-08T06:54:49.680+0000,
      "rdmVersion": 1,
      "rdmDeleteFlag": 0,
      "rdmExtensionType": "PersistableModel",
      "tenant": {
        "id": "-1",
        "creator": "xdmAdmin",
        "modifier": "xdmAdmin",
        "createTime": 2023-12-01T01:25:21.000+0000,
        "lastUpdateTime": 2023-12-01T01:25:21.000+0000,
        "rdmVersion": 1,
        "rdmDeleteFlag": 0,
        "rdmExtensionType": "Tenant",
        "tenant": null,
        "className": "Tenant",
        "name": "basicTenant",
        "description": "默认租户",
        "kiaguid": null,
        "securityLevel": "internal",
        "nameEn": null,
        "code": "basicTenant",
        "disableFlag": false,
        "dataSource": "DefaultDataSource"
      },
      "className": "PersistableModel",
      "uniqueKey": null
    }
  ],
  "errors": []
}
```
#### 状态码
| 状态码 | 描述         |
|:---|:---|
| 200 | OK，表示请求成功。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-idme/APIE-XDM-Runtime-ErrorCode.html)。
