コード例 #1
0
ファイル: IdocUtil.cs プロジェクト: shuicheng9/sap_interface
        /// <summary>
        /// 根据IDOC编号从SAP系统里读取一个idoc
        /// </summary>
        /// <param name="idocNumber"></param>
        /// <returns></returns>
        public Idoc GetIodcFromSapDataBase(String idocNumber)
        {
            SAPINT.Utils.ReadTable idocReadItem   = null;
            SAPINT.Utils.ReadTable idocReadHeader = null;
            DataTable dtIdocItem  = new DataTable();
            DataTable dtIdocHeder = new DataTable();

            idocNumber = idocNumber.TrimStart('0');
            String criteria = idocNumber.PadLeft(16, '0');

            criteria = String.Format("DOCNUM = '{0}'", criteria);
            String readTableFunction = ConfigFileTool.SAPGlobalSettings.GetReadTableFunction();

            idocReadItem           = new Utils.ReadTable(SystemName);
            idocReadItem.TableName = "EDID4";
            idocReadItem.SetCustomFunctionName(readTableFunction);
            idocReadItem.AddCriteria(criteria);
            idocReadItem.Run();
            dtIdocItem = idocReadItem.Result;

            if (dtIdocItem.Rows.Count == 0)
            {
                idocReadItem           = new Utils.ReadTable(SystemName);
                idocReadItem.TableName = "EDID2";
                idocReadItem.SetCustomFunctionName(readTableFunction);
                idocReadItem.AddCriteria(criteria);
                idocReadItem.Run();
                dtIdocItem = idocReadItem.Result;
            }
            if (dtIdocItem.Rows.Count == 0)
            {
                idocReadItem           = new Utils.ReadTable(SystemName);
                idocReadItem.TableName = "EDIDD_OLD";
                idocReadItem.SetCustomFunctionName(readTableFunction);
                idocReadItem.AddCriteria(criteria);
                idocReadItem.Run();
                dtIdocItem = idocReadItem.Result;
            }
            if (dtIdocItem.Rows.Count == 0)
            {
                throw new SAPException(String.Format("无法找到IDOC{0}明细", idocNumber));
            }
            //读取IDOC头
            idocReadHeader           = new Utils.ReadTable(SystemName);
            idocReadHeader.TableName = "EDIDC";
            idocReadHeader.SetCustomFunctionName(readTableFunction);
            idocReadHeader.AddCriteria(criteria);
            idocReadHeader.Run();
            dtIdocHeder = idocReadHeader.Result;

            if (dtIdocHeder.Rows.Count != 1)
            {
                throw new SAPException(String.Format("无法找到IDOC{0}抬头定义", idocNumber));
            }

            Idoc idoc = ProcessSingleIdocFromDataTable(dtIdocHeder, dtIdocItem);

            return(idoc);
        }
コード例 #2
0
        /// <summary>
        /// 根据IDOC编号从SAP系统里读取一个idoc
        /// </summary>
        /// <param name="idocNumber"></param>
        /// <returns></returns>
        public Idoc GetIodcFromSapDataBase(String idocNumber)
        {
            SAPINT.Utils.ReadTable idocReadItem = null;
            SAPINT.Utils.ReadTable idocReadHeader = null;
            DataTable dtIdocItem = new DataTable();
            DataTable dtIdocHeder = new DataTable();
            idocNumber = idocNumber.TrimStart('0');
            String criteria = idocNumber.PadLeft(16, '0');
            criteria = String.Format("DOCNUM = '{0}'", criteria);
            String readTableFunction = ConfigFileTool.SAPGlobalSettings.GetReadTableFunction();

            idocReadItem = new Utils.ReadTable(SystemName);
            idocReadItem.TableName = "EDID4";
            idocReadItem.SetCustomFunctionName(readTableFunction);
            idocReadItem.AddCriteria(criteria);
            idocReadItem.Run();
            dtIdocItem = idocReadItem.Result;

            if (dtIdocItem.Rows.Count == 0)
            {
                idocReadItem = new Utils.ReadTable(SystemName);
                idocReadItem.TableName = "EDID2";
                idocReadItem.SetCustomFunctionName(readTableFunction);
                idocReadItem.AddCriteria(criteria);
                idocReadItem.Run();
                dtIdocItem = idocReadItem.Result;

            }
            if (dtIdocItem.Rows.Count == 0)
            {
                idocReadItem = new Utils.ReadTable(SystemName);
                idocReadItem.TableName = "EDIDD_OLD";
                idocReadItem.SetCustomFunctionName(readTableFunction);
                idocReadItem.AddCriteria(criteria);
                idocReadItem.Run();
                dtIdocItem = idocReadItem.Result;
            }
            if (dtIdocItem.Rows.Count == 0)
            {
                throw new SAPException(String.Format("无法找到IDOC{0}明细", idocNumber));
            }
            //读取IDOC头
            idocReadHeader = new Utils.ReadTable(SystemName);
            idocReadHeader.TableName = "EDIDC";
            idocReadHeader.SetCustomFunctionName(readTableFunction);
            idocReadHeader.AddCriteria(criteria);
            idocReadHeader.Run();
            dtIdocHeder = idocReadHeader.Result;

            if (dtIdocHeder.Rows.Count != 1)
            {
                throw new SAPException(String.Format("无法找到IDOC{0}抬头定义", idocNumber));
            }

            Idoc idoc = ProcessSingleIdocFromDataTable(dtIdocHeder, dtIdocItem);

            return idoc;
        }
コード例 #3
0
        public static DataTable getScreenList(String system, string prog)
        {
            try
            {
                SAPINT.Utils.ReadTable screenlist = new Utils.ReadTable(system);
                screenlist.TableName = "D020S";
                screenlist.AddField("PROG");
                screenlist.AddField("DNUM");
                // screenlist.AddField("DTXT");
                screenlist.AddCriteria(string.Format("PROG = '{0}'", prog));
                // screenlist.AddCriteria(string.Format("AND LANG = {0}", 1));
                screenlist.Run();

                return(screenlist.Result);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #4
0
        public static DataTable getScreenList(String system, string prog)
        {
            try
            {
                SAPINT.Utils.ReadTable screenlist = new Utils.ReadTable(system);
                screenlist.TableName = "D020S";
                screenlist.AddField("PROG");
                screenlist.AddField("DNUM");
                // screenlist.AddField("DTXT");
                screenlist.AddCriteria(string.Format("PROG = '{0}'", prog));
                // screenlist.AddCriteria(string.Format("AND LANG = {0}", 1));
                screenlist.Run();

                return screenlist.Result;
            }
            catch (Exception)
            {

                throw;
            }
        }