示例#1
0
        /// <summary>
        /// Register remoting object
        /// </summary>
        /// <returns>bool</returns>
        public static bool RegisterRemoteObject()
        {
            try
            {
                if (RemotingConfiguration.CustomErrorsMode != CustomErrorsModes.Off)
                {
                    RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.Off;
                }

                //RemotingHelper.RegisterRemoteObjectViaXmlConfig();
                f = new ServerObjFactory();
                RemotingServices.Marshal(f, typeof(IServerObjFactory).FullName);

                n = new Notifier();
                RemotingServices.Marshal(n, typeof(INotifier).FullName);
                return(true);
            }
            catch (Exception ex)
            {
                LogService.LogError("Register remoting server object exception : " + ex.ToString());
            }

            return(false);
        }
示例#2
0
        /// <summary>
        /// 同步过账
        /// </summary>
        public bool SynSAP(string ZMBLNR, string SYNMAN, out string returnStr)
        {
            returnStr = String.Empty;
            string    sql    = String.Format(@"SELECT ZMBLNR, WERKS, ZMMTYP, AUFNR 
                                            FROM AWMS_WH_ENTRY 
                                            WHERE ZMBLNR = '{0}'", ZMBLNR.PreventSQLInjection());
            DataSet   dsHead = db.ExecuteDataSet(CommandType.Text, sql);
            DataTable dtHead = dsHead.Tables[0];
            DataRow   drHead = dtHead.Rows[0];

            string WERKS  = drHead["WERKS"].ToString();
            string ZMMTYP = drHead["ZMMTYP"].ToString();
            string AUFNR  = drHead["AUFNR"].ToString();

            ServerObjFactory factory   = new ServerObjFactory();
            IRFCEngine       rfcEngine = factory.Get <IRFCEngine>();

            sql = String.Format(@"SELECT ZMBLNR, ZEILE, BWART, MATNR, LGORT, MENGE, CHARG, XP001 AS CHR01, XP002 AS CHR02, XP003 AS CHR03, XP004 AS CHR04,
                                    XP005 AS CHR05, XP006 AS CHR06, XP007 AS CHR07, XP008 AS CHR08, XP009 AS CHR09, XP010 AS CHR10, XP011 AS CHR11, XP012 AS CHR12
                                    FROM AWMS_WH_ENTRY_DETAIL 
                                    WHERE ZMBLNR = '{0}' AND ITEMSTATUS = '正常' ORDER BY ZEILE",
                                ZMBLNR.PreventSQLInjection());
            DataSet dsParams = db.ExecuteDataSet(CommandType.Text, sql);

            dsParams.Tables[0].TableName = "MSEGITEM";

            //字段
            dsParams.ExtendedProperties.Add("ZMBLNR", ZMBLNR);
            dsParams.ExtendedProperties.Add("WERKS", WERKS);
            dsParams.ExtendedProperties.Add("ZMMTYP", ZMMTYP);
            dsParams.ExtendedProperties.Add("AUFNR", AUFNR);
            dsParams.ExtendedProperties.Add("CDATE", String.Format("{0:yyyyMMdd}", DateTime.Now));

            DataSet dsReturn = rfcEngine.ExecuteRFC("ZMM_GOODSMVT_CREATE", dsParams);

            string MBLNR  = dsReturn.ExtendedProperties["MBLNR"].ToString();
            string MBLNR1 = dsReturn.ExtendedProperties["MBLNR1"].ToString();

            if (!String.IsNullOrEmpty(MBLNR) || !String.IsNullOrEmpty(MBLNR1))
            {
                DbConnection  dbConn = null;
                DbTransaction dbTran = null;
                try
                {
                    dbConn = db.CreateConnection();
                    dbConn.Open();
                    dbTran = dbConn.BeginTransaction();

                    sql = String.Format(@"UPDATE AWMS_WH_ENTRY SET MBLNR = '{0}', MBLNR1 = '{1}', SYNMAN = '{2}', SYNDATE = '{3}', ISSYN = '{4}'
                                            WHERE ZMBLNR = '{5}'",
                                        MBLNR, MBLNR1, SYNMAN, DateTime.Now, "1", ZMBLNR);
                    db.ExecuteNonQuery(dbTran, CommandType.Text, sql);

                    DataTable dtResultItem = dsReturn.Tables["MSEGITEM"];
                    for (int i = 0; i < dtResultItem.Rows.Count; i++)
                    {
                        DataRow dr        = dtResultItem.Rows[i];
                        string  retZMBLNR = dr["ZMBLNR"].ToString();
                        string  retBWART  = dr["BWART"].ToString();
                        string  retCHARG  = dr["CHARG"].ToString();
                        string  retMEINS  = dr["MEINS"].ToString();
                        string  retXP002  = dr["CHR02"].ToString();
                        string  retXP004  = dr["CHR04"].ToString();
                        string  retXP007  = dr["CHR07"].ToString();
                        string  retXP008  = dr["CHR08"].ToString();
                        string  retXP009  = dr["CHR09"].ToString();
                        string  retXP010  = dr["CHR10"].ToString();
                        string  retXP011  = dr["CHR11"].ToString();
                        string  retXP012  = dr["CHR12"].ToString();

                        string retXP001 = dr["CHR01"].ToString();
                        string retXP003 = dr["CHR03"].ToString();
                        string retXP005 = dr["CHR05"].ToString();
                        string retXP006 = dr["CHR06"].ToString();

                        string retMBLNR = retBWART.Equals("101") ? MBLNR : MBLNR1;
                        sql = String.Format(@"UPDATE AWMS_WH_ENTRY_DETAIL SET CHARG = '{0}', MEINS = '{1}', XP002 = '{2}',
                                                XP007 = '{3}', XP008 = '{4}', XP009 = '{5}', XP010 = '{6}', XP011 = '{7}',
                                                XP012 = '{8}', MBLNR = '{9}', XP001 = '{10}', XP003 = '{11}', XP005 = '{12}', 
                                                XP006 = '{13}' 
                                                WHERE ZMBLNR = '{14}' AND XP004 = '{15}' AND ITEMSTATUS = '正常'",
                                            retCHARG, retMEINS, retXP002, retXP007, retXP008, retXP009, retXP010,
                                            retXP011, retXP012, retMBLNR, retXP001, retXP003, retXP005, retXP006,
                                            retZMBLNR, retXP004);
                        db.ExecuteNonQuery(dbTran, CommandType.Text, sql);

                        sql = String.Format(@"UPDATE DBO.WIP_CONSIGNMENT 
                                                SET CS_DATA_GROUP = '3' 
                                                WHERE CONSIGNMENT_KEY IN (
                                                    SELECT KEYNO 
                                                    FROM AWMS_WH_ENTRY_DETAIL
                                                    WHERE ZMBLNR = '{0}' AND XP004 = '{1}' AND ITEMSTATUS = '正常')", retZMBLNR, retXP004);
                        db.ExecuteNonQuery(dbTran, CommandType.Text, sql);
                    }
                    dbTran.Commit();
                }
                catch (Exception ex)
                {
                    LogService.LogError("WarehouseWarrant Error: " + ex.Message);
                    returnStr = ex.Message;
                    if (dbTran != null)
                    {
                        dbTran.Rollback();
                    }
                    return(false);
                }
                finally
                {
                    if (dbConn != null)
                    {
                        dbConn.Close();
                    }
                    dbConn = null;
                    dbTran = null;
                }
                returnStr = String.Format("过账成功!101移动凭证号:{0},531移动凭证号:{1}",
                                          String.IsNullOrEmpty(MBLNR)? "无" : MBLNR,
                                          String.IsNullOrEmpty(MBLNR1)? "无" : MBLNR1);
                return(true);
            }
            else
            {
                returnStr += "过账失败!";
                DataTable dtResult = dsReturn.Tables["TBAPIRET"];
                for (int i = 0; i < dtResult.Rows.Count; i++)
                {
                    DataRow dr       = dtResult.Rows[i];
                    string  type     = dr["TYPE"].ToString();
                    string  id       = dr["id"].ToString();
                    int     number   = Convert.ToInt32(dr["NUMBER"]);
                    string  message  = dr["MESSAGE"].ToString();
                    string  system   = dr["SYSTEM"].ToString();
                    string  REF_EXT1 = dr["MESSAGE_V1"].ToString();
                    string  REF_EXT2 = dr["MESSAGE_V2"].ToString();
                    string  REF_EXT3 = dr["MESSAGE_V3"].ToString();
                    returnStr += '\n' + type + ' ' + id + ' ' + number.ToString() + ' ' + message + ' ' + system + ' ' + REF_EXT1 + ' ' + REF_EXT2 + ' ' + REF_EXT3;
                }
                return(false);
            }
        }