You need to sign in to do that
Don't have an account?
Bob.390672021994282E12
AddSelected Custom List Button
I wanted to create a list view button, that will update all of the status that the users selects on the list view screen. (Salesforce Declarative Screen. )
When running the custom button I am getting the below error.
System.UnexpectedException: Cannot add() on a class java.util.Arrays$ArrayList
Error is in expression '{!SubmitAllRequests}' in component <apex:page> in page submitall: External entry point
Is there anyway to do this without using JavaScript? Or having the records on a screen. The end result will be that whatever the user selects if conditions are met on the records will update the records accordingly. I am assuming based on the error that Salesforce doesnt allow add to their array class. Anythoughts on how to get around this?
public with sharing class SubmitAllButton{
Id CurrentUserID = UserInfo.GetUserID();
set<id> UserSelect= new set<id>();
private ApexPages.StandardSetController standardController;
public SubmitAllButton(ApexPages.StandardSetController standardController)
{
this.standardController = standardController;
}
public PageReference SubmitAllRequests() {
List<Object__c> Newrecordss= (List<Object__c>) standardController.getSelected();
for(Object__c newrecords: Newrecordss)
{
UserStartDates.add(newrecords.id);
system.debug('UserStartDates' + UserStartDates);
}
for (Object__c UnSubmittedRequests: [SELECT Id, Next_Step__c, CreatedById, Attachement__c FROM Object__c WHERE id=: UserSelect
and CreatedById =: CurrentUserID ])
{
if (UnSubmittedRequests.Next_Step__c == null && UnSubmittedRequests.Attachement__c != True){
system.debug('UnSubmittedRequests' + UnSubmittedRequests);
Object__c NewRecords = new Object__c ();
NewRecords.id = UnSubmittedRequests.id;
NewRecords.Next_Step__c = 'Request Review';
Newrecordss.add(NewRecords); // this is where the error occurs.
}
}
update Newrecordss;
return redirectToList();
}
public PageReference redirectToList() {
Schema.DescribeSObjectResult result = ADR__c.SObjectType.getDescribe();
PageReference pageRef = new PageReference('/' + result.getKeyPrefix());
pageRef.setRedirect(true);
return pageRef;
}
}
The page isnt doing anything except call the method to update
<apex:page standardController="Object__c" extensions="SubmitAllButton" recordSetVar="selected" action="{!SubmitAllRequests}">
</apex:page>
When running the custom button I am getting the below error.
System.UnexpectedException: Cannot add() on a class java.util.Arrays$ArrayList
Error is in expression '{!SubmitAllRequests}' in component <apex:page> in page submitall: External entry point
Is there anyway to do this without using JavaScript? Or having the records on a screen. The end result will be that whatever the user selects if conditions are met on the records will update the records accordingly. I am assuming based on the error that Salesforce doesnt allow add to their array class. Anythoughts on how to get around this?
public with sharing class SubmitAllButton{
Id CurrentUserID = UserInfo.GetUserID();
set<id> UserSelect= new set<id>();
private ApexPages.StandardSetController standardController;
public SubmitAllButton(ApexPages.StandardSetController standardController)
{
this.standardController = standardController;
}
public PageReference SubmitAllRequests() {
List<Object__c> Newrecordss= (List<Object__c>) standardController.getSelected();
for(Object__c newrecords: Newrecordss)
{
UserStartDates.add(newrecords.id);
system.debug('UserStartDates' + UserStartDates);
}
for (Object__c UnSubmittedRequests: [SELECT Id, Next_Step__c, CreatedById, Attachement__c FROM Object__c WHERE id=: UserSelect
and CreatedById =: CurrentUserID ])
{
if (UnSubmittedRequests.Next_Step__c == null && UnSubmittedRequests.Attachement__c != True){
system.debug('UnSubmittedRequests' + UnSubmittedRequests);
Object__c NewRecords = new Object__c ();
NewRecords.id = UnSubmittedRequests.id;
NewRecords.Next_Step__c = 'Request Review';
Newrecordss.add(NewRecords); // this is where the error occurs.
}
}
update Newrecordss;
return redirectToList();
}
public PageReference redirectToList() {
Schema.DescribeSObjectResult result = ADR__c.SObjectType.getDescribe();
PageReference pageRef = new PageReference('/' + result.getKeyPrefix());
pageRef.setRedirect(true);
return pageRef;
}
}
The page isnt doing anything except call the method to update
<apex:page standardController="Object__c" extensions="SubmitAllButton" recordSetVar="selected" action="{!SubmitAllRequests}">
</apex:page>
In case someone is wondering how this can be done. Add the below
list<object__c> Results = new list <object__c>();
Results.add(NewRecords);
}
update Results