用友时空B/S表单外挂(接口)程序操作说明文档
用友时空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表单外挂(接口)程序操作说明文档的更多相关文章
- jmeter处理带表单的接口请求
如何用jmeter处理带选项的表单接口请求 下面是用到了F12 抓包的处理方法 下图是直接手动在页面上请求的结果 下面就是采用F12抓包抓到url 和FormData 分别把上面获取的url和Form ...
- js 在表单提交前进行操作
最近在写页面的时候,需要手动写一些在表单进行提交前的验证操作,正好看到了2种阻止表单提交的方法,可以进行一些逻辑处理 方法一:使用return false 原生js写法: <form id=&q ...
- Jquery表单序列化和json操作
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- node-express处理表单的接口
写一个小接口,用postman测试接口是否可行
- 齐博x1如何调试查找全站的表单提交接口参数
H5.PC.WAP端的所有提交POST表单操作都是可以当作接口来用的. 比如我们通过PC或WAP浏览器打开相应要修改的界面,然后浏览器进入开发者模式,就可以追踪到所提交的变量参数.你在APP里边只要指 ...
- Angular2 表单
1. 说明 表单是Web程序中的重要组成部分,构建良好以及实用的表单必须解决如下几个问题: (1). 如何跟踪及更新表单的数据状态 (2). 如何进行表单验证 (3). 如何显示表单验证信息 Angu ...
- 进一步丰富和简化表单管理的组件:form.js
上文<简洁易用的表单数据设置和收集管理组件>介绍了我自己的表单管理的核心内容,本文在上文的基础上继续介绍自己关于表单初始值获取和设置以及表单数据提交等内容方面的做法,上文的组件粒度很小,都 ...
- PDF二次开发_iStylePDF表单域的填充
wo讲到PDF表单,我们首先需要认识Adobe定义的PDF表单有哪些.以下是我从网上搜索到的简单介绍: PDF 表单简介 PDF 是可移植文档格式(Portable Document Format)的 ...
- HTML 表单和输入<form><input>
HTML <form> 标签 定义和用法: <form> 标签用于为用户输入创建 HTML 表单. 表单能够包含 input 元素,比如文本字段.复选框.单选框.提交按钮等等. ...
随机推荐
- Python之时间模块、random模块、json与pickle模块
一.时间模块 1.常用时间模块 import time # 时间分为三种格式 #1.时间戳---------------------以秒计算 # start= time.time() # time.s ...
- 【前端模板之路】一、重构的兄弟说:我才不想看你的代码!把HTML给我交出来!
写在前面 随着前端领域的发展和社会化分工的需要,继前端攻城湿之后,又一重要岗位横空出世——重构攻城湿!所谓的重构攻城湿,他们的一大特点之一,就是精通CSS配置文件的编写...前端攻城湿跟重构攻城湿是一 ...
- 安装php xdebug调试工具及性能分析工具webgrind for windows
安装php xdebug调试工具及性能分析工具webgrind for windows 第一步:查看php版本等信息 phpinfo(); 上面是 x86 NTS VC14 第二步: 下载xdebug ...
- Java 的JAR包、EAR包、WAR包区别
一.WAR包 WAR(Web Archive file) 网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件.WAR专用于Web方面.大部分的JAVA WEB工程,都是打成W ...
- 【HDU】3555【Bomb】
题目链接 此题题意就是给你T个n,找出n以内的包含49的数的个数. 很裸的一题数位dp. 直接dp包含49的数的个数有点麻烦,所以我先算出不包含49的数的个数,然后用n+1来减(因为计算不包含49的数 ...
- Java SE练习题——求奇数
欢迎来到Java SE练习题频道,我是Fishing,今天我带来的练习题是(做题会有不足之处,可评论,说出更好的方法): 通过键盘输入两个整数,计算这两个整数之间的所有奇数之和,并输出计算结果. 看到 ...
- Spring入门学习笔记(3)——事件处理类
目录 Spring中的事件处理 Spring内建事件 监听Context事件 Example 自定义Spring事件 Spring中的事件处理 ApplicationContext 是Spring的核 ...
- 【Ansible】ansible 任务失败控制
任务失败控制 Ansible 通常默认会确保检测模块和命令的返回码并且会快速失败 – 专注于一个错误除非你另作打算. 有时一条命令会返回 0 但那不是报错.有时命令不会总是报告它 ‘改变’ 了远程系统 ...
- 【Docker】第三篇 Docker容器管理
一.Docker容器概述: 简单理解容器是镜像的一个实例. 镜像是静态的只读文件,而容器的运行需要可写文件层. 二.创建容器 [root@web130 ~]# docker create -it ub ...
- markdown | Latex | 书写测试
我永远喜欢markdown! 建图 graph TD; 1-->2 1-->3 1-->4 2-->5 2-->6 3-->7 3-->8 4-->9 ...