我已經創建了具有兩個字段的自定義設置對象。我還創建了一個Apex控制器和一個Visual Force Page來更新/編輯自定義設置。作爲系統管理員,我可以使用該表單編輯自定義設置。但是,當我作爲標準用戶登錄時,表單字段沒有顯示出來。當我以標準用戶身份登錄時,即使通過Setup-> Develop-> CustomSettings並單擊manage,我也無法添加自定義設置。我已經使我的控制器和Visual force頁面權限都可以被任何人訪問。標準用戶無法在salesforce中添加/編輯自定義設置記錄
下面是我的控制器代碼,
public class XYZSettingsController
{
public XYZSettings__c mySettings {get; set;}
public XYZSettings__c myOrgSettings{get; set;}
public XYZSettingsController()
{
mySettings = XYZSettings__c.getValues(System.Userinfo.getUserId());
myOrgSettings = XYZSettings__c.getInstance();
if(mySettings == null)
{
mySettings = new XYZSettings__c(SetupOwnerId=System.Userinfo.getUserId());
}
}
public String getOrgUrl()
{
return myOrgSettings.XYZ_Url__c;
}
public String getOrgEmail()
{
return myOrgSettings.XYZ_Email__c;
}
public String getUrl()
{
return mySettings.XYZ_Url__c;
}
public String getEmail()
{
return mySettings.XYZ_Email__c;
}
public PageReference save() {
if(mySettings.id == null){
upsert mySettings;
}
else{
update mySettings;
}
return null;
}
}
而下面是我的視覺力量頁面,
<apex:page Controller="XYZSettingsController" title="Edit XYZ access settings">
<apex:form >
<apex:pagemessage severity="info" strength="1">
Your default XYZ platform url is: {!OrgUrl} and Email is: {!OrgEmail}
<br></br>
You can override it in the settings below
</apex:pagemessage>
<apex:pageBlock title="Edit XYZ settings" mode="edit">
<apex:commandButton action="{!save}" value="Save"/>
<apex:pageBlockSection columns="2">
<apex:inputField value="{!mySettings.XYZ_Url__c}"/>
<apex:inputField value="{!mySettings.XYZ_Email__c}"/>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
任何線索?
嘿馬特,謝謝你的回覆。這是一個新的自定義設置對象。所以我認爲現場級別的安全設置不適用?是的,我會嘗試克隆配置文件並更改它。現在在一個開發人員帳戶中。無論如何,這是否會有問題 – tamizhgeek
啊,道歉!開發者帳戶不應該影響它,但另一方面,我從來沒有嘗試寫入自定義設置記錄 - 我懷疑這是不可能的!據我所知,自定義設置的目的是維護與應用程序相關的數據列表,這些應用程序可能不會更改,但您不希望進行硬編碼。 –
@LaceySnr - 不完全;他們服務於雙重目的,其中一個是應用程序全局配置,另一個是用戶特定的偏好(Windows註冊表等)。 – jkraybill