用友时空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 元素,比如文本字段.复选框.单选框.提交按钮等等. ...
随机推荐
- P2167 [SDOI2009]Bill的挑战
sb状压dp. 设f[i][j]表示字符串前i位和集合为j的串匹配的方案数. 枚举哪个字母直接转移就好了. (话说为啥这种水题都有紫色难度 #include<bits/stdc++.h> ...
- java 从字符串中 以单个或多个空格进行分隔 提取字符串
String str = "test test1 test2 test3"; String [] arr = str.split("\\s+"); for(St ...
- SpringMVC 异常信息ASM ClassReader failed to parse class file的问题解决
1. 环境信息: Spring 3.2.0, JDK 1.8.0 2. 运行简单的程序,出现以下错误信息: 2. 运行简单的程序,出现以下错误信息: Caused by: org.spring ...
- wordpress4.4+版本自动生成一个768w像素缩略图的解决办法
4.4版本以后,wordpress增加了响应式图片的功能,目的是让图片能适应手机.平板等不同屏幕,但是我不想要这个功能,把缩略图大小全调成0,function.php里的相关函数全删除了, 上传图片还 ...
- vue.js和vue-router和vuex快速上手知识
vue.js和vue-router和vuex快速上手知识 一直以来,认为vue相比react而言,学习成本会更低,会更简单,但最近真正接触后,发现vue的各方面都有做一些客户化的优化,有一些亮点,但也 ...
- python时间模块详解(time模块)
time 模块 -- 时间获取和转换 time 模块提供各种时间相关的功能 在 Python 中,与时间处理有关的模块包括:time,datetime 以及 calendar 必要说明: 虽然这个模块 ...
- python 思维导图-linux命令
linux基础 linux关于文件/目录的终端命令 linux关于文件内容处理的终端命令
- Log4j简单配置解析
log4j.rootLogger=ERROR, stdoutlog4j.logger.tk.mybatis.simple.mapper=TRACElog4j.appender.stdout=org.a ...
- Netty源码分析第1章(Netty启动流程)---->第2节: NioServerSocketChannel的创建
Netty源码分析第一章: Server启动流程 第二节:NioServerSocketChannel的创建 我们如果熟悉Nio, 则对channel的概念则不会陌生, channel在相当于一个通 ...
- 基于openvswitch+Docker构建SDN网络测试环境 (使用ovs-docker进行构建)
这是一篇之前写的笔记,主要记录了使用openvswitch + Docker 等进行一个小型的SDN网络搭建的操作步骤.由于 之前临时有其他任务,耽搁了一下,最近开始重新整理,并计划开发一个简单的Py ...