用友时空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)、去创智软件处进行医保商品处理

用友时空B/S表单外挂(接口)程序操作说明文档的更多相关文章

  1. jmeter处理带表单的接口请求

    如何用jmeter处理带选项的表单接口请求 下面是用到了F12 抓包的处理方法 下图是直接手动在页面上请求的结果 下面就是采用F12抓包抓到url 和FormData 分别把上面获取的url和Form ...

  2. js 在表单提交前进行操作

    最近在写页面的时候,需要手动写一些在表单进行提交前的验证操作,正好看到了2种阻止表单提交的方法,可以进行一些逻辑处理 方法一:使用return false 原生js写法: <form id=&q ...

  3. Jquery表单序列化和json操作

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. node-express处理表单的接口

    写一个小接口,用postman测试接口是否可行

  5. 齐博x1如何调试查找全站的表单提交接口参数

    H5.PC.WAP端的所有提交POST表单操作都是可以当作接口来用的. 比如我们通过PC或WAP浏览器打开相应要修改的界面,然后浏览器进入开发者模式,就可以追踪到所提交的变量参数.你在APP里边只要指 ...

  6. Angular2 表单

    1. 说明 表单是Web程序中的重要组成部分,构建良好以及实用的表单必须解决如下几个问题: (1). 如何跟踪及更新表单的数据状态 (2). 如何进行表单验证 (3). 如何显示表单验证信息 Angu ...

  7. 进一步丰富和简化表单管理的组件:form.js

    上文<简洁易用的表单数据设置和收集管理组件>介绍了我自己的表单管理的核心内容,本文在上文的基础上继续介绍自己关于表单初始值获取和设置以及表单数据提交等内容方面的做法,上文的组件粒度很小,都 ...

  8. P​D​F​二​次​开​发​_​i​S​t​y​l​e​P​D​F​表​单​域​的​填​充

    wo讲到PDF表单,我们首先需要认识Adobe定义的PDF表单有哪些.以下是我从网上搜索到的简单介绍: PDF 表单简介 PDF 是可移植文档格式(Portable Document Format)的 ...

  9. HTML 表单和输入<form><input>

    HTML <form> 标签 定义和用法: <form> 标签用于为用户输入创建 HTML 表单. 表单能够包含 input 元素,比如文本字段.复选框.单选框.提交按钮等等. ...

随机推荐

  1. CSS3设置背景图片的大小

    设置背景图片的大小,以长度值或百分比显示,还可以通过cover和contain来对图片进行伸缩. background-size 语法详解: 要在插入图片之后进行设置背景图片的大小 backgroun ...

  2. DIV样式汇总

    DIV样式汇总 最近在学习JavaScript,在做到个要控制控件样式的例子时,突然有了把常用样式汇总一下的想法,于是乎就写了以下内容,以下是以div为例来汇总的,希望对大家有些帮助. 一.常用属性: ...

  3. C# string 的一点属性、方法什么的

    今天学的基本可以说是都属于方法和属性 下面这两句话非常重要,确实非常重要 凡是可以  “ . ”     出来的,前面是黑色的小扳手的:属性 紫色的立方体的:方法 这个对于以后自学帮助是不小的,当然, ...

  4. 干货分享:五大最适合学习AI开发的编程语言

    AI(人工智能)为应用开发者开创了一个全新的可能性.通过利用机器学习或深度学习,您可以生成更好的用户配置文件.个性化设置和推荐,或者整合更智能的搜索.语音界面或智能助手,或者以其他数种方式改进您的应用 ...

  5. python 利用urllib 获取办公区公网Ip

    import json,reimport urllib.requestdef GetLocalIP(): IPInfo = urllib.request.urlopen("http://ip ...

  6. nginx Location正则表达式

    1. Location正则表达式 1.1. location的作用 location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作. ...

  7. 频繁请求报requests异常的处理

    由于数据量的增大,调用接口的次数会增加. 当连续向目标网站发送多次request后,目标网站可能会认为是,恶意攻击. 于是会抛出requests异常. 测试代码: for i in range(200 ...

  8. 利用for循环如何判定是水仙花数

    水仙花数业内的大家可能听说过,但是对于初学者来讲,对于水仙花数还是比较陌生的. 首先要知道的是水仙花数的计算公式:153=1**3+5**3+3**3: 如何去判定这个数是否为水仙花数,最好的办法就是 ...

  9. MySQL事务及其实现

    事务定义 事务是访问并更新数据库中各个数据项的一个程序执行单元.在事务操作中,要不都做修改,要么都不做. 事务特性 事务具有ACID四个特性,分别是:原子性(Atomicity).一致性(Consis ...

  10. 【SIKIA计划】_06_Unity2D游戏开发-拾荒者笔记

    [新增分类]Animations 动画——Animation——AnimatorControllerPrefabs 预制 [素材导入]unitypackage 素材包Sprites Editor 编辑 ...