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转换器会吓坏,所以请确保它们实际上是单独的对象这可能是框架中的一个错误,但在实际生产情况下这种情况很少被认为是严重的,但在测试时要注意它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |