2024-05-18 10:09:19 发布
网友
使用Python,我想从NetSuite中提取数据,同时在NetSuite中添加/更新数据。例如,我想通过Python创建销售订单并添加行项目。在
我知道他们有一个WSDL,我可以使用它。(我希望他们也有一个API,但显然没有……)有人用Python来处理这个WSDL的例子吗?有更好的方法与NetSuite集成吗?在
有许多Python库可用于处理SOAP消息,尝试使用SUDS,因为它是唯一能够正确使用2014.1netsuitewsdl的库。这只有在一些tweaks之后才有可能。netsuitewsdl既大又复杂,甚至在从本地缓存和加载之后也要花费大量的时间来加载。SUDS库已经有一段时间没有维护了,有一个被维护的fork叫做SUDS jurko,我还没有尝试过。最终,我最终使用原始soap消息与netsuitewebservice进行特定任务的通信。在
我已经处理了大约一周的Netsuite Web服务,没有明确的文档,但一旦您与其他常规的Web服务保持一致,您的行为就会非常简单地适应您自己。我附加了一个小脚本来登录并获得netsuite中服务和数据类型的完整列表。在
使用factory方法创建与netsuite webservice交互的对象。在
我用suds作为SOAP Python库。在
# -*- coding: utf-8 -*- from suds.client import Client import os, time, sys, datetime import suds import logging logging.basicConfig(level=logging.INFO) logging.getLogger('suds.client').setLevel(logging.DEBUG) reload(sys) sys.setdefaultencoding('utf8') NS_HOST = 'https://webservices.netsuite.com' email ='myemail@xxxxxx.com' pwd ='mypwd' account = "99999999" NS_ENDPOINT = "2016_2" NS_ROLE = 3 wsdl = NS_HOST + "/wsdl/v" + NS_ENDPOINT + "_0/netsuite.wsdl" client = Client(url=wsdl) #You can get the methods and types with this object print client ApplicationInfo = client.factory.create('ns16:ApplicationInfo') ApplicationInfo.applicationId = "xxxxx-XXXX-XXXX-XXXX-XXXXXXXX" client.set_options(location= NS_HOST + "/services/NetSuitePort_" + NS_ENDPOINT, soapheaders={'applicationInfo':ApplicationInfo}) passport = client.factory.create('ns4:Passport') passport.email = email passport.password = pwd passport.account = account recordRef = client.factory.create('ns4:RecordRef') recordRef.name="MX - Gerencia de Contabilidad" passport.role = recordRef client.service.login(passport)
Netsuite为Java、.Net和PHP提供了访问其web服务的工具包。对于其他语言,要么有第三方工具箱,要么必须发送原始的SOAP请求。在
对于基于Python的项目,我使用原始SOAP请求方法。我建议您首先熟悉使用任何可用工具包的netsuiteweb服务,然后对于Python,使用这些知识来生成原始SOAP请求。SOAPUI也有很大的帮助。在
您是否研究过restlet,它们通常是web服务的一个很好的替代品。在
有许多Python库可用于处理SOAP消息,尝试使用SUDS,因为它是唯一能够正确使用2014.1netsuitewsdl的库。这只有在一些tweaks之后才有可能。netsuitewsdl既大又复杂,甚至在从本地缓存和加载之后也要花费大量的时间来加载。SUDS库已经有一段时间没有维护了,有一个被维护的fork叫做SUDS jurko,我还没有尝试过。最终,我最终使用原始soap消息与netsuitewebservice进行特定任务的通信。在
我已经处理了大约一周的Netsuite Web服务,没有明确的文档,但一旦您与其他常规的Web服务保持一致,您的行为就会非常简单地适应您自己。我附加了一个小脚本来登录并获得netsuite中服务和数据类型的完整列表。在
使用factory方法创建与netsuite webservice交互的对象。在
我用suds作为SOAP Python库。在
Netsuite为Java、.Net和PHP提供了访问其web服务的工具包。对于其他语言,要么有第三方工具箱,要么必须发送原始的SOAP请求。在
对于基于Python的项目,我使用原始SOAP请求方法。我建议您首先熟悉使用任何可用工具包的netsuiteweb服务,然后对于Python,使用这些知识来生成原始SOAP请求。SOAPUI也有很大的帮助。在
您是否研究过restlet,它们通常是web服务的一个很好的替代品。在
相关问题 更多 >
编程相关推荐