2012-07-21 35 views
1

是否可以通過觸發器顯示警報消息(不是錯誤消息)?我寫了一個觸發器來檢查系統中的重複帳戶。此時的觸發器會向用戶發出錯誤消息,告訴用戶存在重複的帳戶。但是,如果用戶更改字段的值「是否接近複製記錄?」爲YES,觸發器允許用戶保存記錄。通過觸發器顯示警報框 - salesforce

但是,我想在彈出的警報彈出框中顯示錯誤消息,如「存在此名稱的帳戶,是否確定要繼續」,然後用戶單擊是,並創建記錄。有關我如何做到這一點的任何想法。我的代碼如下:

for(Account account: System.Trigger.New) 
{ 
if(accountMap.containsKey(account.Physical_Street__c)==accountMap2.containsKey(account.Phone)) 
if(accountMap.containsKey(account.Physical_Street__c)==accountMap3.containsKey(account.Name)) 
if(account.Is_record_near_to_duplicate__c.equals('No')) 
    { 
    account.addError('Account with this Name,Street and Phone Number already  exists. If you still wish to create the agency change the value of field "Is Record Near To Duplicate" to YES'); 
    } 
} 

回答

0

除非你寫的處理錯誤消息的自定義visualforce頁面,然後將其顯示爲彈出有沒有辦法做到這一點。

如果您想要修改數據的警報,您可以使用ajax api將Is_record_near_to_duplicate__c字段設置爲'Yes',但無論哪種方式,您都遠離標準功能並與此接口。

1

如果你真的需要一個警告框,那麼你可以創建一個自定義的JavaScript按鈕,使用ajax toolkit來替換標準的保存按鈕。

但是,正如Baxter所說,你離標準銷售團隊的外觀和感覺還差得很遠。我會建議在複選框字段而不是對象上添加一個錯誤,以便用戶清楚他們需要選擇什麼。

if(account.Is_record_near_to_duplicate__c.equals('No')) 
    { 
    account.Is_record_near_to_duplicate__c.addError('Agency with this Name, Physical Street and Phone Number already exists. If you still wish to create the agency change the value of field "Is Record Near To Duplicate" to YES'); 
    } 
+0

謝謝,你能否建議如何使用VF頁面顯示錯誤信息。我不知道我怎麼能做到這一點。 – user1518186 2012-07-22 10:26:08

+0

你的意思是如果你建立一個自定義頁面?在那種情況下,你當然會完全控制頁面,並且可以顯示你想要的錯誤。您需要創建一個javascript函數來顯示警告框,並從保存該記錄的commandbutton中調用該函數。 I.E. ' code ' 請注意,標準salesforce錯誤行爲,你會想要捕捉你的保存函數中的任何錯誤,並將它們放入errormessage字符串中。 – 2012-07-22 16:50:32

+0

你可以發送代碼如何做到這一點? – user1518186 2012-07-22 18:57:28

0

對於觸發錯誤實現彈出式警報並非直截了當,彈出式窗口很久以前就變得過時了。如果您正在經歷麻煩,那麼您最好還是在VF頁面上實現自定義靈魂。

從觸發器中拋出一個自定義異常(用於重複帳戶),並將其捕獲到控制器中。當你發現這個異常時,你可以在頁面上動態顯示部分,要求用戶確認他/她的行爲。當用戶確認動作時,該頁面將完成其餘的動作。

希望這是有道理的!

Anup