Пример #1
0
        public SAPRfcReturn DNRePGIToSAP(DN dn)
        {
            NcoFunction ncoClient = new NcoFunction();

            try
            {
                string[] rfcArray = ConfigHelper.LoadRFCConfig(ConfigHelper.strDestinationName);
                ncoClient.Connect(rfcArray[0], "", rfcArray[3], rfcArray[4], "ZH", rfcArray[5], rfcArray[8], 2, 10, "", rfcArray[9]);

                ncoClient.FunctionName = MES2SAPRfcFunctionName.RePGI;

                Dictionary <string, object> importParameters = new Dictionary <string, object>();

                importParameters.Add("I_VBELN", dn.DNNO);

                ncoClient.ImportParameters = importParameters;
                Dictionary <string, object> exportParameters = new Dictionary <string, object>();
                ncoClient.Execute(ref exportParameters);
                //return exportParameters;

                object       parameter = null;
                SAPRfcReturn re        = new SAPRfcReturn();
                if (exportParameters != null)
                {
                    if (exportParameters.TryGetValue("ES_RESULT", out parameter))
                    {
                        IRfcStructure ROFStrcture = parameter as IRfcStructure;
                        re.Result  = ROFStrcture["RETUN"].GetValue().ToString();
                        re.Message = ROFStrcture["MESSG"].GetValue().ToString();
                    }
                }
                return(re);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #2
0
        public SAPRfcReturn POReceiveToSAP(List <PO> poList)
        {
            NcoFunction ncoClient = new NcoFunction();

            try
            {
                //string name = "Q97";
                //string user = "******";
                //string passwd = "start567";
                //string client = "601";
                //string ashost = "218.30.179.199";
                //string sysnr = "00";
                ////string saprouter = "/H/218.30.179.199/S/3299/H/192.168.129.249";
                //string saprouter = "/H/192.168.129.252/S/3299/H/192.168.129.249";
                //string kunnr = "";
                //ncoClient.Connect(name, "", user, passwd, "ZH", client, sysnr, 2, 10, "", saprouter);
                string[] rfcArray = ConfigHelper.LoadRFCConfig(ConfigHelper.strDestinationName);
                ncoClient.Connect(rfcArray[0], "", rfcArray[3], rfcArray[4], "ZH", rfcArray[5], rfcArray[8], 2, 10, "", rfcArray[9]);
                //ncoClient.Connect();

                ncoClient.FunctionName = MES2SAPRfcFunctionName.PO;

                Dictionary <string, object> importParameters = new Dictionary <string, object>();
                //importParameters.Add("EBELN", po.PONO);
                //importParameters.Add("EBELP", po.POLine);
                //importParameters.Add("WERKS", po.FacCode);
                //importParameters.Add("ZNUMBER", po.SerialNO);
                //importParameters.Add("MATNR", po.MCode);
                //importParameters.Add("MENGE", po.Qty);
                //importParameters.Add("MEINS", po.Unit);
                //importParameters.Add("BWART", po.Status);
                //importParameters.Add("REDOC", po.SAPMaterialInvoice);
                //importParameters.Add("SGTXT", po.Operator);
                //importParameters.Add("XBLNR", po.VendorInvoice);
                //importParameters.Add("LGORT", po.StorageCode);
                //importParameters.Add("BKTXT", po.Remark);
                //importParameters.Add("DATUM", po.InvoiceDate);

                DataTable dtDetail = new DataTable();
                dtDetail.Columns.Add("SERIAL", typeof(string));
                dtDetail.Columns.Add("EBELN", typeof(string));
                dtDetail.Columns.Add("EBELP", typeof(int));
                dtDetail.Columns.Add("WERKS", typeof(string));
                dtDetail.Columns.Add("ZNUMBER", typeof(string));
                dtDetail.Columns.Add("MATNR", typeof(string));
                dtDetail.Columns.Add("MENGE", typeof(decimal));
                dtDetail.Columns.Add("MEINS", typeof(string));
                dtDetail.Columns.Add("BWART", typeof(string));
                dtDetail.Columns.Add("REDOC", typeof(string));
                dtDetail.Columns.Add("SGTXT", typeof(string));
                dtDetail.Columns.Add("XBLNR", typeof(string));
                dtDetail.Columns.Add("LGORT", typeof(string));
                dtDetail.Columns.Add("BKTXT", typeof(string));
                dtDetail.Columns.Add("DATUM", typeof(int));
                foreach (var po in poList)
                {
                    DataRow row = dtDetail.NewRow();
                    row["SERIAL"]  = po.ZNUMBER;
                    row["EBELN"]   = po.PONO;
                    row["EBELP"]   = po.POLine;
                    row["WERKS"]   = po.FacCode;
                    row["ZNUMBER"] = po.ZNUMBER;
                    row["MATNR"]   = po.MCode;
                    row["MENGE"]   = po.Qty;
                    row["MEINS"]   = po.Unit;
                    row["BWART"]   = po.Status;
                    row["REDOC"]   = po.SAPMaterialInvoice;
                    row["SGTXT"]   = po.Operator;
                    row["XBLNR"]   = po.SerialNO;
                    row["LGORT"]   = po.StorageCode;
                    row["BKTXT"]   = po.Remark;
                    row["DATUM"]   = po.InvoiceDate;
                    dtDetail.Rows.Add(row);
                }

                IRfcTable rfcTable = ncoClient.ConvertDataTabletoRFCTable(dtDetail, MES2SAPRfcInTableName.PO);

                importParameters.Add(MES2SAPRfcInTableName.PO, rfcTable);
                ncoClient.ImportParameters = importParameters;
                Dictionary <string, object> exportParameters = new Dictionary <string, object>();
                ncoClient.Execute(ref exportParameters);
                //ncoClient.DISConncet();
                object       parameter = null;
                SAPRfcReturn re        = new SAPRfcReturn();
                if (exportParameters != null)
                {
                    if (exportParameters.TryGetValue("ES_RESULT", out parameter))
                    {
                        IRfcStructure ROFStrcture = parameter as IRfcStructure;
                        re.Result           = ROFStrcture["RETUN"].GetValue().ToString();
                        re.MaterialDocument = ROFStrcture["MBLNR"].GetValue().ToString();
                        re.Message          = ROFStrcture["MESSG"].GetValue().ToString();
                    }
                }
                return(re);
            }
            catch (Exception ex)
            {
                //ncoClient.DISConncet();
                throw ex;
            }
        }
Пример #3
0
        public SAPRfcReturn DNPGIToSAP(List <DN> dnList, bool isAll)
        {
            NcoFunction ncoClient = new NcoFunction();

            try
            {
                string[] rfcArray = ConfigHelper.LoadRFCConfig(ConfigHelper.strDestinationName);
                ncoClient.Connect(rfcArray[0], "", rfcArray[3], rfcArray[4], "ZH", rfcArray[5], rfcArray[8], 2, 10, "", rfcArray[9]);

                ncoClient.FunctionName = MES2SAPRfcFunctionName.PGI;

                Dictionary <string, object> importParameters = new Dictionary <string, object>();
                DataTable dtDetail = new DataTable();
                dtDetail.Columns.Add("PCBH", typeof(string));
                dtDetail.Columns.Add("VBELN", typeof(string));
                if (!isAll)
                {
                    dtDetail.Columns.Add("POSNR", typeof(int));
                    dtDetail.Columns.Add("KWMENG", typeof(decimal));
                }
                foreach (var dn in dnList)
                {
                    DataRow row = dtDetail.NewRow();
                    row["PCBH"]  = dn.BatchNO;
                    row["VBELN"] = dn.DNNO;
                    if (!isAll)
                    {
                        row["POSNR"]  = dn.DNLine;
                        row["KWMENG"] = dn.Qty;
                    }
                    dtDetail.Rows.Add(row);
                }

                IRfcTable rfcTable = ncoClient.ConvertDataTabletoRFCTable(dtDetail, MES2SAPRfcInTableName.DN);

                importParameters.Add(MES2SAPRfcInTableName.DN, rfcTable);
                string flag = isAll ? "X" : string.Empty;//是否整单过账,=是,不需要给DN明细,空=否,需要给DN明细
                importParameters.Add("I_ZFLAG", flag);

                ncoClient.ImportParameters = importParameters;
                Dictionary <string, object> exportParameters = new Dictionary <string, object>();
                ncoClient.Execute(ref exportParameters);
                //return exportParameters;

                object       parameter = null;
                SAPRfcReturn re        = new SAPRfcReturn();
                if (exportParameters != null)
                {
                    if (exportParameters.TryGetValue("ES_RESULT", out parameter))
                    {
                        IRfcStructure ROFStrcture = parameter as IRfcStructure;
                        re.Result  = ROFStrcture["RETUN"].GetValue().ToString();
                        re.Message = ROFStrcture["MESSG"].GetValue().ToString();
                    }
                }
                return(re);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #4
0
        public SAPRfcReturn PostUBToSAP(List <UB> ubList)
        {
            NcoFunction ncoClient = new NcoFunction();

            try
            {
                string[] rfcArray = ConfigHelper.LoadRFCConfig(ConfigHelper.strDestinationName);
                ncoClient.Connect(rfcArray[0], "", rfcArray[3], rfcArray[4], "ZH", rfcArray[5], rfcArray[8], 2, 10, "", rfcArray[9]);

                ncoClient.FunctionName = MES2SAPRfcFunctionName.UB;

                Dictionary <string, object> importParameters = new Dictionary <string, object>();

                DataTable dtDetail = new DataTable();
                dtDetail.Columns.Add("EBELN", typeof(string));
                dtDetail.Columns.Add("EBELP", typeof(int));
                dtDetail.Columns.Add("WERKS", typeof(string));
                dtDetail.Columns.Add("BWART", typeof(string));
                dtDetail.Columns.Add("MATNR", typeof(string));
                dtDetail.Columns.Add("LGORT", typeof(string));
                dtDetail.Columns.Add("MENGE", typeof(decimal));
                dtDetail.Columns.Add("MEINS", typeof(string));
                dtDetail.Columns.Add("DATUM", typeof(int));
                dtDetail.Columns.Add("SGTXT", typeof(string));
                dtDetail.Columns.Add("UNAME", typeof(string));

                foreach (var ub in ubList)
                {
                    DataRow row = dtDetail.NewRow();
                    row["EBELN"] = ub.UBNO;
                    row["EBELP"] = ub.UBLine;
                    row["WERKS"] = ub.FacCode;
                    row["BWART"] = ub.InOutFlag;
                    row["MATNR"] = ub.MCode;
                    row["LGORT"] = ub.StorageCode;
                    row["MENGE"] = ub.Qty;
                    row["MEINS"] = ub.Unit;
                    row["DATUM"] = ub.DocumentDate;
                    row["SGTXT"] = ub.MesTransNO;
                    row["UNAME"] = ub.ContactUser;
                    dtDetail.Rows.Add(row);
                }

                IRfcTable rfcTable = ncoClient.ConvertDataTabletoRFCTable(dtDetail, MES2SAPRfcInTableName.UB);

                importParameters.Add(MES2SAPRfcInTableName.UB, rfcTable);
                ncoClient.ImportParameters = importParameters;
                Dictionary <string, object> exportParameters = new Dictionary <string, object>();
                ncoClient.Execute(ref exportParameters);
                object       parameter = null;
                SAPRfcReturn re        = new SAPRfcReturn();
                if (exportParameters != null)
                {
                    if (exportParameters.TryGetValue("ES_RESULT", out parameter))
                    {
                        IRfcStructure ROFStrcture = parameter as IRfcStructure;
                        re.Result           = ROFStrcture["RETUN"].GetValue().ToString();
                        re.MaterialDocument = ROFStrcture["MBLNR"].GetValue().ToString();
                        re.Message          = ROFStrcture["MESSG"].GetValue().ToString();
                    }
                }
                return(re);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #5
0
        public SAPRfcReturn PostStockScrapToSAP(List <StockScrap> ssList)
        {
            NcoFunction ncoClient = new NcoFunction();

            try
            {
                string[] rfcArray = ConfigHelper.LoadRFCConfig(ConfigHelper.strDestinationName);
                ncoClient.Connect(rfcArray[0], "", rfcArray[3], rfcArray[4], "ZH", rfcArray[5], rfcArray[8], 2, 10, "", rfcArray[9]);

                ncoClient.FunctionName = MES2SAPRfcFunctionName.StockScrap;

                Dictionary <string, object> importParameters = new Dictionary <string, object>();

                DataTable dtDetail = new DataTable();
                dtDetail.Columns.Add("ZNUMBER", typeof(string));
                dtDetail.Columns.Add("ZEILE", typeof(int));
                dtDetail.Columns.Add("MATNR", typeof(string));
                dtDetail.Columns.Add("BWART", typeof(string));
                dtDetail.Columns.Add("WERKS", typeof(string));
                dtDetail.Columns.Add("LGORT", typeof(string));
                dtDetail.Columns.Add("MENGE", typeof(decimal));
                dtDetail.Columns.Add("MEINS", typeof(string));
                dtDetail.Columns.Add("KOSTL", typeof(string));
                dtDetail.Columns.Add("SGTXT", typeof(string));
                dtDetail.Columns.Add("DATUM", typeof(int));
                dtDetail.Columns.Add("UNAME", typeof(string));

                foreach (var item in ssList)
                {
                    DataRow row = dtDetail.NewRow();
                    row["ZNUMBER"] = item.MESScrapNO;
                    row["ZEILE"]   = item.LineNO;
                    row["MATNR"]   = item.MCode;
                    row["BWART"]   = item.ScrapCode;
                    row["WERKS"]   = item.FacCode;
                    row["LGORT"]   = item.StorageCode;
                    row["MENGE"]   = item.Qty;
                    row["MEINS"]   = item.Unit;
                    row["KOSTL"]   = item.CC;
                    row["SGTXT"]   = item.Remark;
                    row["DATUM"]   = item.DocumentDate;
                    row["UNAME"]   = item.Operator;
                    dtDetail.Rows.Add(row);
                }

                IRfcTable rfcTable = ncoClient.ConvertDataTabletoRFCTable(dtDetail, MES2SAPRfcInTableName.StockScrap);

                importParameters.Add(MES2SAPRfcInTableName.StockScrap, rfcTable);
                ncoClient.ImportParameters = importParameters;
                Dictionary <string, object> exportParameters = new Dictionary <string, object>();
                ncoClient.Execute(ref exportParameters);
                object       parameter = null;
                SAPRfcReturn re        = new SAPRfcReturn();
                if (exportParameters != null)
                {
                    if (exportParameters.TryGetValue("ES_RESULT", out parameter))
                    {
                        IRfcStructure ROFStrcture = parameter as IRfcStructure;
                        re.Result           = ROFStrcture["RETUN"].GetValue().ToString();
                        re.MaterialDocument = ROFStrcture["MBLNR"].GetValue().ToString();
                        re.Message          = ROFStrcture["MESSG"].GetValue().ToString();
                    }
                }
                return(re);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #6
0
        public WWPOComponentResult GetWWPOList(List <WWPOComponentPara> list)
        {
            try
            {
                NcoFunction ncoClient = new NcoFunction();
                string[]    rfcArray  = ConfigHelper.LoadRFCConfig(ConfigHelper.strDestinationName);
                ncoClient.Connect(rfcArray[0], "", rfcArray[3], rfcArray[4], "ZH", rfcArray[5], rfcArray[8], 2, 10, "", rfcArray[9]);
                ncoClient.FunctionName = MES2SAPRfcFunctionName.WWPOComponent;

                Dictionary <string, object> importParameters = new Dictionary <string, object>();

                DataTable dt = new DataTable();
                dt.Columns.Add("EBELN", typeof(string));
                dt.Columns.Add("EBELP", typeof(int));

                foreach (var item in list)
                {
                    DataRow row = dt.NewRow();
                    row["EBELN"] = item.PONO;
                    //row["EBELP"] = item.POLine;
                    dt.Rows.Add(row);
                }

                IRfcTable rfcTable = ncoClient.ConvertDataTabletoRFCTable(dt, MES2SAPRfcInTableName.WWPOComponent);
                importParameters.Add(MES2SAPRfcInTableName.WWPOComponent, rfcTable);
                ncoClient.ImportParameters = importParameters;

                Dictionary <string, object> exportParameters = new Dictionary <string, object>();
                DataSet             ds     = ncoClient.Execute(ref exportParameters);
                WWPOComponentResult result = new WWPOComponentResult();

                List <WWPOComponent> componentList = new List <WWPOComponent>();
                if (ds != null && ds.Tables[MES2SAPRfcOutTableName.WWPOComponent] != null && ds.Tables[MES2SAPRfcOutTableName.WWPOComponent].Rows.Count > 0)
                {
                    foreach (DataRow row in ds.Tables[MES2SAPRfcOutTableName.WWPOComponent].Rows)
                    {
                        WWPOComponent co = new WWPOComponent();
                        co.PONO    = Convert.ToString(row["EBELN"]);
                        co.POLine  = Convert.ToInt32(row["EBELP"]);
                        co.SubLine = Convert.ToInt32(row["RSPOS"]);
                        co.MCode   = Convert.ToString(row["MATNR"]);
                        co.HWMCode = Convert.ToString(row["IDNLF"]);
                        co.Qty     = Convert.ToDecimal(row["BDMNG"]);
                        co.Unit    = Convert.ToString(row["MEINS"]);
                        componentList.Add(co);
                    }
                }
                result.WWPOComponentList = componentList;

                object       parameter = null;
                SAPRfcReturn re        = new SAPRfcReturn();
                if (exportParameters != null)
                {
                    if (exportParameters.TryGetValue("ES_RESULT", out parameter))
                    {
                        IRfcStructure ROFStrcture = parameter as IRfcStructure;
                        re.Result           = ROFStrcture["RETUN"].GetValue().ToString();
                        re.MaterialDocument = null;
                        re.Message          = ROFStrcture["MESSG"].GetValue().ToString();
                    }
                }
                result.RfcResult = re;

                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }