在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转换器会吓坏,所以请确保它们实际上是单独的对象这可能是框架中的一个错误,但在实际生产情况下这种情况很少被认为是严重的,但在测试时要注意它.
总结以上是内存溢出为你收集整理的ruby-on-rails – Ruby / Rails:如何通过rforce gem通过一次API调用在salesforce中创建多条记录?全部内容,希望文章能够帮你解决ruby-on-rails – Ruby / Rails:如何通过rforce gem通过一次API调用在salesforce中创建多条记录?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)