Salesforce 在标准sales force chatter页面中单击Approve/Reject链接时,是否可以显示自定义VF页面?
请告知我是否可以在单击记录上的“批准/拒绝”链接时显示自定义visualforce页面,而不是显示standrad Salesforce批准页面Salesforce 在标准sales force chatter页面中单击Approve/Reject链接时,是否可以显示自定义VF页面?,salesforce,visualforce,salesforce-chatter,Salesforce,Visualforce,Salesforce Chatter,请告知我是否可以在单击记录上的“批准/拒绝”链接时显示自定义visualforce页面,而不是显示standrad Salesforce批准页面 如果可能的话,请告诉我如何实现这一点?按照以下方法覆盖标准审批流程页面 创建自定义visualforce页面:从复制标准批准/拒绝页面开始 创建具有批准/拒绝/取消方法的控制器 使用Javascript创建主页组件,以覆盖Lead上的“批准/拒绝”按钮 在主页布局中添加此主页组件 视觉力页 主页组件 尝试 { var pa=document.getE
如果可能的话,请告诉我如何实现这一点?按照以下方法覆盖标准审批流程页面
尝试
{
var pa=document.getElementById(“demoContainer”).parentNode.parentNode;pa.style.display=“无”;
}
catch(err){alert('此网页上有错误='+err.description);}
功能CustomApproval()
{
尝试
{
var str=location.href;
var leadId=str.substr(str.indexOf(“.com/”)-0+5,15);
var divid=leadId+“与流程相关的历史列表”和“主体”;
var Approvalprocessdiv=document.getElementById(divid);
if(Approvalprocessdiv!=null){
var originalHTML=Approvalprocessdiv.innerHTML;
var newHtml=originalHTML.replace(“/p/process/ProcessInstanceWorkitemWizardStageManager?”,“/apex/ProcessInstanceWorkitemWizard?LeadId=”+LeadId+”&');
Approvalprocessdiv.innerHTML=newHtml;
}
}
捕捉(错误){提醒(错误);}
}
var oldonload=window.onload;
if(typeof window.onload!=“函数”)
{
window.onload=oldonload;
}否则
{
window.onload=函数()
{
if(oldonload){
oldonload();
}
客户批准();
}
}
<apex:page controller="ProcessInstanceController" tabStyle="Lead">
<apex:form>
<apex:sectionHeader title="Lead" subtitle="{!objLead.Name}"/>
<apex:pageBlock title="Approve/Reject Approval Request">
<apex:pageBlockButtons location="bottom">
<apex:commandButton value="Approve" action="{!approve}"/>
<apex:commandButton value="Reject" action="{!reject}"/>
<apex:commandButton value="Cancel" action="{!cancel}"/>
</apex:pageBlockButtons>
<apex:pageBlockSection columns="1">
<apex:pageBlockSectionItem >
Name <apex:outputField value="{!objLead.Name}"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Lead Owner <apex:outputField value="{!objLead.Owner.Name}"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Rejection Reason <font color="red">(Mandatory while Rejection)</font><apex:inputField value="{!objLead.Rejection_Reason__c}"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Comments <font color="red">(Mandatory while Rejection)</font> <apex:inputTextArea value="{!objLead.Comments__c}" rows="5" cols="100"/>
</apex:pageBlockSectionItem>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
public class ProcessInstanceController {
public String processId;
public String leadId;
public ProcessInstance objProcessInstance;
public Lead objLead {get; set;}
public PageReference redirectPage;
public ProcessInstanceController(){
processId = ApexPages.currentPage().getParameters().get('id');
leadId = ApexPages.currentPage().getParameters().get('leadId');
objLead = [select Name,Owner.Name,Rejection_Reason__c,Comments__c from Lead where id =:leadId];
redirectPage = new PageReference('/'+leadId);
}
public PageReference Approve(){
Approval.ProcessWorkitemRequest req = new Approval.ProcessWorkitemRequest();
req.setComments(objLead.Comments__c);
req.setAction('Approve');
req.setWorkitemId(processId);
Approval.ProcessResult result = Approval.process(req);
update objLead;
return redirectPage ;
}
public PageReference Reject(){
Approval.ProcessWorkitemRequest req = new Approval.ProcessWorkitemRequest();
req.setComments(objLead.Comments__c);
req.setAction('Reject');
req.setWorkitemId(processId);
Approval.ProcessResult result = Approval.process(req);
update objLead;
return redirectPage ;
}
public PageReference Cancel(){
return redirectPage;
}
}
<div id="demoContainer">
<script language="JavaScript">
try
{
var pa=document.getElementById("demoContainer").parentNode.parentNode; pa.style.display = "none";
}
catch(err){alert('There was an error on this webpage='+err.description);}
</script>
<script language="JavaScript">
function CustomApproval()
{
try
{
var str=location.href;
var leadId=str.substr(str.indexOf(".com/")-0 + 5,15);
var divid=leadId+'_RelatedProcessHistoryList_body';
var Approvalprocessdiv=document.getElementById(divid);
if(Approvalprocessdiv!=null){
var originalHTML=Approvalprocessdiv.innerHTML;
var newHtml=originalHTML.replace('/p/process/ProcessInstanceWorkitemWizardStageManager?','/apex/ProcessInstanceWorkitemWizard?LeadId='+leadId+'&');
Approvalprocessdiv.innerHTML=newHtml;
}
}
catch(err){alert(err);}
}
var oldonload = window.onload;
if (typeof window.onload != 'function')
{
window.onload = oldonload;
} else
{
window.onload = function()
{
if (oldonload) {
oldonload();
}
CustomApproval();
}
}
</script>
</div>