# ecode自定义归档开发示例

来源快照：`result_data_new_260518.json`

- 来源 ID：`1208036853021679632`
- 模块：集成中心
- 目录：档案集成 - 开发示例
- space ID：`1158011075224911873`
- 原文链接：未提供
- 产品基线：未提供

## 正文

# 一、功能背景

由于目前市面上档案系统生成的档案包结构以及数据接收方式多种多样，且通过ESB触发调用档案系统包含的附件数据内容过大，对ESB服务造成压力，因此，为满足ecology对接各类档案系统，同时提高ESB稳定性，需要开放生成档案包以及推送数据的二开口子到Ecode中。

# 二、功能价值

提供快捷对接第三方系统的对接方式

# 三、功能说明

## **1.Ecode归档方式同步链路说明**

档案集成提供了二开接口，可在二开服务中实现对应接口并暴露出RPC服务，通过配置Group即可完成二开逻辑调用。

Maven坐标：

<dependency>  
  <groupId>com.weaver</groupId>  
  <artifactId>weaver-intias-core-api</artifactId>  
</dependency>  
---  
  
## **2.E-code自定义归档接口开发规范**

接口类名：com.weaver.intcenter.ias.core.api.hook.EcodeInterface

调用方式：RPC

说明：完全开放数据归档方式，可自行开发流程数据处理、附件信息处理、数据推送到档案系统代码逻辑

请求参数：

参数名| 允许为空| 说明  
---|---|---  
requestId| 否| 流程请求ID  
channelId| 否| 归档方案ID  
outDataModel| 否| 归档数据，具体结构见《3.5归档数据结构说明》章节  
extParam| 是| 扩展参数  
  
响应：返回 com.weaver.common.base.entity.result.WeaResult 封装结果，数据可以为空。

示例：

package com.weaver.intcenter.intias.hook.impl;import [com.alibaba](http://com.alibaba).fastjson.JSON;import [com.alibaba](http://com.alibaba).fastjson.JSONObject;import com.weaver.common.base.entity.result.WeaResult;import com.weaver.intcenter.ias.core.api.hook.EcodeCusConvertInterface;import com.weaver.intcenter.ias.core.api.hook.dto.EcodeCusConvertRequest;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;@Component("intias_EcodeInterfaceImpl")public class EcodeInterfaceImpl implements EcodeInterface{ private static final Logger LOG = LoggerFactory.getLogger(EcodeCusConvertInterfaceImpl.class); @Overridepublic WeaResult<Map<String, Object>> doPush(EcodePushRequestrequest) {[LOG.info](http://LOG.info)("调用Ecode自定义接口, request={}", JSON.toJSONString(request));try {String result = MockUtil.pushToHttp("com.weaver.intcenter.intias.hook.impl.EcodeInterfaceImpl.doPush", JSON.toJSONString(request));JSONObject jsonObject = JSON.parseObject(result);String canshu1 = jsonObject.getString("canshu1");return WeaResult.success(canshu1);} catch (Exception e) {return [WeaResult.fail](http://WeaResult.fail)(e.getMessage(), e);}}}  
---  
  
## **3.发布ecode接口**

参考ecode开发文档-部署jar包&配置文件编辑该小节上传二开jar包并修改对应配置文件，重启生效：[https://weapp.eteams.cn/ecode/playground/doc/share/view/974701716410515473#%E4%B8%8A%E4%BC%A0%E9%83%A8%E7%BD%B2](https://weapp.eteams.cn/ecode/playground/doc/share/view/974701716410515473#%E4%B8%8A%E4%BC%A0%E9%83%A8%E7%BD%B2￼配置发布示例：)

![](https://weapp.eteams.cn/papi/file/preview?fileId=1208039940940660739&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)[  
配置文件编辑发布接口示例：](https://weapp.eteams.cn/ecode/playground/doc/share/view/974701716410515473#%E4%B8%8A%E4%BC%A0%E9%83%A8%E7%BD%B2￼配置发布示例：)

ref| 对应实现接口的 bean 实例名称。  
---|---  
interface| com.weaver.intcenter.ias.core.api.hook.EcodeInterface（ 固定不变）  
group| 用于区分不同实现的唯一约束。  
version| 可选参数，可用于后续多版本扩展  
  
示例：

    <dubbo:service ref="intias_EcodeInterfaceImpl"                   interface="com.weaver.intcenter.ias.core.api.hook.EcodeInterface"                   group="1037402561080598531" />  
---  
  
## **4.档案集成-归档方案设置**

新建归档方案，归档方式：选择“ecode自定义归档”

![](https://weapp.eteams.cn/papi/file/preview?fileId=1208039069272014853&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

分组标识：填写步骤3发布好的ecode接口分组标识，点击下一步，完成页面点击归档后，将逐条流程调用ecode接口，实现自定义归档
