From: Sam Dela Cruz Date: 2005-12-17T07:38:52+09:00 Subject: Re: Ruby + Lotus Domino oh my! --=_alternative 007C6281882570D9_= Content-Type: text/plain; charset="US-ASCII" Sorry, the tab spaces were kind of messed-up, here's the same code with tabs adjusted... require 'win32ole' application = WIN32OLE.new('Notes.NotesSession') database = application.GetDatabase('Server','DatabaseFile') response = database.GetView('Folder') count = response.TopLevelEntryCount index = count filename = "results.csv" file = File.new(filename,'w+') count.times do document = response.GetNthDocument(index) index -= 1 text = document.GetFirstItem('Body').Text machineName = "" userAccount = "" mappings = [] text.split("\r\n").each do |line| line.chomp (key,value) = line.split("=") if key == "MachineName" machineName = value elsif key == "Mapping" mappings.push(value) re = /^.*\\(\w{3}\d{5})$/ re.match(value) userAccount = $1 end end file.puts userAccount + "," + machineName + "," + mappings.join(",") end file.close Regards, Sam Sam Dela Cruz 12/16/2005 02:31 PM Please respond to ruby-talk@ruby-lang.org To ruby-talk@ruby-lang.org (ruby-talk ML) cc Subject Re: Ruby + Lotus Domino oh my! Classification In my company, we use Lotus Notes, here's how I extract messages from one folder from my mailfile. You can easily modify this to get data from any notes database: require 'win32ole' application = WIN32OLE.new('Notes.NotesSession') database = application.GetDatabase('Server','DatabaseFile') response = database.GetView('Folder') count = response.TopLevelEntryCount index = count filename = "results.csv" file = File.new(filename,'w+') count.times do document = response.GetNthDocument(index) index -= 1 text = document.GetFirstItem('Body').Text machineName = "" userAccount = "" mappings = [] text.split("\r\n").each do |line| line.chomp (key,value) = line.split("=") if key == "MachineName" machineName = value elsif key == "Mapping" mappings.push(value) re = /^.*\\(\w{3}\d{5})$/ re.match(value) userAccount = $1 end end file.puts userAccount + "," + machineName + "," + mappings.join(",") end file.close Regards, Sam Dela Cruz mathew 12/16/2005 02:22 PM Please respond to ruby-talk@ruby-lang.org To ruby-talk@ruby-lang.org (ruby-talk ML) cc Subject Re: Ruby + Lotus Domino oh my! Classification Kev Jackson wrote: > Does anyone have any experience interfacing ruby to Notes/Domino? I > only need to do a data extract, and I absolutely do not want to have to > code up C/Java just to suck the data out of a Notes database. If there's a Domino server involved (i.e. it's not just a database on a Notes client), use Domino's standard XML facilities. If there's no Domino server involved, write a quick LotusScript agent to export to XML... :-) mathew -- My parents went to the lost kingdom of Hyrule and all I got was this lousy triforce. --=_alternative 007C6281882570D9_=--