Netsuite Webservices(Python)错误

时间:2013-03-08 22:24:53

标签: python suds netsuite

这是我关于SO的第一个问题。

我是Netsuite的初学者。我看到开箱即用,只支持PHP和Java。我个人不喜欢这两个。我想用Python。我已经将SUDS用了几次用于其他工作,并认为它没问题,但不是很好。对于我第一次尝试使用netsuite,我使用了SUDS并尝试使用标准的client = Client(wsdl)。我在这里使用2012 WSDL。 https://webservices.netsuite.com/wsdl/v2012_1_0/netsuite.wsdl

由于存在问题,我甚至无法导入文件。看到这里的帖子

Has anyone been able to get the suds soap library to work with the NetSuite WSDL?

然而,实际使用的文件是从2010年开始的。我甚至没有在没有修改的情况下获得该版本的错误。我希望使用2012.1版本。我已经尝试了所有可用的解决方案,但没有一个可行。如果有人能提出一个好的解决方案,我甚至会使用其他SUDS。

我开箱即用的错误是

"fault '%s' not defined in portType '%s'" % (fault.name, self.type.name)

异常:错误'ExceededRecordCountFault'未在portType'NetSuitePortType'中定义

2 个答案:

答案 0 :(得分:2)

我意识到这是旧的(呃),但几个月前我也处于同一点。我尝试使用Suds连接到SuiteTalk,并且(可能是因为我缺乏SOAP经验)无处可去。我确实设法在某一点连接(我相信我使用的是一个不同于Suds的库)但是试图确定使用哪个WSDL是一场噩梦。

无论如何。我放弃了SuiteTalk方法并开始编写一些restlet脚本。 Python对http请求有非常好的支持(我个人正在使用优秀的'请求'模块):

http://docs.python-requests.org/en/latest/#

我知道可能有充分的理由使用SOAP协议(我认为它更加“企业化”),但为了我们的目的,为我想要做的所有事情编写相应的重定位可以很好地工作。我们通过这种方式进行重要的日常自动化任务。我最近重写了我的请求代码以使用线程,Netsuite允许您执行多达40个同时发出的请求,这在您处理数千条记录时会产生巨大的差异

如果你仍然坚持尝试将Python与SOAP一起使用,我建议尝试重新设置restlet。

答案 1 :(得分:1)

我得到类似的错误,直到我将suds的版本回滚到0.3.8,0.3.9没有任何有用的信息失败。使用easy_install运行easy_install suds=="0.3.8",然后重试您的代码。