企业应用集成工具(EAI)二次开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
企业应用集成工具(EAI)二次开发
1.概述
U850企业应用集成工具(EAI)是U850与外部系统的数据接口,EAI提供了一些组件,可以在这些组件的基础上进行二次开发(以下简称“EAI二次开发”),实现与外部系统的集成。
不同系统集成的关键是遵循共同的数据标准,U850根据自己系统提出了一套数据标准,包括各种单据和基础档案,外部系统如果要和U850集成则必须遵循这一标准。
这套标准用XML 描述,因此数据流都为XML格式。
EAI二次开发可分为两种模式:
注意:文中所有编程都以VB为例
一、直接利用EAI管理工具。
在开始菜单中选择企业应用集成工具,登录企业应用集成主界面。
在这里可以将U850数据以标准XML文件的形式导出U850数据库或将标准XML数据文件导入U850系统。
二次开发程序员只需编写一个工具将标准XML数据文件进行适当转换写入外部系统或取出外部系统数据写成标准XML数据文件。
(参看EAI安装目录\xml\Samples\下的例子)
数据流程如下:
这种开发模式比较简单,优点是:充分利用EAI工具提供的功能,编程简单;缺点是:只能提供批量导入导出功能。
二、利用EAI提供的组件,进行灵活的二次开发。
包括两种方式:本地COM方式、Internet方式。
1)本地COM方式:
这种方式可根据开发者的需要批量处理或者实时处理。
接口调用非常简单,简化了编程。
开发者只需将标准数据传入接口,如下:
Set Obj=CreateObject(U8Distribute.iDistribute)
Str = obj. Process(sXml)
sXml为标准数据串,具体格式后面会说明。
2)Internet方式:
http.Open "Post",http_name & “import.asp", True //指定服务器ASPhttp.send dom.xml //把xml数据发送到服务器端strRet= http.responseText //strRet :返回的xml格式的回执信息
2.数据格式标准
EAI可以导入导出的数据范围包括:
Ø总帐
§凭证
§银行对账单
Ø工资管理
§人员档案
§工资项目数据
Ø固定资产
§固定资产卡片
Ø成本管理
§材料消耗数据
Ø资金管理
§资金内部结算单
Ø应收管理
§应收单
§收款单
Ø应付管理
§应付单
§付款单
Ø采购管理
§采购订单
§采购到货单
§采购发票
Ø销售管理
§销售订单
§发货单
§销售发票
§销售发票_导入到内部结算单
Ø库存管理
§入库单
§出库单
§库存量
Ø基础档案
§部门档案§职员档案§地区分类§客户分类
§客户档案§供应商分类§供应商档案§存货分类
§存货档案§结算方式§付款条件§开户银行
§仓库档案§收发类别§销售类型§计量单位
§计量单位组§产品结构§采购类型§成套件
§费用项目§发运方式§货位档案§自定义项档案
§项目§会计科目§外币§凭证类别
§常用摘要
提示:EAI安装目录\xml\Operation\dir.xml保存了相关定义
下面一个例子是从U8导出的部门档案的片断:
<?xml version="1.0" encoding="gb2312" ?>
<ufinterface sender="001" receiver="u8" roottag="department" docid=".533424" proc="Query" codeexchanged="N" exportneedexch="N" display="部门档案" family="基础档案" billtype=""> <department>
<code>1</code>
<endflag>0</endflag>
<name>综合处</name>
<rank>1</rank>
<manager/>
<prop>管理兼技术</prop>
<phone/>
<address/>
<remark/>
<creditline/>
<creditgrade/>
<creditdate/>
<offergrade/>
<offerrate/>
</department>
<department>
<code>109</code>
<endflag>1</endflag>
<name>厂办公室</name>
<rank>2</rank>
<manager/>
<prop>管理</prop>
<phone/>
<address/>
<remark/>
<creditline/>
<creditgrade/>
<creditdate/>
<offergrade/>
<offerrate/>
</department>
…………
</ufinterface>
EAI中所有的标准数据文件都有类似于上例的结构,首先,有一个名为ufinterface的元素,ufinterface再有若干个子元素组成,不同应用的子元素有不同的格式。
注意:XML是对大小写敏感的,在EAI标准中所有的元素名都为小写字母。
注意:EAI标准数据中的有些元素可以为空元素,有些则不得为空,根据具体业务不同而不同。
但所规定的元素一个也不能多,一个也不能少。
Ufinterface元素定义如下:
<ufinterface roottag=’’ billtype=’’ docid=’’ receiver=’’ sender=’’ proc=’’ codeexchanged=’’ exportneedexch=’’ display=‘’ family=‘’/>
roottag:类型;
billtype:系统用;
docid:唯一编号;
receiver:接收方(系统用);
sender:注册的外部系统号;
proc:操作码:Add,Edit,Delete,Query
codeexchanged:外部系统导入时是否转换:
y:需要经过对照表;n:不需要经过对照表
exportneedexch:导出时是否需要转换:
y:需要经过对照表;n:不需要经过对照表
display:单据中文名;
family:单据中文大类名。
所有的xml标准的头文件格式都是一样的,通过roottag区分单据类型,proc区分操作类型。
∙从U8导出的数据格式
操作码为Query,可加入导出条件。
格式例子(以导出收款单为例):
<?xml version='1.0' encoding='gb2312'?>
<ufinterface sender="001" receiver="u8" roottag="department" docid=".533424" proc="Query" codeexchanged="n" exportneedexch="n" display="部门档案" family="基础档案">
<department name="部门档案" importfile="" exportfile="" code="001">
<field display="部门编码" name="cDepCode" operation="=" value="办公室" logic=""/>
</department>
</ufinterface>
元素department表示为部门档案:
属性name:单据名称;
属性importfile:保存的是导入文件路径;
属性exportfile:保存的是导出文件路径;
属性code:外部系统的注册号。
元素Field表示每个条件:
属性display:中文含义;
属性name:字段名;
属性operation:是比较运算符;
属性value:比较值;
属性logic:是连接的逻辑运算符。
and:并且;or:或者。
每次导出一种单据,这里为部门档案,如果需要导出收款单则需要再一次导出。
条件Field 可以有多条。
这个调用返回的XML回执为U8的标准数据。
注意:并不是导出数据会自动保存到Importfile exportfile指定的路径,这两个参数是EAI 工具保存数据使用的。
提示:EAI安装目录\xml\Operation\Condition.xml 保存了EAI的条件,可以通过EAI管
理界面设定条件,变化保存在Condition.xml中。
∙导入数据到U8中时操作码为Add
可将数据填到Ufinterface元素中作为子元素。
形式为:
<?xml version='1.0' encoding='gb2312'?>
<ufinterface sender="" receiver="" roottag="" docid="" proc="Add" codeexchanged="" exportneedexch="" display="" family="">
<table_name>
<a1>
<a2>
……
</table_name>
<table_name>
<a1>
<a2>
……
</table_name>
……
</ufinterface>
元素table_name代表一张单据,元素a1、a2…等为单据中的元素。
元素ufinterface则包含若干个table_name元素。
注意:sender属性值必须为EAI系统注册过的注册号一致,因为EAI系统根据这个注册号与具体账套相连接;Receiver为”U8”; docid取随机数;family、roottag、display可以参考EAI安装目录\xml\Operation\dir.xml,总帐,基础档案等为family,它们的下级元素中文名为display,其属性name 为roottag。
可将dir.xml与数据文件例子参照,以便理解其的意义。
调用接口返回的XML回执
从U8导出数据成功的回执就是数据。
其它情况的回执为:
<?xml version='1.0' encoding='gb2312'?>
<ufinterface roottag='return' docid='' proc=''>
<item key='' succeed='' dsc='' u8key=''></item>
</ufinterface>
描述:
key:为一条记录的关键字;
succeed:成功标识:0:成功;非0:失败;
dsc:失败的描述;
docid:消息号;
proc:操作码;
u8key:成功后U8系统对应的关键字
凭证的返回格式如下:
<?xml version='1.0' encoding='gb2312'?>
<ufinterface roottag='voucheraddreturn' docid='' proc=''>
<item acc_period='' voucher_type='' voucher_id='001' row_id='' succeed='' dsc='' u8vouch_id ='' u8acc_period=''></item>
<!--succeed 0 or 非0-->
</ufinterface>
描述:
acc_period:会计期间,0为期初往来明细帐,21为期初待核银行帐,20为银行帐科目调整前余额,1-12为凭证及明细帐
vouch_type:凭证类别字
vouch_id:凭证号(由系统分配凭证号,期初时可为空)
row_id:行号(由系统赋值,期初时为1)
u8vouch_id:U8凭证号
u8acc_period:U8凭证会计期间
3.二次开发程序接口
COM接口调用(本地方式)
EAI提供一个统一的标准接口,参数是定义好的标准xml格式,只要符合标准的格式,即可以很轻松的和EAI挂接。
引用U8Distribute.Dll方法如下(VB):
Dim obj as ObjectDim Str as string //返回的Xml数据Set
Obj=CreateObject(U8Distribute.iDistribute)
Str=obj. Process(sXml) //sXml为传入的Xml数据 sXml为String型。
可以根据str的回执进行相应的操作。
所有的操作只需调用这个接口可以完成。
注意:本地方式接口调用之前必须利用EAI工具提供的默认操作员界面设置U8服务器、用户、密码和登录日期,以通过U8的权限认证。
Internet方式(SOAP协议)开发者可以用SOAP协议向装有U850-EAI的IIS服务器发送XML数据,类似本地调用分析返回的XML回执。
Dim dom As New DOMDocumentDim http As New XMLHTTPDim strRet as string
If not Dom.load(“c:\voucher.xml”) then msgbox “xml error” // c:\voucher.xml是一个例子
http.Open "Post", http_name & “import.asp", True //指定服务器ASPhttp.send dom.xml //把xml数据发送大服务器端strRet=
http.responseText //strRet :返回的xml格式的回执信息4.U850-EAI标准数据模版
提示:EAI安装目录\xml\Template\下为所有EAI2.0标准模版文件。
凭证 Voucher.xml
对账单 BankAccount.xml
工资人员档案 SalaryPerson.xml
工资项目数据 SalaryItem.xml
固定资产卡片 CapitalAsserts.xml
成本材料及外购半成品耗用表 material.xml
资金内部结算单 InternalBalance.xml
应收应付单 OughtReceivePay.Xml
收付款单 AcceptPay.xml
采购订单 PurchaseOrder.Xml
采购到货单 ArrivedGoods.xml
采购发票 PurchaseInvoice.Xml
销售订单 SaleOrder.Xml
销售发货单 Consignment.Xml
销售发票 SaleInvoice.Xml
库存出入库单 StoreInOut.Xml
客户档案 Customer.xml
客户分类 Customerclass.xml
供应商档案 vendor
供应商分类 vendercalss.xml
存货 inventory.xml
存货分类 inventorycalss.xml
部门 department.xml
人员 person.xml
科目目录 code.xml
凭证分类 dsign.xml
币种 currency.xml
汇率 currencyrate.xml
结算方式 balancetype.xml
项目 item.xml
开户银行 bank.xml
地区分类 districtclass.xml
销售费用项目 expenseitem.xml
付款条件 paycondiction.xml
收发类别 receivesendtype.xml
发运方式 shippingchoice.xml
仓库档案 warehouse.xml
销售类型 saletype.xml
提示:EAI安装目录\Xml\RsXml\下描述了xml标准与数据库字段的对应关系。