2013-03-21 2 views
0

이유는 모르겠지만 force.com 사이트에서 Google에 보내 "설문 조사"를 시도하고 업데이트 할 때 내 기회가 업데이트되지 않습니다.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 게스트 사용자"와 비슷한 것을 찾아야 함). 이는 무슨 일이 일어나는지 추적하는 데 도움이됩니다.

+0

Eyescream- 의견에 감사드립니다. 그것은 권한 문제 일뿐입니다. Salesforce에서는 사용자 지정 개체 만 사이트를 통해 표준 개체를 편집 할 수 없습니다. 따라서 기회를 업데이트하는 트리거가있는 별도의 개체가 만들어졌습니다. – AlphaBravo

+0

이상하게도, 내 사이트에 SF의 표준 사례 레코드로 끝나는 "문의하기"양식이 있습니다 (삽입, 업데이트하지 않음) ... 답변을 게시하고 수용하여 사람들을 쉽게 찾을 수 있습니까? 비슷한 문제가 있습니까? – eyescream