2 # CLDS stored procedures
7 DROP PROCEDURE IF EXISTS upd_event;
8 DROP PROCEDURE IF EXISTS ins_event;
9 DROP PROCEDURE IF EXISTS del_all_model_instances;
10 DROP PROCEDURE IF EXISTS del_model_instance;
11 DROP PROCEDURE IF EXISTS ins_model_instance;
12 DROP PROCEDURE IF EXISTS set_model;
13 DROP PROCEDURE IF EXISTS get_model;
14 DROP PROCEDURE IF EXISTS get_model_template;
15 DROP PROCEDURE IF EXISTS set_template;
16 DROP PROCEDURE IF EXISTS get_template;
18 CREATE PROCEDURE get_template
19 (IN v_template_name VARCHAR(80),
20 OUT v_template_id VARCHAR(36),
21 OUT v_template_bpmn_id VARCHAR(36),
22 OUT v_template_bpmn_userid VARCHAR(8),
23 OUT v_template_bpmn_text MEDIUMTEXT,
24 OUT v_template_image_id VARCHAR(36),
25 OUT v_template_image_userid VARCHAR(8),
26 OUT v_template_image_text MEDIUMTEXT,
27 OUT v_template_doc_id VARCHAR(36),
28 OUT v_template_doc_userid VARCHAR(8),
29 OUT v_template_doc_text MEDIUMTEXT)
34 tb.template_bpmn_text,
37 ti.template_image_text,
43 v_template_bpmn_userid,
46 v_template_image_userid,
47 v_template_image_text,
49 v_template_doc_userid,
55 WHERE t.template_bpmn_id = tb.template_bpmn_id
56 AND t.template_image_id = ti.template_image_id
57 AND t.template_doc_id = td.template_doc_id
58 AND t.template_name = v_template_name;
60 CREATE PROCEDURE set_template
61 (IN v_template_name VARCHAR(80),
62 IN v_userid VARCHAR(8),
63 IN v_template_bpmn_text MEDIUMTEXT,
64 IN v_template_image_text MEDIUMTEXT,
65 IN v_template_doc_text MEDIUMTEXT,
66 OUT v_template_id VARCHAR(36),
67 OUT v_template_bpmn_id VARCHAR(36),
68 OUT v_template_bpmn_userid VARCHAR(8),
69 OUT v_template_image_id VARCHAR(36),
70 OUT v_template_image_userid VARCHAR(8),
71 OUT v_template_doc_id VARCHAR(36),
72 OUT v_template_doc_userid VARCHAR(8))
74 DECLARE v_old_template_bpmn_text MEDIUMTEXT;
75 DECLARE v_old_template_image_text MEDIUMTEXT;
76 DECLARE v_old_template_doc_text MEDIUMTEXT;
77 SET v_template_id = NULL;
82 v_template_bpmn_userid,
83 v_old_template_bpmn_text,
85 v_template_image_userid,
86 v_old_template_image_text,
88 v_template_doc_userid,
89 v_old_template_doc_text);
90 IF v_template_id IS NULL THEN
92 SET v_template_id = UUID();
94 (template_id, template_name)
95 VALUES (v_template_id, v_template_name);
98 IF v_template_bpmn_id IS NULL OR v_template_bpmn_text <> v_old_template_bpmn_text THEN
99 SET v_template_bpmn_id = UUID();
100 INSERT INTO template_bpmn
101 (template_bpmn_id, template_id, template_bpmn_text, userid)
102 VALUES (v_template_bpmn_id, v_template_id, v_template_bpmn_text, v_userid);
103 SET v_template_bpmn_userid = v_userid;
105 IF v_template_image_id IS NULL OR v_template_image_text <> v_old_template_image_text THEN
106 SET v_template_image_id = UUID();
107 INSERT INTO template_image
108 (template_image_id, template_id, template_image_text, userid)
109 VALUES (v_template_image_id, v_template_id, v_template_image_text, v_userid);
110 SET v_template_image_userid = v_userid;
112 IF v_template_doc_id IS NULL OR v_template_doc_text <> v_old_template_doc_text THEN
113 SET v_template_doc_id = UUID();
114 INSERT INTO template_doc
115 (template_doc_id, template_id, template_doc_text, userid)
116 VALUES (v_template_doc_id, v_template_id, v_template_doc_text, v_userid);
117 SET v_template_doc_userid = v_userid;
120 SET template_bpmn_id = v_template_bpmn_id,
121 template_image_id = v_template_image_id,
122 template_doc_id = v_template_doc_id
123 WHERE template_id = v_template_id;
125 CREATE PROCEDURE get_model
126 (IN v_model_name VARCHAR(80),
127 OUT v_control_name_prefix VARCHAR(80),
128 INOUT v_control_name_uuid VARCHAR(36),
129 OUT v_model_id VARCHAR(36),
130 OUT v_template_name VARCHAR(80),
131 OUT v_template_id VARCHAR(36),
132 OUT v_model_prop_id VARCHAR(36),
133 OUT v_model_prop_userid VARCHAR(8),
134 OUT v_model_prop_text MEDIUMTEXT,
135 OUT v_model_blueprint_id VARCHAR(36),
136 OUT v_model_blueprint_userid VARCHAR(8),
137 OUT v_model_blueprint_text MEDIUMTEXT,
138 OUT v_event_id VARCHAR(36),
139 OUT v_action_cd VARCHAR(80),
140 OUT v_action_state_cd VARCHAR(80),
141 OUT v_event_process_instance_id VARCHAR(80),
142 OUT v_event_userid VARCHAR(8))
144 SELECT m.control_name_prefix,
152 mb.model_blueprint_id,
154 mb.model_blueprint_text,
158 e.process_instance_id,
160 INTO v_control_name_prefix,
168 v_model_blueprint_id,
169 v_model_blueprint_userid,
170 v_model_blueprint_text,
174 v_event_process_instance_id,
181 WHERE m.template_id = t.template_id
182 AND m.model_prop_id = mp.model_prop_id
183 AND m.model_blueprint_id = mb.model_blueprint_id
184 AND m.event_id = e.event_id
185 AND (m.model_name = v_model_name
186 OR m.control_name_uuid = v_control_name_uuid);
187 SELECT model_instance_id,
192 WHERE model_id = v_model_id
195 CREATE PROCEDURE get_model_template
196 (IN v_model_name VARCHAR(80),
197 OUT v_control_name_prefix VARCHAR(80),
198 INOUT v_control_name_uuid VARCHAR(36),
199 OUT v_model_id VARCHAR(36),
200 OUT v_template_name VARCHAR(80),
201 OUT v_template_id VARCHAR(36),
202 OUT v_model_prop_id VARCHAR(36),
203 OUT v_model_prop_userid VARCHAR(8),
204 OUT v_model_prop_text MEDIUMTEXT,
205 OUT v_model_blueprint_id VARCHAR(36),
206 OUT v_model_blueprint_userid VARCHAR(8),
207 OUT v_model_blueprint_text MEDIUMTEXT,
208 OUT v_template_bpmn_id VARCHAR(36),
209 OUT v_template_bpmn_userid VARCHAR(8),
210 OUT v_template_bpmn_text MEDIUMTEXT,
211 OUT v_template_image_id VARCHAR(36),
212 OUT v_template_image_userid VARCHAR(8),
213 OUT v_template_image_text MEDIUMTEXT,
214 OUT v_template_doc_id VARCHAR(36),
215 OUT v_template_doc_userid VARCHAR(8),
216 OUT v_template_doc_text MEDIUMTEXT,
217 OUT v_event_id VARCHAR(36),
218 OUT v_action_cd VARCHAR(80),
219 OUT v_action_state_cd VARCHAR(80),
220 OUT v_event_process_instance_id VARCHAR(80),
221 OUT v_event_userid VARCHAR(8))
225 v_control_name_prefix,
233 v_model_blueprint_id,
234 v_model_blueprint_userid,
235 v_model_blueprint_text,
239 v_event_process_instance_id,
245 v_template_bpmn_userid,
246 v_template_bpmn_text,
248 v_template_image_userid,
249 v_template_image_text,
251 v_template_doc_userid,
252 v_template_doc_text);
254 CREATE PROCEDURE set_model
255 (IN v_model_name VARCHAR(80),
256 IN v_template_id VARCHAR(36),
257 IN v_userid VARCHAR(8),
258 IN v_model_prop_text MEDIUMTEXT,
259 IN v_model_blueprint_text MEDIUMTEXT,
260 INOUT v_control_name_prefix VARCHAR(80),
261 INOUT v_control_name_uuid VARCHAR(36),
262 OUT v_model_id VARCHAR(36),
263 OUT v_model_prop_id VARCHAR(36),
264 OUT v_model_prop_userid VARCHAR(8),
265 OUT v_model_blueprint_id VARCHAR(36),
266 OUT v_model_blueprint_userid VARCHAR(8),
267 OUT v_event_id VARCHAR(36),
268 OUT v_action_cd VARCHAR(80),
269 OUT v_action_state_cd VARCHAR(80),
270 OUT v_event_process_instance_id VARCHAR(80),
271 OUT v_event_userid VARCHAR(8))
273 DECLARE v_old_template_name VARCHAR(80);
274 DECLARE v_old_template_id VARCHAR(36);
275 DECLARE v_old_control_name_prefix VARCHAR(80);
276 DECLARE v_old_control_name_uuid VARCHAR(36);
277 DECLARE v_old_model_prop_text MEDIUMTEXT;
278 DECLARE v_old_model_blueprint_text MEDIUMTEXT;
279 SET v_model_id = NULL;
282 v_old_control_name_prefix,
283 v_old_control_name_uuid,
289 v_old_model_prop_text,
290 v_model_blueprint_id,
291 v_model_blueprint_userid,
292 v_old_model_blueprint_text,
296 v_event_process_instance_id,
298 IF v_model_id IS NULL THEN
300 # UUID can be provided initially but cannot be updated
301 # if not provided (this is expected) then it will be set here
302 IF v_control_name_uuid IS NULL THEN
303 SET v_control_name_uuid = UUID();
305 SET v_model_id = v_control_name_uuid;
307 (model_id, model_name, template_id, control_name_prefix, control_name_uuid)
308 VALUES (v_model_id, v_model_name, v_template_id, v_control_name_prefix, v_control_name_uuid);
309 # since just created model, insert CREATED event as initial default event
310 SET v_action_cd = 'CREATE';
311 SET v_action_state_cd = 'COMPLETED';
312 SET v_event_userid = v_userid;
313 SET v_event_id = UUID();
315 (event_id, model_id, action_cd, action_state_cd, userid)
316 VALUES (v_event_id, v_model_id, v_action_cd, v_action_state_cd, v_event_userid);
318 SET event_id = v_event_id
319 WHERE model_id = v_model_id;
323 # use old control_name_prefix if null value is provided
324 IF v_control_name_prefix IS NULL THEN
325 SET v_control_name_prefix = v_old_control_name_prefix;
327 # UUID can not be updated after initial insert
328 SET v_control_name_uuid = v_old_control_name_uuid;
331 IF v_model_prop_id IS NULL OR v_model_prop_text <> v_old_model_prop_text THEN
332 SET v_model_prop_id = UUID();
333 INSERT INTO model_properties
334 (model_prop_id, model_id, model_prop_text, userid)
335 VALUES (v_model_prop_id, v_model_id, v_model_prop_text, v_userid);
336 SET v_model_prop_userid = v_userid;
338 IF v_model_blueprint_id IS NULL OR v_model_blueprint_text <> v_old_model_blueprint_text THEN
339 SET v_model_blueprint_id = UUID();
340 INSERT INTO model_blueprint
341 (model_blueprint_id, model_id, model_blueprint_text, userid)
342 VALUES (v_model_blueprint_id, v_model_id, v_model_blueprint_text, v_userid);
343 SET v_model_blueprint_userid = v_userid;
346 SET control_name_prefix = v_control_name_prefix,
347 model_prop_id = v_model_prop_id,
348 model_blueprint_id = v_model_blueprint_id
349 WHERE model_id = v_model_id;
351 CREATE PROCEDURE ins_model_instance
352 (IN v_control_name_uuid VARCHAR(36),
353 IN v_vm_name VARCHAR(250),
354 IN v_location VARCHAR(250),
355 OUT v_model_id VARCHAR(36),
356 OUT v_model_instance_id VARCHAR(36))
361 WHERE m.control_name_uuid = v_control_name_uuid;
362 SET v_model_instance_id = UUID();
363 INSERT INTO model_instance
364 (model_instance_id, model_id, vm_name, location)
365 VALUES (v_model_instance_id, v_model_id, v_vm_name, v_location);
367 CREATE PROCEDURE del_model_instance
368 (IN v_control_name_uuid VARCHAR(36),
369 IN v_vm_name VARCHAR(250),
370 OUT v_model_id VARCHAR(36),
371 OUT v_model_instance_id VARCHAR(36))
373 SELECT m.model_id, i.model_instance_id
378 WHERE m.model_id = i.model_id
379 AND m.control_name_uuid = v_control_name_uuid
380 AND i.vm_name = v_vm_name;
381 DELETE FROM model_instance
382 WHERE model_instance_id = v_model_instance_id;
384 CREATE PROCEDURE del_all_model_instances
385 (IN v_control_name_uuid VARCHAR(36),
386 OUT v_model_id VARCHAR(36))
391 WHERE m.control_name_uuid = v_control_name_uuid;
392 DELETE FROM model_instance
393 WHERE model_id = v_model_id;
395 CREATE PROCEDURE ins_event
396 (IN v_model_name VARCHAR(80),
397 IN v_control_name_prefix VARCHAR(80),
398 IN v_control_name_uuid VARCHAR(36),
399 IN v_userid VARCHAR(8),
400 IN v_action_cd VARCHAR(80),
401 IN v_action_state_cd VARCHAR(80),
402 IN v_process_instance_id VARCHAR(80),
403 OUT v_model_id VARCHAR(36),
404 OUT v_event_id VARCHAR(36))
406 DECLARE v_prev_event_id VARCHAR(36);
412 WHERE m.model_name = v_model_name
413 OR m.control_name_uuid = v_control_name_uuid;
414 SET v_event_id = UUID();
416 (event_id, model_id, action_cd, action_state_cd, prev_event_id, process_instance_id, userid)
417 VALUES (v_event_id, v_model_id, v_action_cd, v_action_state_cd, v_prev_event_id, v_process_instance_id, v_userid);
419 SET event_id = v_event_id
420 WHERE model_id = v_model_id;
422 CREATE PROCEDURE upd_event
423 (IN v_event_id VARCHAR(36),
424 IN v_process_instance_id VARCHAR(80))
427 SET process_instance_id = v_process_instance_id
428 WHERE event_id = v_event_id;