基於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、測試提交流程

流程提交至下一個節點說明接口運行成功。

如果運行失敗會提示接口運行失敗,不會提交到下一個節點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM