public System.Data.DataTable GetBsItemsDetail() { // validation if (string.IsNullOrEmpty(this.CompanyCode)) { throw new Exception("公司代码参数不能为空!"); } if (string.IsNullOrEmpty(this.ReportYear)) { throw new Exception("年度参数不能为空!"); } if (string.IsNullOrEmpty(this.ReportPeriod)) { throw new Exception("期间参数不能为空!"); } RfcDestination sap = DestinationProvider.GetSAPDestination(); IRfcFunction function = sap.Repository.CreateFunction("Z_BS_BALANCES"); function.SetValue("COMPANYCODE", this.CompanyCode); function.SetValue("FISCALYEAR", this.ReportYear); function.SetValue("FISCALPERIOD", this.ReportPeriod); function.Invoke(sap); IRfcTable bsItems = function.GetTable("ACC_BALANCES"); return(SAPUtils.ToDataTable(bsItems)); }
public DataTable GetTableFields(string tableName) { RfcDestination sap = DestinationProvider.GetSAPDestination(); IRfcFunction function = sap.Repository.CreateFunction("RFC_READ_TABLE"); function.SetValue("QUERY_TABLE", tableName.ToUpper()); function.SetValue("NO_DATA", "X"); function.Invoke(sap); IRfcTable fieldsTable = function.GetTable("FIELDS"); return(SAPUtils.ToDataTable(fieldsTable)); }
public DataTable ReadTableUsingFields(string tableName, String[] selectedFields, string delimeter, int rowCount, string options = "") { RfcDestination sap = DestinationProvider.GetSAPDestination(); IRfcFunction function = sap.Repository.CreateFunction("RFC_READ_TABLE"); function.SetValue("QUERY_TABLE", tableName.ToUpper()); function.SetValue("DELIMITER", delimeter); function.SetValue("ROWCOUNT", rowCount); // options parameter if (!String.IsNullOrEmpty(options)) { IRfcTable optionsTable = function.GetTable("OPTIONS"); optionsTable.Append(); optionsTable.CurrentRow.SetValue("TEXT", options); } // fields parameter IRfcTable fieldsTable = function.GetTable("FIELDS"); foreach (var item in selectedFields) { fieldsTable.Append(); fieldsTable.CurrentRow.SetValue("FIELDNAME", item.ToString()); } function.Invoke(sap); IRfcTable data = function.GetTable("DATA"); DataTable dt = SAPUtils.ToDataTable(data); return(this.SplittedFields(dt, selectedFields, delimeter)); }