基于Python的Webservice开发(四)-泛微OA的SOAP接口
一、功能需求
泛微e-cology可以在流程中调用Webservice接口实现与其他系统的联动等复杂功能。但是目前泛微文档中仅提供了调用的方法,但是没有关于接口的相关开发信息。
本次案例是用Python开发一个泛微e-cology 可以调用的Webservice接口。
二、所需要的库
pip install spyne
对于Python3
pip install spyne==2.13.4a1
三、代码实现
from spyne.protocol.soap import Soap11
from spyne.server.wsgi import WsgiApplication
from spyne import Application,rpc,ServiceBase,Integer,Unicode,String class HelloWorldService(ServiceBase):
#rpc内包含了传入参数以及传出参数的类型。
#前半部分是传入参数,参数类型必须是String,传入参数可以定义多个。参数名一定要与OA中待传入的参数名一致。这里调用的是requestid
#_returns=String是传出参数,用以判断运行是否成功。
@rpc(String,_returns=String)
def say_hello(ctx,requestid ):
print(requestid )
return 'Succeed'
application = Application([HelloWorldService],
#命名空间 tns
tns='spyne.examples.hello',
#传入类型Soap11(),千万不要验证,encodingStyle是不被支持的。
in_protocol=Soap11(),
#传出类型Soap11()
out_protocol=Soap11()
)
#本地测试运行,生产环境还是挂在Django下的
if __name__ == '__main__':
# You can use any Wsgi server. Here, we chose
# Python's built-in wsgi server but you're not
# supposed to use it in production.
from wsgiref.simple_server import make_server
wsgi_app = WsgiApplication(application)
server = make_server('0.0.0.0', 8000, wsgi_app)
server.serve_forever()
四、泛微OA中的设置
1、注册Webservice接口

2、绑定表单与接口
入口点:集成中心--流程流传集成
参数值可以点击主表、明细表中字段 获取。但是参数值的名字,如此处的$requestid$必须和参数名requestid一致。
返回值必须与函数的返回值一致,这里设置的Succeed。

3、流程节点中附加操作
可以在节点前或者节点后附加操作

4、测试提交流程
流程提交至下一个节点说明接口运行成功。
如果运行失败会提示接口运行失败,不会提交到下一个节点。
基于Python的Webservice开发(四)-泛微OA的SOAP接口的更多相关文章
- 基于Python的Webservice开发(二)-如何用Spyne开发Webservice
一.功能需求 本次案例是开发一个Item的新建的WebService.IN&OUT的类型JsonDocument. 通过传入相关的参数创建Item,且相关的参数可以被缺省. 二.实现代码 引入 ...
- 基于Python的Webservice开发(一)-简介
之前为了解决Webservice的开发,直接用Python自带的CGI模块挂在IIS上. 但是该方式开发Soap的接口,需要大量的开发,而且安全方面也存在很多问题. 我推荐关于用Python开发Web ...
- 基于Python的Webservice开发(三)-Django安装配置
一.安装Django pip install django 二.创建项目 进入指定的目录后 django-admin startproject WebApi 目录说明: WebApi 项目的容器. m ...
- FineReport和泛微OA(Ecology)的单点登录集成方案
最近出现了很多关于帆软报表和泛微OA的集成问题,均出现在“单点登录”上.直接也有相关的文章介绍一些FineReport和泛微集成的背景.价值等,以及FineReport和OA的深度集成的方案,但是并没 ...
- 帆软的报表系统与泛微OA结合起来,这两个软件麦枫提供了经典的服务。
一.集成配景泛微OA对企业的代价 泛微协同办公计划能向你供给一个协同的.集成的办公情况,使所有的办公职员都在统一且个性化的信息流派中一路事情, 解脱光阴和地区的限定,实现协同事情与知识治理. Eoco ...
- 泛微oa几个常用的js
泛微OA,常用JS 为满足一些简单需求,我从网上借鉴了大量的代码,其中几个是非常好用的. (1).取值判断 通过jQuery('#field1234').val()取字段的值,field1234对应字 ...
- 泛微OA系统多版本存在命令执行漏洞
0x01漏洞描述 泛微OA办公系统是一款协调办公软件. 泛微协同商务软件系统存在命令执行漏洞,攻击者可利用该漏洞获取服务器权限. 0x02漏洞危害 攻击者可以通过精心构造的请求包在受影响版本的泛微OA ...
- 应用安全 - 软件漏洞 - 泛微OA漏洞汇总
SQL注入 前台SQL注入 用户名:admin' or password like 'c4ca4238a0b923820dcc509a6f75849b' and 'a'='a 密码: 1 验证页面参数 ...
- 泛微OA e-cology 数据库接口信息泄露学习
泛微OA e-cology 数据库接口信息泄露 漏洞信息 攻击者可通过存在漏洞的页面直接获取到数据库配置信息.如果攻击者可直接访问数据库,则可直接获取用户数据,甚至可以直接控制数据库服务器:会将当前连 ...
随机推荐
- Ansible Playbook 初识
Ansible Playbook 基本概述与使用案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: ...
- [最短路,floyd] Codeforces 1204C Anna, Svyatoslav and Maps
题目:http://codeforces.com/contest/1204/problem/C C. Anna, Svyatoslav and Maps time limit per test 2 s ...
- NeurIPS审稿引发吐槽大会,落选者把荒唐意见怼了个遍:“我谢谢你们了”
七月份的尾巴,机器学习顶会NeurIPS 2019的初步结果已经来了. 一年一度的吐槽盛会也由此开始. "有评审问我啥是ResNet." "有评审问我为啥没引用X论文.我 ...
- 自动化运维Ansible之常用模块
目录 0.Ansible模块语法 1.Command模块 2.Shell模块 3.Scripts模块 4.Copy模块 5.File模块 6.Yum模块 7.Service模块 8.Cron模块 9. ...
- Salesforce LWC学习(十五) Async 以及 Picklist 公用方法的实现
本篇参考:salesforce 零基础学习(六十二)获取sObject中类型为Picklist的field values(含record type) https://developer.salesfo ...
- Redis对象——哈希(Hash)
哈希在很多编程语言中都有着很广泛的应用,而在Redis中也是如此,在redis中,哈希类型是指Redis键值对中的值本身又是一个键值对结构,形如value=[{field1,value1},...{f ...
- 使用IDEA编写JDBC
省去下载MySQL的过程,创建数据库demo 首先在下载的Java服务中将此jar包复制到项目中的一个空文件夹中 在当前工程下新建目录lib(名字可自定) 找到MySQL的Java服务的jar包 打开 ...
- Vue学习(2)---v-指令和组件
Vue中的指令 Vue中以带有前缀V-的属性被称为指令(带有v表示他们是Vue提供的特殊attribute) 一个v-bind的例子 <div id="app" v-bind ...
- sql server 表连接类型
一.数据库访问操作 1.SCAN(最影响性能点,优化切入点) 根据表的不同,分为Table Scan,Cluster Index Scan,Non-clustered Index Scan Table ...
- Docket 容器引擎
Docker 是世界领先的软件容器平台.是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中, 然后发布到任何流行的Linux或Windows机器上,可以实现虚拟化(软件 ...