SAP系統又稱企業管理解決方案,是全球企業管理軟件與解決方案的技術領袖,同時也是市場領導者。通過其應用軟件、服務與支持,SAP持續不斷向全球各行業企業提供全面的企業級管理軟件解決方案。 在實際開發過程中,通常會遇見其他自主開發的軟件系統需要與SAP進行對接,進行數據交互,本文介紹如何通過 C# 語言編寫程式訪問SAP並查詢我們需要的數據。
rfcTable與DataTable
用C#開發的程序,一般采用NCO的方式進行訪問數據庫,里面涉及到一個rfcTable的類型,這也是一個表,但是跟我們平常工的System.Data里面的DataTable不一樣,rfcTable是 SAP 里面返回的一種類型,它也支持循環遍歷,我們可以根據實際需要將其轉換成DataTable來使用。
SAP為我們提供一個名為【RFC_READ_TABLE】的RFC,我們可以通過這個 RFC 查詢表數據,具體使用方法如下:
第一步:定義鏈接參數
string path="D:\\config.xml"; // 這里是一個配置文件 string SapServer = Common.XmlHelper.GetXmlReader(path, "Config", "SapServer"); string SapClient = Common.XmlHelper.GetXmlReader(path, "Config", "SapClient"); string SapSysNumber = Common.XmlHelper.GetXmlReader(path, "Config", "SapSysNumber"); string SapUser = Common.XmlHelper.GetXmlReader(path, "Config", "SapUser"); string SapPwd = Common.XmlHelper.GetXmlReader(path, "Config", "SapPwd"); string CurrPlant = Common.XmlHelper.GetXmlReader(path, "Config", "Plant");
第二步:實例化參數對象
RfcConfigParameters rfcPar = new RfcConfigParameters(); rfcPar.Add(RfcConfigParameters.Name, "CON"); rfcPar.Add(RfcConfigParameters.AppServerHost, SapServer); rfcPar.Add(RfcConfigParameters.Client, SapClient); rfcPar.Add(RfcConfigParameters.User, SapUser); rfcPar.Add(RfcConfigParameters.Password, SapPwd); rfcPar.Add(RfcConfigParameters.SystemNumber, SapSysNumber); rfcPar.Add(RfcConfigParameters.Language, "EN"); dest = RfcDestinationManager.GetDestination(rfcPar); RfcRepository rfcrep = dest.Repository;
第三步:執行查詢
myfun = rfcrep.CreateFunction("RFC_READ_TABLE"); IRfcTable IrfTable = myfun.GetTable("DATA"); myfun.SetValue("QUERY_TABLE", "ZP092"); //ZP092表示需要查詢的表名 myfun.SetValue("DELIMITER", "#");//#表示返回數據的分割符號 myfun.SetValue("ROWCOUNT", "0");//0表示返回所有的數據 IRfcTable IrfTable2 = myfun.GetTable("OPTIONS"); //OPTIONS為表名,也就是我們需要取數據的表 myfun.Invoke(dest);
此時,IrfTable 里已經有我們需要的數據了,我們可以根據實際需求進行處理。
如果對您有幫助,請幫忙給個推薦,謝謝!