/*  * Author: Zhang,Heyang  * Created Date: 06/06/2023  * Purpose: When copying QIS, check whether the current record status allows replication * Test Class: LexQISCloneButtonControllerTest  *  * */ public with sharing class LexQISCloneButtonController { public LexQISCloneButtonController() { } @AuraEnabled public static Boolean checkStatus(String recordId){ QIS_Report__c qis = [SELECT Id,QIS_Status__c FROM QIS_Report__c WHERE id =: recordId LIMIT 1]; return qis.QIS_Status__c == '取消'? true : false; } @AuraEnabled public static sObject getClonedValues(Id recordId, String objectAPIName) { try { Map schemaMap = Schema.getGlobalDescribe(); Map fieldMap = schemaMap.get(objectAPIName).getDescribe().fields.getMap(); String soqlQuery = 'Select '; Schema.DescribeFieldResult fieldResult; Set ignoreFields = new Set{'createdbyid', 'lastmodifiedbyid', 'lastmodifieddate', 'createddate'}; for(String s : fieldMap.keySet()) { if(!ignoreFields.contains(s)) { fieldResult = fieldMap.get(s).getDescribe(); if(fieldResult.isCreateable() && !fieldResult.isUnique()) { soqlQuery += s + ','; } } } soqlQuery = soqlQuery.removeEnd(','); soqlQuery += ' FROM ' + objectAPIName + ' WHERE ID = \'' + recordId + '\''; System.debug('soqlQuery=======>' + soqlQuery); Sobject record = Database.query(soqlQuery); return record; } catch(Exception e) { return null; } } }