Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        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>());
        }