加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Ruby / Rails:如何通过rforce gem通过一次API

发布时间:2020-12-17 02:30:55 所属栏目:百科 来源:网络整理
导读:我正在使用 rforce gem在salesforce数据库中创建记录. 在rforce文档中创建记录的示例是: opportunity = [ :type,'Opportunity',:accountId,account_id,:amount,'10.00',:name,'Fakey McFakerson',:closeDate,'2008-07-04',:stageName,'Closed Won' ] bindin
我正在使用 rforce gem在salesforce数据库中创建记录.

在rforce文档中创建记录的示例是:

opportunity = [
                 :type,'Opportunity',:accountId,account_id,:amount,'10.00',:name,'Fakey McFakerson',:closeDate,'2008-07-04',:stageName,'Closed Won'
                ]

  binding.create :sObject => opportunity

salesforce API调用create()允许一次创建多个对象,但我正在努力实现这一目标.我试过以下电话:

binding.create :sObject => array_of_opportunities

其中array_of_opportunities是一个数组数组,例如上面示例中的opportunity.

但是会抛出一个错误:

NoMethodError (undefined method `to_sym' for #<Array:0x00000004ba5488>)

我很感激任何帮助.

解决方法

要批量化API操作,请将请求包装在另一个数组中,并使用一些一致的符号(即:sObjects)作为每个值的键.应在每个值之前重复相同的符号,因为这会转换为重复的XML子元素.例如,如果要创建两个商机,请执行以下操作:

opportunity1 = [
    :type,'OPP1','Closed Won'
]

opportunity2 = [
    :type,'OPP2','Closed Won'
]

puts binding.create([:sObjects,opportunity1,:sObjects,opportunity2])

此XML在幕后创建并发送到SFDC:

<create xmlns="urn:partner.soap.sforce.com">
  <sObjects>
    <type>Opportunity</type>
    <amount>10.00</amount>
    <name>OPP1</name>
    <closeDate>2008-07-04</closeDate>
    <stageName>Closed Won</stageName>
  </sObjects>
  <sObjects>
    <type>Opportunity</type>
    <amount>10.00</amount>
    <name>OPP2</name>
    <closeDate>2008-07-04</closeDate>
    <stageName>Closed Won</stageName>
  </sObjects>
</create>

以下是对同时创建的两个机会的回应:

{:createResponse=>{:result=>[{:id=>"0066000000KNMrOAAX",:success=>"true"},{:id=>"0066000000KNMrPAAX",:success=>"true"}]}}

请注意,您一次最多可以创建200条记录.

另外,我注意到如果这两个值是完全相同的对象(即执行类似binding.create([:sObjects,:sObjects,opportunity1])的事情,那么XML转换器会吓坏,所以请确保它们实际上是单独的对象这可能是框架中的一个错误,但在实际生产情况下这种情况很少被认为是严重的,但在测试时要注意它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读