コード例 #1
0
        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
                        });
                    }
                }
            }
        }
コード例 #2
0
        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);
            }
        }