// RowDataを残すため、@future execute にします global class NFM105WebService { // Integer batchsize = 200; 考量する必要がないと思います。 global class RepairStatusUpdate { webservice NFMUtil.Monitoring Monitoring; webservice NFM105WebService.GeneralData[] GeneralData; } global class GeneralData { webservice String SFDCRepairNo; webservice String SAPRepairNo; webservice String SAPQuotationNo; webservice String ReRepairObject; webservice String RepairOrderStatusCode; webservice String RepairOrderStatusName; webservice String StatusUpdateDate; webservice String StatusUpdateTime; webservice String PlannedRepairFinishDate; webservice String StatusUpdatePersonName; webservice String CancellationReason; webservice String IncorrectDataComment; webservice String ReturnType; webservice String InspectType; webservice NFM105WebService.InspectionResultInformation[] InspectionResultInformation; webservice NFM105WebService.FailureInformation[] FailureInformation; } global class InspectionResultInformation { webservice String InspectionResultFlag; webservice String InspectionComment; webservice String FailureCause; } global class FailureInformation { webservice String LocationGroupName; webservice String LocationName; webservice String PhenomenonName; webservice String CauseName; webservice String DescriptionName; } // 非同期を見せかけ、常にreturn void webservice static void NFM105(NFM105WebService.RepairStatusUpdate RepairStatusUpdate) { if (RepairStatusUpdate == null) { return; } NFMUtil.Monitoring Monitoring = RepairStatusUpdate.Monitoring; if (Monitoring == null) { return; } BatchIF_Log__c rowData = NFMUtil.saveRowData(Monitoring, 'NFM105', RepairStatusUpdate.GeneralData); if (String.isBlank(rowData.Log__c) == false) executefuture(rowData.Id); } @future global static void executefuture(String rowData_Id) { execute(rowData_Id); } global static void execute(String rowData_Id) { // CHAN-BAW99B 20190410 NFM105Webservice停用,以后使用NFM105Rest // Integer batch_retry_max_cnt = Integer.valueOf(System.Label.batch_retry_max_cnt); // BatchIF_Log__c rowData = [Select Id, Name, Log__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, TransmissionDateTime__c,retry_cnt__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 = 'NFM105'; // iflog.MessageGroupNumber__c = rowData.MessageGroupNumber__c; // iflog.Log__c = logstr; // iflog.ErrorLog__c = ''; // insert iflog; // String rowDataStr = NFMUtil.getRowDataStr(rowData); // List generalDataList = (List) JSON.deserialize(rowDataStr, List.class); // if (generalDataList == null || generalDataList.size() == 0) { // return; // } // Savepoint sp = Database.setSavepoint(); // try { // //repairNo list // List sapRepairNoList = new List(); // List sfdcRepairNoList = new List(); // List quotationNoList = new List(); // for (NFM105WebService.GeneralData quoteInfo : generalDataList) { // // 必須項目がない場合、処理と飛ばす // if (quoteInfo.SAPRepairNo == null || quoteInfo.SAPRepairNo == '') { // iflog.ErrorLog__c += 'SAPRepairNo is required\n'; //System.debug(Logginglevel.ERROR, 'NFM105_continue'); // continue; // } else { // sapRepairNoList.add(quoteInfo.SAPRepairNo); // } // if (quoteInfo.SAPQuotationNo != null && quoteInfo.SAPQuotationNo != '') { // quotationNoList.add(quoteInfo.SAPQuotationNo); // } // if (quoteInfo.SFDCRepairNo != null && quoteInfo.SFDCRepairNo != '') { // sfdcRepairNoList.add(quoteInfo.SFDCRepairNo.toUpperCase()); // } // } // //sapの外部keyで検索 // List sapRpairList = [select Id, Name, SAPRepairNo__c, Delivered_Product__c // , RepairOrderStatusName__c, RepairOrderStatusCode__c // , CancellationReason__c, IncorrectDataComment__c // , Repair_Rank__c, Repair_Ordered_Date__c // , Invalid_check__c, Delete_Flag__c // , Facility_Return_Receipt_Collection_Date__c, Receipt_received_date__c // , Return_Without_Repair_IF__c, Return_Without_Repair_Reason__c // , Repair_Quotation_Id__c, NFM105_MessageGroupNumber__c, Repair_List_Price_formula__c // , ReturnType__c, InspectType__c // from Repair__c // where SAPRepairNo__c in :sapRepairNoList]; // Map sapRepairsMap = new Map(); // for (Repair__c rpair : sapRpairList) { // sapRepairsMap.put(rpair.SAPRepairNo__c, rpair); // } // //sfdcのnameで検索 // List sfdcRpairList = [select Id, Name, SAPRepairNo__c, Delivered_Product__c // , RepairOrderStatusName__c, RepairOrderStatusCode__c // , CancellationReason__c, IncorrectDataComment__c // , Repair_Rank__c, Repair_Ordered_Date__c // , Invalid_check__c, Delete_Flag__c // , Facility_Return_Receipt_Collection_Date__c, Receipt_received_date__c // , Return_Without_Repair_IF__c, Return_Without_Repair_Reason__c // , Repair_Quotation_Id__c, NFM105_MessageGroupNumber__c, Repair_List_Price_formula__c // , ReturnType__c, InspectType__c // from Repair__c // where Name in :sfdcRepairNoList]; // Map sfdcRepairsMap = new Map(); // for (Repair__c rpair : sfdcRpairList) { // sfdcRepairsMap.put(rpair.Name, rpair); // } // List quotationList = [select Id, Name, Repair_Rank__c, Repair__c, ListPrice__c // , InspectionComment__c, InspectionResultFlag__c // , InspectionFailureCause__c // , LatestQuotationDate__c // , FirstQuotationDate__c, TotalPrice__c // , DiscountType__c, DiscountAmount__c, Repair_Discount_Date__c // , CafeteriaFlag__c, MessageGroupNumber__c // from Repair_Quotation__c // where Name in :quotationNoList // ]; // Map quotationMap = new Map(); // for (Repair_Quotation__c quotation : quotationList) { // quotationMap.put(quotation.Name, quotation); // } // // 更新対応配列をセット // Map rprUpdateMap = new Map(); // SAPRepairNo__c:Repair__c // Map astUpdateMap = new Map(); // SAPRepairNo__c:Asset TODO goto 修理のなかAssetに反映しないフラグはいりますか?超古い修理対応? // Map rqUpdateMap = new Map(); // keyも修理の Id にします。複数Quotation_agreement__cの場合後優先にする // Map> quotationReasonsMap = new Map>(); // Map> repairReasonsMap = new Map>(); // for (NFM105WebService.GeneralData quoteInfo : generalDataList) { // Repair__c rpr = null; // if (quoteInfo.SFDCRepairNo == null || quoteInfo.SFDCRepairNo == '') { // rpr = sapRepairsMap.get(quoteInfo.SAPRepairNo); // if (rpr == null) { // // SAPRepairNo を受信したけど、SFDC側レコードがない // iflog.ErrorLog__c += 'SAPRepairNo[' + quoteInfo.SAPRepairNo + ']NotExist\n'; // continue; // } // } else { //System.debug('quoteInfo.SFDCRepairNo=' + quoteInfo.SFDCRepairNo); // rpr = sfdcRepairsMap.get(quoteInfo.SFDCRepairNo.toUpperCase()); // if (rpr == null) { // // 修理受付番号 を受信したけど、SFDC側レコードがない // iflog.ErrorLog__c += 'SFDCRepairNo[' + quoteInfo.SFDCRepairNo + ']NotExist(' + quoteInfo.SAPRepairNo + ')'; // rpr = sapRepairsMap.get(quoteInfo.SAPRepairNo); // if (rpr == null) { // iflog.ErrorLog__c += 'NotExist\n'; // } // continue; // } // } // // 項目転送のセット // rpr.SAPRepairNo__c = quoteInfo.SAPRepairNo; // if (rprUpdateMap.get(rpr.SAPRepairNo__c) == null) { // logstr += quoteInfo.SAPRepairNo + ':' + quoteInfo.RepairOrderStatusCode + '(' + quoteInfo.SAPQuotationNo + ')'; //// B95の場合、見積り と 同期取るが、その ステータスの更新は、基本順番を厳密守る必要がない、ステータス更新日をいつでも連携できるようにします。 //// if (rpr.NFM105_MessageGroupNumber__c > rowData.MessageGroupNumber__c) { //// iflog.ErrorLog__c += rpr.NFM105_MessageGroupNumber__c + ' done '; //// continue; //// } // logstr += ' '; // rprUpdateMap.put(rpr.SAPRepairNo__c, rpr); // } else { // logstr += quoteInfo.SAPRepairNo + ':' + quoteInfo.RepairOrderStatusCode + '(' + quoteInfo.SAPQuotationNo + ') '; // rpr = rprUpdateMap.get(rpr.SAPRepairNo__c); // } // if (String.isBlank(rpr.NFM105_MessageGroupNumber__c) || Integer.valueOf(rpr.NFM105_MessageGroupNumber__c) <= Integer.valueOf(rowData.MessageGroupNumber__c) ){ // // 各ステータスが専用項目に保存してますけど、ここ1つ項目に保存して、履歴を取れるようにします // rpr.RepairOrderStatusName__c = quoteInfo.RepairOrderStatusName; // rpr.RepairOrderStatusCode__c = quoteInfo.RepairOrderStatusCode; // if (quoteInfo.RepairOrderStatusCode == 'A95' || quoteInfo.RepairOrderStatusCode == 'A96') { // rpr.Return_Without_Repair_IF__c = true; // if (rpr.Return_Without_Repair_IF__c == true) { // // TODO katsu いる?未修理返却申請 対応時対応するかも。 // rpr.Return_Without_Repair_Reason__c = (rpr.Return_Without_Repair_Reason__c == null || rpr.Return_Without_Repair_Reason__c == '') ? 'I/F理由、確認': rpr.Return_Without_Repair_Reason__c; // } // } // if (quoteInfo.RepairOrderStatusCode == 'A99') { // rpr.Delete_Flag__c = true; // rpr.Return_Without_Repair_IF__c = false; // } else { // rpr.Delete_Flag__c = false; // } // if (quoteInfo.RepairOrderStatusCode == 'B95') { // rpr.Return_Without_Repair_IF__c = false; // } // if (rpr.CancellationReason__c != null && !String.isBlank(rpr.CancellationReason__c)) { // if (rpr.Repair_Start_Date__c == null) { // rpr.Return_Without_Repair_IF__c = true; // } // } // } // // B95の場合、Repair_Quotation__c も更新 // if (quoteInfo.RepairOrderStatusCode == 'B95') { // Repair_Quotation__c rq = quotationMap.get(quoteInfo.SAPQuotationNo); // if (rq == null) { // iflog.ErrorLog__c += 'SAPQuotationNo[' + quoteInfo.SAPQuotationNo + ']NotExist(B95:' + quoteInfo.SAPRepairNo + ')'; // rpr = sapRepairsMap.get(quoteInfo.SAPRepairNo); // if (rpr == null) { // iflog.ErrorLog__c += 'NotExist\n'; // } // continue; // } // rqUpdateMap.put(rpr.Id, rq); // keyも修理の Id にします。複数Quotation_agreement__cの場合後優先にする // rpr.Repair_List_Price__c = rq.ListPrice__c; // if (String.isBlank(rpr.NFM105_MessageGroupNumber__c) || Integer.valueOf(rpr.NFM105_MessageGroupNumber__c) <= Integer.valueOf(rowData.MessageGroupNumber__c)) { // rpr.Repair_Quotation_Id__c = rq.Id; // } // if (String.isBlank(rq.MessageGroupNumber__c) || Integer.valueOf(rq.MessageGroupNumber__c) <= Integer.valueOf(rowData.MessageGroupNumber__c)) { // rq.Quotation_agreement__c = true; // if (quoteInfo.InspectionResultInformation != null && quoteInfo.InspectionResultInformation.size() != 0) { // if (quoteInfo.InspectionResultInformation.size() > 1) { // iflog.ErrorLog__c += 'RepairQuotation[' + quoteInfo.SAPQuotationNo + ']SFDCRepairNo[' + quoteInfo.SFDCRepairNo + '] InspectionResultInformation count is ' + quoteInfo.InspectionResultInformation.size() + '\n'; // } // rq.InspectionResultFlag__c = quoteInfo.InspectionResultInformation[0].InspectionResultFlag == 'X' ? 'OK' : 'NG'; // rq.InspectionComment__c = quoteInfo.InspectionResultInformation[0].InspectionComment; // rq.InspectionFailureCause__c = quoteInfo.InspectionResultInformation[0].FailureCause; // if (String.isBlank(rpr.NFM105_MessageGroupNumber__c) ||Integer.valueOf( rpr.NFM105_MessageGroupNumber__c) <= Integer.valueOf(rowData.MessageGroupNumber__c)) { // rpr.InspectionResultFlag__c = rq.InspectionResultFlag__c; // rpr.InspectionComment__c = rq.InspectionComment__c; // rpr.InspectionFailureCause__c = rq.InspectionFailureCause__c; // } // } //System.debug('quotationReasonsMap.put(rq.Name):' + rq.Name); // List quotationReasons = new List(); // quotationReasonsMap.put(rq.Name, quotationReasons); // List repairReasons = new List(); // repairReasonsMap.put(rpr.Id, repairReasons); // 複数見積りの場合後優先にする // if (quoteInfo.FailureInformation != null && quoteInfo.FailureInformation.size() != 0) { // for (NFM105WebService.FailureInformation fi : quoteInfo.FailureInformation) { // Repair_Quotation_reason__c qrsn = new Repair_Quotation_reason__c(); // quotationReasons.add(qrsn); // qrsn.LocationGroupName__c = fi.LocationGroupName; // qrsn.LocationName__c = fi.LocationName; // qrsn.PhenomenonName__c = fi.PhenomenonName; // qrsn.CauseName__c = fi.CauseName; // qrsn.DescriptionName__c = fi.DescriptionName; // Repair_reason__c rrsn = new Repair_reason__c(Repair__c = rpr.Id); // repairReasons.add(rrsn); // rrsn.LocationGroupName__c = fi.LocationGroupName; // rrsn.LocationName__c = fi.LocationName; // rrsn.PhenomenonName__c = fi.PhenomenonName; // rrsn.CauseName__c = fi.CauseName; // rrsn.DescriptionName__c = fi.DescriptionName; // } // } // } // if (String.isBlank(rq.MessageGroupNumber__c) || Integer.valueOf(rq.MessageGroupNumber__c)<= Integer.valueOf(rowData.MessageGroupNumber__c)) { // rq.MessageGroupNumber__c = rowData.MessageGroupNumber__c; // } // } // // 各状態の更新者、NFM105_MessageGroupNumber__c を見ないこと // Datetime statusUpdateDateTime = NFMUtil.parseStr2DateTime(quoteInfo.StatusUpdateDate, quoteInfo.StatusUpdateTime); // if (statusUpdateDateTime == null) { // statusUpdateDateTime = NFMUtil.parseStr2DateTimeDate(rowData.TransmissionDateTime__c + '00'); // } //// if (quoteInfo.RepairOrderStatusCode == 'A10') { //// // A10-分公司受理完成 ==> NFM103にて値を設定 //// rpr.BranchOfficeRecievedDate__c = statusUpdateDateTime.date(); //// } // if (quoteInfo.RepairOrderStatusCode == 'A20') { // // A20-RC受理完成 // rpr.Repair_Ordered_Date__c = statusUpdateDateTime.date(); // rpr.Repair_Ordered_Date_PersonName__c = quoteInfo.StatusUpdatePersonName; // } // else if (quoteInfo.RepairOrderStatusCode == 'A30') { // // A30-受理检查完成 // rpr.Repair_Inspection_Date__c = statusUpdateDateTime.date(); // rpr.ReRepairObject_result__c = quoteInfo.ReRepairObject == 'X' ? true : false; // } // else if (quoteInfo.RepairOrderStatusCode == 'A95' || quoteInfo.RepairOrderStatusCode == 'A96') { // // A95-取消修理受理  因没有零件等原因,RC同事不受理修理 (RC为主) // // A96-取消修理    因报价金额高等原因,销售本部申请未修理 (销售本部申请为主) // rpr.Invalid_check__c = true; // rpr.repair_cancel_date__c = statusUpdateDateTime.date(); // rpr.CancellationReason__c = quoteInfo.CancellationReason; // } // else if (quoteInfo.RepairOrderStatusCode == 'A99') { // // A99-修理单关闭   因申请内容和实际实物信息由差异,RC驳回此次申请的修理 // rpr.SAP_not_accept_repair_result__c = statusUpdateDateTime.date(); // rpr.IncorrectDataComment__c = quoteInfo.IncorrectDataComment; // } // else if (quoteInfo.RepairOrderStatusCode == 'B95') { // Asset ast = getAstUpdate(astUpdateMap, rpr); // ast.Agreed_Repair__c = rpr.Id; // // B95-报价同意确认 // rpr.Agreed_Date__c = statusUpdateDateTime.date(); // rpr.Agreed_Date2__c = statusUpdateDateTime.date(); // // rpr.Agreed_Date__c <== TODO goto OFSにて設定するでしょうか? // } // else if (quoteInfo.RepairOrderStatusCode == 'B99') { // // B99-报价同意确认取消 // // Agreed_Date2__c は クリアしないで、2回目再度同意されたら、同意日付は上書き。 // // Agreed_Date__c は クリアする // Asset ast = getAstUpdate(astUpdateMap, rpr); // ast.Agreed_Repair__c = null; // rpr.Agreed_Date__c = null; // rpr.Agreed_Date_Cancel__c = statusUpdateDateTime.date(); // } // else if (quoteInfo.RepairOrderStatusCode == 'X30') { // // X30-全部分配 // rpr.part_arrangement_complete__c = statusUpdateDateTime.date(); // } // else if (quoteInfo.RepairOrderStatusCode == 'C50') { // // C50-开始修理 // rpr.Repair_Start_Date__c = statusUpdateDateTime.date(); // rpr.Planned_Repair_Completed_Date__c = NFMUtil.parseStr2Date(quoteInfo.PlannedRepairFinishDate); // } // else if (quoteInfo.RepairOrderStatusCode == 'C70') { // // C70-修理完成 // rpr.Repair_Completed_Date__c = statusUpdateDateTime.date(); // } // else if (quoteInfo.RepairOrderStatusCode == 'C90') { // // C90-最终检查 // rpr.Repair_Final_Inspection_Date__c = statusUpdateDateTime.date(); // Asset ast = getAstUpdate(astUpdateMap, rpr); // ast.LastSFDCRepairReturn_day__c = statusUpdateDateTime.date(); // ast.LastSFDCRepairNo__c = rpr.Name; // if (System.Label.Large_Repair_Rank.indexOf(rpr.Repair_Rank__c + ',') >= 0) { // ast.LastSFDCRepairNo_rankA__c = rpr.Name; // ast.LastSFDCArankRepairReturn_day__c = statusUpdateDateTime.date(); // } // } // else if (quoteInfo.RepairOrderStatusCode == 'L99') { // // L99-验收单签收复核通过 // rpr.InspectType__c = quoteInfo.InspectType; // // 1-验收单 // if (quoteInfo.InspectType == '1') { // // 一回目のみ設定 // if (rpr.Receipt_received_date__c == null) { // rpr.Receipt_received_date__c = statusUpdateDateTime.date(); // } // if (rpr.Facility_Return_Receipt_Collection_Date__c == null) { // rpr.Facility_Return_Receipt_Collection_Date__c = statusUpdateDateTime.date(); // } // } // // 2-收款单 // if (rpr.Facility_Return_Receipt_Collection_Date__c == null && quoteInfo.InspectType == '2') { // // 一回目のみ設定 // rpr.Facility_Return_Receipt_Collection_Date__c = statusUpdateDateTime.date(); // } // } // else if (quoteInfo.RepairOrderStatusCode == 'L60' || quoteInfo.RepairOrderStatusCode == 'L65' || quoteInfo.RepairOrderStatusCode == 'L80') { // // L60-SORC修理品出库 // // L65-OGZ修理品出库 // // L80-RC修理品出库 // Asset ast = getAstUpdate(astUpdateMap, rpr); // if (rpr.Return_Without_Repair_IF__c == true) { // rpr.Return_Without_Repair_Date__c = statusUpdateDateTime.date(); // ast.Return_Without_Repair__c = rpr.Id; // } else { // ast.Return_Without_Repair__c = null; // } // ast.Agreed_Repair__c = null; // if (quoteInfo.RepairOrderStatusCode == 'L80') { // rpr.Repair_Shipped_Date__c = statusUpdateDateTime.date(); // rpr.ReturnType__c = quoteInfo.ReturnType; // if (quoteInfo.ReturnType == 'A20' || quoteInfo.ReturnType == 'B30') { // // A20-RC/FSE直返医院 // // B30-SORC直返医院 // rpr.Repair_Returned_To_HP_Date__c = statusUpdateDateTime.date(); // } // } // } //// else if (quoteInfo.RepairOrderStatusCode == 'D10') { //// // D10-返品 //// rpr.Return_Without_Repair_Date__c = statusUpdateDateTime.date(); //// Asset ast = getAstUpdate(astUpdateMap, rpr); //// ast.Return_Without_Repair__c = rpr.Id; //// } // else if (quoteInfo.RepairOrderStatusCode == 'E10') { // // E10-修理单完成 // rpr.RepairOrder_Complete_Day__c = statusUpdateDateTime.date(); // } // if (String.isBlank(rpr.NFM105_MessageGroupNumber__c) || Integer.valueOf(rpr.NFM105_MessageGroupNumber__c) <= Integer.valueOf(rowData.MessageGroupNumber__c)) { // rpr.NFM105_MessageGroupNumber__c = rowData.MessageGroupNumber__c; // } // } // // その他のQuoteationのQuotation_agreement__cをfalseにする //System.debug(Logginglevel.ERROR, 'rqUpdateMap.keySet=' + rqUpdateMap.keySet()); // List rqList = [Select Id from Repair_Quotation__c where Quotation_agreement__c = true and Repair__c IN :rqUpdateMap.keySet() and Id Not IN :rqUpdateMap.values()]; // for (Repair_Quotation__c rqfalse : rqList) { // rqfalse.Quotation_agreement__c = false; // } // rqList.addAll(rqUpdateMap.values()); // if (rqList.size() > 0) { // // TODO update false; // upsert rqList; // } // if (rqUpdateMap.size() > 0) { // Map rqNameMap = new Map(); // for (Repair_Quotation__c rq : rqUpdateMap.values()) { // rqNameMap.put(rq.Name, rq); //System.debug('rq.Name=' + rq.Name + ', rq.Repair__c=' + rq.Repair__c); // } // for (Repair_quotation_reason__c qrsn : [Select ActivityDescription__c, Repair_quotation__r.Name, Repair_quotation__r.Repair__c from Repair_quotation_reason__c // where Repair_quotation__r.Name IN: quotationReasonsMap.keySet() and ActivityDescription__c != null] // ) { // List repairReasons = repairReasonsMap.get(qrsn.Repair_quotation__r.Repair__c); // if (repairReasons == null) { // repairReasons = new List(); // repairReasonsMap.put(qrsn.Repair_quotation__r.Repair__c, repairReasons); // } // repairReasons.add(new Repair_reason__c(Repair__c = qrsn.Repair_quotation__r.Repair__c, // ActivityDescription__c = qrsn.ActivityDescription__c // )); // } // // CHAN-BAF2VC 20190327 LHJ Start // //NFM104WebService.deleteInsertReasons(rqNameMap, quotationReasonsMap, repairReasonsMap); // NFM104Rest.deleteInsertReasons(rqNameMap, quotationReasonsMap, repairReasonsMap); // // CHAN-BAF2VC 20190327 LHJ End // } // list rprList = rprUpdateMap.values(); // if (rprList.size() > 0) { // update rprList; // } // if (astUpdateMap.size() > 0) { // update astUpdateMap.values(); // } // //gzozw-add // logstr += '\nend'; // rowData.retry_cnt__c=0; // } catch (Exception ex) { // // エラーが発生した場合 // Database.rollback(sp); // System.debug(Logginglevel.ERROR, 'NFM105_' + rowData.MessageGroupNumber__c + ':' + ex.getMessage()); // System.debug(Logginglevel.ERROR, 'NFM105_' + rowData.MessageGroupNumber__c + ':' + ex.getStackTraceString()); // logstr += '\n' + ex.getMessage(); // iflog.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + iflog.ErrorLog__c; // /*if (rowData.retry_cnt__c == null) rowData.retry_cnt__c = 0; // if (rowData.retry_cnt__c < batch_retry_max_cnt){ // rowData.retry_cnt__c++; // LogAutoSendSchedule.assignOneMinute(); // }*/ // if (rowData.retry_cnt__c >= batch_retry_max_cnt){ // rowData.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + rowData.ErrorLog__c+'错误次数已经超过自动收信设定的最大次数,请手动收信'; // } // } // update rowData; // iflog.Log__c = logstr; // if (iflog.Log__c.length() > 131072) { // iflog.Log__c = iflog.Log__c.subString(0, 131065) + ' ...'; // } // if (iflog.ErrorLog__c.length() > 32768) { // iflog.ErrorLog__c = iflog.ErrorLog__c.subString(0, 32760) + ' ...'; // } // update iflog; } //private static Asset getAstUpdate(Map astUpdateMap, Repair__c rpr) { // Asset ast = astUpdateMap.get(rpr.Delivered_Product__c); // if (ast == null) { // ast = new Asset(Id = rpr.Delivered_Product__c); // astUpdateMap.put(rpr.Delivered_Product__c, ast); // } // return ast; //} }