我正在使用netsuite红宝石(https://github.com/RevolutionPrep/netsuite)。
我和创业板的创始人谈过了,我用了正确的方式来获取交易: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)
发布于 2014-04-30 17:29:14
您不能提取事务记录--您必须提取特定类型或事务记录。一些类型包括:发票、SalesOrder和CashSale。
试着转到以下网址:
https://system.netsuite.com/app/accounting/transactions/transaction.nl?id=3820
这将使您了解记录的事务类型。如果这是一张发票,您可以使用以下方法检索:
NetSuite::Records::Invoice.get(1234)
这里有一些关于NS事务流程的粗略说明。其中一些可能是特定于我们的实例,但其中的大多数适用于NS作为一个整体,可能有助于您或其他人试图拼凑出NS是如何工作的。
发布于 2014-03-10 21:05:14
当NS gem生成SOAP时,它实际上添加了一个不正确的类型:
<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
对象中返回所有事务(即销售)数据:
NetSuite::Records::SalesOrder.get(interal_id: 1234)
长话短说,如果您只需要获取单个事务(相对于搜索事务(您注意到搜索事务是有效的),您的应用程序和需求是否允许您只使用SalesOrder
类?
https://stackoverflow.com/questions/22309483
复制相似问题