Additional Blogs by SAP
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member182779
Active Contributor
0 Kudos

I'm pretty sure that by now you have realized that I love Scripting Languages. That means that once in a while I love to play with a new language or a new web framework. This time I came to play with Sinatra a very amazing framework.

I must say that the documentation is very poor...even when a Sinatra book is in the making.

I have said a lot of times that I'm going to learn Rails but somehow...everytime I start I drop it a couple of days before...why? Surely because of Sinatra and Camping which much easier to learn and even can offer the same things as Rails.

But I'm sure that you don't want to know about my private programming life...So let's get into some code...

 

Ruby/Sinatra and SAP - SE16 Emulation











eos end end get '/login_view' do body do <<-eos


eos end end get '/show_table' do $output = "" for i in 0...$Fields_Len $Fields_Fields = $Data_Names[i].to_s $output += "" end $output += "" for i in 0...$Data_Len $output += "" $Data_Fields = $Data[i] $Data_Split = $Data_Fields.split("|") for i in 0...$Fields_Len $output += "" end $output += "" end $output += "
#{$Fields_Fields}
#{$Data_Split[i].to_s.strip}
" body $output end post '/login' do $host,$sysnr,$client,$user,$password = params[:host],params[:sysnr], params[:client],params[:user], params[:password] "#{do_login}" redirect '/login_view' end post '/table_view' do $table = params[:table] "#{get_table}" redirect '/show_table' end helpers do def do_login $rfc = SAP::Rfc.new(:ashost => $host, :sysnr => $sysnr.to_i, :lang => "EN", :client => $client.to_i, :user => $user, :passwd => $password, :trace => 1) end def get_table $itab = $rfc.discover("RFC_READ_TABLE") $itab.query_table.value = $table $itab.delimiter.value = "|" $rfc.call($itab) $Fields = Array.new $Data = Array.new $Data_Fields = Array.new $Data_Split = Array.new $Data_Names = Array.new $itab.fields.hashRows {|field| $Fields.push(field) } $Fields_Len = $Fields.length $itab.data.hashRows {|field| $Data.push(field['WA'].to_s.strip!) } $Data_Len = $Data.length $itab.fields.hashRows {|field| $Data_Names.push (field['FIELDNAME'].to_s.strip)} end end 

Now...Some pictures...

 

Hope you like it -:)

2 Comments