python - 使用 Python 访问 NetSuite 数据

标签 python wsdl netsuite

我想使用 Python 从 NetSuite 中提取数据,并在 NetSuite 中添加/更新数据。例如,我想通过 Python 创建销售订单和添加订单项。

我知道他们有一个我可能会使用的 WSDL。 (我希望他们也有一个 API,但显然没有……)有人有在 Python 中使用此 WSDL 的示例吗?是否有更好的方式与 NetSuite 集成?

最佳答案

我已经使用 Netsuite Web 服务大约一个星期了,没有明确的文档,但是一旦您与其他常规 Web 服务保持一致,您就可以很容易地适应自己。我附加了一个小脚本来登录并获取 netsuite 中的服务和数据类型的完整列表。

使用工厂方法创建与 netsuite web 服务交互的对象。

我使用 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)

关于python - 使用 Python 访问 NetSuite 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24413025/

相关文章:

php - 如何在 PHP/Python 中解析 WSDL?

javascript - NetSuite 搜索返回 0 个结果

Netsuite API 响应时间较长

java - Web 服务方法结果的类是什么?

Ruby Savon Gem 更改日志记录配置

netsuite - 有谁知道在哪里可以找到 SS2.0 JSDOC 定义库?

python - PureFrameworkTensorFoundError,运行时错误 -FedeartedLearning

python - 如何从具有周期性边界条件的 numpy 数组中选择一个窗口?

python : Testing Video in OpenCV using python

python - 在 Python 中使用 Selenium 单击图像抛出无效的 xpath