gpt4 book ai didi

ruby-on-rails - 使用 Netsuite Ruby Gem 获取事务时出错 - Savon::SOAPFault: (soapenv:Server.userException)

转载 作者:太空宇宙 更新时间:2023-11-03 17:23:29 25 4
gpt4 key购买 nike

我正在使用 netsuite ruby​​ gem ( https://github.com/RevolutionPrep/netsuite )。

我和gem的创始人谈过,我是用正确的方式抓交易的: https://github.com/RevolutionPrep/netsuite/issues/52

在 Gemfile 中:

gem 'netsuite'

我在进行交易搜索时不断收到此信息:

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

这也给出了同样的错误:

search = NetSuite::Records::Transaction.get(:internal_id => 3820)

这个有效:

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

这也行:

NetSuite::Records::Customer.get(:internal_id => 3820)

这些不起作用:

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>'

这个有效:

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)

最佳答案

您不能提取交易记录 – 您必须提取特定的类型或交易记录。一些类型包括:Invoice、SalesOrder 和 CashSale。

尝试访问以下网址:

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

这应该让您了解记录的交易类型。如果它是发票,您将使用以下方式检索它:

NetSuite::Records::Invoice.get(1234)

这里有一些关于 NS 交易流程的粗略说明。其中一些可能特定于我们的实例,但大部分适用于整个 NS,并且可能对您或其他试图拼凑 NS 工作原理的人有所帮助。

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

关于ruby-on-rails - 使用 Netsuite Ruby Gem 获取事务时出错 - Savon::SOAPFault: (soapenv:Server.userException),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22309483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com