前言

  支持农垦项目中,需要增加抓取银行接口传输数据,需求有两点:一是银企平台前置机需要增加扩展中行、农行数据字段。(代理账号、代理账户名称、代理银行) 二是EAS资金模块中的交易明细查询列表界面能够显示扩展的上述三个字段数据。

资金模块
交易明细表:T_BE_TransDetail
实体:TransDetail
新增字段 <String 80>:代理账号: agentAccNo
代理账户名称:agentAccName
代理银行名称:agentAccBkName

  银企平台与资金平台二者数据关系:银企平台使用的是基于插件的开发,通过抓起对应银行接口数据,然后以响应报文方式传输数据给EAS资金平台,资金平台通过对报文XML的结构化解析,获得对应的数据存入数据库中。

  项目过程问题:通过对银企平台响应报文的研究,发现其已经对代理账号等上述三个字段进行抓取并相应,因此不再需要对此进行扩展开发。只是EAS7.5版本资金平台没有对其进行抓取而已(EAS8.2版本已解决)。因此,只需要对资金平台抓取数据部分进行扩展开发。其中源代码 com.kingdee.eas.fm.be.app.BankFacadeControllerBean 中的 parseDetailOtherMessage 方法是进行的数据抓取,可供扩展使用。然后再对交易明细实体进行扩展字段,及修改列表界面,增加新抓取字段(对实体 列表界面 查询Query 的修改 使用 DEP扩展平台 进行扩展开发,专门针对修改标准产品,而且是热更新部署,不需要重启服务器。开发出来这个DEP平台的是真大牛啊!)闲话少说,下面开始阐述开发过程。

  分为两部分:一是源码的扩展。二是DEP扩展交易明细开发。

先贴出整理的整个开发过程的思维导图进行总体的概述,在进行各个部分的细致描述:

Xmind下载链接:https://pan.baidu.com/s/1slI2TtV

整体开发过程思维导图:

源码的扩展

  BankFacadeControllerBean

我们只需要对这个类进行扩展,重写该方法即可。

 package com.kingdee.eas.fm.be.app;

 import org.apache.log4j.Logger;
import com.kingdee.bos.Context;
import com.kingdee.bos.ebservice.Detail;
import com.kingdee.eas.base.core.util.EmptyUtil;
import com.kingdee.eas.fm.be.TransDetailInfo; public class BankFacadeControllerBeanEx extends com.kingdee.eas.fm.be.app.BankFacadeControllerBean
{
private static Logger logger =
Logger.getLogger("com.kingdee.eas.fm.be.app.BankFacadeControllerBeanEx");
public TransDetailInfo parseDetailOtherMessage(Context ctx,
TransDetailInfo transDetailInfo, Detail detail) {
String[] reserveds = detail.getReserveds();
if (!EmptyUtil.isEmpty(reserveds)) {
for (int i = 0; i < reserveds.length; i++) {
String returnValue = reserveds[i].trim();
if (returnValue.toUpperCase().startsWith("agentAccNo=".toUpperCase())) {
transDetailInfo.put("agentAccNo", returnValue.substring("agentAccNo=".length()));
}
if (returnValue.toUpperCase().startsWith("agentAccName=".toUpperCase())) { transDetailInfo.put("agentAccName", returnValue.substring("agentAccName=".length()));
}
if (returnValue.toUpperCase().startsWith("agentAccBkName=".toUpperCase())) { transDetailInfo.put("agentAccBkName", returnValue.substring("agentAccBkName=".length()));
} } }
return transDetailInfo;
}
}

 然后将代码进行导出jar部署到路径:Eas根目录\server\lib\sp\ sp_bankFacade2017051504_class.jar

  

DEP扩展交易明细开发

  扩展交易明细列表界面TransDetailListUI 时提示不能扩展开发,原因是DEP中缺少该UI的注册记录,因此需要将该UI添加到白名单中。

  1. 添加白名单

白名单路径:Eas\Server\server\properties\dep\whitelist\depwhitelist_FM.xml

<ui name="com.kingdee.eas.fm.be.client.TransDetailListUI" alias="银行交易明细"/>
<ui name="com.kingdee.eas.fm.be.client.TransDetailFilterUI" alias="银行交易明细过滤"/>

  2. 在动态扩展平台DEP中新增扩展方案

  3. 新建扩展单元

  4. 导入系统标准的交易明细实体

  5. 在导入的交易明细实体中新增 数据字段

  6. 因为还要在列表中进行显示,因此还需要导入交易明细Query,新增刚在新增加的查询字段

  7. 导入交易明细查询列表界面

  然后右键 编辑表信息,新增显示的数据列

  此时,虽然新增了表列,但是新增加的列还没有绑定修改后的Query数据字段。因此,还需要进行空间和查询Query 的数据绑定

  右键列表ListUI,数据绑定,选中控件,然后再选中对应的数据字段,左框和右框进行一一匹配,一一对应添加!

  此时,交易明细的DEP开发就完成了,进行扩展方案的发布就可以了,即使就会实时的进行实体的修改,数据表修改,列表List修改。在配合上面的代码扩展开发,新增加的字段就会存储到数据交易明细表中了。

  最后,初次接触DEP扩展平台,实在是太强大了!不仅可以在标准产品扩展中使用,还是在独立的开发中使用DEP哦!

 

资金平台交易明细扩展开发-DEP的更多相关文章

  1. Java生鲜电商平台-交易对账以及跟商家对账的思考

    Java生鲜电商平台-交易对账以及跟商家对账的思考 说明:对于任何一家电商而言,资金的安全尤为重要,在资金管理过程中,涉及到交易订单的对账以及商家的对账,那i么如何来保证对账的高效与准确呢? 公司在搭 ...

  2. SNF开发平台WinForm之二-开发-单表表单管理页面-SNF快速开发平台3.3-Spring.Net.Framework

    2.1运行效果: 2.2开发实现: 2.2.1 这个开发与第一个开发操作步骤是一致的,不同之处就是在生成完代码之后,留下如下圈红程序,其它删除. 第一个开发地址:开发-单表表格编辑管理页面 http: ...

  3. Chrome扩展开发之一——Chrome扩展的文件结构

    目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...

  4. ios怎样实现快速将显卡中数据读出压缩成视频在cocos2dx扩展开发中

    如果解决ios怎样实现快速将显卡中数据读出压缩成视频在cocos2dx扩展开发中 手机平台性能是个关键问题. 压缩视频分成3个步骤: 读取显卡数据, 使用编码器压缩,保存文件. 使用libav 压缩的 ...

  5. 【干货】Chrome插件(扩展)开发全攻略(不点进来看看你肯定后悔)

    写在前面 我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的,所以转载务必保留出处.本文所有涉及到的大部分代码均在这个demo里面:https://github ...

  6. 【干货】Chrome插件(扩展)开发全攻略

    写在前面 我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的,所以转载务必保留出处.本文所有涉及到的大部分代码均在这个demo里面:https://github ...

  7. Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲

    Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台:   微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...

  8. Java生鲜电商平台-App系统架构开发与设计

    Java生鲜电商平台-App系统架构开发与设计 说明:阅读此文,你可以学习到以下的技术分享 1.Java生鲜电商平台-App架构设计经验谈:接口的设计2.Java生鲜电商平台-App架构设计经验谈:技 ...

  9. iOS开发系列--App扩展开发

    概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...

随机推荐

  1. 关于php的一些安全知识

    绝不要以明文形式显示或发送密码.即使是对密码的所有者也应该这样.如果你需要 "忘记密码" 的功能,可以随机生成一个新的 一次性的(这点很重要)密码,然后把这个密码发送给用户 你希望 ...

  2. Git操作简介

    一 概述 1.什么是Git? Git是分布式版本控制系统. 2.集中式与分布式对比 在集中式版本控制系统中,版本库集中在中央服务器上,每次工作时都需要先从中央服务器获取最新版本,修改后,再推送到中央服 ...

  3. [leetcode-625-Minimum Factorization]

    Given a positive integer a, find the smallest positive integer b whose multiplication of each digit ...

  4. easyui框架--基础篇(一)-->数据表格datagrid(php与mysql交互)

      前  言  php  easyui框架--本篇学习主要是 easyui中的datagrid(数据表格)框架. 本篇学习主要通过讲解一段代码加GIF图片学习datagrid(数据表格)中的一些常用属 ...

  5. winform控件闪烁问题终极办法

    protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle ...

  6. accp8.0转换教材第7章JavaScript操作DOM对象理解与练习

    程序调试,chrome开发人员工具,DOM操作,节点和节点间的关系,节点信息,操作节点,获取元素 一.单词部分 ①alert警告②prompt提示③parentNode父节点④childNode子节点 ...

  7. springmvc的POST 请求转为 DELETE 或 put 请求配置HiddenHttpMethodFilter

    1.web.xml里配置 <!-- 配置 org.springframework.web.filter.HiddenHttpMethodFilter: 可以把 POST 请求转为 DELETE ...

  8. JavaScript一个鼠标滚动事件的实例

    <script type="text/javascript" src="./whenReady.js"></script> <!- ...

  9. 包装类、数组、string类浅析及练习

    String s1 = "abc"; String s2 = "abc"; System.out.println(s1==s2); //返回true Strin ...

  10. (cljs/run-at (JSVM. :all) "Metadata就这样哦")

    前言  动态类型语言,少了静态类型语言必须声明变量类型的累赘,但也缺失了编译时类型检查和编译时优化的好处.cljs虽然作为动态类型语言,但其提供Metadata让我们在必要的时候可选择地补充类型提示, ...