/*********************************************************************************************************** * Name : SubUploadUtilProcess * Purpose : Class to handle Process File button click **********************************************************************************************************/ global class SubUploadUtilProcess { global static Database.SaveResult publishResult; /** * @description Updates the SubUpload and starts the batch job * @param recordId subUpload Id */ @AuraEnabled webService static Boolean initiateProcess(Id recordId) { Sub_Upload_Util__c subUpload = [ SELECT Id, File_Uploaded__c, Initiate_Process__c FROM Sub_Upload_Util__c WHERE Id = :recordId FOR UPDATE ]; try { if (subUpload.File_Uploaded__c && !subUpload.Initiate_Process__c) { subUpload.Initiate_Process__c = true; subUpload.Status__c = SubUploadBatchUtils.SUB_UPLOAD_READING_FILE_STATUS; update subUpload; publishResult = EventBus.publish(new RunFileUpload__e(Sub_Upload_Id__c = subUpload.Id)); } return true; } catch (Exception ex) { SMELogger.logError(ex); return false; } } @AuraEnabled webService static List isAnotherProcessRunningForTheSameML(String mlId) { return [ SELECT Id, Name, Progress__c FROM Sub_Upload_Util__c WHERE Mailing_List__c = :mlId AND Status__c = :SubUploadBatchUtils.SUB_UPLOAD_READING_FILE_STATUS LIMIT 1 ]; } }