Salesforce 从Force.com网站更新Opportunity
我不知道为什么,但我的force.com网站在我尝试更新我们发送的“调查”时没有更新我的opportunity 页面上正确填充的数据在提交时不会发送到opportunity 这是我正在使用的控制器:Salesforce 从Force.com网站更新Opportunity,salesforce,apex-code,visualforce,Salesforce,Apex Code,Visualforce,我不知道为什么,但我的force.com网站在我尝试更新我们发送的“调查”时没有更新我的opportunity 页面上正确填充的数据在提交时不会发送到opportunity 这是我正在使用的控制器: public class OpptyCont { public Opportunity opportunity{ get { opportunity = [SELECT Id, Name ,X1__c,X2__c,X3__c,X4__c,X5__c,X6__c,X7_
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页面:
<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>
请填写以下问题:
1.
2.
3.
4.
5.
6.
7.
8.
如果你能给我指出正确的方向,那就太好了。检查站点的配置文件(它在站点配置中的一个按钮下可用)。也许“来宾用户”没有更新Opportunity的权限
如果您将类定义修改为public而不共享类OpptyCont
,请检查是否有任何更改-可能他没有编辑此特定记录的权限
最后但并非最不重要的一点-在安装->监控->调试日志中,您可以将站点名称放入框中(它应该找到类似于“MySiteName来宾用户”的内容),这将有助于跟踪正在发生的事情。SF不允许您编辑或更新标准对象(帐户、商机、潜在客户等)上的记录。您需要创建一个保存数据的自定义对象,并创建一个触发器来更新标准对象上的数据
只能在标准对象上插入新记录 眼霜-谢谢你的反馈。原来这只是一个权限问题。Salesforce不允许您仅通过站点自定义对象编辑标准对象。于是创建了一个单独的对象,该对象有一个更新商机的触发器。奇怪的是,我的站点有一个“联系我们”表单,最终作为SF中的标准案例记录(插入,但不更新)。。。你能不能把它作为一个答案贴出来并接受它,这样对于有类似问题的人来说就更容易找到它?