I was recently asked how I make my sample data for: http://demo.kineticdata.com/KinCal/calendar?CalendarName=sample_scheduled_changes
I use Klink as my Remedy API (allows me to use straight Ruby) https://github.com/kineticdata/klink Here is my script: require "rubygems" require "kinetic/link" $klink_env = "demo" # Start date for random anchor_time = Time.now.to_i # Now # anchor_time = Time.now.to_i-3*30*24*60*60 # 3 months ago # anchor_time = Time.now.to_i+3*30*24*60*60 # 3 months from now # Number of days to randomize over num_days = 365 max_change_length_hours = 8 min_change_length_minutes = 15 num_changes_to_create = 1000 form = "KS_SAMPLE_Change" fm = Hash.new fm['Request ID'] = "1" fm['Status History'] = "15" fm['instanceId'] = "179" fm['Submitter'] = "2" fm['Create Date'] = "3" fm['Assigned To'] = "4" fm['Last Modified By'] = "5" fm['Modified Date'] = "6" fm['Status'] = "7" fm['Change Name'] = "700000050" fm['Category'] = "700000051" fm['Type'] = "700000052" fm['Item'] = "700000053" fm['Risk'] = "700000060" fm['Priority'] = "700000061" fm['Impact'] = "700000062" fm['Group Assigned'] = "700000071" fm['Person Assigned'] = "700000072" fm['Start Date/Time'] = "700000081" fm['End Date/Time'] = "700000082" fm['Link Id'] = "700111111" fm['URL'] = "700503509" fm['Company'] = "720000000" fm['Configuration_Item'] = "700002008" fm['Short Description'] = "8" categories = Array.new categories << ["Software","Microsoft Office","Install"] categories << ["Software","Microsoft Office","Remove"] categories << ["Software","Microsoft Office","Upgrade"] categories << ["Software","Adobe Reader","Install"] categories << ["Software","Adobe Reader","Remove"] categories << ["Software","Adobe Reader","Upgrade"] categories << ["Hardware","Additional Disk","Install"] categories << ["Hardware","Additional Disk","Remove"] categories << ["Hardware","Memory","Install"] categories << ["Hardware","Memory","Remove"] categories << ["Database","Admin","Restore"] categories << ["Database","Admin","Performance Tune"] categories << ["Database","Admin","Snapshot"] categories << ["Database","Admin","Failover"] categories << ["Network","Router","Install"] categories << ["Network","Router","Remove"] categories << ["Network","Router","Upgrade"] categories << ["Network","DNS","Failover"] categories << ["Network","DNS","Backup"] categories << ["Network","DNS","Register name"] categories << ["Network","DNS","Remove name"] categories << ["SAN","Additional Disk","Install"] categories << ["SAN","Additional Disk","Remove"] categories << ["SAN","Admin","Snapshot"] categories << ["SAN","Admin","Failover"] categories << ["Mainframe","Batch Job","Start"] categories << ["Mainframe","Batch Job","Modify"] categories << ["Mainframe","Maintenance","Snapshot"] categories << ["Mainframe","Maintenance","Failover"] groups = Array.new groups << ["Network","Joe Blow"] groups << ["Network","Joe Smith"] groups << ["Network","Mike Jones"] groups << ["Network","Sally Smythe"] groups << ["Network","Chris Johnson"] groups << ["Network","Marie Metso"] groups << ["Admin","Sally Smythe"] groups << ["Admin","Chris Johnson"] groups << ["Admin","Marie Metso"] groups << ["Desktop","Sally Smythe"] groups << ["Desktop","Chris Jones"] groups << ["Desktop","Heather Sterns"] companies = ["ACME","Sithco","Big Massive Company","Xyz Enterprises"] configuration_items = ["Rabbit","Fox","Squirrel","Eel","Platypus"] risks = ["Critical","Minor","Standard"] priorities = ["Critical","Minor","Standard"] impacts = ["Low","Medium","High"] statuses = ["New","Assigned","Fixed","Rejected","Closed"] num_changes_to_create.times do category,type,item = categories[rand(categories.size)] configuration_item = configuration_items[rand(configuration_items.size)] company = companies[rand(companies.size)] group_assigned,person_assigned = groups[rand(groups.size)] group_requested, person_requested = groups[rand(groups.size)] risk = risks[rand(risks.size)] priority = priorities[rand(priorities.size)] impact = impacts[rand(impacts.size)] status = statuses[rand(statuses.size)] time_offset = rand(num_days*24*60*60) seconds_long = [rand(max_change_length_hours)*60*60,min_change_length_minutes*60].max # The 3600 stuff converts it to an hour start (not 5:33:22 - but just 5) start_time_seconds = (((anchor_time + time_offset)/3600).to_i)*3600 end_time_seconds = start_time_seconds + seconds_long start_time = Time.at(start_time_seconds).strftime("%Y-%m-%dT%H:%M:00") end_time = Time.at(end_time_seconds).strftime("%Y-%m-%dT%H:%M:00") change_name = "#{configuration_item} #{item}" description = "Need to #{item} for ci #{configuration_item}, #{person_requested} says this is a #{risk} risk." change = { fm['Submitter'] => person_requested, fm['Status'] => status, fm['Change Name'] => change_name, fm['Category'] => category, fm['Type'] => type, fm['Item'] => item, fm['Risk'] => risk, fm['Priority'] => priority, fm['Impact'] => impact, fm['Group Assigned'] => group_assigned, fm['Person Assigned'] => person_assigned, fm['Start Date/Time'] => start_time, fm['End Date/Time'] => end_time, fm['URL'] => "http://www.kineticdata.com", fm['Company'] => company, fm['Configuration_Item'] => configuration_item, fm['Short Description'] => description } puts Kinetic::Link.create(form,change) end -- John Sundberg Save the Date! First Annual KEG - Kinetic Enthusiasts Group Feb. 29th - Mar. 2nd 2012 in Denver CO For more information click here - KEG Kinetic Data, Inc. "Building a Better Service Experience" Recipient of: WWRUG10 Best Customer Service/Support Award WWRUG09 Innovator of the Year Award john.sundb...@kineticdata.com 651.556.0930 I www.kineticdata.com _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"