Module: BpmManager::RedHat

Defined in:
lib/bpm_manager/red_hat.rb

Class Method Summary collapse

Class Method Details

.assign_task(task_id, user_id) ⇒ Object

Assigns a Task for an User



74
75
76
# File 'lib/bpm_manager/red_hat.rb', line 74

def self.assign_task(task_id, user_id)
  BpmManager.server['/task/' + task_id.to_s + '/delegate'].post(:targetEntityId => user_id.to_s)
end

.clear_all_historyObject

Clears all the History –WARNING: Destructive action!–



150
151
152
# File 'lib/bpm_manager/red_hat.rb', line 150

def self.clear_all_history()
  BpmManager.server['/history/clear'].post({})
end

.complete_task(task_id, opts = {}) ⇒ Object

Completes a Task



119
120
121
# File 'lib/bpm_manager/red_hat.rb', line 119

def self.complete_task(task_id, opts = {})
  BpmManager.server['/task/' + task_id.to_s + '/complete'].post(opts)
end

.complete_task_as_admin(task_id, opts = {}) ⇒ Object

Completes a Task as Administrator



124
125
126
127
128
# File 'lib/bpm_manager/red_hat.rb', line 124

def self.complete_task_as_admin(task_id, opts = {})
  self.release_task(task_id)
  self.start_task(task_id)
  BpmManager.server['/task/' + task_id.to_s + '/complete'].post(opts)
end

.create_process(deployment_id, process_definition_id, opts = {}) ⇒ Object

Creates a new Process



18
19
20
# File 'lib/bpm_manager/red_hat.rb', line 18

def self.create_process(deployment_id, process_definition_id, opts = {})
  JSON.parse(BpmManager.server['/query/runtime/process/' + (opts.empty? ? '' : '?' + opts.map{|k,v| (v.class == Array) ? v.map{|e| k.to_s + '=' + e.to_s}.join('&') : k.to_s + '=' + v.to_s}.join('&'))].get)['taskInfoList']
end

.deploymentsObject

Gets all server deployments



8
9
10
# File 'lib/bpm_manager/red_hat.rb', line 8

def self.deployments()
  JSON.parse(BpmManager.server['/deployment'].get)
end

.exit_task(task_id) ⇒ Object

Exits a Task



136
137
138
# File 'lib/bpm_manager/red_hat.rb', line 136

def self.exit_task(task_id)
  BpmManager.server['/task/' + task_id.to_s + '/exit'].post({})
end

.fail_task(task_id) ⇒ Object

Fails a Task



131
132
133
# File 'lib/bpm_manager/red_hat.rb', line 131

def self.fail_task(task_id)
  BpmManager.server['/task/' + task_id.to_s + '/fail'].post({})
end

.get_history(process_definition_id = "") ⇒ Object

Gets the Process History



141
142
143
144
145
146
147
# File 'lib/bpm_manager/red_hat.rb', line 141

def self.get_history(process_definition_id = "")
  if process_definition_id.empty?
    JSON.parse(BpmManager.server['/history/instances'].get)
  else
    JSON.parse(BpmManager.server['/history/process/' + process_definition_id.to_s].get)
  end
end

.get_task_sla(task_instance_id, process_sla_hours = 0, task_sla_hours = 0, warning_offset_percent = 20) ⇒ Object

Gets the SLA for a Process Instance



155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
# File 'lib/bpm_manager/red_hat.rb', line 155

def self.get_task_sla(task_instance_id, process_sla_hours = 0, task_sla_hours = 0, warning_offset_percent = 20)
  my_task = self.tasks_with_opts('taskId' => task_instance_id).first
  
  unless my_task.nil?
    sla = OpenStruct.new(:task => OpenStruct.new, :process => OpenStruct.new)
    
    # Calculates the process sla
    sla.process.status = calculate_sla(my_task.process.start_on, process_sla_hours, warning_offset_percent)
    sla.process.status_name = (calculate_sla(my_task.process.start_on, process_sla_hours, warning_offset_percent) == 0) ? 'ok' : (calculate_sla(my_task.process.start_on, process_sla_hours, warning_offset_percent) == 1 ? 'warning' : 'due')
    sla.process.percentages = calculate_sla_percent(my_task.process.start_on, process_sla_hours, warning_offset_percent)
    
    # Calculates the task sla
    sla.task.status = calculate_sla(my_task.created_on, task_sla_hours, warning_offset_percent)
    sla.task.status_name = (calculate_sla(my_task.created_on, task_sla_hours, warning_offset_percent) == 0) ? 'ok' : (calculate_sla(my_task.created_on, task_sla_hours, warning_offset_percent) == 1 ? 'warning' : 'due')
    sla.task.percentages = calculate_sla_percent(my_task.created_on, task_sla_hours, warning_offset_percent)
  else
    sla = nil
  end
  
  return sla
end

.process_image(deployment_id, process_definition_id, process_id = '') ⇒ Object

Gets the Process image as SVG



55
56
57
58
59
60
61
# File 'lib/bpm_manager/red_hat.rb', line 55

def self.process_image(deployment_id, process_definition_id, process_id = '')
  begin
    BpmManager.server['/runtime/' + deployment_id.to_s + '/process/' + process_definition_id.to_s + '/image' + ((process_id.to_s.nil? || process_id.to_s.empty?) ? '' : '/' + process_id.to_s)].get
  rescue
    return ''   # returns an empty string in case of error
  end
end

.process_instance(process_instance_id) ⇒ Object

Gets a Process Instance



33
34
35
# File 'lib/bpm_manager/red_hat.rb', line 33

def self.process_instance(process_instance_id)
  JSON.parse(BpmManager.server['/history/instance/' + process_instance_id.to_s].get)
end

.process_instance_nodes(process_instance_id) ⇒ Object

Gets a Process Instance Nodes



38
39
40
# File 'lib/bpm_manager/red_hat.rb', line 38

def self.process_instance_nodes(process_instance_id)
  JSON.parse(BpmManager.server['/history/instance/' + process_instance_id.to_s + '/node'].get)['historyLogList']
end

.process_instance_variables(process_instance_id) ⇒ Object

Gets a Process Instance Variables



43
44
45
46
47
48
49
50
51
52
# File 'lib/bpm_manager/red_hat.rb', line 43

def self.process_instance_variables(process_instance_id)
  begin
    result = Hash.new
    JSON.parse(BpmManager.server['/history/instance/' + process_instance_id.to_s + '/variable'].get)['historyLogList'].each{|e| result[e.first.second['variable-id']] = e.first.second['value']}
    
    return result
  rescue
    return {}   # same result as not found record in jbpm
  end
end

.process_instancesObject

Gets all Process Instances



23
24
25
# File 'lib/bpm_manager/red_hat.rb', line 23

def self.process_instances
  JSON.parse(BpmManager.server['/history/instances'].get)
end

.processesObject

Gets all available processes



13
14
15
# File 'lib/bpm_manager/red_hat.rb', line 13

def self.processes()
  JSON.parse(BpmManager.server['/deployment/processes'].get)['processDefinitionList']
end

.processes_query_with_opts(opts = {}) ⇒ Object

Gets all the runtime processes with query options



28
29
30
# File 'lib/bpm_manager/red_hat.rb', line 28

def self.processes_query_with_opts(opts = {})
  JSON.parse(BpmManager.server['/query/runtime/process/' + (opts.empty? ? '' : '?' + opts.map{|k,v| (v.class == Array) ? v.map{|e| k.to_s + '=' + e.to_s}.join('&') : k.to_s + '=' + v.to_s}.join('&'))].get)['processInstanceInfoList']
end

.release_task(task_id) ⇒ Object

Releases a Task



94
95
96
# File 'lib/bpm_manager/red_hat.rb', line 94

def self.release_task(task_id)
  BpmManager.server['/task/' + task_id.to_s + '/release'].post({})
end

.resume_task(task_id) ⇒ Object

Resumes a Task



109
110
111
# File 'lib/bpm_manager/red_hat.rb', line 109

def self.resume_task(task_id)
  BpmManager.server['/task/' + task_id.to_s + '/resumes'].post({})
end

.skip_task(task_id) ⇒ Object

Skips a Task



114
115
116
# File 'lib/bpm_manager/red_hat.rb', line 114

def self.skip_task(task_id)
  BpmManager.server['/task/' + task_id.to_s + '/skip'].post({})
end

.start_task(task_id) ⇒ Object

Starts a Task



89
90
91
# File 'lib/bpm_manager/red_hat.rb', line 89

def self.start_task(task_id)
  BpmManager.server['/task/' + task_id.to_s + '/start'].post({})
end

.stop_task(task_id) ⇒ Object

Stops a Task



99
100
101
# File 'lib/bpm_manager/red_hat.rb', line 99

def self.stop_task(task_id)
  BpmManager.server['/task/' + task_id.to_s + '/stop'].post({})
end

.suspend_task(task_id) ⇒ Object

Suspends a Task



104
105
106
# File 'lib/bpm_manager/red_hat.rb', line 104

def self.suspend_task(task_id)
  BpmManager.server['/task/' + task_id.to_s + '/suspend'].post({})
end

.task_query(task_id) ⇒ Object

Gets all the information for a Task ID



79
80
81
# File 'lib/bpm_manager/red_hat.rb', line 79

def self.task_query(task_id)
  JSON.parse(BpmManager.server['/task/' + task_id.to_s].get)
end

.tasks(user_id = '') ⇒ Object

Gets all tasks, optionally you could specify an user id



64
65
66
# File 'lib/bpm_manager/red_hat.rb', line 64

def self.tasks(user_id = '')
  self.structure_task_data(JSON.parse(BpmManager.server['/task/query?taskOwner=' + user_id].get))
end

.tasks_query_with_opts(opts = {}) ⇒ Object

Gets all the runtime Tasks with query options



84
85
86
# File 'lib/bpm_manager/red_hat.rb', line 84

def self.tasks_query_with_opts(opts = {})
  structure_task_query_data(JSON.parse(BpmManager.server['/query/runtime/task/' + (opts.empty? ? '' : '?' + opts.map{|k,v| (v.class == Array) ? v.map{|e| k.to_s + '=' + e.to_s}.join('&') : k.to_s + '=' + v.to_s}.join('&'))].get))
end

.tasks_with_opts(opts = {}) ⇒ Object

Gets all tasks with options



69
70
71
# File 'lib/bpm_manager/red_hat.rb', line 69

def self.tasks_with_opts(opts = {})
  self.structure_task_data(JSON.parse(BpmManager.server['/task/query' + (opts.empty? ? '' : '?' + opts.map{|k,v| (v.class == Array) ? v.map{|e| k.to_s + '=' + e.to_s}.join('&') : k.to_s + '=' + v.to_s}.join('&'))].get))
end