> **支持基线: 2512.01**

##### 引入 weaver-ebuilder-form-client jar：

```xml
<dependency>
    <groupId>com.weaver</groupId>
    <artifactId>weaver-ebuilder-form-client</artifactId>
</dependency>
```

##### 请求接口:    ([为后续项目使用中切换应用独立部署的需要，二开逻辑请使用独立部署方式调用](https://weapp.eteams.cn/build/techdoc/wdoc/index.html#/public/doc/81831572-da60-474d-9328-2309af780fb9))

```java
// 注入方式
@Autowired
private PublishKitRuntimeUtil publishKitRuntimeUtil;

RemoteEBESearchService remoteEBESearchService= publishKitRuntimeUtil.buildRpcService(com.weaver.ebuilder.form.client.service.esearch.RemoteEBESearchService.class, "ebuilderform", appId);
remoteEBESearchService.upsertEsearchDatas(ebEsearchDataReqDto);
```

**注意**: 若是二开免登陆的方式调用 需要在调用之前用如下方式手动设置到上下文当前租户

com.weaver.framework.rpc.context.impl.TenantRpcContext#setTargetTenantKey(String tenantKey)

##### 参数说明:

###### [ eb系统参数获取说明(objId, appId, fieldId, layoutId)](https://weapp.eteams.cn/build/techdoc/wdoc/index.html#/public/doc/4771f4ea-bf3d-403e-81c1-c2983e604b06)

###### [ 数据操作请求参数说明](https://weapp.eteams.cn/sp/techdoc/doc/12446a88-388b-426f-a1dd-aad13907929c/freepass)

##### 请求示例:

```json
{
    "datas": [
        {
            "mainDatas": [
                {
                    "content": "827779861835694084",
                    "fieldId": "827779767447076865",
                    "matchByName": false,
                    "operate": "OPERATE_EQUAL"
                },
                {
                    "content": "827779861835694081",
                    "fieldId": "id",
                    "matchByName": false
                }
            ]
        }
    ],
    "header": {
        "objId": "827390643350716667",
        "operator": "2226677261577323087",
        "tenantKey": "tfg4et9wmj"
    },
    "operation": {
        "asyncPostProcess": true,
        "checkRight": false,
        "doActoin": false,
        "execMonitor": false,
        "execRelate": false,
        "updateType": "ids"
    }
}
```

###### [特殊字段写入示例(地址位置、人员范围选择、人力资源条件、附件)](https://weapp.eteams.cn/build/techdoc/wdoc/index.html#/public/doc/a2d11226-de1b-4712-aab2-ae9d5dd7b0b4)

###### [以字段dataKey的方式请求操作数据](https://weapp.eteams.cn/build/techdoc/wdoc/index.html#/public/doc/285f851b-fbfc-4ffa-89e7-810fa0759339)

##### 代码组装示例（仅支持使用ids方式操作数据）:

```java
/**
 * 直接通过id更新数据， 即update table set a = '11' where id = 1
 */
EBEsearchDataRes ebEsearchDataReqDto = new EBEsearchDataRes();
// 构建基础参数; objId 表单id, operator 操作人, tenantKey 租户
ebEsearchDataReqDto.setHeader(new EBDataReqHeader("845949514837516289", "5112849484828049659", "t2k74i3rjo"));
// 请求操作信息
EBDataReqOperation ebDataReqOperation = new EBDataReqOperation();
ebDataReqOperation.setUpdateType(EBDataUpdateType.ids);
ebEsearchDataReqDto.setOperation(ebDataReqOperation);

// 数据组装
List<EBDataReqDto> datas = new ArrayList<>();
// 数据1
EBDataReqDto ebDataReqDto = new EBDataReqDto();
List<EBDataReqDetailDto> mainData1 = new ArrayList<>();
// 设置更新id
mainData1.add(new EBDataReqDetailDto("id", "845949549147324400"));
// 单行文本
mainData1.add(new EBDataReqDetailDto("845949549147324416", "单行文本数据1"));
// 选择框复制给ids拼接
mainData1.add(new EBDataReqDetailDto("845949549147324419", "1,2,3,4"));
ebDataReqDto.setMainDatas(mainData1);

datas.add(ebDataReqDto);
ebDataChangeReqDto.setDatas(datas);
EBEsearchDataRes eBEsearchDataRes = remoteEBESearchService.upsertEsearchDatas(ebEsearchDataReqDto);
```

**注意**: 因eb和微搜对接实现方案问题， 明细更新目前会导致对应明细覆盖， 暂不支持明细更新

##### 返回成功示例:

```json
{
    "status": true,
	"ids": [
		"841452744116652236",
		"841452744116652237"
	]
}
```

##### 返回失败示例:

```json
{
    "status": false,
	"message": "没有数据操作权限，请联系管理员添加权限"
}

{
    "status": false,
	"message": "参数异常，请求参数中有效字段为空"
}
```
