You need to sign in to do that
Don't have an account?

Page Redirect is not working
Hi,
I created a page redirect inside controller. Below highlited is the code to call page redirect. I am redirect the page to opporunity after data is saved.
Please suggest me how to modify its not working
// Store Selected Records to Object/Table
public void processSelected() {
Integer currentPageNumber = setCon.getPageNumber();
selectedAssets = new List<Asset>();
list<Temp_Assets__c> TempAssetList = new list<Temp_Assets__c>();
setCon.setpageNumber(1);
while(true){
List<Asset> TempAssetLists = (List<Asset>)setCon.getRecords();
for(Asset assetIns : TempAssetLists ) {
if(this.selectedContactIds.contains(assetIns.Id)){
selectedAssets.add(assetIns);
}
}
if(setCon.getHasNext()){
setCon.next();
}
else{
break;
}
}
/**********Added by Unnat*********************************/
//below code should only execute if Expiry term has a value
Date maxDate=Date.valueOf('2000-1-1');
Date minDate;
//Calculate the maximum Date off of the selected dates
//finds the latest expiry date out of the selected assets
for (Asset assets: selectedAssets) {
if(assets.Service_End_Date_Max__c > maxDate) {
maxDate=assets.Service_End_Date_Max__c;
}
}
System.debug('== Latest Service end Date is:'+ maxDate);
minDate = maxDate;
for (Asset assets: selectedAssets) {
if(minDate > assets.Service_End_Date_Max__c) {
minDate=assets.Service_End_Date_Max__c;
}
}
System.debug('== Least Service end Date is:'+ minDate);
//Validations
if ((selectedAssets.size() < 1 ) || (expireTerms == '0' && GetExpireDate.Expire_Date__c== null )|| (expireTerms != '0' && GetExpireDate.Expire_Date__c!= null ) || (GetDistributor.Primary_Distributor__c == null ) || (GetReseller.Primary_Reseller__c == null ) || (GetOpportunity.Opportunity__c==null && GetNewOpportunity.New_Opportunity__c== null ) || (GetOpportunity.Opportunity__c!=null && GetNewOpportunity.New_Opportunity__c!= null )|| (GetExpireDate.Expire_Date__c < maxDate )) {
//Validates that atleast one of the assets is selected from the install base
if(selectedAssets.size() < 1 ){
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error,'Please select atleast one Asset to renew from the Install Base.'));
}
//Validates that atleast one of the Expiry Dates needs to have a value
if(expireTerms == '0' && GetExpireDate.Expire_Date__c== null ){
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error,'Please enter the Expiry Term or Expiry Date for the selected Assets.'));
}
//Valation that only of the Expirty Dates can have a value
else if(expireTerms != '0' && GetExpireDate.Expire_Date__c!= null ){
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error,'You can enter a value either in Expiry Date or Expiry Term, but not in both.'));
}
//Validation that the Distributor Name is required
if(GetDistributor.Primary_Distributor__c == null ){
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error,'Please enter a value in Distributor'));
}
//Validation that Reseller Name is required
if(GetReseller.Primary_Reseller__c == null ){
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error,'Please enter a value in Reseller'));
}
//Validation that atleast one Opportunity needs to have a value
if(GetOpportunity.Opportunity__c==null && GetNewOpportunity.New_Opportunity__c== null ){
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error,'Please enter a value in either of the Opportunity'));
}
//Validation that only one of the Opportunities can have a value
else if(GetOpportunity.Opportunity__c!=null && GetNewOpportunity.New_Opportunity__c!= null ){
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error,'You can enter a value either in Opportunity or New Opportunity, but not in both.'));
}
//Validation that will check if the Expiry Date has value less than the selected Asset Service End Date
if(GetExpireDate.Expire_Date__c < maxDate ){
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error,'Expiry Date that you entered is lower than Service End Date of the Asset'));
}
}
else {
//below code should only execute if Expiry term has a value
//Date maxDate=Date.valueOf('2000-1-1');
//Calculate the maximum Date off of the selected dates
if (ExpireTerms !=null) {
System.debug('== Expire Terms has a value');
//There will be another condition to add the expiry term to the latest expiry date
//String a='1 Year';
System.debug('== ExpireTerms is: '+ ExpireTerms);
if (ExpireTerms=='1') {
System.debug('== First if condition');
maxDate=maxDate.addYears(1);
}
else if (ExpireTerms == '3') {
System.debug('== Second if condition');
maxDate=maxDate.addYears(3);
}
else if (ExpireTerms == '5') {
System.debug('== third if condition');
maxDate=maxDate.addYears(5);
}
else {
maxDate= GetExpireDate.Expire_Date__c;
}
}
else {
System.debug('== Else condition');
maxDate= GetExpireDate.Expire_Date__c;
}
System.debug('== Max Date is: ' + maxDate);
Integer totalDays = minDate.daysBetween(maxDate);
System.debug('== Total days difference is: '+ totalDays);
/****************Completed by Unnat*****************************/
//checks if the Monthly Quote is going to be more than 36 months and Monthly Quote Checkbox is selected
/*if (totalDays > 1080 && Monthly_Quote == true ) {
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error,'Since the Renewals in Months is more than 3 years, please uncheck the Monthly Quote checkbox'));
}
else {*/
System.debug('=- after the if condition');
Account ResellerAct;
Account DistributorAct;
Opportunity Oppt;
for(Asset Act : selectedAssets)
{
Temp_Assets__c TempAsset = new Temp_Assets__c();
TempAsset.Name = 'Sudhir';
TempAsset.AccountId__c = Act.AccountId;
TempAsset.Product__c = Act.Product2Id;
//Added by Unnat
TempAsset.Product_lookup__c= Act.Product2Id;
TempAsset.Asset_Id__c = Act.Id;
TempAsset.Serial_Number__c = Act.SerialNumber;
TempAsset.Last_Contract_Number__c = Act.last_contract_number__c;
TempAsset.Service_Start_Date__c = Act.Service_Start_Date_Min__c;
//TempAsset.Service_End_Date__c = Act.Service_End_Date_Max__c;
/***************Added by Unnat********************************************/
TempAsset.Opp_Close_Date__c = minDate;
TempAsset.Monthly_Quote__c = Monthly_Quote;
System.debug('=- Monthly Quote is: ' + monthly_Quote);
if (Act.Service_End_Date_Max__c != null) {
TempAsset.Service_End_Date__c = Act.Service_End_Date_Max__c;
}
else {
TempAsset.Service_End_Date__c = Act.InstallDate;
}
TempAsset.Install_Date__c = Act.InstallDate;
System.debug ('==== Reseller id is: '+ GetReseller.Primary_Reseller__c);
TempAsset.Reseller__c = GetReseller.Primary_Reseller__c;
TempAsset.Distributor__c = GetDistributor.Primary_Distributor__c;
/****************Commented by Unnat****************************************************************************
If (GetReseller.AccountId <> NULL)
{
ResellerAct = [ SELECT Id FROM Account WHERE ID = :GetReseller.Primary_Reseller__c Limit 1];
TempAsset.Reseller__c = ResellerAct.Id;
System.debug ('==== Reseller id 2 is: '+ ResellerAct.Id);
}
If (GetDistributor.AccountId <> NULL )
{
DistributorAct = [ SELECT Id FROM Account WHERE ID = :GetDistributor.Primary_Distributor__c Limit 1];
TempAsset.Distributor__c = DistributorAct.Id;
}
****************Completed by Unnat *****************************************************************************/
If ( GetOpportunity.Opportunity__c <> NULL )
{
Oppt = [SELECT Id FROM Opportunity WHERE ID = :GetOpportunity.Opportunity__c Limit 1];
TempAsset.Existing_Opportunity__c = Oppt.Id;
}
TempAsset.Incumbent_Reseller__c = IncumbentReseller;
TempAsset.Education__c = Education;
//TempAsset.Expiry_Date__c = GetExpireDate.Expire_Date__c;
TempAsset.Expiry_Date__c= maxDate;
TempAsset.New_Opportunity__c = GetNewOpportunity.New_Opportunity__c;
TempAsset.Expiry_Term__c = ExpireTerms;
/* Insert Bundel Checkbox Value */
if (this.selectedContactIds2.contains(Act.Id)){
bundsprt=true;
}
else {
bundsprt=false;
}
TempAsset.Bundle_Support__c = bundsprt;
System.debug('== Bundle Value is: ' + bundsprt);
//Add the selected Assets to the List
TempAssetList.add(TempAsset);
}
Insert TempAssetList;
// } //end of if Condition for check of days more than 3 years
}
setCon.setpageNumber(currentPageNumber);
Redirect();
}
public pagereference Redirect()
{
String optyURL2 = 'https://cs20.salesforce.com/006m0000002MqNf';
PageReference pageref = new PageReference(optyURL2); //<----- changed here
pageref.setRedirect(true);
return pageref;
}
Thanks
Sudhir
All Answers
Try below code..
[If it helps, mark it as "Best Answer"]
Thanks,
Rockzz
Hi Rockzz,
Thanks for your reply. I want to redirect to https://cs20.salesforce.com/006m0000002MqNf
I dont see this in your code Please let me know
Thanks
Sudhir
Instead of this public pagereference Redirect()
{
String optyURL2 = 'https://cs20.salesforce.com/006m0000002MqNf';
PageReference pageref = new PageReference(optyURL2); //<----- changed here
pageref.setRedirect(true);
return pageref;
}
you can use this
public pagereference Redirect()
{
PageReference pageref = new PageReference('/006m0000002MqNf'); //instead of hardcoded id you can mention opp id by using query
pageref.setRedirect(true);
return pageref;
}
Hope this helps.
Thanks
What this URL Contains :https://cs20.salesforce.com/006m0000002MqNf..Please provide some more Info...
Thanks
Can you try this below code,
Hi Arun,
I tried your method i am getting error Error: Compile Error: unexpected token: '='
In this line existingId = '006m0000002MqNf';
Also Can i call getBackToAddendum() Inside another funcation after insert operation is done.
Thanks
Sudhir
I added as mentioned below but it is not working Please suggest me how to modify
Thanks
Sudhir
public pagereference Redirect()
{
PageReference pageref = new PageReference('/XXXXX'); //instead of hardcoded id you need to mention opportunity id
pageref.setRedirect(true);
return pageref;
}
Hi Praveen,
For testing I tried as below even this is not working
public pagereference Redirect()
{
PageReference pageref = new PageReference('https://www.google.co.in'); //instead of hardcoded id you need to mention opportunity id
pageref.setRedirect(true);
return pageref;
}
I want to know how to call this Redirect() funcation Please suggest me
Thanks
Sudhir
Above mentioned code will not work dude, Because here you have added PageReference('https://www.google.co.in');
but it should be PageReference pageref = new PageReference('/any id');
For eg: Click accounts tab select one account get the ID from the url put that here.
Thanks.
Please find the code below I am adding opportunity Id I am calling Redirect() funcation inside another function processselected but this is not working Please check
Thanks
Sudhir
Hi Arun,
Thank you very much you are genious
Thanks
Sudhir