PE框架学习
PE开发基础:
开发平台PowerEngine:
开发新功能:
业务逻辑处理:
PE交易处理流程:
- 首先执行Chain中的一系列Commands,若有其中一个Command认为需结束处理,则处理立刻结束;
- 当Chain执行到Delegate Command时,开始执行Template;
- 不同的Template会调用不同的Actions,以完成实际的交易处理。
简言之,根据交易Id可以唯一地确定Template,根据Template可以唯一地确定Chain,一旦确定了Chain,系统就按流程图所示开始执行处理。
Transaction:
关键点:
交易id
引用的模板
定义的action
数据交验
返回页面的渠道
- <transaction id=“preManagerAdd" template="引用的模版Id">
- <!--交易级定义的Actions.由模版来确定这些Actions的调用方法。-->
- <actions>
- <ref name="act01" >交易级定义的Action</ref>
- </actions>
- <!--对每一个域的有效性检查-->
- <fields>
- <field name="域名1">Style名称</field>
- 。。。
- </fields>
- <!--渠道的定义-->
- <channels>
- <!--HTTP渠道的定义-->
- <channel type="http">
- <param name="success">result.jsp</param>
- ......
- </channel>
- </channels>
- </transaction>
- <transaction id="LoanBaseInformationQuery" template="queryTemplate">
- <description>
- @funcName
- @trsName 贷款基本信息查询
- @author
- @version 1.0
- @remark
- @fromPages
- </description>
- <actions>//交易级的action
- <ref name="action">LoanBaseInformationQueryAction</ref>
- </actions>
- <fields>
- <field name="ContractNo"></field>
- </fields>
- <channels>
- <channel type="http">
- <param name="success">pos/LoanBaseInformationQuery</param>
- </channel>
- </channels>
- </transaction>
- <action id="LoanBaseInformationQueryAction"
- class="com.csii.ibs.pos.action.LoanBaseInformationQueryAction" parent="BaseQueryAction">
- </action>
Template:
- <template id="queryTemplate" class="com.csii.pe.template.ExecutableSequenceTemplate" chain="chainForRoleControlMV">
- <actions>//模板级的action
- <ref name="action">Placeholder</ref>
- <ref name="preAction">WriteQueryTrsJournal</ref>
- </actions>
- </template>
Chain:
<commands>
<ref>引用的command Id.</ref>
</commands>
</chain>
/poscommon/src/config/chain.xml
- <chain id="chainForRoleControlMV">
- <commands>
- <ref>MultiVersionViewCommand</ref>
- <ref>roleControlCommand</ref>
- <ref>validationCommand</ref>
- <ref>ruleCommand</ref>
- <ref>delegateCommand</ref>
- <ref>${chain.monitor}</ref>
- </commands>
- </chain>
Command:
Command定义:
- DelegateCommand:每一个Chain必须有一个而且仅限于一个DelegateComand;
- ValidationCommand:执行系统级的基于Style的有效性检查;
- LoginControlCommand:用于控制用户访问服务的频率,主要用于登录交易。
- RoleControlCommand:用于控制用户访问服务的权限,主要用于控制需要用户登录的交易的权限控制。对不需要用户登录的交易,不用该Command。
- //......
- <command id="delegateCommand" class="com.csii.pe.chain.command.DelegateCommand" />
- //.......
Action:
<action id=“action Id” class=“Full qualified class name of this action”>
</action>
init ()
Execute()
Submit()
Prepare()
Bean定义继承方式:
- <action id="BaseQueryAction" class="com.csii.ibs.action.IbsQueryAction">
- <ref name="trsCodeResolver">hostTrsCodeResolver</ref>
- <ref name="returnCodeValidator">hostReturnCodeValidator</ref>
- <ref name="transportBean">${BaseQueryAction.hostTransportBean}</ref>
- </action>
- 继承
- <action id="ActBalAction" class="com.csii.ibs.query.action.ActBalAction" parent="BaseQueryAction">
- </action>
- 等同
- <action id="ActBalAction" class="com.csii.ibs.query.action.ActBalAction" parent="BaseQueryAction">
- <ref name="trsCodeResolver">hostTrsCodeResolver</ref>
- <ref name="returnCodeValidator">hostReturnCodeValidator</ref>
- <ref name="transportBean">${BaseQueryAction.hostTransportBean}</ref>
- </action>
Action:
- <action id="WriteQueryTrsJournal" class="com.csii.ibs.common.jnl.WriteQueryTrsJournal">
- <ref name="idFactory">idFactory</ref>
- <param name="jnlSql">common.insertQryLog</param>
- </action>
PE框架学习的更多相关文章
- PE框架学习之道:PE框架——发送报文流程
PE框架发送报文,适用于PE及VX技术 步骤: 1.在action中使用发送报文,要指定报文在router端的交易名称 2.如果使用supe.execute(context)来发送,不需要第一步 3. ...
- PE框架学习之道:PE框架——style的配置
1.在style.xml中定义style <style id="NumberStyle"> <setting> <param name=&qu ...
- 框架学习之道:PE框架简介
1.PE框架开发新功能所需的部分 2.PE框架工作流程(重要) 首先根据<transcation>中的id号,找到模板(template),然后再根据模板找到责任链(chain),一旦确认 ...
- Android接口和框架学习
Android接口和框架学习 缩写: HAL:HardwareAbstraction Layer.硬件抽象层 CTS:CompatibilityTest Suite,兼容性測试套件 Android让你 ...
- IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API
IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习之保护API. 使用IdentityServer4 来实现使用客户端凭据保护ASP.N ...
- Hadoop学习笔记—18.Sqoop框架学习
一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易.Apache Sqoop正在加 ...
- Spring框架学习一
Spring框架学习,转自http://blog.csdn.net/lishuangzhe7047/article/details/20740209 Spring框架学习(一) 1.什么是Spring ...
- EF框架学习手记
转载: [ASP.NET MVC]: - EF框架学习手记 1.EF(Entity Framework)实体框架EF是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架 ...
- web框架学习列表
转载自鲁塔弗的博客,原文网址:http://lutaf.com/148.htm web framework层出不穷,特别是ruby/python,各有10+个,php/java也是一大堆 根据我自己的 ...
随机推荐
- PyDev:warning: Debugger speedups using cython not foun
在eclipse下调试代码开始时总提示一个警告: warning: Debugger speedups using cython not found. Run '"C:\Python36\p ...
- mysql查找数据库中是否已经存在某张表
Sql: select count(*) from information_schema.TABLES t where t.TABLE_SCHEMA ="数据库名" and t.T ...
- .NET破解之爱奇迪(二)
爱奇迪的其他系统软件我不感兴趣,但这个Database2Sharp看起来好像很有用的. 官网介绍: 一个简单点击几次鼠标就能完成一周代码量的代码生成工具,效率惊人.友好体贴,真正的开发好伴侣,提供了对 ...
- android基础知识:SharedPreferences和PreferenceActivity
1.android文件存储 对Android系统了解的都知道,Android系统有四种基本的数据保存方法,一是SharedPreference,二是文件,三是SQLite,四是ContentProvi ...
- ! Undefined control sequence. \CJK@XXX ...endcsname {`#2}{`#3}\CJK@ignorespaces \fi l.43 \end{document}
错误的原因是:你的文本内容超过了一页,需要增加新的一页. 解决问题的方法就是在\end{CJK}或者\end{CJK*}之前加入\newpage,\clearpage或者\cleardoublepag ...
- Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性
简介 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很 ...
- 让Sql Server 2008 可以远程连接的方法
1.先开防火墙TCP:1433 2.设置外围端口为:1433 注意一定不要忘记“启用”和IPALL的端口设置 3.重启SQL完成 如果要查看1433端口有没有启用并被监听,只要在cmd里使用netst ...
- 理解Load Average做好压力测试(转)
转载自:http://www.blogjava.net/cenwenchu/archive/2008/06/30/211712.html SIP的第四期结束了,因为控制策略的丰富,早先的的压力测试结果 ...
- node:爬虫爬取网页图片
代码地址如下:http://www.demodashi.com/demo/13845.html 前言 周末自己在家闲着没事,刷着微信,玩着手机,发现自己的微信头像该换了,就去网上找了一下头像,看着图片 ...
- iOS_数据库2_基础知识
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...