PE框架学习

PE开发基础:

开发平台PowerEngine:

PE框架学习_第1张图片

开发新功能:

PE框架学习_第2张图片

业务逻辑处理:

1、Transaction:交易
2、Chain:链、责任链
3、Command:命令
4、Template:模板
5、Action:动作

PE交易处理流程:

无论一个交易的发送渠道是HTTP还是TCP,最终针对每一个渠道的Adapter会将请求的Form(HTTP)或报文(TCP)转换成与渠道无关的Context。
当渠道Adapter将数据转换为渠道无关的Context后,将控制权交给PowerEngine核心控制模块,根据该交易的交易Id,来确认该交易需要经过的处理过程。
  1. 首先执行Chain中的一系列Commands,若有其中一个Command认为需结束处理,则处理立刻结束;
  2. 当Chain执行到Delegate Command时,开始执行Template;
  3. 不同的Template会调用不同的Actions,以完成实际的交易处理。
简言之,根据交易Id可以唯一地确定Template,根据Template可以唯一地确定Chain,一旦确定了Chain,系统就按流程图所示开始执行处理。
PE框架学习_第3张图片
总结:首先根据中的id号,找到模板(template),然后再根据模板找到责任链(chain),一旦确认chain就按照流程图执行,从chain中执行command,执行到deletegatecommand后结束,跳到模板,再去执行,然后跳转到相应的jsp页面。(/posweb/WebContent/WEB-INF/zh_CN/pos/LoanBaseInformationQuery.jsp)

Transaction:

一个业务处理功能的入口。
关键点:
    交易id
    引用的模板
    定义的action
    数据交验
    返回页面的渠道
transaction定义:
[html]  view plain  copy
 
  1. <transaction id=“preManagerAdd" template="引用的模版Id">  
  2.           
  3.         <actions>  
  4.             <ref name="act01" >交易级定义的Actionref>             
  5.         actions>  
  6.           
  7.           
  8.         <fields>  
  9.             <field name="域名1">Style名称field>  
  10.             。。。           
  11.         fields>  
  12.           
  13.         <channels>  
  14.               
  15.             <channel type="http">  
  16.                 <param name="success">result.jspparam>  
  17.         ......                
  18.             channel>  
  19.         channels>  
  20. transaction>  
 
举例:posaction工程
/posaction/src/config/pos/trs/pos.xml
[html]  view plain  copy
 
  1. <transaction id="LoanBaseInformationQuery" template="queryTemplate">  
  2.     <description>  
  3.         @funcName  
  4.         @trsName 贷款基本信息查询  
  5.         @author  
  6.         @version 1.0  
  7.         @remark  
  8.         @fromPages  
  9.     description>  
  10.     <actions>//交易级的action  
  11.         <ref name="action">LoanBaseInformationQueryActionref>  
  12.     actions>  
  13.     <fields>  
  14.         <field name="ContractNo">field>  
  15.     fields>  
  16.     <channels>  
  17.         <channel type="http">  
  18.             <param name="success">pos/LoanBaseInformationQueryparam>  
  19.         channel>  
  20.     channels>  
  21. transaction>  
  22. <action id="LoanBaseInformationQueryAction"  
  23.     class="com.csii.ibs.pos.action.LoanBaseInformationQueryAction" parent="BaseQueryAction">  
  24. action>  

Template:

Template定义: