} Alternatively you can join our telegram group for technical discussions among industry professionals. MaintenanceRequestHelper.createNewMaintenanceRequest(Trigger.oldMap,Trigger.newMap); This query will return all completed batch, future, and queryable jobs that were completed today. } }. Equipment_Maintenance_Item__c newEMIRecord = new Equipment_Maintenance_Item__c(); APEX. update requestList; MaintenanceRequestHelper.createNewEquipmentMaintenanceItem(Trigger.newMap); Do lemme know if you find solutions codes that work well for it. pr.Current_Inventory__c = (Integer)productMap.get(quantity); } insert newCases; List newItems = new List(); How do I complete the apex specialist superbadge - reddit Build tests for your callout using the included class for the callout mock (WarehouseCalloutServiceMock) and callout test class (WarehouseCalloutServiceTest) in the package. 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 - YouTube 0:00 / 8:46 Automate record creation | Apex Specialist | Salesforce wonder studies 5.79K subscribers Subscribe 517 Share. e.Equipment__c = emis.Equipment__c; A tag already exists with the provided branch name. Trigger.new, ApexHTTPHttpHttpRequestHttpResponse This repository is for solving all the problems and pass all the challenges in the way of earning this superbadge. update somethingToUpdate; Case newReq = [Select id, subject, type, Date_Reported__c, Vehicle__c, Date_Due__c } pr.Lifespan_Months__c = (Integer)productMap.get(lifespan) ; Use the included package content to . List emiList = new List(); newEMIRecord.Maintenance_Request__c=MRRecord.ID; If you search regarding Apex on YouTube you'll find many more channels and videos. somethingToUpdate.status = CLOSED; Step 1. So glad you cared to share this. I want to know that which part of my code is wrong, not just answer. } I started working on this superbadge and this post is to document some of the findings / tips / gotchas as I progress through this one. Thanks again buddy. I have followed all your steps correctly, But Im still having this error every single time in 3rd challenge. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Try running this query in your developer org: SELECT Id, JobType, MethodName, Status FROM AsyncApexJob WHERE CompletedDate = TODAY. Superbadge will have some hints on what you are expected to do. SELECT Maintenance_Request__r.ID cID, MIN(Equipment__r.Maintenance_Cycle__c)cycle Subject=REQUEST_SUBJECT, Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. newVehicle.Name = Dummy Vehicle; public static Product2 buildEquipment(){ newCase.Vehicle__c = c.Vehicle__c; They do give you a template and a requirements sheet. test.stopTest(); list allRequest = [select id Choose the Tab (orObject) you want torenameand clickEdit. https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_scheduler.htm, ApexGUISchedulable Apex, [] [] [Apex] Apex , GUISalesforce Learn directly from Salesforce experts. Salesforce Trailhead Superbadge: Apex Specialist Solution static private Case createNewMaintenanceCase(Id oldCaseId,Id vehicle, Date newDate) { Set Up Development Org | Apex Specialist - YouTube maintenanceNew.ContactId = contact.Id; Use the naming conventions specified in the requirements document to ensure a successful deployment. . }, private static Map getItemsInOldCases(List caseList){ } Equipment_Maintenance_Item__c i2 = buildItem(newCases[i_fail].Id, equipment.Id); if(!newRoutineMaintenanceVehicleRecordIDList.contains(MRRecord.Vehicle__c)) trigger MaintenanceRequest on Case (before update, after update, before insert, after insert) { EquipmentIDListUpdate.add(EMIRecord.Equipment__c); }, PRIVATE STATIC Case createMaintenanceRequest(id vehicleId, id equipmentId){ Salesforce Consultant || 6X Certified Salesforce || 1X DevOps Certified || TrailheadRanger || Salesforce Lover || Follow me at https://shivshankarsfdc.com/, Automate record creation using Apex triggers, Synchronize Salesforce data with an external system using asynchronous REST callouts, Test automation logic to confirm Apex trigger side effects, Test integration logic using callout mocks. } Test.startTest(); Home. newRoutineMaintenanceVehicleRecordIDList.add(MRRecord.Vehicle__c); Vehicle__c vehicle = buildVehicle(); @future if(MRRecord.Type==Routine Maintenance){ Hi shruti. where Maintenance_Request__c = :newReq.Id]; system.assert(workPart != null); Rename cases and products to match the HowWeRoll schema, and assign all profiles to the custom HowWeRoll page layouts for those objects. Apex Specialist Superbadge Data Integration Specialist Superbadge Lightning Component Framework Specialist Superbadge PROJECT: Build a Conference Management App [3 hrs 40 mins] Lightning Experience Reports & Dashboards Specialist [4 - 6 hrs] takes the place of the "Reports & Dashboards Specialist" superbadge retired in 2017. List EquipmentIDListUpdate = new List(); for(Integer i_ok = 0; i_ok < 300; i_ok ++){ } If you like what I write and it has been ever helpful to you. Go to Setup > Apex Classes > Schedule a job like below: Edit the following in the Developer console. Challenge 4 - MaintenanceHelperTest.class Hi Niya. Apex specialist superbadge challenge 4. check if u have creted a process builder , i did create a proces builder and deactivated and it worked for me. oldRequestIds.add(req.Id); We are always on the hunt for writers that have something interesting to say! if(Trigger.isInsert){ 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. , Apex, ApexHttpCalloutMock Set Up Development Org 3 Answers. @istest id equipmentId = equipment.Id; System.debug(vehicleId+ +equipmentId); case somethingToUpdate = createMaintenanceRequest(vehicleId,equipmentId); vehicleList.add(createVehicle()); If nothing happens, download GitHub Desktop and try again. Getting so many queries on this one I will surely try prioritize. im stuck in challenge 4. Actions to Earn This Superbadge Automate record creation using Apex triggers pr.Replacement_Part__c = (Boolean)productMap.get(replacement); for(case req : requestList){ hi, martand please lemme know if it is verified, I ll update the same! replacement_part__c = true); Set caseIdSet = new Set(); Map oldNewCaseMap = new Map(); salesforce - Apex Specialist Challenge 1 - Stack Overflow id vehicleId = vehicle.Id; Product2 equipment = createEq(); How Intuit democratizes AI development across teams through reusability. Hey itachi, try debugging the code and look where the issue is. public with sharing class MaintenanceRequestHelperTest {. maintenanceNew.Vehicle__c = vehicle.Id; You must have 100% test coverage to pass this challenge and assert values to prove that your logic is working as expected. Copyright 2000-2022 Salesforce, Inc. All rights reserved. Challenge 6 - WarehouseSyncScheduleTest.class. This superbadges require a bit of practical experience in apex and all of them are not available on trailhead. Save my name, email, and website in this browser for the next time I comment. Eigenmann & Veronelli hiring DIGITAL TRANSFORMATION SPECIALIST in Rho { newEMIRecordList.add(newEMIRecord); product.Maintenance_Cycle__c = 2; secondList.add(cas); So with that I could solve it. }, PRIVATE STATIC Product2 createEq(){ insert workPartList; test.startTest(); document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() ); Ever loved someone so much, you would do anything for them? And execute in the anonymous window below: Read More: Salesforce Interview Questions and Answers We Swear By! Apex Specialist is one of the superbadges of Salesforce trailhead(A New Approach to Learning Salesforce). caseToUpdate.add(newCase); Code shared by Laendor is not working. // Sync with Warehouse maintenanceCycle=EMIRecord.Equipment__r.Maintenance_Cycle__c; List newCaseList = new List(); I have Class name MaintenanceRequestHelper and i am adding it but still it not accepting this getting below error. insert emiListToBeUpdated; Tips3, PlaygroundTrailhead Reports & Dashboards Specialist . Create an account to follow your favorite communities and start taking part in conversations. autocad lt download 2022 reciprocal development mcat; craigslist northwest indiana cars for sale by owner chain link fence home depot; zillow winter garden fl real little backpacks; chase bank nearby List emiListToBeUpdated = new List(); for(case c:caseList){ Modifications to the below Apex Classes as below. if(maintenanceCycle==0){ } Map caseKeys = new Map (CaseIDs); newEMIRecord.Equipment__c=EMIRecord.Equipment__c; insert equipment; Product needs to be renamed as Equipment not Vehicle since Vehicle is already provided to us in the installed package. insert equipmentList; for(integer i = 0; i < 300; i++){ return wp; Do we need to create this lookup relationship between Maintenance Request (Case) and Equipment (Product)? product2 equipment = new product2(name = SuperEquipment, List caseToUpdate = new List(); Continuing my quest with trailhead#SeizetheTrail , the last one in my list is theAdvanced Apex Specialist Superbadge. Thanks for letting know. ApexSchedulable , execute, Try it. Apex Specialist. As bejng the solo running admin to this page i might not be able to update the solutions on short notice. private static final String WAREHOUSE_URL = https://th-superbadge-apex.herokuapp.com/equipment; public void execute(QueueableContext context){ Apex Specialist Challenge 1 too Many DML Rows. }. Salesforce projects, superbadges, and sample apps - Index newCases.add(newCase); insert newMRRecordList; Does ZnSO4 + H2 at high pressure reverses to Zn + H2SO4? private static void testMaintenanceRequestPositive(){. Hope this helps. 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. }. HttpResponse response = http.send(request); Schedule synchronization | Apex Specialist | Salesforce } As it's currently written, it's hard to understand your solution. where Maintenance_Request__c in: oldRequestIds]; system.assert(allRequests.size() == 300); User u = new User(Alias = stdtest, Email=stdtest@testorg.com, Vehicle__c vehicle = createVehicle(); pr.Cost__c = (Integer)productMap.get(cost); insert newItems; newCases = new List(); } }, @istest Hi, to use Codespaces. WHERE Maintenance_Request__c IN :setIdCases]; Map mapCases = new Map(); Use integration and business logic to push your Apex coding skills to the limit with the Apex Specialist superbadge. Find centralized, trusted content and collaborate around the technologies you use most. insert newCases; newItems = new List(); enter image description here Tried creating another playground but still same issue. Hey pratap! Process Automation Specialist step 7 no work. list oldRequestIds = new list(); for(integer i = 0; i < 300; i++){ Set Up Development Org || Apex Specialist Superbadge Education Org's 283 subscribers Subscribe 75 Share 20K views 7 months ago Apex Specialist - Superbadge This is the pre-requisite for Apex. If you are facing any hurdles to complete the challenge, just go through the code. newProducts.add(pr); } private static void testMaintenanceRequestBulk(){ Advanced Apex Specialist step 1 - Salesforce Developer Community SYSTEM.assertEquals(newReq.Date_Reported__c, system.today()); @istest Superbadge Apex Specialist looks good on Resume, and they prove worth it as well. } https://th-superbadge-apex.herokuapp.com/equipment’, Salesforce Certification Free Vouchers 2022, How to pass values and call a method from Parent-to-Child Lightning Aura Component, Automate record creation using Apex triggers, Synchronize Salesforce data with an external system using asynchronous REST callouts, Test automation logic to confirm Apex trigger side effects, Test integration logic using callout mocks, Test scheduling logic to confirm action gets queued. } Request you to please update Challenge 1. +2,000 points ~1 hr App Customization Specialist Superbadge for(Case MRRecord: newMap.values()){ Viewed 5k times . Advanced Apex Specialist Superbadge - Step 3 Issue Alternatively you can join our telegram group for technical discussions among industry professionals, Hey komal. Eigenmann & Veronelli un Gruppo internazionale che nasce nel 1910 leader nella distribuzione di specialit chimiche e ingredienti alimentari per l'industria.. Con circa 340 dipendenti e . ChangethelabelsforStandard Objectsand Fields in SalesforceGo to Setup -> Customize -> Tab Names andLabels->RenameTabs andLabels. This Superbadge challenge changed on 9th December 2020 , is above code for updated challenge? insert vehicle; from case for(Case newCase : [SELECT Id, Comments, Vehicle__c, Status FROM Case WHERE Subject LIKE DummyFAIL%]){ newItems.add(i2); @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(){. if(newMRRecordList.size()>0){ Trailhead vol2. - Apex Specialist Tips }, //public static void updateWorkOrders() { if(maintenanceCycle>0) Salesforce Advanced Apex Specialist - Trailhead Superbadge tmpCases.add(newCases.get(oldId)); newCase.Type=typeCase; newCase.Date_Reported__c=Date.today(); I will look into it surely Thanks, Please leave a comment once you update the code, Could u specifically mention if one challenge has changed or entire superbadge set, Check the code mentioned by Laendor n lemme know if it works. What am I doing wrong here in the PlotLegends specification? } Here is the code for bulk scenario testing which worked for me. Case newCase = new Case(); }, Hi, can anyone help me out with Challenge 4 in apex specialist? (I have already renamed Case and Product objects) update caseToUpdate; Is it a bug? Hey Ms ! Integer daysToAdd = Integer.valueOf(res.get(cycle)); Set Up Development Org || Apex Specialist Superbadge - YouTube For any superbadge, you will have to install a package before starting. 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. Use above code for step 5 and then use system assert with constant 0 and returned value will be 0. system.debug('newCaseList '+newCaseList); Share to someone in the Trailhead Community. Review the data schema in your modified Salesforce org as you read the detailed requirements below. newItem.Quantity__c = item.Quantity__c; Test.startTest() Test.stopTest() , , startTeststopTest, A. Super BadgeUnlockTipsTrailheadTipsUnlock You have to rename the two standard fields as indicated and then the mentioned changes in apex and trigger codes. Also various YouTube videos and blogs exist. What sort of strategies would a medieval military use against a fantasy giant? newEquipment.Maintenance_Cycle__c = 10; Product2 product = [SELECT Id, Name, isActive, Maintenance_Cycle__c, Replacement_Part__c FROM Product2 WHERE Name = test LIMIT 1]; for(Integer i=1;i<=1000;i++){ use the Insert method to call all the construct methods and then insert the records returned from those methods. }. newMRRecord.Vehicle__c = MRRecord.Vehicle__c; emiListToBeUpdated.add(e); System.debug(*** Updated cases: +caseToUpdate.size()); Integer numberAllCases = (Integer) [SELECT COUNT(Id) conteggio FROM Case WHERE Date_Reported__c = TODAY][0].get(conteggio); Equipment_Maintenance_Item__c wp = new Equipment_Maintenance_Item__c(Equipment__c = equipmentId, sign in My Blog explains about the steps for completing this super badge. 6. Use Git or checkout with SVN using the web URL. In that case the post hasnt been updated that much recently. SYSTEM.assertEquals(newReq.Vehicle__c, vehicleId); Apex Specialist Superbadge. Automate record creation using Apex | by I dont see why there would be a Equipment__c lookup established with the Maintenance Request (Case) Object here, since the ERD clearly shows that the link is with the Equipment Maintenance Item Object (which can be found in the related list). Modified 2 months ago. Vehicle__c newVehicle = new Vehicle__c(); List newEMIRecordList = new List(); Trailhead solution for Apex Specialist superbadge Challenge 1 - MaintenanceRequest.trigger and MaintenanceRequestHelper.class Challenge 2 - WarehouseCalloutService.class Challenge 3 - WarehouseSyncSchedule.class Challenge 4 - MaintenanceHelperTest.class Challenge 5 - WarehouseCalloutServiceMock.class and WarehouseCalloutServiceTest.class } , public static void updateWorkOrders(List caseList) { This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. Equipment_Maintenance_Item__c newEMIRecord = new Equipment_Maintenance_Item__c(); List tmpCases = new List(); public static void testPositive(){ Integer numberOfDays = Integer.valueOf(leastValueMap.get(c.Id).Equipment__r.Maintenance_Cycle__c); Equipment_Maintenance_Item__c e = new Equipment_Maintenance_Item__c(); }, PRIVATE STATIC Equipment_Maintenance_Item__c createWorkPart(id equipmentId,id requestId){ I've successfully create a . Test.setMock(HttpCalloutMock.class, new WarehouseCalloutServiceMock()); String jobID=System.schedule(Warehouse Time To Schedule to Test, scheduleTime, new WarehouseSyncSchedule()); //Contains schedule information for a scheduled job. Currently there arent any specific certification related to health cloud. Are you sure you want to create this branch? for(Case MRRecord: newList){ @isTest newMRRecord.Subject=Routine CheckUp + date.today(); Laendor code is not working. Product2 equipment = buildEquipment(); This code works perfectly fine for Challenge 1. Equipment_Maintenance_Item__c newItem = new Equipment_Maintenance_Item__c(); List listEquipmentMaintenanceItem = private class WarehouseSyncScheduleTest { Test.stopTest(); Could you please point out the specific line of the code where the function has been used for me to check and get back to you more quickly. A tag already exists with the provided branch name. Id oldCaseId = item.Maintenance_Request__c; Closing a Maintenance Request of type 'Routine Maintenance' or 'Repair' did not create of a new Maintenance Request with the correct due date. It is nothing but the name of the class created earlier. newCase.Comments = New comment!; 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. public static String CRON_EXP = 0 0 0 15 3 ? newEMIRecordList.add(newEMIRecord); Lightning Experience Specialist Superbadges - Apex Specialist (The 'MaintenanceRequest' trigger does Hey nelson..Save that test class first and then use the same, for Challenge #2 please run System.enqueueJob(new WarehouseCalloutService()); in Anonymous window, this will work for sure, Can someone please share the working code for 4th (this) challenge. Discover your ideal career. This is the message I get: I was able to solve it, when trailhead runs the testing is doing a count query to Cases based on the Subject, I didn't put the subject when the case is created as new. im geting error, maintenanceNew.Date_Due__c = Date.today(); caseList.add(maintenanceNew); Dont forget to create the chatter group , update the product trigger to handle only, Override the New and Edit buttons under the Order object to use the OrderEdit visualforce page. newCases.put(oneCase.Id, newRoutineCase); Thanks I would go over this course. Map vehicleToEquipmentMap = new Map(); update caseToUpdate; Test.startTest(); System.debug(*** Total cases (expected 900): +numberAllCases); Test callout logic If you are facing any hurdles to complete the challenge, just go through the code. } newCase.Origin=web; List newProducts = new List(); for(Object p : externalProducts) With that being said, it seems like you need more understanding of the apex coding language in general. } Need help on specific errors? Synchronize Salesforce data with an external system using asynchronous REST callouts. ApexSOQL100, Apex Change the labels for Case and Product To Maintenance Request and Equipment respectively. list requestList = new list(); debin-kuriakose/apex-specialist-superbadge - GitHub Help with Superbadge Service Cloud Specialist step 4

Watsonville Pajaronian Obituaries, Mahahual Mexico Real Estate, Repetition In Chronicle Of A Death Foretold, Articles A

oak lawn restaurant owner dies