# 数据操作

# 新增/修改

  1. 支持仅表头数据保存
  2. 支持仅子表数据保存
  3. 支持表头带子表数据保存
  4. 支持批量保存,上限为单次20条

# URL

POST /api/metadata-app/v2/data/operation/saveOrUpdate

# 请求参数

参数名称 格式 说明 默认值 取值范围
templateApiName String 表单ApiName
async Boolean 是否异步执行 false true, false
workflowInitOperation String 审核流操作类型
features Map<String, Boolean> 功能特性开关

# 请求示例

{
  "body": {
    // 表单的ApiName
    "templateApiName": "template_U7zAJ", 

    // 要保存的数据内容,支持多条数据新建
    "contents": [
      {
        // 数据id,如果填写了id的值,该条数据会以UPDATE的方式处理
        "id": "64c9b787ee4c6b1302057953",

        // 父表单信息,如果当前操作的表单是子表,需要填写父表单信息
        "parent": {
          "templateApiName": "template_J55vC",
          "id": "64b4b549f9d5e37cc40adac0"
        },

        // 字段值,以Key-Value的方式填写,不同字段类型的格式不同,有关字段格式,请参阅:
        // https://newcoretech.yuque.com/staff-cg4861/avk6zc/znitcvgzm9v3nvoq
        "value": {
          "field_0VUUN__c": 1690905600000, // 日期
          "field_1qLlk__c": "这是一条文本", // 单行文本/多行文本
          "field_3hPNI__c": 10, // 数字
          "field_CB1Db__c": { // 关联表单
            "id": "63a2aa8ac3ebbe0f58317f6d"
          }
        },
        "version": 1 // 数据版本,如果是UPDATE操作,需要填写
      },

      // 这条数据中没有id参数,该条会以INSERT方式处理
      {
        // 字段值,同上
        "value": {
          "field_0VUUN__c": 1690905600000,
          "field_1qLlk__c": "这是一条文本",
          "field_3hPNI__c": 10,
          "field_CB1Db__c": {
            "id": "63a2aa8ac3ebbe0f58317f6d"
          }
        },

        // 子表数据,如果需要保存表头数据带子表数据,可以将子表数据填到children这个参数中
        // 支持多个子表操作,每个子表也可以新增/修改多条
        "children": {
          "template_sSDnG": [
            {
              // 虽然这个父子层级结构很清晰了,但子表数据中也需要填写parent参数,
              // 因为数据在处理的过程中为了批量操作加快速度,会做扁平化处理。经扁
              // 平化处理后,如果子表中的parent信息未填写,父子结构将会丢失
              "parent": {
                "templateApiName": "template_U7zAJ"
              },

              // 子表的字段值,同上
              "value": {
                "field_K4E3E__c": 30,
                "field_MBFhv__c": "这是一条子表文本"
              }
            }
          ],

          // 另一个子表数据
          "template_CeoKf": [
            {
              "parent": {
                "templateApiName": "template_U7zAJ"
              },
              "value": {
                "field_2Aap9__c": 1690905600000,
                "field_NQsPq__c": 15,
                "field_R2Xuz__c": {
                  "id": "646da89b3cbb837dfd5c9234"
                }
              }
            }
          ]
        }
      }
    ],

    // 是否异步,目前该功能并未开放,默认为同步
    "async": false,

    // 审核流操作类型:
    // 		SAVE 						= 保存
    // 		SUBMIT 					= 提交
    // 		SAVE_AND_SUBMIT = 保存并提交
    "workflowInitOperation": "SAVE",

    // 功能特性开关:
    // 接口支持通过开关控制某些功能特性,默认情况下,请不要填写这个参数,即所有功能处于开启状态
    // 【PS】:除非你知道自己在做什么,否则不要管这个参数,让它用默认值。
    // 以下是接口支持的功能,通过参数true/false可以开启或禁用某一功能:
    // 		AUTO_CODEC 					= 自动生成编号
    // 		CONSTRAINT_VALID 		= 约束校验
    // 		FORMAT_CHECK 				= 数据格式检查
    // 		CORE_BI_SYNC 				= CoreBI数据同步
    // 		AUDIT_TRAIL 				= 操作审计(单据日志)
    // 		NOTIFICATION 				= 单据消息通知
    // 		FLOW 								= 触发工作流
    // 		WORKFLOW 						= 触发审核流
    "features": {
      "WORKFLOW": false // 这里禁用了审核流功能,数据提交后,将不会触发审核流相关的事件
    }
  }
}

# 响应参数

参数名称 格式 说明
code Integer 状态码
message String 响应信息
data Object 响应内容
entity List 本次操作成功返回的数据

# 响应示例

{
    "code": 200,
    "message": "ok",
    "data": {
        "entity": [
            {
                "code": "00000034",
                "field_y8RZh__c": "选项一",
                "field_lHzLw__c": [
                    "选项一",
                    "选项二"
                ],
                "field_1WBae__c": 1,
                "auditor": {
                    "id": "10047537"
                },
                "audit_status": "已审核",
                "field_vBQ5g__c": {
                    "startTime": 1690819200000,
                    "endTime": 1691078399999
                },
                "field_ldDYZ__c": true,
                "audit_time": 1691375437107,
                "field_OAM2b__c": 1690992000000,
                "field_Fvg7B__c": "A",
                "id": "64d057517ef5bb6ede27ca63",
                "field_pYpxG__c": "A",
                "joinData": {
                    "template_XysYZ": [
                        {
                            "audit_time": 1691375440757,
                            "code": "00000021",
                            "field_fsJQe__c": "A1",
                            "object_DBwbB__c_Parent": {
                                "id": "64d057517ef5bb6ede27ca63"
                            },
                            "auditor": {
                                "id": "10047537"
                            },
                            "field_DbivI__c": "A1",
                            "audit_status": "已审核",
                            "id": "64d057527ef5bb6ede27ca64",
                            "field_lbITx__c": "11"
                        }
                    ]
                }
            }
        ]
    }
}