insert product; Most of the other answers I found online also keep pointing to this Equipment__c field, which doesnt exist. test.stopTest(); list allRequests = [select id cas.Status = 'Closed'; }, insert listEquipmentMaintenanceItem; Hot Network Questions Applications of super-mathematics to non-super mathematics Resistance against timing attacks of AES candidates How to deal with Hostile Work Environment after attending Employee Workshop The region and polygon don't match. Challenge 5 - WarehouseCalloutServiceMock.class and WarehouseCalloutServiceTest.class Hi the challenge has been updated. And I might not be the best to advice on that particular section. The major problem that I have with superbadges is just understanding the question I have always known the input and output when I did programming. advanced apex specialist superbadge solution Use the naming conventions specified in the requirements document to ensure a successful deployment. pr.Name = (String)productMap.get(name); insert equipmentList; for(integer i = 0; i < 300; i++){ newCase.Comments = New comment!; If you search regarding Apex on YouTube you'll find many more channels and videos. } TrailheadSalesforce newEMIRecord.Equipment__c=EMIRecord.Equipment__c; Showcase your mastery of business process automation without writing a line of code. We are always on the hunt for writers that have something interesting to say! List caseToUpdate = new List(); Please provide additional details in your answer. What am I doing wrong here in the PlotLegends specification? By accepting all cookies, you agree to our use of cookies to deliver and maintain our services and site, improve the quality of Reddit, personalize Reddit content and advertising, and measure the effectiveness of advertising. if(!newRoutineMaintenanceVehicleRecordIDList.contains(MRRecord.Vehicle__c)) Step 1 Go through the Apex Specialist Use-Case,Business Requirement And Schema Diagram of the Story, Step 2 -Create a New Trail Head Playground so That there will not be any Problem while Going through the apex code, Step 3 -To Start the apex challenge Install this unmanaged package after that go through the Standard object and the custom object details in your org so that you might get understand the basic of the Requirement, Step 4 you all have the apex class made while installing unmanaged package, a. Update the following below code in the MaintenanceRequest trigger, trigger MaintenanceRequest on Case (before update, after update) {, // call MaintenanceRequestHelper.updateWorkOrders. So even though you know the concepts you'll have to check and understand what fits where. Product2 equipment = buildEquipment(); All rights reserved, Salesforce Advanced Apex Specialist Trailhead Superbadge, .. mark it public and tick the disable auto archive checkbox and use the description text given, TechForce Services Makes a Big Impact with its Cutting-Edge Solutions, Make sure you create the Custom metadata records with the exact same names given (that matches the product families), In the constants apex class, declare all the, OrderTrigger should use the Orderhelper internally for the rollup, in the pageblock table columns, use the field labels as headers using$ObjectType, update the column values to use the productRecord fields inside the productwrapper, use apex:chart to display the horizantal bar chart in a separate pageblock above the table, reRender the required components from the Save and Add buttons, Make the Controller class Without Sharing, replace the list of products with list of productwrapper, iterate thru the productWrapper and extract the products and pricebookentries and insert them separately, use try catch block and do a rollback if there are any errors, move the chart data initialisation logic to Chart Helper class, Make sure all the methods in the TestDataFactory class are, all the construct methods should create the mentioned objects with the required fields and unique names and return the records without inserting them. I want to know that which part of my code is wrong, not just answer. // ToDo: Call MaintenanceRequestHelper.updateWorkOrders Press question mark to learn the rest of the keyboard shortcuts. leastValueMap.put(emi.Maintenance_Request__c,emi); if(MRRecord.Status!= oldMap.get(MRRecord.ID).Status && MRRecord.Status == Closed && (MRRecord.Type==Repair || MRRecord.Type==Routine Maintenance)){ It should work. } system.debug(EMIList +EMIList); public class Constants { public static final Integer DEFAULT_ROWS = 5; public static final String SELECT_ONE = Label.Select_One; public static final String INVENTORY_LEVEL_LOW = Label.Inventory_Level_Low; public static final List<Schema.PicklistEntry . ApexSchedulable , execute, Superbadges - Apex Specialist (The 'MaintenanceRequest' trigger does not appear to be handling bulk operations correctly) Hi guys, I'm almost finished with the test to get tge Apex Specialist SuperBadge, I attempt to validate the "Test automation logic" but I can't really see what is my error or why is not passing. Thanks for letting know. Decimal maintenanceCycle = 0; }. } Hi, Map mapOldCasesWithNewCases = createNewCases(caseList); linkEquipmentsToNewCases(mapOldCasesWithItems,mapOldCasesWithNewCases); Profile p = [SELECT Id FROM Profile WHERE Name=Standard User]; pr.Replacement_Part__c = (Boolean)productMap.get(replacement); Please note that I also have separate method to cover positive and negative scenarios. Step 2. } Please edit your answer to include an explanation of your code. where Maintenance_Request__c = :newReq.Id]; system.assert(workPart != null); Trailheads are good for general understanding of a concept whereas the super badge is a test of that concept in a scenario. Lightning Experience Specialist I had posted these at the time i completed them. MRRecord.Date_Due__c=MRRecord.Date_Due__c + integer.valueOf(maintenanceCycle); If multiple equipments are used in the maintenance request, choose the shortest maintenance cycle to define the service date. newCase.Date_Reported__c=Date.today(); insert newCases; List newItems = new List(); Now Update the below code in HelperClass MaintenanceRequestHelper, public static void updateWorkOrders(){// update workorders//bulk determineList maintenanceRequestList=[select id,case.Vehicle__c,Equipment__c,Equipment__r.Maintenance_Cycle__c,Type,Status from case where id in :Trigger.New limit 200];if(maintenanceRequestList !=null && maintenanceRequestList.size()>0 ){List insertMaintenanceRequest=getCaseList(maintenanceRequestList);insert insertMaintenanceRequest;}}, public static List getCaseList(List maintenanceRequestList){List newMaintenanceRequestList= new List();for(Case cas:maintenanceRequestList){if(cas.Type==Routine Maintenance && cas.Status==Closed){case newMaintenanceRequest=new Case();newMaintenanceRequest.Subject=test;newMaintenanceRequest.Type=Routine Maintenance;newMaintenanceRequest.Vehicle__c=cas.Vehicle__c;newMaintenanceRequest.Equipment__c=cas.Equipment__c;newMaintenanceRequest.Date_Reported__c=date.Today();newMaintenanceRequest.Date_Due__c=Date.today().addDays(Integer.valueOf(cas.Equipment__r.Maintenance_Cycle__c));newMaintenanceRequest.Status=New;newMaintenanceRequest.Origin=Phone;newMaintenanceRequestList.add(newMaintenanceRequest);}}return newMaintenanceRequestList;}}, 2: Synchronize Salesforce data with an external system, public with sharing class WarehouseCalloutService {. new List(); Apex specialist superbadge challenge 4. }, PRIVATE STATIC Case createMaintenanceRequest(id vehicleId, id equipmentId){ system.debug('newCaseList '+newCaseList); Install the unmanaged package for the schema and stubs for Apex classes and triggers. All these codes are working 100% and run smoothly to help you achieve the below shiny badge. Create and follow custom learning playlists. I have Class name MaintenanceRequestHelper and i am adding it but still it not accepting this getting below error. Challenge 4 - MaintenanceHelperTest.class } List newCaseList = new List(); // Sync with Warehouse Use Git or checkout with SVN using the web URL. public static void testNegative(){ }. It's pretty comprehensive and contains several examples. But I have created it as you can see in below image. Hi Shaid, Please use below code:-. list requestList = new list(); private static final String WAREHOUSE_URL = https://th-superbadge-apex.herokuapp.com/equipment'; // complete this method to make the callout (using @future) to the// REST endpoint and update equipment on hand. insert newCaseList; emiListToNewCase = [Select id,name,Maintenance_Request__c,Equipment__r.Maintenance_Cycle__c from Equipment_Maintenance_Item__c where Maintenance_Request__c IN: oldNewCaseMap.keySet()]; for(Equipment_Maintenance_Item__c emis : emiListToNewCase){ replacement_part__c = true); newCase.Date_Reported__c = System.today(); , Apex, ApexHttpCalloutMock contact.LastName = last; rev2023.3.3.43278. If you are facing any hurdles to complete the challenge, just go through the code. The challenge is expecting to find the closed Maintenance Request plus an New Maintenance Request of type Routine Maintenance with the same Vehicle as the closed one. SELECT Maintenance_Request__r.ID cID, MIN(Equipment__r.Maintenance_Cycle__c)cycle } If you don't see your @future method in the list, then there's something wrong, but if you . For that, I would suggest the following udemy course: Salesforce Development Course. Schedule synchronization | Apex Specialist | Salesforce wonder studies 5.77K subscribers Subscribe 241 Share Save 59K views 7 months ago Superbadge Apex Specialist PLEASE SUBSCRIBE IF YOU. hi, martand please lemme know if it is verified, I ll update the same! @future(callout=true)public static void runWarehouseEquipmentSync(){, if(response.getStatusCode()==200){//System.debug(size of equipment +equipmentlist.size());List updateEquipmentlist=getProductlist(response);if(updateEquipmentlist.size() > 0){insert new List(updateEquipmentlist);}}}, public static List getProductlist(HttpResponse response){, List externalEquipment = (List) JSON.deserializeUntyped(response.getBody());List equipmentlist=new List();//System.debug(size of result+externalEquipment.size());for (Object externalEquipment1: externalEquipment) {Map data = (Map)externalEquipment1;//system.debug(externalEquipment1);//system.debug(data+===+data.get(cost));Product2 equipment=new Product2();//equipment.Id =(String)data.get(_id);equipment.Cost__c=(Integer)data.get(cost);equipment.Lifespan_Months__c =(Integer)data.get(lifespan);equipment.Maintenance_Cycle__c =(Integer)data.get(maintenanceperiod);equipment.Name =(String)data.get(name);equipment.Current_Inventory__c =(Integer)data.get(quantity);equipment.Replacement_Part__c =(Boolean)data.get(replacement);equipment.Warehouse_SKU__c=(String)data.get(sku);equipmentlist.add(equipment);}return equipmentlist;}, public static HttpResponse getrespond(){Http http=new Http();HttpRequest request=new HttpRequest();request.setEndpoint(WAREHOUSE_URL);request.setMethod(GET);HttpResponse res=Http.send(request);return res;}}, global class WarehouseSyncSchedule implements Schedulable{// implement scheduled code hereglobal void execute (SchedulableContext sc){, WarehouseCalloutService.runWarehouseEquipmentSync();//optional this can be done by debug modeString sch = 00 00 01 * * ?;//on 1 pmSystem.schedule(WarehouseSyncScheduleTest, sch, new WarehouseSyncSchedule());}}, @isTestpublic class MaintenanceRequestTest {, @isTest static void testMaintenanceRequest(){, List maintenanceList=new List();List maintenanceListAfterClosed=new List();Vehicle__c vehicle=new Vehicle__c(Name=tata sumo,Air_Conditioner__c=true,Model__c=23Test);insert vehicle;Product2 equipment=new Product2(Name=tire,Cost__c=100,Current_Inventory__c =10,Replacement_Part__c=true,Warehouse_SKU__c =test,Lifespan_Months__c =10,Maintenance_Cycle__c=10);insert equipment;for(Integer i=1;i<=300;i++){Case maintenance=new Case(Subject=Test subject+i,Type=Routine Maintenance+i,Status=New+i,Origin=Phone+i,Equipment__c=equipment.Id,Vehicle__c=vehicle.Id);maintenanceList.add(maintenance);}insert maintenanceList;// system.assertEquals(300, maintenanceList.size());for(Case caseupdate:maintenanceList){caseupdate.Status=Closed;caseupdate.Type=Routine Maintenance;caseupdate.Date_Due__c=date.Today().addDays(Integer.valueOf(equipment.Maintenance_Cycle__c));maintenanceListAfterClosed.add(caseupdate);}Test.startTest();//UPDATE maintenanceListAfterClosed;//Bulk insert updateDatabase.SaveResult[] updatequipment = Database.update(maintenanceListAfterClosed);Test.stopTest();for(Database.SaveResult sa:updatequipment){System.assert(sa.isSuccess());}}}, @isTestglobal class WarehouseCalloutServiceMock implements HttpCalloutMock {// implement http mock callout//Mock responce created to test the call outglobal HttpResponse respond(HttpRequest request){System.assertEquals(https://th-superbadge-apex.herokuapp.com/equipment', request.getEndpoint());System.assertEquals(GET, request.getMethod());HttpResponse response = new HttpResponse();response.setHeader(Content-Type, application/json);response.setBody([{_id:55d66226726b611100aaf741,replacement:false,quantity:5,name:Generator 1000 kW,maintenanceperiod:365,lifespan:120,cost:5000,sku:100003}]);response.setStatusCode(200);return response;}}, @isTestprivate class WarehouseCalloutServiceTest {// implement your mock callout test here@isTest static void TestWarehouseCalloutService() {Test.startTest();//mock respoonseTest.setMock(HttpCalloutMock.class, new WarehouseCalloutServiceMock());WarehouseCalloutService.runWarehouseEquipmentSync();Test.stopTest();}}, @isTest static void WarehousescheduleTest(){. for(Equipment_Maintenance_Item__c emi : emiList){ If nothing happens, download GitHub Desktop and try again. newCase.Subject = 'Test Subject'; For getting more knowledge I'll suggest go to Apex Hours YouTube channel and check-out the developer series. Eigenmann & Veronelli hiring DIGITAL TRANSFORMATION SPECIALIST in Rho private static final string REPAIR = Repair; newCase.Date_Due__c=newDate; private static void linkEquipmentsToNewCases( Apex Specialist Tips, Copyright 2000-2017 salesforce.com, inc.All rights reserved., Trailhead Reports & Dashboards Specialist, https://developer.salesforce.com/docs/atlas.ja-jp.salesforce_app_limits_cheatsheet.meta/salesforce_app_limits_cheatsheet/salesforce_app_limits_platform_apexgov.htm, https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_scheduler.htm. system.debug('leastValueMap '+leastValueMap); for(Case c : caseList){ Map result = getDueDate(caseList); for(Case oneCase : caseList) { insert somethingToUpdate; Equipment_Maintenance_Item__c workP = createWorkPart(equipmentId,somethingToUpdate.id); Salesforce, Trailhead, superbadge Trailhead solution for Apex Specialist superbadge Set setIdCases = new Set(); EquipmentIDListUpdate.add(EMIRecord.Equipment__c); Help with Superbadge Service Cloud Specialist step 4 } } Tips3, PlaygroundTrailhead Reports & Dashboards Specialist . newCase.Status=closed; newMRRecord.Type=Routine Maintenance; To learn more, see our tips on writing great answers. @isTest This repository is for solving all the problems and pass all the challenges in the way of earning this superbadge. Vehicle__c=vehicleId); Hot Network Questions Advanced-Apex-Specialist Showcase your mastery of business process automation without writing a line of code. Are you sure you want to create this branch? insert workP; test.startTest(); Please help me out, have you solved this if yes please help me, i have already used Queueable interface for WarehouseCalloutService class now i m stuck on step 5 with Test class WarehouseCalloutServiceTest , can you please help me with Test class code ,underlying is the Queueable interface code of WarehouseCalloutService class. } hi niya tmpCases.add(newCases.get(oldId)); }, @istest system.debug(newEMIRecordList.size() +newEMIRecordList.size()); } enter image description here Tried creating another playground but still same issue. id equipmentId = equipment.Id; System.debug(vehicleId+ +equipmentId); case somethingToUpdate = createMaintenanceRequest(vehicleId,equipmentId); Vehicle__c Vehicle = new Vehicle__C(name = SuperTruck); Apex I have access to udemy too so could someone mention a course or something. System.debug(*** Total cases (expected 600): +numberAllCases); newCases.add(newCase); result.put((Id)res.get(cID),addDays); maintenanceCycle=EMIRecord.Equipment__r.Maintenance_Cycle__c; vehicle.Name = car; }, public static void createNewEquipmentMaintenanceItem(Map newMap){ I think everyone has given awesome suggestions , I'll try to add some more insights -. HttpRequest request = new HttpRequest(); maintenanceNew.Status = 'New'; If you have just one and a half months experience in Salesforce, apex specialist is a little too early now. Automate record creation | Apex Specialist | Salesforce apex - Could not find a successfully completed @future job Step 1. List newMRRecordList = new List(); TimeZoneSidKey=America/Los_Angeles, UserName=stdtest@testorg.com); List caseList = new List(); GitHub - minicruiser/Apex-Specialist-Superbadge Challenge 1 - MaintenanceRequest.trigger and MaintenanceRequestHelper.class Tips, ApexWeb APIApexDML1, Trigger.new sObject List } system.assert(allRequest.size() == 1); You have to rename the two standard fields as indicated and then the mentioned changes in apex and trigger codes. for(Equipment_Maintenance_Item__c item : items){ Salesforce, 2SalesforceApex SpecialistTips, , { Product2 newEquipment = new Product2(); Apologies for m caught quite off guard at this moment. You signed in with another tab or window. } Vehicle__C vehicle = createVehicle(); Salesforce Advanced Apex Specialist - Trailhead Superbadge product2 equipment = new product2(name = SuperEquipment, Issue with step #6 of the Lightning Web Components Specialist superbadge. }. addDays+=daysToAdd; for(Case MRRecord: newMap.values()){ Salesforce Set caseIdSet = new Set(); Map oldNewCaseMap = new Map(); 2022; static testmethod void testjob(){ System.enqueueJob(New WarehouseCalloutService()); Set idOldCases = mapOldCasesWithNewCases.keySet(); (I have already renamed Case and Product objects) Superbadge Process Automation Specialist Full Solutions. Challenge Not yet complete heres whats wrong: if(maintenanceCycle==0){ Rename cases and products to match the HowWeRoll schema, and assign all profiles to the custom HowWeRoll page layouts for those objects. Also some of the functions come predefined and it might be that as well. for this code: @isTest List newRoutineMaintenanceVehicleRecordIDList = new List(); 5 Comments on Apex Superbadge (part-1) Scenario:- Automate record creation. trigger MaintenanceRequest on Case (before update, after update, before insert, after insert) { Copyright 2000-2022 Salesforce, Inc. All rights reserved. Staging Ground Beta 1 Recap, and Reviewers needed for Beta 2, What is wrong with my code on Trailhead challenge Developer Beginner > Apex Triggers > Bulk Apex Triggers, Apex Lightning upload fail because missing test class, How can I modify the meta data of any field using apex, How do i write test class for below apex code, Lightning Web Component Specialist Super badge: Challenge 7, Trailhead Superbadge Logic to create Junction Object, Apex Specialist Challenge 1 too Many DML Rows, Theoretically Correct vs Practical Notation. }, PRIVATE STATIC Equipment_Maintenance_Item__c createWorkPart(id equipmentId,id requestId){ } for(Case caseInList: caseList){ Career Paths. If you are facing any hurdles to complete the challenge, just go through the code. Equipment_Maintenance_Item__c i2 = buildItem(newCases[i_fail].Id, equipment.Id); workPartList.add(createWorkPart(equipmentList.get(i).id, requestList.get(i).id)); insert vehicle; } GitHub - minicruiser/Apex-Specialist-Superbadge minicruiser / Apex-Specialist-Superbadge Public Notifications 13 Star Code Issues main 1 branch 0 tags Go to file Code minicruiser Update MaintenanceRequestHelper.cls 8b195dd on Jun 6, 2022 14 commits step2 Automate record creation Update MaintenanceRequestHelper.cls 8 months ago public with sharing class WarehouseCalloutService implements queueable, Database.AllowsCallouts { } Integer daysToAdd = Integer.valueOf(res.get(cycle)); If u further need help you can join the telegram group from link on the homepage. 2023 TechForce Services. which certification i should do to expertise myself in that domain, Hi there Neha ! @istest Test.startTest(); Hey itachi, try debugging the code and look where the issue is. Superbadge business administration specialist challenge 4 vehicleToEquipmentMap.put(MRRecord.Vehicle__c,EquipmentIDListUpdate); Date todayDate = System.today(); maintenanceNew.Date_Due__c = Date.today(); caseList.add(maintenanceNew); REST APIJSONJSONApex ObjectJSON, , VisualforceLightning ComponentApexApexApex But i will surely get back to you on this. If you're if that type, you can read the apex developer documentation. cas.Type = 'Repair'; I worked through the Exam Prep guidelines. Test.setMock(HttpCalloutMock.class, new WarehouseCalloutServiceMock()); newMRRecordList.add(newMRRecord); Set Up Development Org }. Apex Specialist Superbadge Null Reference on Challenge 4. Site design / logo 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA. $ sfdx force:source:retrieve -n NameOfThePackage This will retrieve all the components in the package into a new folder named as the package. }. }, Case newRoutineCase = createNewMaintenanceCase(oneCase.Id, oneCase.Vehicle__c, newDate); Laendor code is not working. if(MRRecord.Vehicle__c==EMIRecord.Maintenance_Request__r.Vehicle__c){ use the Insert method to call all the construct methods and then insert the records returned from those methods. A limit involving the quotient of two sums, Doubling the cube, field extensions and minimal polynoms, Calculating probabilities from d6 dice pool (Degenesis rules for botches and triggers), Euler: A baby on his lap, a cat on his back thats how he wrote his immortal works (origin?). return Vehicle; } Also various YouTube videos and blogs exist. 3 Answers. newItem.Maintenance_Request__c = newCase.Id; listEquipmentMaintenanceItem.add(newItem); e.Equipment__c = emis.Equipment__c; I create correct algoritm to find less maintenance cycle days. This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. Superbadge Apex Specialist Full Solutions - Salesforce Handle User u = new User(Alias = stdtest, Email=stdtest@testorg.com, I'm working on the Apex Specialist super badge on the Salesforce Trailhead. List EquipmentIDListUpdate = new List(); How Intuit democratizes AI development across teams through reusability. request.setEndpoint(WAREHOUSE_URL); insert emiListToBeUpdated; Equipment_Maintenance_Item__c i1 = buildItem(newCases[i_ok].Id, equipment.Id); Thanks for your wonderful gesture of letting know, I am also geating the same error . } Trigger.new, ApexHTTPHttpHttpRequestHttpResponse } Hard times, Challenge 1 : Automate record creation Map caseKeys = new Map (CaseIDs); I have complete Idea of this coding bt I am not getting what to do before writing this code exactly for this challenge. For any superbadge, you will have to install a package before starting. if(res.get(cycle)!=null){ Hey sanskar! I'm also trying to get more comfortable with Visual Studio Code with the Salesforce extensions. . ProductId=equipmentId, } Closing a Maintenance Request of type 'Routine Maintenance' or 'Repair' did not create of a new Maintenance Request with the correct due date. Asking for help, clarification, or responding to other answers. @future Challenge 3 - WarehouseSyncSchedule.class contact.Email = test@test.com; public static Vehicle__c buildVehicle(){ There can be technical errors n it might take more than one time to get it verified. Apex Specialist Superbadge. Automate record creation using Apex | by from case Salesforce Interview Questions and Answers We Swear By! Equipment_Maintenance_Item__c newItem = new Equipment_Maintenance_Item__c(); Case newCase = new Case(); } Apex @future Case newCase = buildCase(vehicle.Id,'Electrical','DummyFAIL_'+i_fail); You should definitely complete the task on your own and you can get all the help. I do know the core concepts but I am missing the connection. Automate record creation || Apex Specialist Superbadge Education Org's 26K views 7 months ago Almost yours: 2 weeks, on us 100+ live channels are waiting for you with zero hidden fees Dismiss Try. Set oldIdCases = newCases.keySet(); When this Superbadge came up, I identified several resources online that helped walk me through it. id equipmentId = equipment.Id; case emptyReq = createMaintenanceRequest(vehicleId,equipmentId); By rejecting non-essential cookies, Reddit may still use certain cookies to ensure the proper functionality of our platform. Superbadge Process Automation Specialist Full Solutions. return cs; caseToUpdate.add(newCase); for(Case MRRecord: newList){ insert emptyReq; Equipment_Maintenance_Item__c workP = createWorkPart(equipmentId, emptyReq.Id); //MaintenanceRequestHelper.createNewEquipmentMaintenanceItemList(Trigger.newMap); System.debug(*** Updated cases: +caseToUpdate.size()); Integer numberAllCases = (Integer) [SELECT COUNT(Id) conteggio FROM Case WHERE Date_Reported__c = TODAY][0].get(conteggio); for(AggregateResult res :wpc){ Maintenance Request to the same vehicle . List newEMIRecordList = new List(); and Schema Equipment_Maintenance_Item__c instead of Work_Part__c. insert vehicle; Create an account to follow your favorite communities and start taking part in conversations. Case newCase = mapOldCasesWithNewCases.get(idOld); Honestly, I suggest reviewing the trailheads leading up to the apex super badge since the apex specialist Superbadge tests you on those core concepts. Viewed 5k times . I hope you well.I know I should contact you but I just do not have anyone to turn to.Am stuck on challenge 4 for almost 3 weeks.Please help out. list equipmentList = new list(); Hi Niya. insert equipment; List newCases = new List(); private static Map createNewCases(List caseList) { +2,000 points ~1 hr App Customization Specialist Superbadge Work fast with our official CLI. Hope this helps!Looking For? }. Concepts tested in this superbadge include: Apex Triggers . Trailhead solution for Apex Specialist superbadge. In that case the post hasnt been updated that much recently.