1. 程式人生 > >資金平臺交易明細擴展開發-DEP

資金平臺交易明細擴展開發-DEP

數據庫 選中 實時 還需 抓取 control hit 提示 tran

前言

  支持農墾項目中,需要增加抓取銀行接口傳輸數據,需求有兩點:一是銀企平臺前置機需要增加擴展中行、農行數據字段。(代理賬號、代理賬戶名稱、代理銀行) 二是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

技術分享

我們只需要對這個類進行擴展,重寫該方法即可。

 1 package com.kingdee.eas.fm.be.app;
 2 
 3 import org.apache.log4j.Logger;
 4 import com.kingdee.bos.Context;
5 import com.kingdee.bos.ebservice.Detail; 6 import com.kingdee.eas.base.core.util.EmptyUtil; 7 import com.kingdee.eas.fm.be.TransDetailInfo; 8 9 public class BankFacadeControllerBeanEx extends com.kingdee.eas.fm.be.app.BankFacadeControllerBean 10 { 11 private static Logger logger = 12 Logger.getLogger("com.kingdee.eas.fm.be.app.BankFacadeControllerBeanEx"); 13 public TransDetailInfo parseDetailOtherMessage(Context ctx, 14 TransDetailInfo transDetailInfo, Detail detail) { 15 String[] reserveds = detail.getReserveds(); 16 if (!EmptyUtil.isEmpty(reserveds)) { 17 for (int i = 0; i < reserveds.length; i++) { 18 String returnValue = reserveds[i].trim(); 19 if (returnValue.toUpperCase().startsWith("agentAccNo=".toUpperCase())) { 20 transDetailInfo.put("agentAccNo", returnValue.substring("agentAccNo=".length())); 21 } 22 if (returnValue.toUpperCase().startsWith("agentAccName=".toUpperCase())) { 23 24 transDetailInfo.put("agentAccName", returnValue.substring("agentAccName=".length())); 25 } 26 if (returnValue.toUpperCase().startsWith("agentAccBkName=".toUpperCase())) { 27 28 transDetailInfo.put("agentAccBkName", returnValue.substring("agentAccBkName=".length())); 29 } 30 31 } 32 33 } 34 return transDetailInfo; 35 } 36 }

然後將代碼進行導出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