2013-03-21 44 views
0

我不知道爲什麼,但是我的force.com站點在我嘗試更新我們發送的「調查」時沒有更新我的機會。使用Force.com站點更新機會

數據在頁面上正確填充只是不會發送到提交的機會。

下面是我使用的控制器:

public class OpptyCont { 
public Opportunity opportunity{ get 
     { 
     opportunity = [SELECT Id, Name ,X1__c,X2__c,X3__c,X4__c,X5__c,X6__c,X7__c,X8__c,X9__c FROM Opportunity 
       WHERE Id = :ApexPages.currentPage().getParameters().get('Id')]; 
     return opportunity; 
     } 
      set; 
    } 

    public OpptyCont() { 
    } 


    public PageReference save() { 
    try{ 
      update opportunity; 
     }catch(System.DMLException e) { 
      ApexPages.addMessages(e); 
      return null; 
     } 
     return null; 
    } 

} 

這裏的頂點頁:

 <apex:page Controller="OpptyCont" showHeader="false" sidebar="false"> 

     <apex:pageBlock title="Survey Questions for {!Opportunity.Name}"> 
     <b>Please fill out the following Questions:</b> 
     </apex:pageBlock> 
    <apex:form > 
    <br></br> 
    <b>1.</b><apex:outputField value="{!Opportunity.X1__c}"/> 
    <br></br> 
    <br></br> 
    <apex:inputTextarea label="{!Opportunity.X1__c}" value="{!Opportunity.X1__c}" id="X1__c" style="width:80%" /> 
    <br></br> 
    <br></br> 
    <b> 2.</b><apex:outputField value="{!Opportunity.X2__c}"/><br></br> 
    <apex:inputTextarea label="{!Opportunity.X2__c}" value="{!Opportunity.X2__c}" id="X2__c" style="width:80%" /> 
    <br></br> 
    <br></br> 
    <b>3.</b><apex:outputField value="{!Opportunity.X3__c}"/><br></br> 
    <apex:inputTextarea label="{!Opportunity.X3__c}" value="{!Opportunity.X3__c}" id="X3__c" style="width:80%" /> 
    <br></br> 
    <br></br> 
    <b>4.</b><apex:outputField value="{!Opportunity.X4__c}"/><br></br> 
    <apex:inputTextarea label="{!Opportunity.X4__c}" value="{!Opportunity.X4__c}" id="X4__c" style="width:80%" /> 
    <br></br> 
    <br></br> 
    <b>5.</b><apex:outputField value="{!Opportunity.X5__c}"/><br></br> 
    <apex:inputTextarea label="{!Opportunity.X5__c}" value="{!Opportunity.X5__c}" id="X5__c" style="width:80%" /> 
    <br></br> 
    <br></br> 
    <b>6.</b><apex:outputField value="{!Opportunity.X6__c}"/><br></br> 
    <apex:inputTextarea label="{!Opportunity.X6__c}" value="{!Opportunity.X6__c}" id="X6__c" style="width:80%" /> 
    <br></br> 
    <br></br> 
    <b>7.</b><apex:outputField value="{!Opportunity.X7__c}"/><br></br> 
    <apex:inputTextarea label="{!Opportunity.X7__c}" value="{!Opportunity.X7__c}" id="X7__c" style="width:80%" /> 
    <br></br> 
    <br></br> 
    <b>8.</b><apex:outputField value="{!Opportunity.X8__c}"/><br></br> 
    <apex:inputTextarea label="{!Opportunity.X8__c}" id="X8__c" style="width:80%" /> 

    <br></br> 
    <br></br> 
    <apex:commandButton value="Submit" action="{!save}" /> 
    </apex:form> 
    </apex:page> 

如果你能在正確的方向指向我,將是巨大的。

回答

0

SF不允許您編輯或更新標準對象(帳戶,機會,潛在客戶等)上的記錄。您需要創建一個自定義對象來保存數據,並創建一個觸發器來更新標準對象上的數據。

您只能在標準對象上插入新記錄。

0

檢查站點的配置文件(它位於站點配置中的其中一個按鈕下)。也許「訪客用戶」沒有權利更新商機?

如果您修改類定義爲public without sharing class OpptyCont,檢查是否有任何更改 - 也許他沒有權限編輯此特定記錄?

最後但並非最不重要 - 在設置 - >監控 - >調試日誌中,您可以將您的網站名稱放在框中(它應該找到類似於「MySiteName Guest用戶」的內容),這應該有助於跟蹤發生了什麼。

+0

Eyescream-感謝您的反饋。事實證明,這只是一個權限問題。 Salesforce不允許您通過「僅限網站」自定義對象編輯標準對象。因此創建了一個單獨的對象,它具有更新機會的觸發器。 – AlphaBravo 2013-03-25 20:07:11

+0

奇怪的是,我的網站有一個「聯繫我們」的形式,最終成爲SF中的標準案例記錄(插入,但不更新,但是)...你可以張貼它作爲一個答案和接受它,因此它更容易找到人有類似的問題? – eyescream 2013-03-27 08:06:15