# 批量创建/更新填报行

批量创建/更新填报行后，可在【设置-编制规划设置-编制规划XXX-集中填报-查看数据】进行查看。

**注意事项**：批量创建/更新填报行说明：同批次操作场景下，禁止创建/更新重复行，与此同时，创建时若填报行已存在于系统中，则会在底层自动触发更新机制；建议不要录入编制规划值和预估在职人数均为零值的填报行，系统会对全0填报行进行过滤，从而在页面上不显示该行，可能会导致用户误以为填报行不存在。

## 请求

基本 | &nbsp;
---|---
HTTP URL | https://open.feishu.cn/open-apis/corehr/v2/report_detail_row/batchSave
HTTP Method | POST
接口频率限制 | [5 次/秒](https://open.feishu.cn/document/ukTMukTMukTM/uUzN04SN3QjL1cDN)
支持的应用类型 | Custom App、Store App
权限要求<br>**调用该 API 所需的权限。开启其中任意一项权限即可调用** | 写入编制规划集中填报明细信息(corehr:workforce_plan_centralized_reporting_project_detail:write)

### 请求头

名称 | 类型 | 必填 | 描述
---|---|---|---
Authorization | string | 是 | `tenant_access_token`<br>**值格式**："Bearer `access_token`"<br>**示例值**："Bearer t-7f1bcd13fc57d46bac21793a18e560"<br>[了解更多：如何选择与获取 access token](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-choose-which-type-of-token-to-use)
Content-Type | string | 是 | **固定值**："application/json; charset=utf-8"

### 请求体

名称 | 类型 | 必填 | 描述
---|---|---|---
workforce_plan_id | string | 是 | 编制规划id，可在「设置-编制规划设置-编制规划XXX-页面URL」中解析到。<br>**示例值**："7430330781544564268"
centralized_reporting_project_id | string | 是 | 集中填报id，可在「设置-编制规划设置-编制规划XXX-集中填报XXX-查看数据-页面URL」中解析report_id。<br>**示例值**："7430470688844023340"
items | workforce_plan_detail_row\[\] | 是 | 集中填报的填报行数量应介于 1 至 5 个之间。<br>**数据校验规则**：<br>- 长度范围：`1` ～ `5`
dimensions | dimension_entity\[\] | 是 | 集中填报的维度信息要和用户创建的维度匹配，即传入除自动匹配维度外的所有维度，不多不少。<br>通过「设置-编制规划设置-编制规划XXX」查看该编制规划有哪些维度。<br>**数据校验规则**：<br>- 长度范围：`1` ～ `20`
dimension_key | string | 是 | 维度key，可从下面列表中进行选择：<br>- "department"：部门。<br>- "employee_type" ：人员类型。<br>- "location"：地点。<br>- "position" ：岗位。<br>- "cost_center" ：成本中心/业务线。<br>- "job_family" ：序列。<br>- "job_level" ：职级。<br>- "job" ：职务。<br>- "pathway"：通道。<br>自定义组织：<br>- "custom_org_01" <br>- "custom_org_02"<br>- "custom_org_03"<br>- "custom_org_04" <br>- "custom_org_05"<br>**示例值**："department"
dimension_value | string | 是 | 维度value。<br>- department_id：可从[查询部门](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get)获得。<br>- location_id：可从[查询地点](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/location/list)获得。<br>- cost_center_id：可从[查询成本中心](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/cost_center/search)获得。<br>- job_id：可从[查询职务](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/job/list)获得。<br>- job_level_id：可从[查询职级](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_level/list)获得。<br>- job_family_id：可从[查询序列](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/job_family/list)获得。<br>- employee_type_id：可从[查询人员类型](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/employee_type/list)获得。<br>- position_id：可从[查询岗位](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/position/query)获得。<br>-  pathway_id: 可从[查询通道](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pathway/batch_get)获得。<br>- custom_org_01_id：可从[查询自定义组织](https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/query)获得。<br>- custom_org_02_id：可从[查询自定义组织](https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/query)获得。<br>- custom_org_03_id：可从[查询自定义组织](https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/query)获得。<br>- custom_org_04_id：可从[查询自定义组织](https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/query)获得。<br>- custom_org_05_id：可从[查询自定义组织](https://open.feishu.cn/document/corehr-v1/organization-management/custom_org/query)获得。<br>**示例值**："7322790168290739756"
eai_details | workforce_plan_eai_detail\[\] | 否 | 预估在职人数相关信息。可从「设置-编制规划设置-编制规划XXX-集中填报」查看预估在职人数的时间，如果不存在该字段说明用户创建时即没有允许填写该字段，批量创建/更新填报行时则无需给该字段，如果存在，用户需要查看预估在职人数的日期，使用示例值格式进行传参。<br>**数据校验规则**：<br>- 长度范围：`0` ～ `15`
date | string | 否 | 预估在职人数的日期，和集中填报页面上显示的预估在职人数的日期一致，且格式要依照示例给定，若二者不匹配，则无法完成识别更新。<br>**示例值**："2020-10-31"
estimated_active_individuals | string | 否 | 预估在职人数应与创建编制规划时指定的小数位数相匹配，若不匹配，则无法更新。小数位查看方式：「设置-编制规划-编制规划XXX」查看预估在职人数的小数位数。<br>**示例值**："10"
plan_value | string | 否 | 编制规划值。需与创建编制规划时指定的小数位数相匹配，若不匹配，则无法更新。小数位查看方式：「设置-编制规划-编制规划XXX」查看编制规划的小数位数。注意当编制规划方案是按自然周期选择时，该值必须为空，需要设置自然周期的编制规划信息multi_period_values。<br>**示例值**："12"
multi_period_values | workforce_plan_multi_period_value\[\] | 否 | 自然周期的编制规划信息。当编制规划方案是按自然周期选择时，设置该字段。<br>**数据校验规则**：<br>- 长度范围：`0` ～ `15`
period_date | string | 否 | 周期的最后一天。注意需要在填报选择的周期范围内。<br>**示例值**："2022-10-31"
workforce_plan | string | 否 | 对应自然周期的编制规划值。编制规划值需与创建编制规划时指定的小数位数相匹配，若不匹配，则无法更新。小数位查看方式：「设置-编制规划-编制规划XXX」查看编制规划的小数位数。<br>**示例值**："12.00"
individuals_to_be_added | string | 否 | 对应自然周期预增员数量。批量创建更新时，无需写入此字段。<br>**示例值**："10.00"
individuals_to_be_removed | string | 否 | 对应自然周期预减员数量。批量创建更新时，无需写入此字段。<br>**示例值**："10.00"

### 请求体示例
```json
{
    "workforce_plan_id": "7435976673130317356",
    "centralized_reporting_project_id": "7436723164333753900",
    "items": [
        {
            "dimensions": [
                {
                    "dimension_key": "department",
                    "dimension_value": "7371716294248908332"
                },
                {
                    "dimension_key": "location",
                    "dimension_value": "7312702817660487212"
                },
                {
                    "dimension_key": "cost_center",
                    "dimension_value": "7212847939319219756"
                },
                {
                    "dimension_key": "job_family",
                    "dimension_value": "7210959705752192556"
                },
                {
                    "dimension_key": "employee_type",
                    "dimension_value": "7210608964277601836"
                }
            ],
            "plan_value": "919",
            "eai_details": [
                {
                    "date": "2029-01-31",
                    "estimated_active_individuals": "9"
                },
                {
                    "date": "2029-02-28",
                    "estimated_active_individuals": "99"
                }
            ]
        }
    ]
}
```

## 响应

### 响应体

名称 | 类型 | 描述
---|---|---
code | int | 错误码，非 0 表示失败
msg | string | 错误描述
data | \- | \-

### 响应体示例
```json
{
    "code": 0,
    "msg": "success",
    "data": {}
}
```

下面是错误码的简单示例，详细描述可通过下面的链接查看。

### 错误码

HTTP状态码 | 错误码 | 描述 | 排查建议
---|---|---|---
400 | 1160001 | param is invalid | 请先参考全量错误码详细描述进行错误排查，如问题始终无法解决请联系[技术支持](https://applink.feishu.cn/TLJpeNdW)

其他错误码参考: [全量错误码详细描述](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/workforce_plan/the-full-set-of-error-codes)

