首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Netsuite Ruby::SOAPFault:(soapenv:Server.userException)获取事务时出错

使用Netsuite Ruby::SOAPFault:(soapenv:Server.userException)获取事务时出错
EN

Stack Overflow用户
提问于 2014-03-10 19:29:07
回答 2查看 1.6K关注 0票数 1

我正在使用netsuite红宝石(https://github.com/RevolutionPrep/netsuite)。

我和创业板的创始人谈过了,我用了正确的方式来获取交易:https://github.com/RevolutionPrep/netsuite/issues/52

在Gemfile中:

代码语言:javascript
运行
复制
gem 'netsuite'

在进行事务搜索时,我一直得到这样的信息:

代码语言:javascript
运行
复制
1.9.3p448 :008 > search = NetSuite::Records::Transaction.get(3820)
HTTPI GET request to webservices.netsuite.com (net_http)
HTTPI POST request to webservices.netsuite.com (net_http)
Savon::SOAPFault: (soapenv:Server.userException) org.xml.sax.SAXException: transaction is not a legal value for {urn:types.core_2013_2.platform.webservices.netsuite.com}RecordType

这也给出了同样的错误:

代码语言:javascript
运行
复制
search = NetSuite::Records::Transaction.get(:internal_id => 3820)

这样做是可行的:

代码语言:javascript
运行
复制
def getAllTransactions
    #SearchStringField, searchValue

    t = Time.new 

    search = NetSuite::Records::Transaction.search({
        criteria: {
        basic: [
            {
                field: 'type',
                operator: 'anyOf',
                type: 'SearchEnumMultiSelectField',
                value: [ "_invoice" ]
            },
            {
                field: 'tranDate',
                operator: 'within',

                type: 'SearchDateField',
                value: [
                      Date.parse("12/1/2013").strftime("%Y-%m-%dT%H:%M:%S%z"),
                      Date.parse("#{t.month}/#{t.day}/#{t.year}").strftime("%Y-%m-%dT%H:%M:%S%z")
                    ]
            }
            ]
        }
    })

    search
end

这也起作用了:

代码语言:javascript
运行
复制
NetSuite::Records::Customer.get(:internal_id => 3820)

这些都不管用:

代码语言:javascript
运行
复制
1.9.3p448 :007 > customer = NetSuite::Records::Invoice.get(:internal_id => 7996) 
HTTPI GET request to webservices.netsuite.com (net_http)
HTTPI POST request to webservices.netsuite.com (net_http)
NetSuite::RecordNotFound: NetSuite::Records::Invoice with OPTIONS={:internal_id=>7996} could not be found
    from /Users/pkatepalli/.rvm/gems/ruby-1.9.3-p448/gems/netsuite-0.2.0/lib/netsuite/actions/get.rb:73:in `get'
    from (irb):7
    from /Users/pkatepalli/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.12/lib/rails/commands/console.rb:47:in `start'
    from /Users/pkatepalli/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.12/lib/rails/commands/console.rb:8:in `start'
    from /Users/pkatepalli/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.12/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:5:in `require'
    from script/rails:5:in `<main>'

1.9.3p448 :008 > customer = NetSuite::Records::SalesOrder.get(:internal_id => 7996)
HTTPI GET request to webservices.netsuite.com (net_http)
HTTPI POST request to webservices.netsuite.com (net_http)
NetSuite::RecordNotFound: NetSuite::Records::SalesOrder with OPTIONS={:internal_id=>7996} could not be found
    from /Users/pkatepalli/.rvm/gems/ruby-1.9.3-p448/gems/netsuite-0.2.0/lib/netsuite/actions/get.rb:73:in `get'
    from (irb):8
    from /Users/pkatepalli/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.12/lib/rails/commands/console.rb:47:in `start'
    from /Users/pkatepalli/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.12/lib/rails/commands/console.rb:8:in `start'
    from /Users/pkatepalli/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.12/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:5:in `require'
    from script/rails:5:in `<main>'

1.9.3p448 :009 > customer = NetSuite::Records::CashSale.get(:internal_id => 7996)
HTTPI GET request to webservices.netsuite.com (net_http)
HTTPI POST request to webservices.netsuite.com (net_http)
NetSuite::RecordNotFound: NetSuite::Records::CashSale with OPTIONS={:internal_id=>7996} could not be found
    from /Users/pkatepalli/.rvm/gems/ruby-1.9.3-p448/gems/netsuite-0.2.0/lib/netsuite/actions/get.rb:73:in `get'
    from (irb):9
    from /Users/pkatepalli/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.12/lib/rails/commands/console.rb:47:in `start'
    from /Users/pkatepalli/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.12/lib/rails/commands/console.rb:8:in `start'
    from /Users/pkatepalli/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.12/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:5:in `require'
    from script/rails:5:in `<main>'

这样做是可行的:

代码语言:javascript
运行
复制
1.9.3p448 :010 > customer = NetSuite::Records::Customer.get(:internal_id => 7996)
HTTPI GET request to webservices.netsuite.com (net_http)
HTTPI POST request to webservices.netsuite.com (net_http)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-30 17:29:14

您不能提取事务记录--您必须提取特定类型或事务记录。一些类型包括:发票、SalesOrder和CashSale。

试着转到以下网址:

https://system.netsuite.com/app/accounting/transactions/transaction.nl?id=3820

这将使您了解记录的事务类型。如果这是一张发票,您可以使用以下方法检索:

代码语言:javascript
运行
复制
NetSuite::Records::Invoice.get(1234)

这里有一些关于NS事务流程的粗略说明。其中一些可能是特定于我们的实例,但其中的大多数适用于NS作为一个整体,可能有助于您或其他人试图拼凑出NS是如何工作的。

  • 大多数情况下,每个CashSale (CS)和发票都有一个与其相关的销售订单(SO)。在经常性收费(如每月服务费)的情况下,CS或发票不必与之关联。
  • A因此可以有已付款的销售订单,也可以有与其相关的发票。例:如果有人当场用CC付款,那么它就会产生“现金销售”。
  • A所以,CS订单,发票都有相似的数据,但都有唯一的NS ID。它们不是相同数据、ala联系人与相同NS ID上的客户视图的不同视图。
  • A即使全额付款,也永远不会超过“开票”状态。
  • 事务是一种流程。每条记录在语义上都代表着某种东西。因此,在正常的业务流动中,一个可能作为另一个的结果产生。因此,销售订单意味着,销售人员正在与某人通电话,他们订购了一些东西,如果公司晚些时候会付款的话,那么当公司收到发票时,就会产生发票,这是一份要求支付货物/服务的声明。
票数 3
EN

Stack Overflow用户

发布于 2014-03-10 21:05:14

当NS gem生成SOAP时,它实际上添加了一个不正确的类型:

代码语言:javascript
运行
复制
<env:Body>
  <platformMsgs:get>
    <platformMsgs:baseRef xsi:type="platformCore:RecordRef" internalId="130619" type="transaction"/>
  </platformMsgs:get>
</env:Body>

类型=‘transaction’被正确地报告为错误。当您查看模式浏览器时,可以单击“Platformcore.xsd”左上角的“type”。然后单击左下角显示的“RecordType”链接。

单击RecordType后,RecordTypes列表将显示在正确的框架中。当您滚动此列表时,您将看到它不包含“transaction”的条目。

但是,NetSuite::Records::Transaction类似乎只是SalesOrder类的包装器。

当我在控制台中运行以下操作时,在SalesOrder对象中返回所有事务(即销售)数据:

代码语言:javascript
运行
复制
NetSuite::Records::SalesOrder.get(interal_id: 1234)

长话短说,如果您只需要获取单个事务(相对于搜索事务(您注意到搜索事务是有效的),您的应用程序和需求是否允许您只使用SalesOrder类?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22309483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档