EMP开发后台业务逻辑总结.doc_第1页
EMP开发后台业务逻辑总结.doc_第2页
EMP开发后台业务逻辑总结.doc_第3页
EMP开发后台业务逻辑总结.doc_第4页
EMP开发后台业务逻辑总结.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.建立业务逻辑的基本流程概述:1、添加数据字典:通过数据库导入或者加入自定义传输数据模型到整个工程的数据字典中;使用IDE进行应用开发时,需要遵循数据字典,每个业务逻辑的输入输出数据都是从数据字典中选取出来的,保证了整个开发工程的数据、变量名用词统一。因此在进行开发之前,需要预先对数据字典进行设计。在业务逻辑开发过程中,也可以随时为数据字典添加需要的元素。数据字典定义保存为XML文件形式(designFiles/commons/dataDict.xml)。2、添加服务定义:定义公共服务,如JDBCDriverDataSource、SQLDefine、TableDefine等服务。(定义的服务需要在节点定义中引用到公共节点或应用节点才可以起作用。)3、添加公共节点所使用的服务和应用节点所使用的数据:需要引用步骤2中的服务定义和需要引用步骤1中的数据字典定义,以便在整个工程的业务逻辑中使用;4、编写业务逻辑构件:l 加入该逻辑业务构件的所需数据定义;l 通过Java类导入或者IDE提供的业务组件编写业务流程;建立业务逻辑的步骤:1、添加数据字典:在EMP Explorer中,右键点击工程名称,点击【项目扩展定义】打开e-Channels EMP 项目设定编辑器,如下图: 方法一:自定义数据字典。点击编辑器中的数据字典定义,通过【创建】添加自定义的传输数据模型:数据ID需要唯一,数据类别分为dataElement和dataCollection,其中,dataCollecion为dataElement的集合,建立对应的dataElement和dataCollection之后可以右键点击dataCollection,选择【添加。】下的数据引用选项,添加对应的dataElement到集合中,形成数据集,这样便于使用。如下图:方法二:使用数据库中的对象添加数据字典。在EMP Table View视图中点击【project图标】选择工程名称,点击【connect】,选中所要加入数据字典的对象名,拖拽到EMP Explorer视图中的数据库表文件夹中,点击【ok】确认添加新的数据表模型。之后,双击欲添加的表名,在 打开的编辑器中点击自动注入数据字典即可(注意:此时应该关闭“e-Channels EMP 项目设定编辑器”)。2、添加服务定义:在EMP Explorer中,右键点击业务逻辑下的第一个文件夹,点击【编辑】,可以打开“业务逻辑分组设定编辑器”,点击【服务定义】,如下图:填写服务ID(注意要唯一)并选择服务类型,然后点击【创建向导】,如类型是JDBCDriverDataSource时,如下图填写对应内容,点击【连接】,最后点击【Finish】如为SQLDefine,可以在填写服务ID并选择服务类型后,点击【创建】,填写SQL语句,如有input条件用“?”表示,选择iColl名称,为数据字典定义的集合,选择操作类型;在右边添加input和output(现今版本一定要加入),然后为输入输出添加参数,其中序号为第几个参数,数据域为参数的数据字典名称(注意和前面填写的iColl名称对应),并选择参数的数据类型,最后点击【确定】即可,如下图:3、添加公共节点所使用的服务和应用节点所使用的数据:在“业务逻辑分组设定编辑器”中,点击【节点定义】,再点击【公共节点】,最后在“公共节点服务”中点击【添加】,加入要使用的服务,点击【确定】即可。如下图:在“业务逻辑分组设定编辑器”中,点击【节点定义】,再点击【应用节点】,最后在“数据引用”中点击【添加】,加入要使用的数据定义,点击【确定】即可。如下图:4、编写业务逻辑构件:在在EMP Explorer中,右键点击业务逻辑构件所要放的包名,选择【新建】中的【新增业务逻辑构件】,填写业务逻辑构件ID,之后点击【Finish】。如下图:点击数据定义,之后点击【添加】,选择本逻辑构件中需要使用的数据定义,点击【确定】即可。如下图:点击【逻辑处理流程】,点击【基本信息】,填写罗ID和名称,点击【添加】,即可在【逻辑流程】中编写处理流程。如下图:使用组件编写处理流程可分为两种方式:方式一:使用JAVA程序编写组件在工程的src目录下的com.sqws.sihitech.service包中建java文件(注意需要继承com.ecc.emp.flow.EMPAction),Java基础代码如下:package com.sqws.sihitech.service;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import javax.sql.DataSource;import com.ecc.emp.core.Context;import com.ecc.emp.core.EMPException;import com.ecc.emp.data.IndexedCollection;import com.ecc.emp.data.KeyedCollection;import com.ecc.emp.flow.EMPAction;import com.ecc.emp.jdbc.ConnectionManager;import com.ecc.emp.jdbc.EMPJDBCException;import com.ecc.emp.transaction.EMPTransactionDef;public class OrgIncomeBalanceService extends EMPAction private String dataSourceName = null;private DataSource dataSource;/ 缺省事务为TRX_REQUIRED(全局事务)private int trxType = EMPTransactionDef.TRX_REQUIRED;/* 自定义SQL语句执行模板。* param Context context 交易定义的Context,服务会自动从Context中获取数据,或更新数据。* throws EMPException EMP异常。* return String 0,正常;2,记录未找到;-1,异常*/public String execute(Context context) throws EMPException if (dataSourceName != null & dataSourceName.length() != 0)dataSource = (DataSource) context.getService(dataSourceName);if (dataSource = null)throw new EMPException(dataSource named +dataSourceName+is not found in JDBCSQLExecAction:+ this.toString();Connection connection = null;PreparedStatement ps = null;try connection = ConnectionManager.getConnection(dataSource);/*此处为数据库处理过程*/return 0; catch (EMPJDBCException je) throw je; catch (Exception e) throw new EMPException(e); finally if (ps != null)try ps.close(); catch (Exception ex) if (connection != null)ConnectionManager.releaseConnection(dataSource, connection);public void setTransactionType(String value) /全局事务if (TRX_REQUIRED.equals(value)this.trxType = EMPTransactionDef.TRX_REQUIRED;/独立事务else if (TRX_REQUIRE_NEW.equals(value)this.trxType = EMPTransactionDef.TRX_REQUIRE_NEW;public EMPTransactionDef getTransactionDef() return new EMPTransactionDef(trxType);/设置数据源名称public void setDataSource(String dataSourceName) this.dataSourceName = dataSourceName;其中数据输出有2种方法:方法1:IndexedCollection iColl = null;KeyedCollection kColl = null;iColl = (IndexedCollection) context.getDataElement(analyseDataCollecion);if(iColl != null)kColl = (KeyedCollection) iColl.getDataElement();if(iColl != null)while (rs.next() kColl = (KeyedCollection) kColl.clone();iColl.addDataElement(kColl);String value = rs.getString(1);String value2 = rs.getString(2);kColl.setDataValue(analyseData_Count, value);kColl.setDataValue(analyseData_Name, value2);这种方法的输出方式与使用EMP定义好的组件输出结构相同,但必须在数据字典中定义该数据结构,并且在数据结构中引用。方法2:context.addDataField(analyseData,object);这种方法的输出方式与使用EMP定义好的组件输出结构不同,可以传出各种不同对象,输出比较灵活,而且不必在数据字典中定义该数据结构。完成编码后在Package Explorer中,右键点击该Java类选择“Generate Action profile”,之后选中project中的工程名称,点击【】,最后点击【Finish】将该类设置为一个EMP可用组件。如下图:在逻辑流程中选择要使用的逻辑定义,在图版区内将需要使用的组件加入到图中(注意填写组件的属性,自定义Java类中transactionType为事务类型,dataSource为数据源ID,需要在步骤2中定义,步骤3中引用),即可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论