module BpmManager::Oracle

Public Class Methods

assign_task(task_id, user_id) click to toggle source

Assigns a Task for an User

# File lib/bpm_manager/oracle.rb, line 28
def self.assign_task(task_id, user_id)
  RestClient.post(URI.encode(BpmManager.uri('/task/assign/' + task_id.to_s + '/' + user_id.to_s)), :headers => {:content_type => :json, :accept => :json})
end
fail_task(task_id) click to toggle source

Fails a Task

# File lib/bpm_manager/oracle.rb, line 68
def self.fail_task(task_id)
  RestClient.post(URI.encode(BpmManager.uri('/task/action/' + task_id.to_s + '/SYS_ERROR')), :headers => {:content_type => :json, :accept => :json})
end
process_instance(process_instance_id) click to toggle source

Gets a Process Instance

# File lib/bpm_manager/oracle.rb, line 23
def self.process_instance(process_instance_id)
  JSON.parse(RestClient.get(BpmManager.uri('/process/' + process_instance_id.to_s), :accept => :json))
end
process_instances() click to toggle source

Gets all Process Instances

# File lib/bpm_manager/oracle.rb, line 18
def self.process_instances
  JSON.parse(RestClient.get(BpmManager.uri('/processes'), :accept => :json))
end
release_task(task_id) click to toggle source

Releases a Task

# File lib/bpm_manager/oracle.rb, line 33
def self.release_task(task_id)
  RestClient.post(URI.encode(BpmManager.uri('/task/release/' + task_id.to_s)), :headers => {:content_type => :json, :accept => :json})
end
resume_task(task_id) click to toggle source

Resumes a Task

# File lib/bpm_manager/oracle.rb, line 53
def self.resume_task(task_id)
  RestClient.post(URI.encode(BpmManager.uri('/task/action' + task_id.to_s + '/SYS_RESUME')), :headers => {:content_type => :json, :accept => :json})
end
suspend_task(task_id) click to toggle source

Suspends a Task

# File lib/bpm_manager/oracle.rb, line 48
def self.suspend_task(task_id)
  RestClient.post(URI.encode(BpmManager.uri('/task/action/' + task_id.to_s + '/SYS_SUSPEND')), :headers => {:content_type => :json, :accept => :json})
end
tasks(user_id = "") click to toggle source

Gets all tasks, optionally you could specify an user id

# File lib/bpm_manager/oracle.rb, line 8
def self.tasks(user_id = "")
  self.structure_task_data(JSON.parse(RestClient.get(BpmManager.uri('/tasks' + (user_id.empty? ? '' : '/' + user_id)), :accept => :json)))
end
tasks_with_opts(opts = {}) click to toggle source

Gets all tasks with options

# File lib/bpm_manager/oracle.rb, line 13
def self.tasks_with_opts(opts = {})
  self.structure_task_data(JSON.parse(RestClient.get(BpmManager.uri('/tasks' + (opts.empty? ? '' : '?' + opts.map{|k,v| k.to_s + '=' + v.to_s}.join('&'))), :accept => :json)))
end

Private Class Methods

structure_task_data(input) click to toggle source

Exits a Task def self.exit_task(task_id)

RestClient.post(URI.encode(BpmManager.uri('/task/' + task_id.to_s + '/exit')), :headers => {:content_type => :json, :accept => :json})

end

# File lib/bpm_manager/oracle.rb, line 78
def self.structure_task_data(input)
  tasks = []
  
  unless input.nil? || input.empty?
    input.each do |task|
      my_task = OpenStruct.new
      my_task.process = OpenStruct.new
      process_info = (task['processInfo'].nil? || task['processInfo'].empty?) ? '' : JSON.parse(task['processInfo']).first
      
      my_task.id = task['number']
      my_task.process_instance_id = task['processInstanceId']
      my_task.parent_id = ''
      my_task.created_on = Time.parse(task['created_on'])
      my_task.active_on = Time.parse(task['created_on'])
      my_task.name = task['title']
      my_task.owner = task['owner']
      my_task.status = task['status']
      my_task.subject = ''
      my_task.description = ''
      my_task.data = ''
      
      my_task.process.data = process_info
      my_task.process.deployment_id = ''
      my_task.process.id = (process_info.nil? || process_info.empty?) ? '' : process_info['processId']
      
      my_task.process.instance_id = task['processInstanceId']
      my_task.process.start_on = Time.parse(task['created_on'])
      my_task.process.name = task['processName']
      my_task.process.version = (process_info.nil? || process_info.empty?) ? '' : process_info['revision']
      my_task.process.creator = task['creatorName']
      my_task.process.variables = nil # self.process_instance_variables(my_task.process.deployment_id, my_task.process.instance_id)
      tasks << my_task
    end
  end
  
  return tasks
end