Ruby / Rails:如何通过 rforce gem 通过一次 API 调用在 salesforce 中创建多条记录?

2024-01-03

我正在使用rforce https://github.com/undees/rforcegem 在我的 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

Where array_of_opportunities是一个数组的数组,例如opportunity在上面的例子中。

但这会引发错误:

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

我将不胜感激任何帮助。


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

opportunity1 = [
    :type,      'Opportunity',
    :amount,    '10.00',
    :name,      'OPP1',
    :closeDate, '2008-07-04',
    :stageName, 'Closed Won'
]

opportunity2 = [
    :type,      'Opportunity',
    :amount,    '10.00',
    :name,      'OPP2',
    :closeDate, '2008-07-04',
    :stageName, '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, opportunity1, :sObjects, opportunity1]),XML 转换器会崩溃,因此请确保它们实际上是单独的对象。这可能是框架中的一个错误,但在实际生产情况下这种情况很少见,被认为是严重的,但在测试时要小心。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby / Rails:如何通过 rforce gem 通过一次 API 调用在 salesforce 中创建多条记录? 的相关文章

随机推荐