public static dynamic ExecuteBAPI(InputBAPI Input) { DataSet resultDataSet; Dictionary <String, String> connectionParams = new Dictionary <string, string>(); String[] connectionStringArray = Input.ConnectionString.Split(';'); foreach (String configEntry in connectionStringArray) { connectionParams.Add(configEntry.TrimEnd().TrimStart().Split('=')[0], configEntry.TrimEnd().TrimStart().Split('=')[1]); } using (var connection = new SapConnection(connectionParams)) { connection.Open(); var command = new SapCommand(Input.BAPIName, connection); foreach (Parameter param in Input.Parameters) { command.Parameters.Add(param.Name, param.Value); } resultDataSet = command.ExecuteDataSet(); } return(JToken.FromObject(resultDataSet)); }
private SapCommand GetCommand(SapConnection connection) { var command = new SapCommand(_query.BapiName, connection); var parametersDictionary = GetParameters(_query.Parameters); if (parametersDictionary.HasItems()) { foreach (var key in parametersDictionary.Keys) { command.Parameters.Add(key, parametersDictionary[key]); } } return(command); }
static void Main(string[] args) { using (var connection = new SapConnection("DEV")) { connection.Open(); var session = new SapSession(connection); //var transaction = connection.BeginTransaction(); var command = new SapCommand("BAPI_GET_PROJECT_DETAILS_TABLE", connection); command.Parameters.Add("PROJECT_TYPE","EP"); session.StartSession(); var resultDataSet = command.ExecuteDataSet(); session.EndSession(); var sapDataReader = command.ExecuteReader("RESULTS"); var i = 0; while(sapDataReader.Read()) { Console.WriteLine("{0} : {1}",i,sapDataReader.Item.GetString(0)); i++; } Console.WriteLine(sapDataReader.RowCount); //transaction.Commit(); //var rfcTables = command.ExecuteRfcTables(); } Console.WriteLine("Done !"); Console.ReadKey(); }
static void Main(string[] args) { using (var connection = new SapConnection("DEV")) { connection.Open(); var session = new SapSession(connection); //var transaction = connection.BeginTransaction(); var command = new SapCommand("BAPI_GET_PROJECT_DETAILS_TABLE", connection); command.Parameters.Add("PROJECT_TYPE", "EP"); session.StartSession(); var resultDataSet = command.ExecuteDataSet(); session.EndSession(); var sapDataReader = command.ExecuteReader("RESULTS"); var i = 0; while (sapDataReader.Read()) { Console.WriteLine("{0} : {1}", i, sapDataReader.Item.GetString(0)); i++; } Console.WriteLine(sapDataReader.RowCount); //transaction.Commit(); //var rfcTables = command.ExecuteRfcTables(); } Console.WriteLine("Done !"); Console.ReadKey(); }
private IEnumerable <TReturn> ExecuteQuery <TReturn>(SapCommand command) { Type t = typeof(TReturn); dynamic config = this.GetConfigByType <TReturn>(); var items = new List <TReturn>(); SapDataReader reader = command.ExecuteReader(config.Key != SAPDataAccessQuery.DefaultTableName ? config.Key : null); var mapping = (FieldDataConfig <TReturn>)config.Value.Value; while (reader.Read()) { var item = Activator.CreateInstance <TReturn>(); foreach (var property in mapping.Properties) { var field = property.Key; var data = reader.Item.GetString(property.Value); field.SetValue(item, data); } items.Add(item); } return(items.HasItems() ? items : Enumerable.Empty <TReturn>()); }