2010-07-27 91 views
0

在Salesforce中,我有一個帳戶。在這個帳戶上,我有幾個字段,在一些進程在後臺運行後從PHP SDK填充。 PHP SDK在某些情況下更新字段,當發生這種情況時,我也想將該字段鎖定爲只讀。我可以從PHP SDK中執行此操作嗎?Salesforce/PHP - 在用戶輸入值後使字段爲只讀

+0

我對Salesforce並不熟悉,但從可用性的角度來看,這似乎是個壞主意。如果用戶輸入的值不正確會怎樣? – 2010-07-27 19:34:06

+0

有兩個系統,遺留和新的。但是遷移還沒有發生100%。更新發生在新系統 – 2010-07-27 20:05:42

回答

2

您希望對數據庫(或本例中的Salesforce)級別,而不是PHP SDK級別「鎖定」。由於其他惡意用戶將只抓數據加載器或Excel連接器,並與他的更新去繞過你的鎖;)

「之前更新」觸發嘗試一下Salesforce的驗證規則或者(如果你的邏輯是複雜的)一個。

實例驗證規則可能看起來像:

條件:

AND(
    ISPICKVAL(PRIORVALUE(Type),"Technology Partner"), 
    ISCHANGED(Type), 
    $Profile.Name <> "System Administrator" 
) 

錯誤消息顯示:

After Type has been set to "Technology partner" only Administrators can modify this field. 

這只是一個起點,隨時進行試驗和精細-調。您也可以在遷移後禁用此規則。

檢查出Validation Rules functions help pageintro to Validation Rules更多的好東西。 ISCHANGED()函數應該對你特別有用。

+0

這看起來像我需要的,將測試和確認 – 2010-07-28 12:01:05

+0

嗯有沒有辦法說,如果空白可以編輯(文本字段),否則鎖? – 2010-07-28 15:15:46

+1

「AND(ISCHANGED(field),LEN(PRIORVALUE(field))<> 0)」例如。我已經決定檢查以前值的非零長度,但有很多相關函數可能更適合您:blankvalue(),nullvalue(),isblank(),isnull()。 – eyescream 2010-07-28 16:54:41

相關問題