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

APEX SUPERBADGE ERROR
Hi everyone
am trying to earn apex superbadge but am getting lots of errors like some times my trailhead account does not recognize my developer account and my helper class and trigger does not giving any error but then also my challenge is not completed yet , am sending my code also:
<************HElPER CLASS***************>
public class MaintenanceRequestHelper {
public static void updateWorkOrders(List<Case> caseList){
if(caseList.size() > 0){
List<Case> casesToCreate = new List<Case>();
List<String> caseIdList = new List<String>();
for(Case aCase : caseList){
caseIdList.add(aCase.Id);
}
map<String, List<Work_Part__c>> workPartByCase = new map<String, List<Work_Part__c>>();
for(Work_Part__c aWorkPart : [
SELECT Id, Name, Equipment__c, Equipment__r.Maintenance_Cycle__c, Maintenance_Request__c
FROM Work_Part__c
WHERE Maintenance_Request__c IN :caseIdList
AND Equipment__c != NULL
]){
if(!workPartByCase.containsKey(aWorkPart.Maintenance_Request__c)){
workPartByCase.put(aWorkPart.Maintenance_Request__c, new List<Work_Part__c>());
}
workPartByCase.get(aWorkPart.Maintenance_Request__c).add(aWorkPart);
}
for(Case aCase : caseList){
Date dateDue = Date.today();
Integer minMaintenanceCycle;
if(workPartByCase.containsKey(aCase.Id)){
for(Work_Part__c aWorkPart : workPartByCase.get(aCase.Id)){
if(
(minMaintenanceCycle == NULL && aWorkPart.Equipment__r.Maintenance_Cycle__c != NULL && aWorkPart.Equipment__r.Maintenance_Cycle__c > 0)
|| (minMaintenanceCycle != NULL && aWorkPart.Equipment__r.Maintenance_Cycle__c != NULL && aWorkPart.Equipment__r.Maintenance_Cycle__c < minMaintenanceCycle && aWorkPart.Equipment__r.Maintenance_Cycle__c > 0)
){
minMaintenanceCycle = Integer.valueOf(aWorkPart.Equipment__r.Maintenance_Cycle__c);
}
}
if(minMaintenanceCycle != NULL){
dateDue = dateDue.addDays(minMaintenanceCycle);
}
}
casesToCreate.add(new Case(
Vehicle__c = aCase.Vehicle__c,
Equipment__c = aCase.Equipment__c,
Type = 'Routine Maintenance',
Subject = 'New maintenance request',
Date_Reported__c = Date.today(),
Date_Due__c = dateDue
));
}
insert casesToCreate;
}
}
}
<************TRIGGER***************>
trigger MaintenanceRequest on Case (before insert, after insert, before update, after update) {
if(Trigger.isAfter){
List<Case> caseList = new List<Case>();
for(Case aCase : Trigger.new){
if(aCase.IsClosed && aCase.Type != NULL && (aCase.Type.equals('Repair') || aCase.Type.equals('Routine Maintenance'))){
caseList.add(aCase);
}
}
if(caseList.size() > 0){
MaintenanceRequestHelper.updateWorkOrders(caseList);
}
}
}
am trying to earn apex superbadge but am getting lots of errors like some times my trailhead account does not recognize my developer account and my helper class and trigger does not giving any error but then also my challenge is not completed yet , am sending my code also:
<************HElPER CLASS***************>
public class MaintenanceRequestHelper {
public static void updateWorkOrders(List<Case> caseList){
if(caseList.size() > 0){
List<Case> casesToCreate = new List<Case>();
List<String> caseIdList = new List<String>();
for(Case aCase : caseList){
caseIdList.add(aCase.Id);
}
map<String, List<Work_Part__c>> workPartByCase = new map<String, List<Work_Part__c>>();
for(Work_Part__c aWorkPart : [
SELECT Id, Name, Equipment__c, Equipment__r.Maintenance_Cycle__c, Maintenance_Request__c
FROM Work_Part__c
WHERE Maintenance_Request__c IN :caseIdList
AND Equipment__c != NULL
]){
if(!workPartByCase.containsKey(aWorkPart.Maintenance_Request__c)){
workPartByCase.put(aWorkPart.Maintenance_Request__c, new List<Work_Part__c>());
}
workPartByCase.get(aWorkPart.Maintenance_Request__c).add(aWorkPart);
}
for(Case aCase : caseList){
Date dateDue = Date.today();
Integer minMaintenanceCycle;
if(workPartByCase.containsKey(aCase.Id)){
for(Work_Part__c aWorkPart : workPartByCase.get(aCase.Id)){
if(
(minMaintenanceCycle == NULL && aWorkPart.Equipment__r.Maintenance_Cycle__c != NULL && aWorkPart.Equipment__r.Maintenance_Cycle__c > 0)
|| (minMaintenanceCycle != NULL && aWorkPart.Equipment__r.Maintenance_Cycle__c != NULL && aWorkPart.Equipment__r.Maintenance_Cycle__c < minMaintenanceCycle && aWorkPart.Equipment__r.Maintenance_Cycle__c > 0)
){
minMaintenanceCycle = Integer.valueOf(aWorkPart.Equipment__r.Maintenance_Cycle__c);
}
}
if(minMaintenanceCycle != NULL){
dateDue = dateDue.addDays(minMaintenanceCycle);
}
}
casesToCreate.add(new Case(
Vehicle__c = aCase.Vehicle__c,
Equipment__c = aCase.Equipment__c,
Type = 'Routine Maintenance',
Subject = 'New maintenance request',
Date_Reported__c = Date.today(),
Date_Due__c = dateDue
));
}
insert casesToCreate;
}
}
}
<************TRIGGER***************>
trigger MaintenanceRequest on Case (before insert, after insert, before update, after update) {
if(Trigger.isAfter){
List<Case> caseList = new List<Case>();
for(Case aCase : Trigger.new){
if(aCase.IsClosed && aCase.Type != NULL && (aCase.Type.equals('Repair') || aCase.Type.equals('Routine Maintenance'))){
caseList.add(aCase);
}
}
if(caseList.size() > 0){
MaintenanceRequestHelper.updateWorkOrders(caseList);
}
}
}
Try this code.