2012-06-03 92 views
0

我有兩個對象來自Updated和toBeUpdated。這兩個對象都有兩個字段aField和bField。我必須編寫一個代碼,以便在toBeUpdated中插入新記錄時。它會檢查記錄是否已經存在。被關鍵的是aField,如果aField是兩個記錄之間的匹配,那麼它只是更新另一個字段bField,而不爲toBeUpated對象創建新記錄。更新已經包含的記錄

此操作後,我也必須刪除fromUpdate對象的所有對象。

我知道查詢和刪除()將提供此功能,但如何編寫SOQL語句的這個功能是我無法弄清楚。

任何幫助,將不勝感激..

感謝

回答

2

如果你的意思是你該怎麼辦編寫一個查詢SOQL做刪除和更新,答案是不能。 SOQL在許多方面與SQL有很大的不同,並且可以做3種不同的操作。

  1. 首先找到匹配的,你需要使用SOQL查詢來更新
  2. 執行upsert操作插入新行和修改代碼bField
  3. 後更新現有記錄中刪除您需要刪除的記錄,記錄fromUpdate對象

刪除就像你自己說的那樣:查詢然後刪除。

當然,保持代碼的簡潔你可以做這樣的一個班輪:

delete [select Id from MyObject__c where SomeField = true]; 
+0

一件事,這不能直接在開發者控制檯頂端代碼完成,右?這應該寫在Java/C#中,然後應該使用SOAP API使其對頂點代碼可見。如果我在這裏錯了,請糾正我。 Thansk Matt – LivingThing

+1

您可以從開發者控制檯運行一個關閉作業,當您知道自己在做什麼時,它對於簡單的數據作業非常方便。在我看來,您真的想在toBeUpdated對象上編寫一個頂點觸發器,它在插入之前運行(請參閱文檔:http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_invoking.htm ) - 這表示這對我的情況並不正確,很難說明所提供的細節。 –

相關問題