销售大师:
我正在编写一个 Salesforce visualforce 页面扩展控制器来实现验证和其他业务逻辑。但是,我的代码没有按预期工作。似乎从未达到验证子类别和序列号的代码。尽管我在 VF 页面中有输入值,但系统调试日志显示子类别始终为空。你能帮忙吗?非常感谢!
public class CaseCreationExtension {
ApexPages.StandardController stdCtrl;
Case newCase;
public CaseCreationExtension(ApexPages.StandardController controller){
if (!Test.isRunningTest()){
controller.addFields(new List<String>{'Categ__c', 'Sub_Category__c', 'Id', 'Serial_Number__c', 'Refund_Required__c', 'Total_Value__c', 'Per_Month__c'});
system.debug('AddFields');
}
system.debug('Initial Controller');
this.stdCtrl = controller;
newCase = (Case)stdCtrl.getRecord();
system.debug('AccountId' + newCase.AccountId);
}
public PageReference validateSaveRedirect(){
system.debug('Sub Category:' + newCase.Sub_Category__c);
system.debug('Serial Number:' + newCase.Serial_Number__c);
if(newCase.Sub_Category__c == 'Cancellations' && newCase.Serial_Number__c == null){
system.debug('Adding error message');
ApexPages.Message myMsg = new ApexPages.Message(ApexPages.Severity.ERROR,'Error: Serial Number must be specified for cancellation case.');
ApexPages.addMessage(myMsg);
system.debug('finished Adding error message');
return null;
}else{
if(null==stdCtrl.save()){
return null;
}
/*try{
stdCtrl.save();
}
catch(system.Exception e){
ApexPages.Message msg = new apexPages.Message(Apexpages.Severity.ERROR, e.getdmlMessage(0));
ApexPages.addMessage(msg);
return null;
}*/
stdCtrl.save();
system.debug('New Case Id:' + newCase.Id);
PageReference pr = new PageReference('/' + newCase.Id);
pr.setRedirect(true);
return pr;
}
}
public PageReference cancelRedirect(){
stdCtrl.cancel();
system.debug('New Case Id:' + newCase.Contact);
PageReference pr = new PageReference('/' + newCase.Contact);
pr.setRedirect(true);
return pr;
}
}