用友时空B/S表单外挂(接口)程序
一、B/S表单接口需求
众所周知,用友时空KSOA支持B/S架构。且移动商务、在线门店,都是完全基于B/S架构的。
B/S架构的优越性在于没有本地客户端和本地数据,实施部署简单且后续维护简单。而劣势则在于与第三方接口很麻烦,特别是需要在本地进行对接时。
例如,POS收款软件,往往需要与医保系统对接,与银联系统对接,这些本地接口,都要求数据实时与第三方系统进行交互,如果是需要中转到远程的总部的服务器才能对接,则往往容易出现网络错误或者数据不及时等。
我们把这种需求总结为:从B/S表单截取数据保存到本地,或者向B/S表单插入数据。
只要外挂程序能解决以上2个需求,那么就可以根据各接口的需要,随心所欲进行数据的对接或转换。
原型:
1、由于时空KSOA提交订单商品数据的页面,是由数据库内置的JS模板进行解析的,也就是说每次打开该页面,都会由数据库重新生成,那么就需要在该数据库的JS模板内嵌入一个拦截器。
拦截器很简单,只是在数据提交处设置一个__bc(a,b), a是订单号,b是点击提交后包含商品数据的SQL插入语句。
2、在设置完拦截器之后,需要在一个全局位置对这个拦截器进行定义,目前项目中利用到的一个全局JS文档是位于“域名/bill/js/toolbar.js”,然后在这个toolbar.js里植入一段JS代码,这段代码起到对拦截器的定义的作用,并使之生效。当然还需要植入一个完成的Tajax,
3、接口“http://127.0.0.1:8877/a”的说明:
在线门店只用到了这一个接口,由于是需要利用本机环境,所以在外挂启动后,开始监听127.0.0.1:8877的请求,当有a接口有请求过来时马上处理,这个接口也只有两个参数,一个是g一个是h,g是一串包含订单商品数据的SQL插入语句,h是订单号,接口在外挂中定义,会自动处理这个接口的请求。
二、外挂程序应用实例:
某广州医药连锁公司在使用用友时空KSOA版本的管理软件,需要与广州市医保对接(苏州创智的医保接口程序)。
需要按医保接口的规范在POS销售时提示v_his_medi与V_HIS_FYMX_TEMP_MZ 两个视图(一个是检索所有商品资料,一个是检索本次收款的商品明细)。该医药连锁公司在KSOA系统中启用了两套POS收款方式,一种是可离线操作的MTPOS收款,一种是在线门店的POS收款。为此,对应不同的收款方式医保接口需要做不同的调整:
A:MTPOS收款系统:在前台门店的电脑是有数据库的,与安装的医保接口程序是同一台电脑,只需要在MTPOS的数据库中建立对应的两个视图,再配置医保接口程序进行读取就可以实现。
B:在线门店的POS收款系统:是B/S架构,在本地没有数据库。需要开发一个外挂程序,来从B/S收款表单中截取到本次的收款数据并保存到本地,同时从总部服务器获取所有商品资料保存到本地,再提供给医保接口检索。因此,需要安装一个POS明细数据提取软件,软件需要安装SQL SERVER 数据库,并能同步生成商品资料与当前POS销售的商品明细,生成医保接口程序需要的两个视图。医保接口程序配置在这个数据库上就可以实现数据读取。
三、外挂程序工作原理:
1、程序包括一个数据库,分别有spkfk 与 tmp_pos_mxls两张表,并建立医保接口视图。
2、程序需要手动更新SPKFK表,更新的内容根据C盘根目录下的【pz2.txt】文档中的时间进行更新,商品更新时间大于该文档内时间的商品才会进行更新,如果要重新下载所有商品,则将该文档内的时间进行清空即可。
3、在线门店POS销售时(用类IE浏览器),点F12结算时,能触发外挂的事件,将当前界面上的商品明细,插入到tmp_pos_mxls表。
四、操作说明:
1、创建数据库:
执行《数据库建表程序.sql》
2、在总部服务器IIS搭建webservice供门店远程连接
Webservice搭建说明:
(1)、将webserive文件搭建在服务器的IIS上
(2)、设置此webservice的端口
(3)、将此端口对外进行开放(4)、打开web.config进行数据库连接配置,保存即可。
3、将程序中备注文件夹内的三个文件按说明放到C盘的根目录下:
4、界面说明
打开目录下的xm.exe,显示以上窗口
界面①:
填写本地连接的数据库连接
界面②:
填写远程访问的webservice地址
界面③:
点击【开始更新】则会将webservice链接的商品表进行下载到本地的商品表中。
5、使用步骤说明
(1)、打开外挂程序
(2)、打开在线门店的POS收款界面
(3)、进行零售商品录入
(4)、按F12进行收款
(5)、去创智软件处进行医保商品处理
原文地址:https://www.cnblogs.com/jijm123/p/10348307.html