public void CreateOneCRSL(com.Sconit.Entity.SAP.ORD.CreateScheduleLine createScheduleLine, IList<ErrorMessage> errorMessageList) { lock (lockCreateSAPScheduleLineFromLes) { MI_CRSL_LES.MI_CRSL_LESService serviceProxy = new MI_CRSL_LES.MI_CRSL_LESService(); serviceProxy.Credentials = base.Credentials; serviceProxy.Timeout = base.TimeOut; serviceProxy.Url = ReplaceSAPServiceUrl(serviceProxy.Url); MI_CRSL_LES.ZLSCHE_IN zlscheIn = new MI_CRSL_LES.ZLSCHE_IN(); zlscheIn.EINDT = createScheduleLine.EINDT; zlscheIn.FRBNR = createScheduleLine.FRBNR; zlscheIn.LIFNR = createScheduleLine.LIFNR; zlscheIn.MATNR = createScheduleLine.MATNR; zlscheIn.MENGE = createScheduleLine.MENGE; zlscheIn.SGTXT = createScheduleLine.SGTXT; zlscheIn.WERKS = createScheduleLine.WERKS; zlscheIn.MENGESpecified = true; var zlscheOut = serviceProxy.MI_CRSL_LES(zlscheIn); if (zlscheOut.STATUS == "S") { //成功 createScheduleLine.EBELN = zlscheOut.EBELN; createScheduleLine.EBELP = zlscheOut.EBELP; createScheduleLine.ETENR = zlscheOut.ETENR; createScheduleLine.MESSAGE = zlscheOut.MESSAGE; createScheduleLine.Status = Entity.SAP.StatusEnum.Success; //根据消息判断是否是寄售 if (!string.IsNullOrEmpty(zlscheOut.MESSAGE)) { createScheduleLine.PSTYP = zlscheOut.MESSAGE; } this.genericMgr.Update(createScheduleLine); OrderDetail orderDetail = this.genericMgr.FindById<OrderDetail>(createScheduleLine.OrderDetId); orderDetail.ExternalOrderNo = zlscheOut.EBELN; orderDetail.ExternalSequence = zlscheOut.EBELP; if (!string.IsNullOrEmpty(zlscheOut.MESSAGE)) { orderDetail.BillTerm = CodeMaster.OrderBillTerm.OnlineBilling; } else { orderDetail.BillTerm = CodeMaster.OrderBillTerm.ReceivingSettlement; } this.genericMgr.Update(orderDetail); } else { createScheduleLine.ErrorCount = createScheduleLine.ErrorCount + 1; createScheduleLine.Status = Entity.SAP.StatusEnum.Fail; createScheduleLine.MESSAGE = zlscheOut.MESSAGE; this.genericMgr.Update(createScheduleLine); OrderDetail orderDetail = this.genericMgr.FindById<OrderDetail>(createScheduleLine.OrderDetId); orderDetail.BillAddressDescription = zlscheOut.MESSAGE; //orderDetail.ExternalSequence = zlscheOut.EBELP; this.genericMgr.Update(orderDetail); //失败 string logMessage = "SAP反写计划协议失败,失败信息:" + zlscheOut.MESSAGE; log.Error(logMessage); if (createScheduleLine.ErrorCount == 10) { errorMessageList.Add(new ErrorMessage { Template = NVelocityTemplateRepository.TemplateEnum.GenerateSAPScheduleLine, Message = logMessage }); } } } }
public void CRSLSummaryFromLes() { lock (lockCRSLSummaryFromLes) { string guid = System.Guid.NewGuid().ToString().Replace("-", ""); IList<ErrorMessage> errorMessageList = new List<ErrorMessage>(); try { MI_CRSL_LES.MI_CRSL_LESService serviceProxy = new MI_CRSL_LES.MI_CRSL_LESService(); serviceProxy.Credentials = base.Credentials; serviceProxy.Timeout = base.TimeOut; serviceProxy.Url = ReplaceSAPServiceUrl(serviceProxy.Url); IList<com.Sconit.Entity.SAP.ORD.CRSLSummary> crslSummaryList = this.genericMgr.FindEntityWithNativeSql<com.Sconit.Entity.SAP.ORD.CRSLSummary>("exec USP_IF_GenCRSLSummary"); log.Info(string.Format("-----------------------------{0}----------------------------", guid)); log.Info(string.Format("{0}:连接Web服务反写计划协议开始", guid)); int i = 0; if (crslSummaryList != null && crslSummaryList.Count > 0) { log.Info(string.Format("{0}:开始处理共{1}行数据。", guid, crslSummaryList.Count.ToString())); foreach (var crslSummary in crslSummaryList) { i++; log.Info(string.Format("{0}:开始处理第{1}行数据,供应商{2},物料号{3}。", guid, i.ToString(), crslSummary.FRBNR, crslSummary.MATNR)); try { MI_CRSL_LES.ZLSCHE_IN zlscheIn = new MI_CRSL_LES.ZLSCHE_IN(); zlscheIn.EINDT = crslSummary.EINDT; zlscheIn.FRBNR = crslSummary.FRBNR; zlscheIn.LIFNR = crslSummary.LIFNR; zlscheIn.MATNR = crslSummary.MATNR; zlscheIn.MENGE = crslSummary.MENGE; zlscheIn.SGTXT = crslSummary.SGTXT; zlscheIn.WERKS = crslSummary.WERKS; zlscheIn.MENGESpecified = true; var zlscheOut = serviceProxy.MI_CRSL_LES(zlscheIn); crslSummary.ProcessBatchNo = guid; if (zlscheOut.STATUS == "S") { //成功 crslSummary.EBELN = zlscheOut.EBELN; crslSummary.EBELP = zlscheOut.EBELP; //crslSummary.ETENR = zlscheOut.ETENR; crslSummary.MESSAGE = zlscheOut.MESSAGE; crslSummary.Status = Entity.SAP.StatusEnum.Success; this.genericMgr.Update(crslSummary); } else { crslSummary.ErrorCount = crslSummary.ErrorCount + 1; crslSummary.Status = Entity.SAP.StatusEnum.Fail; crslSummary.MESSAGE = zlscheOut.MESSAGE; this.genericMgr.Update(crslSummary); //失败 string logMessage = "SAP反写计划协议失败,失败信息:" + zlscheOut.MESSAGE; log.Error(logMessage); if (crslSummary.ErrorCount == 3) { errorMessageList.Add(new ErrorMessage { Template = NVelocityTemplateRepository.TemplateEnum.GenerateSAPScheduleLine, Message = logMessage }); } } } catch (Exception ex) { string logMessage = string.Format("连接Web服务反写计划协议出现异常,异常信息:" + ex.Message); log.Error(logMessage, ex); errorMessageList.Add(new ErrorMessage { Template = NVelocityTemplateRepository.TemplateEnum.GenerateSAPScheduleLine, Exception = ex, Message = logMessage }); } } } this.genericMgr.FindAllWithNativeSql("exec USP_IF_ProcessCRSL ?", guid); } catch (Exception ex) { string logMessage = string.Format("反写计划协议出现异常,异常信息:" + ex.Message); log.Error(logMessage, ex); errorMessageList.Add(new ErrorMessage { Template = NVelocityTemplateRepository.TemplateEnum.GenerateSAPScheduleLine, Exception = ex, Message = logMessage }); } this.SendErrorMessage(errorMessageList); } }