2017-04-12 91 views
1

以下代碼正常工作。我在執行代碼時在調試日誌中看到的Id變量是正確的18位數字ID。表達不能成爲聲明 - Salesforce

List<Opportunity> psgPrimaryProjectIDToDelete = [Select pse__Primary_Project__c from Opportunity]; 
    System.debug('***************PSG Primary Project Name is ' + psgPrimaryProjectIDToDelete[0]); 
    Id myId = psgPrimaryProjectIDToDelete[0].id; 
     System.debug('***********myId = ' + myId); 

當我嘗試使用該Id變量在我的選擇語句中返回結果時出現問題。我不斷收到錯誤:表達式不能成爲一個聲明。

我得到這個錯誤,當我跟隨我的工作代碼與此:

[Select Id from PSG_Vendor_Order__c where PSG_Project__c = :myId]; 

或此:

Set<Id> s = new Set<Id>(); 
s.add(myId); 
[Select Id from PSG_Vendor_Order__c where PSG_Project__c in :s; 

錯誤顯示了在SELECT語句,但我不知道爲什麼。 ...誰能幫忙嗎?

回答

1

實際上你需要建立一個新的列表你不正確

List<PSG_Vendor_Order__c> psgVendorOrder = new List<PSG_Vendor_Order__c>([Select Id from PSG_Vendor_Order__c where PSG_Project__c = :myId]); 
+0

返回它謝謝@EricSSH!這是我的問題的簡單答案。我無法相信我沒有想過把結果分配給一個變量.....我想相信錯誤被解釋的方式是爲什麼我忽略了這一點!感謝您的快速回復! –