@RestResource(urlMapping = '/NFM624RestAbout2/*') global with sharing class NFM624RestAbout2 { private static final String LOG_TYPE = 'NFM624RestAbout2'; global class GeDatas { public NFMUtil.Monitoring Monitoring; public GeData[] GeData; } global class GeData{ public String PersonManagementCode; //人员管理编码 public String HospitalManagementCode2; //医院平台编码 平台编码 PlatformCode__c public String DepartmentManagementCode2; //科室平台编码 平台编码 PlatformCode__c //public String Name; //姓名 //public String NameEncrypted;//姓名密文 add 20220215 public String RelatedHospital; //关联SFDC医院 客户管理编码(手写) AgentCode_Ext__c public String DepartmentClass; //战略科室 public String DepartmentName; //所属科室 public String RelatedDepartment; //关联SFDC科室 客户管理编码(手写) AgentCode_Ext__c //public Boolean AgentFlag; //经销商标识 public String dataId; public String AccountName; //医院名 //public String MobileEncrypted; //电话密文 add 20220519 thh } global class Response { public List ResponseDetails {get;set;} } global class ResponseDetail{ public String dataId; public String awsDataId; //=CONTACT.AWS_Data_Id__c public String sfId; } @HttpPost global static void execute() { // 取得接口传输内容 String strData = RestContext.request.requestBody.toString(); system.debug('strData = ' + strData); GeDatas ges = (GeDatas) JSON.deserializeStrict(strData, GeDatas.class); system.debug('ges---'+JSON.serialize(ges) ); if (ges == null) { return; } NFMUtil.Monitoring Monitoring = ges.Monitoring; if (Monitoring == null) { system.debug('monitoring62'); return; } String result; try { BatchIF_Log__c rowData = NFMUtil.saveRowData(Monitoring, LOG_TYPE, ges.GeData); system.debug('rowData = '+rowData); system.debug('String.isBlank(rowData.Log__c) == false?'); if (String.isBlank(rowData.Log__c) == false) { System.debug('进入if方法,成功调用executefuture'); result = JSON.serialize(main(rowData.Id)); system.debug('result'+result); // result main(rowData.Id); } } catch (Exception ex) { System.debug(Logginglevel.ERROR, LOG_TYPE + ':' + ex.getMessage()); System.debug(Logginglevel.ERROR, LOG_TYPE + ':' + ex.getStackTraceString()); } // BatchIF_Log__c rowData = NFMUtil.saveRowData(Monitoring, LOG_TYPE, ges.GeData); // JSONを戻す RestResponse res = RestContext.response; res.addHeader('Content-Type', 'application/json'); res.statusCode = 200; // NFMUtil.NFMResponse result = NFMUtil.getNFMResponse(); // result.SFStatus=SFStatus; // result.SFMessage=SFMessage; String jsonResponse = result; //for test sushanhu 20220401 start //ResponseDetail red =new ResponseDetail(); // red.dataId =ges.[0].dataId; //red.awsDataId ='959174215334887424'; //red.sfId ='0031m00000N7leyAAB'; // Response resp =new Response(); // List listName = new List(); // listName.add(red); // resp= (Response)listName; //for test sushanhu 20220401 end //String jsonResponse = '{"dataID": ""}'; //system.debug('result---'+jsonResponse); res.responseBody = blob.valueOf(jsonResponse);//need //String resp ='{"ResponseDetails":[{"dataId":"959573117074669568","awsDataId":"959174215334887424","sfId":"0031m00000N7leyAAB"}]}'; //res.responseBody = blob.valueOf(resp); //updata response toAWS 20220225 sushanhu end return; } @future global static void executefuture(String rowData_Id) { system.debug('进入executefuture方法' + rowData_Id); main(rowData_Id); } global static Response main(String rowData_Id) { Integer batch_retry_max_cnt = Integer.valueOf(System.Label.batch_retry_max_cnt); BatchIF_Log__c rowData = [Select Id, Name, Log__c,Is_Error__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c, MessageGroupNumber__c, retry_cnt__c,NFM624_Secondary_processing__c from BatchIF_Log__c where RowDataFlg__c = true and Id =: rowData_Id]; String logstr = rowData.MessageGroupNumber__c + ' start\n'; BatchIF_Log__c iflog = new BatchIF_Log__c(); iflog.Type__c = LOG_TYPE; iflog.MessageGroupNumber__c = rowData.MessageGroupNumber__c; iflog.Log__c = logstr; iflog.ErrorLog__c = ''; insert iflog; System.debug('iflog = ' + iflog); Response responseList = new Response();//返回体List responseList.ResponseDetails = new List(); try { rowData.retry_cnt__c = 0; if (System.Test.isRunningTest()) { throw new ControllerUtil.myException('aaa'); } }catch (Exception ex) { // エラーが発生した場合 logstr += ex.getMessage(); iflog.ErrorLog__c += ex.getMessage() + '\n'; iflog.ErrorLog__c += ex.getStackTraceString() + '\n'; } update rowData; system.debug('Rowdata'+rowData); logstr += responseList +'\n'; logstr += 'end'; iflog.Log__c = logstr; update iflog; system.debug('responseList.ResponseDetails'+responseList.ResponseDetails); return responseList; } }