Salesforce中Visualforce页面提交时出现‘无法访问页面’错误排查求助
Salesforce Visualforce新建Opportunity提交报错排查方案
我创建了一个用于替换Opportunity标准“新建”表单的Visualforce页面,代码如下:
<apex:page standardController="Opportunity" lightningStyleSheets="true"> <apex:sectionheader title="Opportunity" subtitle="New"></apex:sectionheader> <apex:form> <apex:pageblock title="" mode="edit"> <apex:pageMessages/> <apex:pageblockbuttons location="top"> <apex:commandbutton value="Save" action="{!create}"></apex:commandbutton> <apex:commandButton action="{!cancel}" value="Cancel" immediate="true"/> </apex:pageblockbuttons> <apex:pageblocksection title="General Information"> <apex:inputfield value="{!Opportunity.Name}"/> </apex:pageblocksection> </apex:pageblock> </apex:form> </apex:page>
页面渲染正常,但点击保存时出现“无法访问页面”错误,提示:“您缺少访问该页面所需的信息。如果您认为这是错误,请刷新屏幕。如果错误仍然存在,请联系我们的客户支持团队,并提供您请求的页面URL以及其他相关信息。”
已排查个人Profile对该Visualforce页面的访问权限,且开发者控制台日志仅显示提交成功,无有效排查线索,可从以下方向继续排查:
- 修正标准控制器动作:将保存按钮的
action="{!create}"替换为action="{!save}"。标准控制器中,create动作适用于特定上下文的创建场景,而save更适配新建表单的保存逻辑,动作不匹配可能导致跳转异常。 - 补充必填字段:Opportunity对象默认存在Close Date、Stage等必填字段,当前页面仅包含Name字段,若这些必填字段无默认值且未在页面中添加,保存时会触发系统校验,但错误提示可能被异常拦截导致跳转错误。需检查对象必填字段配置,要么在页面添加对应
<apex:inputField>,要么为字段设置默认值。 - 指定重定向路径:在保存按钮中添加
retURL参数,明确保存成功后的跳转目标,避免因默认跳转参数缺失导致页面无法访问,示例代码:<apex:commandbutton value="Save" action="{!save}" retURL="/{!Opportunity.Id}"/> - 测试Classic环境兼容性:虽然页面开启了
lightningStyleSheets="true",但Lightning Experience下的Visualforce动作跳转可能存在兼容性问题。切换到Salesforce Classic模式测试页面,确认是否能正常保存,排除LEX环境的特殊限制。 - 校验对象与字段权限:除页面访问权限外,确认当前Profile对Opportunity对象拥有创建权限,同时检查Name字段及其他必填字段的编辑权限,权限缺失可能导致保存后跳转异常。
- 开启详细调试日志:将开发者控制台中Apex Code和Visualforce的日志级别设为Debug,重新执行保存操作,查看是否有隐藏的异常细节(如权限校验失败、字段赋值错误),仅显示“提交成功”可能是日志级别过低导致关键信息被忽略。
- 检查按钮关联配置:确认替换标准新建按钮的配置是否正确,按钮URL是否正确指向该Visualforce页面,是否传递了
retURL、recordType等必要参数;若为自定义按钮,需确认按钮的行为设置(如是否在新窗口打开)符合预期。
内容的提问来源于stack exchange,提问作者Chia-Hsuan Tsai
相关产品推荐
相关产品推荐

