Ejemplo n.º 1
0
        public string CancelBindDNbyItem(string Plant, string DN, string dnItem, string dnType, out string errorText)
        {
            BaseLog.LoggingInfo(logger, "Plant: \r{0}", Plant);
            BaseLog.LoggingInfo(logger, "DN: \r{0}", DN);

            string errorCode = "0";
            errorText = "";
            string connectionDB = "SD_DBServer";
            string connectionDB_BK = "SD_DBServer_BK";
            string methodName = MethodBase.GetCurrentMethod().Name;
            string iItem = (dnItem == null) ? "" : dnItem;
            string iType = (dnType == null) ? "" : dnType;

            BaseLog.LoggingBegin(logger, methodName);

            try
            {
                SAPCancelBindDNWS.ZWS_CANCEL_SERIALClient SAPDNClient = new SAPCancelBindDNWS.ZWS_CANCEL_SERIALClient("SAPCancelBindDN");

                SAPDNClient.ClientCredentials.UserName.UserName = ConfigurationManager.AppSettings["SAPUserName"].ToString();
                SAPDNClient.ClientCredentials.UserName.Password = ConfigurationManager.AppSettings["SAPUserPwd"].ToString();

                List<SAPCancelBindDNWS.ZwsCancelSnInLine> SnInlist = new List<SAPCancelBindDNWS.ZwsCancelSnInLine>();

                string TxnId = string.Format("{0:yyyyMMddHHmmssfff}", DateTime.Now);

                SQL.InsertCancelBindDNLog(connectionDB_BK, 0,
                                          TxnId, Plant, DN, iItem, iType,
                                          "Receive", "Success", "", "FIS");

                SAPCancelBindDNWS.ZwsCancelSnInLine item1 = new SAPCancelBindDNWS.ZwsCancelSnInLine();
                item1.Serialnumber = TxnId;
                item1.Plant = Plant;
                item1.Id = DN;
                item1.Remark1 = iItem;
                item1.Remark2 = iType; //機型12碼,區分SKU or Docking
                SnInlist.Add(item1);
                SQL.InsertSendData_DB(connectionDB, 0,
                                        "SendCancelBindDN",
                                        item1.Id.Trim(),
                                        item1.Plant.Trim(),
                                        item1.Serialnumber.Trim(),
                                        item1.Remark1 + "," + item1.Remark2,
                                        IMES.Service.Common.EnumMsgState.Sending,
                                        DateTime.Now);

                SAPCancelBindDNWS.ZwsCancelSnOutLine[] SnOutLine = SAPDNClient.ZwsCancelSerial(SnInlist.ToArray());

                //bool rt;
                //rt = true;
                foreach (SAPCancelBindDNWS.ZwsCancelSnOutLine item in SnOutLine)
                {
                    if (item.Result == "0")
                    {
                        SQL.InsertTxnDataLog_DB(connectionDB, 0,
                                                                IMES.Service.Common.EnumMsgCategory.Receive,
                                                                "ReceiveCancelBindDN",
                                                                item.Id,
                                                                item.Plant.Trim(),
                                                                item.Serialnumber.Trim(),
                                                                item.Result,
                                                                item.Errortext,
                                                                IMES.Service.Common.EnumMsgState.Success,
                                                                "");

                        SQL.InsertCancelBindDNLog(connectionDB_BK, 0,
                                                  item.Serialnumber.Trim(), item.Plant.Trim(), item.Id, "", "",
                                                  "Response", "Success", "", "SAP");
                        errorCode = item.Result;
                    }
                    else
                    {
                        SQL.InsertTxnDataLog_DB(connectionDB, 0,
                                                                IMES.Service.Common.EnumMsgCategory.Receive,
                                                                "ReceiveCancelBindDN",
                                                                item.Id,
                                                                item.Plant.Trim(),
                                                                item.Serialnumber.Trim(),
                                                                item.Result,
                                                                item.Errortext,
                                                                IMES.Service.Common.EnumMsgState.Fail,
                                                                "");

                        SQL.InsertCancelBindDNLog(connectionDB_BK, 0,
                                                  item.Serialnumber.Trim(), item.Plant.Trim(), item.Id, "", "",
                                                  "Response", "Fail", item.Errortext, "SAP");

                        errorCode = item.Result;
                    }

                    BaseLog.LoggingInfo(logger, "Serialnumber: \r{0}", item.Serialnumber);
                    BaseLog.LoggingInfo(logger, "DN: \r{0}", DN);
                    BaseLog.LoggingInfo(logger, "Plant: \r{0}", Plant);
                    BaseLog.LoggingInfo(logger, "Result: \r{0}", item.Result);
                    BaseLog.LoggingInfo(logger, "Errortext: \r{0}", item.Errortext);

                    errorText = item.Errortext;
                }
                return errorCode;
            }
            catch (Exception e)
            {
                BaseLog.LoggingError(logger, MethodBase.GetCurrentMethod(), e);
                errorCode = "9";
                errorText = e.Message;
                return errorCode;
            }
            finally
            {
                BaseLog.LoggingEnd(logger, methodName);
            }
        }
Ejemplo n.º 2
0
        //3.執行DB insert 

        //4.Build Response message structure
        public static List<CancelBindDNResponse> BuildResponseMsg(CancelBindDN[] results, bool isOK, string errMsg)
        {
            string connectionDB = "SD_DBServer";
            string connectionDB_BK = "SD_DBServer_BK";
            int dbIndex = 0;
            string methodName = MethodBase.GetCurrentMethod().Name;
            BaseLog.LoggingBegin(logger, methodName);
            List<CancelBindDNResponse> ResponseList = new List<CancelBindDNResponse>();
            try
            {
                if (isOK)
                {
                    //request SAP web service
                    SAPCancelBindDNWS.ZWS_CANCEL_SERIALClient SAPDNClient = new SAPCancelBindDNWS.ZWS_CANCEL_SERIALClient("SAPCancelBindDN");
                    SAPDNClient.ClientCredentials.UserName.UserName = WebConfigurationManager.AppSettings["SAPUserName"].ToString();
                    SAPDNClient.ClientCredentials.UserName.Password = WebConfigurationManager.AppSettings["SAPUserPwd"].ToString();

                    List<SAPCancelBindDNWS.ZwsCancelSnInLine> SnInlist = new List<SAPCancelBindDNWS.ZwsCancelSnInLine>();

                    foreach (CancelBindDN item in results)
                    {
                        BaseLog.LoggingInfo(logger, "SerialNumber: \r\n{0}", item.SerialNumber);
                        SAPCancelBindDNWS.ZwsCancelSnInLine item1 = new SAPCancelBindDNWS.ZwsCancelSnInLine();
                        item1.Serialnumber = item.SerialNumber;
                        item1.Plant = item.Plant;
                        item1.Id = item.DN;
                        item1.Remark1 = item.Remark1;
                        item1.Remark2 = item.Remark2;
                        SnInlist.Add(item1);
                        IMES.WS.Common.SQL.InsertSendData_DB(connectionDB, dbIndex,
                                                            "SendCancelBindDN",
                                                            item.DN,
                                                            item.Plant,
                                                            item1.Serialnumber.Trim(),
                                                            item1.Remark1+","+item1.Remark2,
                                                            EnumMsgState.Sending,
                                                            DateTime.Now);

                    }

                    SAPCancelBindDNWS.ZwsCancelSnOutLine[] SnOutLine = SAPDNClient.ZwsCancelSerial(SnInlist.ToArray());

                    foreach (SAPCancelBindDNWS.ZwsCancelSnOutLine item in SnOutLine)
                    {
                        if (item.Result == "0")
                        {
                            IMES.WS.Common.SQL.InsertTxnDataLog_DB(connectionDB, dbIndex,
                                                                    EnumMsgCategory.Receive,
                                                                    "ReceiveCancelBindDN",
                                                                    item.Id,
                                                                    item.Plant.Trim(),
                                                                    item.Serialnumber.Trim(),
                                                                    item.Result,
                                                                    item.Errortext,
                                                                    EnumMsgState.Success,
                                                                    "");

                            SQL.InsertCancelBindDNLog(connectionDB_BK, dbIndex,
                                                      item.Serialnumber, item.Plant, item.Id, "", "",
                                                      EnumMsgCategory.Response, EnumMsgState.Success, "", "SAP");

                        }
                        else
                        {
                            IMES.WS.Common.SQL.InsertTxnDataLog_DB(connectionDB, dbIndex,
                                                                  EnumMsgCategory.Receive,
                                                                  "ReceiveCancelBindDN",
                                                                  item.Id,
                                                                  item.Plant.Trim(),
                                                                  item.Serialnumber.Trim(),
                                                                  item.Result,
                                                                  item.Errortext,
                                                                  EnumMsgState.Fail,
                                                                  "");

                            SQL.InsertCancelBindDNLog(connectionDB_BK, dbIndex,
                                                      item.Serialnumber, item.Plant, item.Id, "", "",
                                                      EnumMsgCategory.Response, EnumMsgState.Fail, item.Errortext, "SAP");
                        }
                        CancelBindDNResponse response = new CancelBindDNResponse();
                        response.SerialNumber = item.Serialnumber;
                        response.DN = item.Id;
                        response.Plant = item.Plant;
                        response.Result = item.Result;
                        response.ErrorText = item.Errortext;
                        ResponseList.Add(response);
                        BaseLog.LoggingInfo(logger, "ResponseMsg: \r\n{0}", ObjectTool.ObjectTostring(response));

                    }
                }
                else {
                    foreach (CancelBindDN item in results)
                    {

                        BaseLog.LoggingInfo(logger, "SerialNumber: \r\n{0}", item.SerialNumber);
                        CancelBindDNResponse responseFail = new CancelBindDNResponse();
                        string SerialNumber = item.SerialNumber;
                        responseFail.SerialNumber = item.SerialNumber;
                        responseFail.Result = "F";
                        responseFail.ErrorText = SQL.GetCancelDNState(connectionDB_BK, dbIndex, item.SerialNumber);
                        ResponseList.Add(responseFail);
                        /*
                        SQL.InsertCancelBindDNLog(connectionDB, dbIndex,
                                                  item.SerialNumber, item.Plant, item.DN, item.Remark1, item.Remark2,
                                                  EnumMsgCategory.Response, EnumMsgState.Fail, responseFail.ErrorText, "IMES");
                        */
                    }
                }
                return ResponseList;
            }
            catch (Exception e)
            {
                BaseLog.LoggingError(logger, MethodBase.GetCurrentMethod(), e);
                throw e;
            }
            finally
            {
                BaseLog.LoggingEnd(logger, methodName);
            }                 

        }