Hello,大家好,这里是小知课堂,我们这一篇要讲的是数据库端口的使用方法。
众所周知,EDI的集成方式中比较常用的解决方案便是数据库解决方案。数据库解决方案优点在于大学毕业的你我他基本都学过数据库,操作起来比较方便,数据的增删改查也同样便捷,与EDI集成的时候也便于操作,你可能看不懂EDI报文,但是写入数据库中的数据便是一目了然。然而,我们怎样才能将数据库中的数据转化为高深莫测的EDI报文呢?又或者说,如何将神秘的EDI报文,写入我们简洁易懂的数据库中呢?当然少不了我们知行EDI系统啦。将数据库的数据转化为EDI报文,首当其冲的便是我们的数据库端口,作为数据的搬运工,数据库端口主要负责将指定数据库中的数据以XML文件的格式读取出来,然后交由其它端口转化为报文结构的XML,最后穿上报文的黄马甲便成功的转为你不太看得懂的EDI报文啦,而要将EDI报文写入数据库中,知行EDI系统则会帮助EDI报文先来个金蝉脱壳(提取出报文中有用的信息),然后再给这些有用的信息穿上华丽的外衣(转化为数据库格式的XML文件),最后,就有请我们的数据库端口闪亮登场(将转化好的XML文件写入指定数据库)。
好了,废话不多说,接下来大家千万不要走神,小知带你来见证数据库端口的神奇之处。
在正式开始使用数据库端口之前,我们先来看看此端口的内部结构。和其它端口相似,数据库端口的基础配置在Settings界面,Automation负责自动化的实现,Advanced则是我们的高级配置,Input/Output界面帮助实现数据库端口写入/读取数据,Events用来写触发操作的代码,如下图所示:
1. 基本配置
1.1 不同的连接方式(ODBC,ADO.NET,JDBC)
这三种方式中ODBC和ADO.NET方式是基于Windows下的连接数据库的方式,JDBC则是基于Linux操作系统的连接方式。对应我们的知行EDI系统,也就是ODBC和ADO.NET为.NET版本的EDI系统的常用方式,JDBC则为Java版本的EDI系统使用的连接方式。
ODBC方式:英文全称为Open Database Connectivity,翻译过来即开放式数据库互连,这种方式是Microsoft提供的实现应用程序例如知行EDI系统和关系数据库如MySql之间通讯的接口标准。它本质上是数据库访问的API,由函数组成,核心是SQL语句,符合该接口标准的数据库就可以利用SQL语言编写的命令对数据库进行一系列操作。
ADO.NET方式:ADO.NET则是Microsoft提供的另一种访问数据库的方式,这种方式下可采用无连接方式访问处理数据,只在必要时连接数据库,不使用时关闭连接。ADO.NET结构可以用于多种不同的数据源,例如用于 XML 数据,或用于管理应用程序本地的数据,因此在使用该方式连接不同的数据库时,需要使用不同的数据库驱动,这使得我们可以更高效的访问相应的数据库。
JDBC方式:JDBC方式是Java提供的连接数据库的方式,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
在.NET版本的知行EDI系统的数据库端口的Settings界面上,可以选择连接数据库的方式,而Java版本的EDI系统中则默认使用JDBC的连接方式。如下图所示:
1.2 基础配置
在.NET版本的EDI系统上,我们通常使用ADO.NET的方式连接数据库,因此,不同的数据库的基础配置信息略有不同,但总体上来说都大同小异,下面小知以连接Mysql数据库为例,给大家一一介绍数据库端口的基础配置,如下图所示:
- Driver Name:准备连接的数据库驱动名称,我们在下拉框中选择Mysql,接下来需要配置的就是数据库的连接信息;
- Server:数据库所在的服务器地址,如果数据库部署在本地,也可以填写为localhost;
- Port:数据库的端口,Mysql的默认端口为3306;
- Database:连接的数据库名称;
- User:登录数据库用户,Mysql的默认用户为root;
- Password:登录数据库的密码。
配置好这些数据后,点击Test Connection,如果连接成功会在页面上显示Success。左下方Mappings下的Input和Output模快则用来添写入/读出的数据的数据库表模板。
2. 连接不同数据库
2.1 连接前准备
在连接不同的数据库之前,我们需要在本地安装不同的数据库驱动。知行EDI系统中默认安装了Mysql和Sqlite两种数据库的驱动,因此在连接其它数据库之前,都需要在相应的官网上下载对应的驱动,并在本地安装配置成功。配置成功后就可以在Settings界面的Driver Name下拉框中选择相应的数据库驱动。
2.2 连接各种数据库的差异
上面提到过不同的数据库的配置信息略有差异,并且知行EDI系统中默认安装了Mysql和Sqlite两种数据库的驱动,所以不同数据库在连接时的区别一是在于是否要安装驱动,二则是在于各个数据库的基础配置界面,例如下图所示的Sqlite数据库:
此时我们只需要配置Sqlite数据库文件所在的目录即可;而Mysql数据库的配置,如下图所示:
其余数据库例如:DB2、Orcal、PostgreSQL等等,数据库的配置方式大都与Mysql相似,只是需要在连接前下载不同的驱动即可,就不在此一一赘述了。
3. 写入/读取数据库中的数据
在连接上数据库之后,自然就需要完成数据的读写操作,下面小知就以读写Mysql中的test_order表以及它的明细表test_item为例,讲解如何实现数据的读写。
3.1 写入数据
在写入数据之前,需要先添加写入的数据库表模板。添加模板时,我们只需点击右下角的加号按钮选则Table or View后,在弹出的列表里选择要添加的数据库表,这里我们选择test_order作为写入数据库的主表模板,如下图所示:
选择了对应的主表后点击Next,我们就可以在弹出的模态框中配置写入数据库的模板了,如下图所示,点击Add按钮,在弹出的下拉框中可以选择主表对应的明细表,而右边的Columns下可以选择需要写入数据库的列,默认全选。
选择好后点击Creat,我们就可以在Mappings的Input模块中看到刚刚添加的模板了,将鼠标放到添加的模板上,会发现该模板右边出现三个小图标如下图所示:
点击第一个编辑图标,则退回上一步,重新配置写入模板,而点击第二个代码图标,则会弹出如下图所示的XML格式的Input模板,在这里,我们可以做一些代码的调整,例如配置主键自增、关联主表和明细表等。
做完了这些后我们在Input界面上传一个test_order的xml文件,该文件的内容如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<Items> <test_order> <id>1</id> <country>CN</country> <delivery_date>2020-02-02</delivery_date> <eta_datetime>2020-02-02</eta_datetime> <location>002</location> <name>Celine</name> <order_number>123456</order_number> <plant>007</plant> <status>0</status> <telephone>1122334</telephone> <test_item> <id>1</id> <despatch_date>2020-02-02</despatch_date> <item_desc>ABC</item_desc> <item_number>12345678</item_number> <line_number>001</line_number> <package_number>123456789</package_number> <po_nunmber>123456</po_nunmber> </test_item> </test_order> </Items> |
上传成功后,点击Send将其写入到数据库中,如下图所示:
然后查看数据库的test_order表以及test_item表,已经成功的写入了数据。
3.2 读取数据
读取数据库数据和写入数据的步骤类似,首先需要添加数据库读取模板,读取数据的模板和写入模板的不同之处在于在添加读取模板弹出的模态框中,我们不仅能添加对应的明细表信息和选择所要读取的列,还可以添加查询条件,以及添加更新规则。例如我们要按照status=0这个条件读取数据库中的数据,读取完后将该列更新为1,这时我们就可以这样配置,如下图所示:
做完了这些后,我们查看该模板对应的XML格式的代码界面,如下图所示,在这里我们同样可以设置主表和明细表的关联。
完成了配置后,我们点击Output模板上的执行图标,如下图所示:
然后查看Output界面,已经成功获取到了数据库中刚刚录入的数据。
再查看数据库中的数据,也已成功将status更新为了1。
4. 高级配置
综上所述,小知已经讲解完了数据库端口的基本使用方法。然而,我们开发人员夜以继日的给大家开发出了该端口的外挂配置,为了使的大家的体验更为流畅,小知现在为大家稍作讲解我们的高级配置。 首先我们点击导航栏的Advanced按钮,进入高级设计页面,我们将鼠标放置在任意一个选项上,都能看到上面的使用说明,如下图所示:
所以在此小知就不一一说明这些配置的作用了,着重讲解一下我们的Other Settings下面的Local File Scheme功能,这个功能能够改变我们获取到的数据库文件的名称,例如如果配置为:%Table%%ShortDate%,这表示获取到的数据库文件名称将为:表名日期,如下图所示:
则再次获取到数据库中的数据时,Output界面显示的文件名称如下图所示:
大家可以按照自己的不同需求,和页面提示的文件名称的配置格式,修改为自己想要的文件名。
5. 提升
好了,这节课马上就要结束了,最后我们来聊一聊我们在使用知行EDI系统数据库端口时有哪些需要注意的问题点。
在小知刚开始使用软件的时候,觉得在数据库端口只需要做简单的配置,就可以成功的将数据写入指定的数据表中,这真的是太方便了,只是在写入或读取数据的时候,要将头部数据和明细数据做关联,通过一个模板写入数据表,这个模板添加的步骤还是有点不容易掌握,不过我们的开发攻城狮一直在快马加鞭的优化系统,相信系统的操作一定会越来越简便的!
好了,今天就说到这里,大家在使用软件的过程中有什么不懂得地方,或者想要吐槽,欢迎联系邮箱:edi@kasoftware.cn。
这节课到这里就结束了,大家学会了吗?
注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。
发表评论
要发表评论,您必须先登录。