# 统一待办降版本适配手册

说明:

1、以V7.1SP1 20190930基线代码为例。

2、示例代码版本较老,存储在SVN仓库,studio中建对应项目仅做代码存储,体现修改记录。

3、视频讲解位置 链接:https://pan.baidu.com/s/15u6nrN-OzKEin1HTeB6GYg 提取码:ms6g 【客开知识大纲3.0】-【研发知识转移2023】-【统一待办降版本适配手册】

# 支持原则和适配成本

V5V8融合由两部分代码构成,不同版本的集成成本不同:

# 第一部分代码:V5推送接口代码

  • 8.2SP1及后续版本,无客开成本,标准产品已经自带这部分代码,开箱即用

  • 8.1、8.1SP1、8.1SP2、8.2版本:需要预留3天客开及自测工作量,适配新闻、公告、调查等模块推送代码,适配方式:参考Ctp-Stuido“客开复用插件:V5V8融合”里面新闻、公告、调查的代码做适配,或者参考标准产品8.2SP1的对应模块代码做适配。

  • 8.0SP2及更早版本:需要预留6天客开及自测工作量,适配协同、公文、新闻、公告、调查等模块推送代码,适配方式:参考Ctp-Stuido“客开复用插件:V5V8融合”里面新闻、公告、调查的代码做适配

如何适配可参考本手册

如项目上无客开能力适配,直销项目走“项目开发作业申请单”(抵扣项目客开成本),分销项目走“技术服务支持申请单”(伙伴预支付结算成本费用后支持)

# 第二部分代码:监听V5接口并将消息推送到V8的代码

此代码不区分版本,所有版本通用。

1、短期:联系V8提供补丁包。

2、中期:V8会将适配代码迁移到ctp-studio,位置待定。后续别的项目有集成需求,直接通过ctp-studio申请代码自行合并即可。

如何适配可参考本手册视频培训部分

如项目上无客开能力适配,直销项目走“项目开发作业申请单”(抵扣项目客开成本),分销项目走“技术服务支持申请单”(伙伴预支付结算成本费用后支持)

# 获取studio代码

客户名称搜索"V5V8",找到如图所示项目。

1703312968703.png

复制代码仓库地址,删除"/v5.git",使用"http://gitlab.kk.seeyon.com/customize/KKCJZB202308210001"访问。

1703312976947.png

进入"V5V8融合for7.1"项目,选择v71sp1_hotfix_20190930_pending分支,README.md中简要说明此分支作用及代码版本基线

1703312983242.png

1703312988264.png

代码提交记录分为两类,分别为需要修改文件对应版本发版源码,以及针对源码的修改记录提交

1703312995011.png

# 交互逻辑

如图,分为两类,直接组装数据调用统一待办事件;以及通过工作流中转,在工作流结束事件中统一推送。

1703313000773.png

# 事件类介绍

1、事件类:ExtIntegrationExtendEvent

2、应用数据类:ExtSummary

包含事项变动列表、应用标题、发起人、发起时间等。

3、事项变动列表类:ExtAffair

包含事项所属人、事项状态、事项删除状态、PC跳转链接、移动跳转链接等。

4、工作流变动事项类:ExtIntegrationWorkflowBO

# 适配方式

1、参照代码提交记录,在对应版本适配代码

2、在触发ExtIntegrationExtendEvent事件的总入口处检查各项数据是否正确,建议参照相邻确认有此功能版本。确保相同的操作,调用事件次数相同、变动事项列表数量相同、变动事项中关键状态相同。

# FAQ

F:版本与示例版本不一致如何处理?

Q:参照示例中的修改记录找对应位置自行适配。

F:适配时发现部分代码在适配版本中找不到怎么办?

Q:不同版本功能不一定完全相同,有可能会少也有可能会多。如果适配版本都无此功能,自然无需适配。如果适配版本相比示例更多,参照适配方式验证数据方式,在具备此功能的高版本中查找代码修改点。

F:相同的功能,affair.state与affair.subState的值与示例版本不一致怎么办?

Q:根据实际效果而定,如果不影响可以不用考虑,要是影响了可以参考示例版本特殊处理。建议对推送事件中的对象做处理,不影响OA原有逻辑。

F:相同的位置加上了代码,但是运行到事件推送接口的数据量和状态与示例版本不一致怎么办?

Q:不同版本对于数据实际更新的处理不完全相同,分析代码另外找合适的位置适配,确保到事件接口处的数据正确。

创建人:lichaoj
修改人:het