2012-01-13 38 views
4

我使用rforce寶石創造我的銷售人員數據庫中的記錄。的Ruby/Rails:我怎樣才能在Salesforce中創建多個記錄經由rforce寶石一個API調用?

爲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>) 

我會很感激的任何幫助。

+1

沒有ü登錄使用OAuth?如果那麼什麼是OAuth的ACCESS_TOKEN和access_secret是嗎? – 2012-02-21 08:55:49

回答

4

要bulkify的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轉換器,那麼請確保它們實際上是單獨的對象,這可能是框架中的一個錯誤,但是它在實際生產情況下,這樣一個難得的情況下被認爲是嚴重的,但要注意它,而你正在測試。

相關問題