[Home] [Help]
PACKAGE BODY: APPS.GMA_WFSTD_P
Source
1 PACKAGE BODY gma_wfstd_p AS
2 /* $Header: GMAWFSTB.pls 115.7 2002/11/01 21:19:22 appldev ship $ */
3 /* Procedure to get the role. Input parameters are
4 Wokflow type, Process type and Activity_type */
5 PROCEDURE get_role(
6
7 p_wf_item_type IN varchar2,
8 p_process_name IN varchar2,
9 p_activity_name IN varchar2,
10 p_datastring IN VARCHAR2,
11 P_role OUT NOCOPY VARCHAR2
12 ) IS
13
14 l_column_name1 GMA_ACTDATA_WF.COLUMN_NAME1%TYPE DEFAULT NULL;
15 l_column_value1 GMA_ACTDATA_WF.COLUMN_VALUE1%TYPE DEFAULT NULL;
16 l_column_name2 GMA_ACTDATA_WF.COLUMN_NAME2%TYPE DEFAULT NULL;
17 l_column_value2 GMA_ACTDATA_WF.COLUMN_VALUE2%TYPE DEFAULT NULL;
18 l_column_name3 GMA_ACTDATA_WF.COLUMN_NAME3%TYPE DEFAULT NULL;
19 l_column_value3 GMA_ACTDATA_WF.COLUMN_VALUE3%TYPE DEFAULT NULL;
20 l_column_name4 GMA_ACTDATA_WF.COLUMN_NAME4%TYPE DEFAULT NULL;
21 l_column_value4 GMA_ACTDATA_WF.COLUMN_VALUE4%TYPE DEFAULT NULL;
22 l_column_name5 GMA_ACTDATA_WF.COLUMN_NAME5%TYPE DEFAULT NULL;
23 l_column_value5 GMA_ACTDATA_WF.COLUMN_VALUE5%TYPE DEFAULT NULL;
24 l_column_name6 GMA_ACTDATA_WF.COLUMN_NAME6%TYPE DEFAULT NULL;
25 l_column_value6 GMA_ACTDATA_WF.COLUMN_VALUE6%TYPE DEFAULT NULL;
26 l_column_name7 GMA_ACTDATA_WF.COLUMN_NAME7%TYPE DEFAULT NULL;
27 l_column_value7 GMA_ACTDATA_WF.COLUMN_VALUE7%TYPE DEFAULT NULL;
28 l_column_name8 GMA_ACTDATA_WF.COLUMN_NAME8%TYPE DEFAULT NULL;
29 l_column_value8 GMA_ACTDATA_WF.COLUMN_VALUE8%TYPE DEFAULT NULL;
30 l_column_name9 GMA_ACTDATA_WF.COLUMN_NAME9%TYPE DEFAULT NULL;
31 l_column_value9 GMA_ACTDATA_WF.COLUMN_VALUE9%TYPE DEFAULT NULL;
32 l_column_name10 GMA_ACTDATA_WF.COLUMN_NAME10%TYPE DEFAULT NULL;
33 l_column_value10 GMA_ACTDATA_WF.COLUMN_VALUE10%TYPE DEFAULT NULL;
34
35 /* Temperory Place holders in intermediate search */
36 Temp_column_value1 GMA_ACTDATA_WF.COLUMN_VALUE1%TYPE DEFAULT NULL;
37 Temp_column_value2 GMA_ACTDATA_WF.COLUMN_VALUE2%TYPE DEFAULT NULL;
38 Temp_column_value3 GMA_ACTDATA_WF.COLUMN_VALUE3%TYPE DEFAULT NULL;
39 Temp_column_value4 GMA_ACTDATA_WF.COLUMN_VALUE4%TYPE DEFAULT NULL;
40 Temp_column_value5 GMA_ACTDATA_WF.COLUMN_VALUE5%TYPE DEFAULT NULL;
41 Temp_column_value6 GMA_ACTDATA_WF.COLUMN_VALUE6%TYPE DEFAULT NULL;
42 Temp_column_value7 GMA_ACTDATA_WF.COLUMN_VALUE7%TYPE DEFAULT NULL;
43 Temp_column_value8 GMA_ACTDATA_WF.COLUMN_VALUE8%TYPE DEFAULT NULL;
44 Temp_column_value9 GMA_ACTDATA_WF.COLUMN_VALUE9%TYPE DEFAULT NULL;
45 Temp_column_value10 GMA_ACTDATA_WF.COLUMN_VALUE10%TYPE DEFAULT NULL;
46
47
48 /* To count number of Columns */
49 l_column_count NUMBER;
50
51 /* To count the number of parameters passed */
52 l_parameter_count NUMBER;
53
54 /* To Count the number of searches for where clause loop */
55 l_search_count NUMBER;
56 /* To get the default delimiter */
57 l_delimiter varchar2(10);
58
59 /* To get the temperory column name for the cursor */
60
61 l_temp_col_name GMA_ACTDATA_WF.COLUMN_NAME1%TYPE;
62 l_temp_col_value GMA_ACTDATA_WF.COLUMN_VALUE1%TYPE;
63
64
65 l_col_name_value VARCHAR2(100);
66
67 l_activity_id NUMBER;
68
69 l_parsing_sql VARCHAR2(4000);
70
71 l_where_clause VARCHAR2(4000);
72
73 l_loop_counter NUMBER;
74
75 /* To check the fetched rows */
76
77 l_fetched_rows BOOLEAN;
78
79 /* Variables for Dynamic SQL */
80
81 l_dbms_cur integer;
82 l_Rows_processed integer;
83
84 /* Temperory string Holder */
85 l_datastring VARCHAR2(4000);
86
87 /* Cursor to get the column hierarchy for a given activity */
88
89 CURSOR Cur_Actcol_wf(X_activity_id NUMBER) IS
90 SELECT COLUMN_NAME
91 FROM gma_actcol_wf_b
92 WHERE activity_id = X_activity_id
93 ORDER BY Column_hierarchy;
94
95 /* Cursot to fetch a role for the given attributes */
96
97 CURSOR Cur_find_role(X_activity_id NUMBER,
98 X_column_name1 VARCHAR2,
99 X_column_value1 VARCHAR2,
100 X_column_name2 VARCHAR2,
101 X_column_value2 VARCHAR2,
102 X_column_name3 VARCHAR2,
103 X_column_value3 VARCHAR2,
104 X_column_name4 VARCHAR2,
105 X_column_value4 VARCHAR2,
106 X_column_name5 VARCHAR2,
107 X_column_value5 VARCHAR2,
108 X_column_name6 VARCHAR2,
109 X_column_value6 VARCHAR2,
110 X_column_name7 VARCHAR2,
111 X_column_value7 VARCHAR2,
112 X_column_name8 VARCHAR2,
113 X_column_value8 VARCHAR2,
114 X_column_name9 VARCHAR2,
115 X_column_value9 VARCHAR2,
116 X_column_name10 VARCHAR2,
117 X_column_value10 VARCHAR2) IS
118 SELECT role
119 FROM gma_actdata_wf
120 WHERE activity_id = X_activity_id AND
121 nvl(column_name1,0) = nvl(X_column_name1,0) AND
122 nvl(column_value1,0) = nvl(X_column_value1,0) AND
123 nvl(column_name2,0) = nvl(X_column_name2,0) AND
124 nvl(column_value2,0) = nvl(X_column_value2,0) AND
125 nvl(column_name3,0) = nvl(X_column_name3,0) AND
126 nvl(column_value3,0) = nvl(X_column_value3,0) AND
127 nvl(column_name4,0) = nvl(X_column_name4,0) AND
128 nvl(column_value4,0) = nvl(X_column_value4,0) AND
129 nvl(column_name5,0) = nvl(X_column_name5,0) AND
130 nvl(column_value5,0) = nvl(X_column_value5,0) AND
131 nvl(column_name6,0) = nvl(X_column_name6,0) AND
132 nvl(column_value6,0) = nvl(X_column_value6,0) AND
133 nvl(column_name7,0) = nvl(X_column_name7,0) AND
134 nvl(column_value7,0) = nvl(X_column_value7,0) AND
135 nvl(column_name8,0) = nvl(X_column_name8,0) AND
136 nvl(column_value8,0) = nvl(X_column_value8,0) AND
137 nvl(column_name9,0) = nvl(X_column_name9,0) AND
138 nvl(column_value9,0) = nvl(X_column_value9,0) AND
139 nvl(column_name10,0) = nvl(X_column_name10,0) AND
140 nvl(column_value10,0) = nvl(X_column_value10,0);
141
142 BEGIN
143 p_role:='NOROLE';
144 IF (FND_PROFILE.DEFINED ('SY$WF_DELIMITER')) THEN
145 l_delimiter := FND_PROFILE.VALUE ('SY$WF_DELIMITER');
146 ELSE
147 p_role:= 'ERROR';
148 END IF;
149
150 IF l_delimiter is NULL THEN
151 p_role:= 'ERROR';
152 END IF;
153
154 SELECT activity_id into l_activity_id
155 FROM gma_actdef_wf
156 WHERE wf_item_type = p_wf_item_type AND
157 process_name = p_process_name AND
158 activity_name = p_activity_name;
159
160 /* Initializing the column count */
161 l_column_count := 0;
162 /* Populating the column name according to the hierarchy */
163 OPEN Cur_Actcol_wf(l_activity_id);
164 LOOP
165 Fetch Cur_Actcol_wf into l_temp_col_name;
166 IF Cur_Actcol_WF%FOUND THEN
167 l_column_count := l_column_count + 1;
168 IF l_column_count = 1 THEN
169 l_column_name1:=l_temp_col_name;
170 ELSIF l_column_count = 2 THEN
171 l_column_name2:=l_temp_col_name;
172 ELSIF l_column_count = 3 THEN
173 l_column_name3:=l_temp_col_name;
174 ELSIF l_column_count = 4 THEN
175 l_column_name4:=l_temp_col_name;
176 ELSIF l_column_count = 5 THEN
177 l_column_name5:=l_temp_col_name;
178 ELSIF l_column_count = 6 THEN
179 l_column_name6:=l_temp_col_name;
180 ELSIF l_column_count = 7 THEN
181 l_column_name7:=l_temp_col_name;
182 ELSIF l_column_count = 8 THEN
183 l_column_name8:=l_temp_col_name;
184 ELSIF l_column_count = 9 THEN
185 l_column_name9:=l_temp_col_name;
186 ELSIF l_column_count = 10 THEN
187 l_column_name10:=l_temp_col_name;
188 END IF;
189 ELSE
190 EXIT;
191 END IF;
192 END LOOP;
193 CLOSE Cur_Actcol_wf;
194
195 /* Initializing parameter count */
196 l_parameter_count := 0;
197
198 /* Setting Column Count to Where clause search count */
199 l_search_count:=l_column_count;
200
201 l_datastring:=p_datastring;
202 /* Start processing the String */
203
204 LOOP
205 IF l_datastring IS NOT NULL THEN
206 l_parameter_count:=l_parameter_count+1;
207 IF (instr(l_datastring,l_delimiter,1,1) <> 0) THEN
208 l_col_name_value := substr(l_datastring,1,instr(l_datastring,l_delimiter,1,1)-1);
209 l_datastring :=substr(l_datastring,instr(l_datastring,l_delimiter,1,1)+1);
210 ELSE
211 l_col_name_value:=l_datastring;
212 l_datastring:=NULL;
213 END IF;
214
215 /* Checking for the column name and assigning the Value to the column */
216 l_temp_col_name := substr(l_col_name_value,1,instr(l_col_name_value,'=',1,1)-1);
217 l_temp_col_value:= substr(l_col_name_value,instr(l_col_name_value,'=',1,1)+1);
218 /* Assign the column value accordingly */
219
220 IF l_temp_col_name = l_column_name1 THEN
221 l_column_value1:=l_temp_col_value;
222 temp_column_value1:=l_temp_col_value;
223 ELSIF l_temp_col_name = l_column_name2 THEN
224 l_column_value2:=l_temp_col_value;
225 temp_column_value2:=l_temp_col_value;
226 ELSIF l_temp_col_name = l_column_name3 THEN
227 l_column_value3:=l_temp_col_value;
228 temp_column_value3:=l_temp_col_value;
229 ELSIF l_temp_col_name = l_column_name4 THEN
230 l_column_value4:=l_temp_col_value;
231 temp_column_value4:=l_temp_col_value;
232 ELSIF l_temp_col_name = l_column_name5 THEN
233 l_column_value5:=l_temp_col_value;
234 temp_column_value5:=l_temp_col_value;
235 ELSIF l_temp_col_name = l_column_name6 THEN
236 l_column_value6:=l_temp_col_value;
237 temp_column_value6:=l_temp_col_value;
238 ELSIF l_temp_col_name = l_column_name7 THEN
239 l_column_value7:=l_temp_col_value;
240 temp_column_value7:=l_temp_col_value;
241 ELSIF l_temp_col_name = l_column_name8 THEN
242 l_column_value8:=l_temp_col_value;
243 temp_column_value8:=l_temp_col_value;
244 ELSIF l_temp_col_name = l_column_name9 THEN
245 l_column_value9:=l_temp_col_value;
246 temp_column_value9:=l_temp_col_value;
247 ELSIF l_temp_col_name = l_column_name10 THEN
248 l_column_value10:=l_temp_col_value;
249 temp_column_value10:=l_temp_col_value;
250 END IF;
251
252 ELSE
253 EXIT;
254 END IF;
255 END LOOP;
256 /* Check for the passed parameters */
257 IF l_column_count <> l_parameter_count THEN
258 p_role := 'ERROR';
259 END IF;
260
261
262
263 /* Fetch the details using cursor Using Bottom Up Approach */
264 LOOP
265 IF l_search_count > 0 THEN
266 OPEN Cur_find_role(l_activity_id ,
267 l_column_name1,l_column_value1,
268 l_column_name2,l_column_value2,
269 l_column_name3,l_column_value3,
270 l_column_name4,l_column_value4,
271 l_column_name5,l_column_value5,
272 l_column_name6,l_column_value6,
273 l_column_name7,l_column_value7,
274 l_column_name8,l_column_value8,
275 l_column_name9,l_column_value9,
276 l_column_name10,l_column_value10);
277 FETCH cur_find_role into p_role;
278 IF cur_find_role%FOUND THEN
279 CLOSE Cur_find_role;
280 EXIT;
281 ELSE
282 /* Make the last column value in hierarchy NULL */
283 IF l_search_count = 10 THEN
284 l_column_value10:=NULL;
285 ELSIF l_search_count = 9 THEN
286 l_column_value9:=NULL;
287 ELSIF l_search_count = 8 THEN
288 l_column_value8:=NULL;
289 ELSIF l_search_count = 7 THEN
290 l_column_value7:=NULL;
291 ELSIF l_search_count = 6 THEN
292 l_column_value6:=NULL;
293 ELSIF l_search_count = 5 THEN
294 l_column_value5:=NULL;
295 ELSIF l_search_count = 4 THEN
296 l_column_value4:=NULL;
297 ELSIF l_search_count = 3 THEN
298 l_column_value3:=NULL;
299 ELSIF l_search_count = 2 THEN
300 l_column_value2:=NULL;
301 ELSIF l_search_count = 1 THEN
302 l_column_value1:=NULL;
303 END IF;
304 l_search_count:=l_search_count-1;
305 CLOSE Cur_find_role;
306 END IF;
307 ELSE
308 EXIT;
309 END IF;
310 END LOOP;
311
312
313
314 IF p_role = 'NOROLE' THEN
315 /* Re assigning the column values */
316 l_column_value1 :=temp_column_value1;
317 l_column_value2 :=temp_column_value2;
318 l_column_value3 :=temp_column_value3;
319 l_column_value4 :=temp_column_value4;
320 l_column_value5 :=temp_column_value5;
321 l_column_value6 :=temp_column_value6;
322 l_column_value7 :=temp_column_value7;
323 l_column_value8 :=temp_column_value8;
324 l_column_value9 :=temp_column_value9;
325 l_column_value10:=temp_column_value10;
326
327 /* Initilizing the Search count to start from first column in hierarchy */
328 l_search_count:=1;
329
330 /* Fetch the details using cursor Using Top Down Approach */
331
332 LOOP
333 IF l_search_count <= 10 THEN
334
335 IF l_search_count = 10 THEN
336 l_column_value10:=NULL;
337 ELSIF l_search_count = 9 THEN
338 l_column_value9:=NULL;
339 ELSIF l_search_count = 8 THEN
340 l_column_value8:=NULL;
341 ELSIF l_search_count = 7 THEN
342 l_column_value7:=NULL;
343 ELSIF l_search_count = 6 THEN
344 l_column_value6:=NULL;
345 ELSIF l_search_count = 5 THEN
346 l_column_value5:=NULL;
347 ELSIF l_search_count = 4 THEN
348 l_column_value4:=NULL;
349 ELSIF l_search_count = 3 THEN
350 l_column_value3:=NULL;
351 ELSIF l_search_count = 2 THEN
352 l_column_value2:=NULL;
353 ELSIF l_search_count = 1 THEN
354 l_column_value1:=NULL;
355 END IF;
356
357 OPEN Cur_find_role(l_activity_id ,
358 l_column_name1,l_column_value1, l_column_name2,l_column_value2,
359 l_column_name3,l_column_value3, l_column_name4,l_column_value4,
360 l_column_name5,l_column_value5, l_column_name6,l_column_value6,
361 l_column_name7,l_column_value7, l_column_name8,l_column_value8,
362 l_column_name9,l_column_value9, l_column_name10,l_column_value10);
363 FETCH cur_find_role into p_role;
364 IF cur_find_role%FOUND THEN
365 CLOSE Cur_find_role;
366 EXIT;
367 ELSE
368 /* Make the NEXT column value in hierarchy NULL */
369 l_search_count:=l_search_count+1;
370 CLOSE Cur_find_role;
371 END IF;
372 ELSE
373 EXIT;
374 END IF;
375 END LOOP;
376 END IF;
377 EXCEPTION
378 WHEN no_data_found THEN
379 p_role:='ERROR';
380
381 END get_role;
382
383 FUNCTION check_process_approval_req(p_wf_item_type VARCHAR2,
384 p_Process_name VARCHAR2,
385 p_datastring VARCHAR2) RETURN VARCHAR2 IS
386 l_column_name1 GMA_ACTDATA_WF.COLUMN_NAME1%TYPE DEFAULT NULL;
387 l_column_value1 GMA_ACTDATA_WF.COLUMN_VALUE1%TYPE DEFAULT NULL;
388 l_column_name2 GMA_ACTDATA_WF.COLUMN_NAME2%TYPE DEFAULT NULL;
389 l_column_value2 GMA_ACTDATA_WF.COLUMN_VALUE2%TYPE DEFAULT NULL;
390 l_column_name3 GMA_ACTDATA_WF.COLUMN_NAME3%TYPE DEFAULT NULL;
391 l_column_value3 GMA_ACTDATA_WF.COLUMN_VALUE3%TYPE DEFAULT NULL;
392 l_column_name4 GMA_ACTDATA_WF.COLUMN_NAME4%TYPE DEFAULT NULL;
393 l_column_value4 GMA_ACTDATA_WF.COLUMN_VALUE4%TYPE DEFAULT NULL;
394 l_column_name5 GMA_ACTDATA_WF.COLUMN_NAME5%TYPE DEFAULT NULL;
395 l_column_value5 GMA_ACTDATA_WF.COLUMN_VALUE5%TYPE DEFAULT NULL;
396 l_column_name6 GMA_ACTDATA_WF.COLUMN_NAME6%TYPE DEFAULT NULL;
397 l_column_value6 GMA_ACTDATA_WF.COLUMN_VALUE6%TYPE DEFAULT NULL;
398 l_column_name7 GMA_ACTDATA_WF.COLUMN_NAME7%TYPE DEFAULT NULL;
399 l_column_value7 GMA_ACTDATA_WF.COLUMN_VALUE7%TYPE DEFAULT NULL;
400 l_column_name8 GMA_ACTDATA_WF.COLUMN_NAME8%TYPE DEFAULT NULL;
401 l_column_value8 GMA_ACTDATA_WF.COLUMN_VALUE8%TYPE DEFAULT NULL;
402 l_column_name9 GMA_ACTDATA_WF.COLUMN_NAME9%TYPE DEFAULT NULL;
403 l_column_value9 GMA_ACTDATA_WF.COLUMN_VALUE9%TYPE DEFAULT NULL;
404 l_column_name10 GMA_ACTDATA_WF.COLUMN_NAME10%TYPE DEFAULT NULL;
405 l_column_value10 GMA_ACTDATA_WF.COLUMN_VALUE10%TYPE DEFAULT NULL;
406
407 /* Temperory Place holders in intermediate search */
408 Temp_column_value1 GMA_ACTDATA_WF.COLUMN_VALUE1%TYPE DEFAULT NULL;
409 Temp_column_value2 GMA_ACTDATA_WF.COLUMN_VALUE2%TYPE DEFAULT NULL;
410 Temp_column_value3 GMA_ACTDATA_WF.COLUMN_VALUE3%TYPE DEFAULT NULL;
411 Temp_column_value4 GMA_ACTDATA_WF.COLUMN_VALUE4%TYPE DEFAULT NULL;
412 Temp_column_value5 GMA_ACTDATA_WF.COLUMN_VALUE5%TYPE DEFAULT NULL;
413 Temp_column_value6 GMA_ACTDATA_WF.COLUMN_VALUE6%TYPE DEFAULT NULL;
414 Temp_column_value7 GMA_ACTDATA_WF.COLUMN_VALUE7%TYPE DEFAULT NULL;
415 Temp_column_value8 GMA_ACTDATA_WF.COLUMN_VALUE8%TYPE DEFAULT NULL;
416 Temp_column_value9 GMA_ACTDATA_WF.COLUMN_VALUE9%TYPE DEFAULT NULL;
417 Temp_column_value10 GMA_ACTDATA_WF.COLUMN_VALUE10%TYPE DEFAULT NULL;
418
419
420 /* To count number of Columns */
421 l_column_count NUMBER;
422
423 /* To count the number of parameters passed */
424 l_parameter_count NUMBER;
425
426 /* To Count the number of searches for where clause loop */
427 l_search_count NUMBER;
428 /* To get the default delimiter */
429 l_delimiter varchar2(10);
430
431 /* To get the temperory column name for the cursor */
432
433 l_temp_col_name GMA_ACTDATA_WF.COLUMN_NAME1%TYPE;
434 l_temp_col_value GMA_ACTDATA_WF.COLUMN_VALUE1%TYPE;
435
436
437 l_col_name_value VARCHAR2(100);
438
439 l_activity_id NUMBER;
440
441 l_parsing_sql VARCHAR2(4000);
442
443 l_where_clause VARCHAR2(4000);
444
445 l_loop_counter NUMBER;
446
447 /* To check the fetched rows */
448
449 l_fetched_rows BOOLEAN;
450
451 /* Variables for Dynamic SQL */
452
453 l_dbms_cur integer;
454 l_Rows_processed integer;
455
456 /* Temperory string Holder */
457 l_datastring VARCHAR2(4000);
458
459 /* Cursor to get the column hierarchy for a given activity */
460
461 CURSOR Cur_Actcol_wf(X_wf_item_type VARCHAR2,
462 X_process_name VARCHAR2) IS
463 SELECT COLUMN_NAME
464 FROM gma_proccol_wf_b
465 WHERE wf_item_type = X_wf_item_type
466 AND process_name = X_process_name
467 ORDER BY Column_hierarchy;
468
469 /* Cursot to fetch a role for the given attributes */
470
471 CURSOR Cur_appr_req(X_wf_item_type VARCHAR2,
472 X_process_name VARCHAR2,
473 X_column_name1 VARCHAR2,
474 X_column_value1 VARCHAR2,
475 X_column_name2 VARCHAR2,
476 X_column_value2 VARCHAR2,
477 X_column_name3 VARCHAR2,
478 X_column_value3 VARCHAR2,
479 X_column_name4 VARCHAR2,
480 X_column_value4 VARCHAR2,
481 X_column_name5 VARCHAR2,
482 X_column_value5 VARCHAR2,
483 X_column_name6 VARCHAR2,
484 X_column_value6 VARCHAR2,
485 X_column_name7 VARCHAR2,
486 X_column_value7 VARCHAR2,
487 X_column_name8 VARCHAR2,
488 X_column_value8 VARCHAR2,
489 X_column_name9 VARCHAR2,
490 X_column_value9 VARCHAR2,
491 X_column_name10 VARCHAR2,
492 X_column_value10 VARCHAR2) IS
493 SELECT ENABLE_FLAG
494 FROM gma_procdata_wf
495 WHERE wf_item_type = X_wf_item_type AND
496 process_name = X_process_name AND
497 nvl(column_name1,0) = nvl(X_column_name1,0) AND
498 nvl(column_value1,0) = nvl(X_column_value1,0) AND
499 nvl(column_name2,0) = nvl(X_column_name2,0) AND
500 nvl(column_value2,0) = nvl(X_column_value2,0) AND
501 nvl(column_name3,0) = nvl(X_column_name3,0) AND
502 nvl(column_value3,0) = nvl(X_column_value3,0) AND
503 nvl(column_name4,0) = nvl(X_column_name4,0) AND
504 nvl(column_value4,0) = nvl(X_column_value4,0) AND
505 nvl(column_name5,0) = nvl(X_column_name5,0) AND
506 nvl(column_value5,0) = nvl(X_column_value5,0) AND
507 nvl(column_name6,0) = nvl(X_column_name6,0) AND
508 nvl(column_value6,0) = nvl(X_column_value6,0) AND
509 nvl(column_name7,0) = nvl(X_column_name7,0) AND
510 nvl(column_value7,0) = nvl(X_column_value7,0) AND
511 nvl(column_name8,0) = nvl(X_column_name8,0) AND
512 nvl(column_value8,0) = nvl(X_column_value8,0) AND
513 nvl(column_name9,0) = nvl(X_column_name9,0) AND
514 nvl(column_value9,0) = nvl(X_column_value9,0) AND
515 nvl(column_name10,0) = nvl(X_column_name10,0) AND
516 nvl(column_value10,0) = nvl(X_column_value10,0);
517 l_enable_flag gma_procdata_wf.enable_flag%type;
518 BEGIN
519 l_enable_flag :='Z';
520 IF (FND_PROFILE.DEFINED ('SY$WF_DELIMITER')) THEN
521 l_delimiter := FND_PROFILE.VALUE ('SY$WF_DELIMITER');
522 ELSE
523 l_enable_flag := 'E';
524 RETURN l_enable_flag ;
525 END IF;
526
527 IF l_delimiter is NULL THEN
528 l_enable_flag := 'E';
529 RETURN l_enable_flag ;
530 END IF;
531
532 /* Initializing the column count */
533 l_column_count := 0;
534 /* Populating the column name according to the hierarchy */
535 OPEN Cur_Actcol_wf(p_wf_item_type,p_process_name);
536 LOOP
537 Fetch Cur_Actcol_wf into l_temp_col_name;
538 IF Cur_Actcol_WF%FOUND THEN
539 l_column_count := l_column_count + 1;
540 IF l_column_count = 1 THEN
541 l_column_name1:=l_temp_col_name;
542 ELSIF l_column_count = 2 THEN
543 l_column_name2:=l_temp_col_name;
544 ELSIF l_column_count = 3 THEN
545 l_column_name3:=l_temp_col_name;
546 ELSIF l_column_count = 4 THEN
547 l_column_name4:=l_temp_col_name;
548 ELSIF l_column_count = 5 THEN
549 l_column_name5:=l_temp_col_name;
550 ELSIF l_column_count = 6 THEN
551 l_column_name6:=l_temp_col_name;
552 ELSIF l_column_count = 7 THEN
553 l_column_name7:=l_temp_col_name;
554 ELSIF l_column_count = 8 THEN
555 l_column_name8:=l_temp_col_name;
556 ELSIF l_column_count = 9 THEN
557 l_column_name9:=l_temp_col_name;
558 ELSIF l_column_count = 10 THEN
559 l_column_name10:=l_temp_col_name;
560 END IF;
561 ELSE
562 EXIT;
563 END IF;
564 END LOOP;
565 CLOSE Cur_Actcol_wf;
566
567 /* Initializing parameter count */
568 l_parameter_count := 0;
569
570 /* Setting Column Count to Where clause search count */
571 l_search_count:=l_column_count;
572
573 l_datastring:=p_datastring;
574 /* Start processing the String */
575
576 LOOP
577 IF l_datastring IS NOT NULL THEN
578 l_parameter_count:=l_parameter_count+1;
579 IF (instr(l_datastring,l_delimiter,1,1) <> 0) THEN
580 l_col_name_value := substr(l_datastring,1,instr(l_datastring,l_delimiter,1,1)-1);
581 l_datastring :=substr(l_datastring,instr(l_datastring,l_delimiter,1,1)+1);
582 ELSE
583 l_col_name_value:=l_datastring;
584 l_datastring:=NULL;
585 END IF;
586
587 /* Checking for the column name and assigning the Value to the column */
588 l_temp_col_name := substr(l_col_name_value,1,instr(l_col_name_value,'=',1,1)-1);
589 l_temp_col_value:= substr(l_col_name_value,instr(l_col_name_value,'=',1,1)+1);
590 /* Assign the column value accordingly */
591
592 IF l_temp_col_name = l_column_name1 THEN
593 l_column_value1:=l_temp_col_value;
594 temp_column_value1:=l_temp_col_value;
595 ELSIF l_temp_col_name = l_column_name2 THEN
596 l_column_value2:=l_temp_col_value;
597 temp_column_value2:=l_temp_col_value;
598 ELSIF l_temp_col_name = l_column_name3 THEN
599 l_column_value3:=l_temp_col_value;
600 temp_column_value3:=l_temp_col_value;
601 ELSIF l_temp_col_name = l_column_name4 THEN
602 l_column_value4:=l_temp_col_value;
603 temp_column_value4:=l_temp_col_value;
604 ELSIF l_temp_col_name = l_column_name5 THEN
605 l_column_value5:=l_temp_col_value;
606 temp_column_value5:=l_temp_col_value;
607 ELSIF l_temp_col_name = l_column_name6 THEN
608 l_column_value6:=l_temp_col_value;
609 temp_column_value6:=l_temp_col_value;
610 ELSIF l_temp_col_name = l_column_name7 THEN
611 l_column_value7:=l_temp_col_value;
612 temp_column_value7:=l_temp_col_value;
613 ELSIF l_temp_col_name = l_column_name8 THEN
614 l_column_value8:=l_temp_col_value;
615 temp_column_value8:=l_temp_col_value;
616 ELSIF l_temp_col_name = l_column_name9 THEN
617 l_column_value9:=l_temp_col_value;
618 temp_column_value9:=l_temp_col_value;
619 ELSIF l_temp_col_name = l_column_name10 THEN
620 l_column_value10:=l_temp_col_value;
621 temp_column_value10:=l_temp_col_value;
622 END IF;
623
624 ELSE
625 EXIT;
626 END IF;
627 END LOOP;
628 /* Check for the passed parameters */
629 IF l_column_count <> l_parameter_count THEN
630 l_enable_flag := 'E';
631 RETURN l_enable_flag ;
632 END IF;
633
634
635
636 /* Fetch the details using cursor Using Bottom Up Approach */
637 LOOP
638 IF l_search_count > 0 THEN
639 OPEN Cur_appr_req( p_wf_item_type,p_process_name,
640 l_column_name1,l_column_value1,
641 l_column_name2,l_column_value2,
642 l_column_name3,l_column_value3,
643 l_column_name4,l_column_value4,
644 l_column_name5,l_column_value5,
645 l_column_name6,l_column_value6,
646 l_column_name7,l_column_value7,
647 l_column_name8,l_column_value8,
648 l_column_name9,l_column_value9,
649 l_column_name10,l_column_value10);
650 FETCH cur_appr_req into l_enable_flag;
651 IF cur_appr_req%FOUND THEN
652 CLOSE Cur_appr_req;
653 EXIT;
654 ELSE
655 /* Make the last column value in hierarchy NULL */
656 IF l_search_count = 10 THEN
657 l_column_value10:=NULL;
658 ELSIF l_search_count = 9 THEN
659 l_column_value9:=NULL;
660 ELSIF l_search_count = 8 THEN
661 l_column_value8:=NULL;
662 ELSIF l_search_count = 7 THEN
663 l_column_value7:=NULL;
664 ELSIF l_search_count = 6 THEN
665 l_column_value6:=NULL;
666 ELSIF l_search_count = 5 THEN
667 l_column_value5:=NULL;
668 ELSIF l_search_count = 4 THEN
669 l_column_value4:=NULL;
670 ELSIF l_search_count = 3 THEN
671 l_column_value3:=NULL;
672 ELSIF l_search_count = 2 THEN
673 l_column_value2:=NULL;
674 ELSIF l_search_count = 1 THEN
675 l_column_value1:=NULL;
676 END IF;
677 l_search_count:=l_search_count-1;
678 CLOSE Cur_appr_req;
679 END IF;
680 ELSE
681 EXIT;
682 END IF;
683 END LOOP;
684
685
686
687 IF l_enable_flag not in ('Y','N') THEN
688 /* Re assigning the column values */
689 l_column_value1 :=temp_column_value1;
690 l_column_value2 :=temp_column_value2;
691 l_column_value3 :=temp_column_value3;
692 l_column_value4 :=temp_column_value4;
693 l_column_value5 :=temp_column_value5;
694 l_column_value6 :=temp_column_value6;
695 l_column_value7 :=temp_column_value7;
696 l_column_value8 :=temp_column_value8;
697 l_column_value9 :=temp_column_value9;
698 l_column_value10:=temp_column_value10;
699
700 /* Initilizing the Search count to start from first column in hierarchy */
701 l_search_count:=1;
702
703 /* Fetch the details using cursor Using Top Down Approach */
704
705 LOOP
706 IF l_search_count <= 10 THEN
707
708 IF l_search_count = 10 THEN
709 l_column_value10:=NULL;
710 ELSIF l_search_count = 9 THEN
711 l_column_value9:=NULL;
712 ELSIF l_search_count = 8 THEN
713 l_column_value8:=NULL;
714 ELSIF l_search_count = 7 THEN
715 l_column_value7:=NULL;
716 ELSIF l_search_count = 6 THEN
717 l_column_value6:=NULL;
718 ELSIF l_search_count = 5 THEN
719 l_column_value5:=NULL;
720 ELSIF l_search_count = 4 THEN
721 l_column_value4:=NULL;
722 ELSIF l_search_count = 3 THEN
723 l_column_value3:=NULL;
724 ELSIF l_search_count = 2 THEN
725 l_column_value2:=NULL;
726 ELSIF l_search_count = 1 THEN
727 l_column_value1:=NULL;
728 END IF;
729
730 OPEN Cur_appr_req(p_wf_item_type,p_process_name,
731 l_column_name1,l_column_value1, l_column_name2,l_column_value2,
732 l_column_name3,l_column_value3, l_column_name4,l_column_value4,
733 l_column_name5,l_column_value5, l_column_name6,l_column_value6,
734 l_column_name7,l_column_value7, l_column_name8,l_column_value8,
735 l_column_name9,l_column_value9, l_column_name10,l_column_value10);
736 FETCH cur_appr_req into l_enable_flag;
737 IF cur_appr_req%FOUND THEN
738 CLOSE Cur_appr_req;
739 EXIT;
740 ELSE
741 /* Make the NEXT column value in hierarchy NULL */
742 l_search_count:=l_search_count+1;
743 CLOSE Cur_appr_req;
744 END IF;
745 ELSE
746 EXIT;
747 END IF;
748 END LOOP;
749 END IF;
750 RETURN l_enable_flag ;
751 EXCEPTION
752 WHEN no_data_found THEN
753 RETURN l_enable_flag ;
754 end check_process_approval_req;
755
756 FUNCTION check_activity_approval_req(p_wf_item_type VARCHAR2,
757 p_Process_name VARCHAR2,
758 p_activity_name IN varchar2,
759 p_datastring VARCHAR2) RETURN VARCHAR2 IS
760 l_column_name1 GMA_ACTDATA_WF.COLUMN_NAME1%TYPE DEFAULT NULL;
761 l_column_value1 GMA_ACTDATA_WF.COLUMN_VALUE1%TYPE DEFAULT NULL;
762 l_column_name2 GMA_ACTDATA_WF.COLUMN_NAME2%TYPE DEFAULT NULL;
763 l_column_value2 GMA_ACTDATA_WF.COLUMN_VALUE2%TYPE DEFAULT NULL;
764 l_column_name3 GMA_ACTDATA_WF.COLUMN_NAME3%TYPE DEFAULT NULL;
765 l_column_value3 GMA_ACTDATA_WF.COLUMN_VALUE3%TYPE DEFAULT NULL;
766 l_column_name4 GMA_ACTDATA_WF.COLUMN_NAME4%TYPE DEFAULT NULL;
767 l_column_value4 GMA_ACTDATA_WF.COLUMN_VALUE4%TYPE DEFAULT NULL;
768 l_column_name5 GMA_ACTDATA_WF.COLUMN_NAME5%TYPE DEFAULT NULL;
769 l_column_value5 GMA_ACTDATA_WF.COLUMN_VALUE5%TYPE DEFAULT NULL;
770 l_column_name6 GMA_ACTDATA_WF.COLUMN_NAME6%TYPE DEFAULT NULL;
771 l_column_value6 GMA_ACTDATA_WF.COLUMN_VALUE6%TYPE DEFAULT NULL;
772 l_column_name7 GMA_ACTDATA_WF.COLUMN_NAME7%TYPE DEFAULT NULL;
773 l_column_value7 GMA_ACTDATA_WF.COLUMN_VALUE7%TYPE DEFAULT NULL;
774 l_column_name8 GMA_ACTDATA_WF.COLUMN_NAME8%TYPE DEFAULT NULL;
775 l_column_value8 GMA_ACTDATA_WF.COLUMN_VALUE8%TYPE DEFAULT NULL;
776 l_column_name9 GMA_ACTDATA_WF.COLUMN_NAME9%TYPE DEFAULT NULL;
777 l_column_value9 GMA_ACTDATA_WF.COLUMN_VALUE9%TYPE DEFAULT NULL;
778 l_column_name10 GMA_ACTDATA_WF.COLUMN_NAME10%TYPE DEFAULT NULL;
779 l_column_value10 GMA_ACTDATA_WF.COLUMN_VALUE10%TYPE DEFAULT NULL;
780
781 /* Temperory Place holders in intermediate search */
782 Temp_column_value1 GMA_ACTDATA_WF.COLUMN_VALUE1%TYPE DEFAULT NULL;
783 Temp_column_value2 GMA_ACTDATA_WF.COLUMN_VALUE2%TYPE DEFAULT NULL;
784 Temp_column_value3 GMA_ACTDATA_WF.COLUMN_VALUE3%TYPE DEFAULT NULL;
785 Temp_column_value4 GMA_ACTDATA_WF.COLUMN_VALUE4%TYPE DEFAULT NULL;
786 Temp_column_value5 GMA_ACTDATA_WF.COLUMN_VALUE5%TYPE DEFAULT NULL;
787 Temp_column_value6 GMA_ACTDATA_WF.COLUMN_VALUE6%TYPE DEFAULT NULL;
788 Temp_column_value7 GMA_ACTDATA_WF.COLUMN_VALUE7%TYPE DEFAULT NULL;
789 Temp_column_value8 GMA_ACTDATA_WF.COLUMN_VALUE8%TYPE DEFAULT NULL;
790 Temp_column_value9 GMA_ACTDATA_WF.COLUMN_VALUE9%TYPE DEFAULT NULL;
791 Temp_column_value10 GMA_ACTDATA_WF.COLUMN_VALUE10%TYPE DEFAULT NULL;
792
793
794 /* To count number of Columns */
795 l_column_count NUMBER;
796
797 /* To count the number of parameters passed */
798 l_parameter_count NUMBER;
799
800 /* To Count the number of searches for where clause loop */
801 l_search_count NUMBER;
802 /* To get the default delimiter */
803 l_delimiter varchar2(10);
804
805 /* To get the temperory column name for the cursor */
806
807 l_temp_col_name GMA_ACTDATA_WF.COLUMN_NAME1%TYPE;
808 l_temp_col_value GMA_ACTDATA_WF.COLUMN_VALUE1%TYPE;
809
810
811 l_col_name_value VARCHAR2(100);
812
813 l_activity_id NUMBER;
814
815 l_parsing_sql VARCHAR2(4000);
816
817 l_where_clause VARCHAR2(4000);
818
819 l_loop_counter NUMBER;
820
821 /* To check the fetched rows */
822
823 l_fetched_rows BOOLEAN;
824
825 /* Variables for Dynamic SQL */
826
827 l_dbms_cur integer;
828 l_Rows_processed integer;
829
830 /* Temperory string Holder */
831 l_datastring VARCHAR2(4000);
832
833 /* Cursor to get the column hierarchy for a given activity */
834
835 CURSOR Cur_Actcol_wf(X_activity_id NUMBER) IS
836 SELECT COLUMN_NAME
837 FROM gma_actcol_wf_b
838 WHERE activity_id = X_activity_id
839 ORDER BY Column_hierarchy;
840
841 /* Cursot to fetch a role for the given attributes */
842
843 CURSOR Cur_find_role(X_activity_id NUMBER,
844 X_column_name1 VARCHAR2,
845 X_column_value1 VARCHAR2,
846 X_column_name2 VARCHAR2,
847 X_column_value2 VARCHAR2,
848 X_column_name3 VARCHAR2,
849 X_column_value3 VARCHAR2,
850 X_column_name4 VARCHAR2,
851 X_column_value4 VARCHAR2,
852 X_column_name5 VARCHAR2,
853 X_column_value5 VARCHAR2,
854 X_column_name6 VARCHAR2,
855 X_column_value6 VARCHAR2,
856 X_column_name7 VARCHAR2,
857 X_column_value7 VARCHAR2,
858 X_column_name8 VARCHAR2,
859 X_column_value8 VARCHAR2,
860 X_column_name9 VARCHAR2,
861 X_column_value9 VARCHAR2,
862 X_column_name10 VARCHAR2,
863 X_column_value10 VARCHAR2) IS
864 SELECT ENABLE_FLAG
865 FROM gma_actdata_wf
866 WHERE activity_id = X_activity_id AND
867 nvl(column_name1,0) = nvl(X_column_name1,0) AND
868 nvl(column_value1,0) = nvl(X_column_value1,0) AND
869 nvl(column_name2,0) = nvl(X_column_name2,0) AND
870 nvl(column_value2,0) = nvl(X_column_value2,0) AND
871 nvl(column_name3,0) = nvl(X_column_name3,0) AND
872 nvl(column_value3,0) = nvl(X_column_value3,0) AND
873 nvl(column_name4,0) = nvl(X_column_name4,0) AND
874 nvl(column_value4,0) = nvl(X_column_value4,0) AND
875 nvl(column_name5,0) = nvl(X_column_name5,0) AND
876 nvl(column_value5,0) = nvl(X_column_value5,0) AND
877 nvl(column_name6,0) = nvl(X_column_name6,0) AND
878 nvl(column_value6,0) = nvl(X_column_value6,0) AND
879 nvl(column_name7,0) = nvl(X_column_name7,0) AND
880 nvl(column_value7,0) = nvl(X_column_value7,0) AND
881 nvl(column_name8,0) = nvl(X_column_name8,0) AND
882 nvl(column_value8,0) = nvl(X_column_value8,0) AND
883 nvl(column_name9,0) = nvl(X_column_name9,0) AND
884 nvl(column_value9,0) = nvl(X_column_value9,0) AND
885 nvl(column_name10,0) = nvl(X_column_name10,0) AND
886 nvl(column_value10,0) = nvl(X_column_value10,0);
887 l_enable_flag gma_procdata_wf.enable_flag%type;
888 BEGIN
889 l_enable_flag :='Y';
890 IF (FND_PROFILE.DEFINED ('SY$WF_DELIMITER')) THEN
891 l_delimiter := FND_PROFILE.VALUE ('SY$WF_DELIMITER');
892 ELSE
893 l_enable_flag := 'E';
894 END IF;
895
896 IF l_delimiter is NULL THEN
897 l_enable_flag := 'E';
898 END IF;
899
900 SELECT activity_id into l_activity_id
901 FROM gma_actdef_wf
902 WHERE wf_item_type = p_wf_item_type AND
903 process_name = p_process_name AND
904 activity_name = p_activity_name;
905
906 /* Initializing the column count */
907 l_column_count := 0;
908 /* Populating the column name according to the hierarchy */
909 OPEN Cur_Actcol_wf(l_activity_id);
910 LOOP
911 Fetch Cur_Actcol_wf into l_temp_col_name;
912 IF Cur_Actcol_WF%FOUND THEN
913 l_column_count := l_column_count + 1;
914 IF l_column_count = 1 THEN
915 l_column_name1:=l_temp_col_name;
916 ELSIF l_column_count = 2 THEN
917 l_column_name2:=l_temp_col_name;
918 ELSIF l_column_count = 3 THEN
919 l_column_name3:=l_temp_col_name;
920 ELSIF l_column_count = 4 THEN
921 l_column_name4:=l_temp_col_name;
922 ELSIF l_column_count = 5 THEN
923 l_column_name5:=l_temp_col_name;
924 ELSIF l_column_count = 6 THEN
925 l_column_name6:=l_temp_col_name;
926 ELSIF l_column_count = 7 THEN
927 l_column_name7:=l_temp_col_name;
928 ELSIF l_column_count = 8 THEN
929 l_column_name8:=l_temp_col_name;
930 ELSIF l_column_count = 9 THEN
931 l_column_name9:=l_temp_col_name;
932 ELSIF l_column_count = 10 THEN
933 l_column_name10:=l_temp_col_name;
934 END IF;
935 ELSE
936 EXIT;
937 END IF;
938 END LOOP;
939 CLOSE Cur_Actcol_wf;
940
941 /* Initializing parameter count */
942 l_parameter_count := 0;
943
944 /* Setting Column Count to Where clause search count */
945 l_search_count:=l_column_count;
946
947 l_datastring:=p_datastring;
948 /* Start processing the String */
949
950 LOOP
951 IF l_datastring IS NOT NULL THEN
952 l_parameter_count:=l_parameter_count+1;
953 IF (instr(l_datastring,l_delimiter,1,1) <> 0) THEN
954 l_col_name_value := substr(l_datastring,1,instr(l_datastring,l_delimiter,1,1)-1);
955 l_datastring :=substr(l_datastring,instr(l_datastring,l_delimiter,1,1)+1);
956 ELSE
957 l_col_name_value:=l_datastring;
958 l_datastring:=NULL;
959 END IF;
960
961 /* Checking for the column name and assigning the Value to the column */
962 l_temp_col_name := substr(l_col_name_value,1,instr(l_col_name_value,'=',1,1)-1);
963 l_temp_col_value:= substr(l_col_name_value,instr(l_col_name_value,'=',1,1)+1);
964 /* Assign the column value accordingly */
965
966 IF l_temp_col_name = l_column_name1 THEN
967 l_column_value1:=l_temp_col_value;
968 temp_column_value1:=l_temp_col_value;
969 ELSIF l_temp_col_name = l_column_name2 THEN
970 l_column_value2:=l_temp_col_value;
971 temp_column_value2:=l_temp_col_value;
972 ELSIF l_temp_col_name = l_column_name3 THEN
973 l_column_value3:=l_temp_col_value;
974 temp_column_value3:=l_temp_col_value;
975 ELSIF l_temp_col_name = l_column_name4 THEN
976 l_column_value4:=l_temp_col_value;
977 temp_column_value4:=l_temp_col_value;
978 ELSIF l_temp_col_name = l_column_name5 THEN
979 l_column_value5:=l_temp_col_value;
980 temp_column_value5:=l_temp_col_value;
981 ELSIF l_temp_col_name = l_column_name6 THEN
982 l_column_value6:=l_temp_col_value;
983 temp_column_value6:=l_temp_col_value;
984 ELSIF l_temp_col_name = l_column_name7 THEN
985 l_column_value7:=l_temp_col_value;
986 temp_column_value7:=l_temp_col_value;
987 ELSIF l_temp_col_name = l_column_name8 THEN
988 l_column_value8:=l_temp_col_value;
989 temp_column_value8:=l_temp_col_value;
990 ELSIF l_temp_col_name = l_column_name9 THEN
991 l_column_value9:=l_temp_col_value;
992 temp_column_value9:=l_temp_col_value;
993 ELSIF l_temp_col_name = l_column_name10 THEN
994 l_column_value10:=l_temp_col_value;
995 temp_column_value10:=l_temp_col_value;
996 END IF;
997
998 ELSE
999 EXIT;
1000 END IF;
1001 END LOOP;
1002 /* Check for the passed parameters */
1003 IF l_column_count <> l_parameter_count THEN
1004 l_enable_flag := 'E';
1005 END IF;
1006
1007
1008
1009 /* Fetch the details using cursor Using Bottom Up Approach */
1010 LOOP
1011 IF l_search_count > 0 THEN
1012 OPEN Cur_find_role(l_activity_id ,
1013 l_column_name1,l_column_value1,
1014 l_column_name2,l_column_value2,
1015 l_column_name3,l_column_value3,
1016 l_column_name4,l_column_value4,
1017 l_column_name5,l_column_value5,
1018 l_column_name6,l_column_value6,
1019 l_column_name7,l_column_value7,
1020 l_column_name8,l_column_value8,
1021 l_column_name9,l_column_value9,
1022 l_column_name10,l_column_value10);
1023 FETCH cur_find_role into l_enable_flag ;
1024 IF cur_find_role%FOUND THEN
1025 CLOSE Cur_find_role;
1026 EXIT;
1027 ELSE
1028 /* Make the last column value in hierarchy NULL */
1029 IF l_search_count = 10 THEN
1030 l_column_value10:=NULL;
1031 ELSIF l_search_count = 9 THEN
1032 l_column_value9:=NULL;
1033 ELSIF l_search_count = 8 THEN
1034 l_column_value8:=NULL;
1035 ELSIF l_search_count = 7 THEN
1036 l_column_value7:=NULL;
1037 ELSIF l_search_count = 6 THEN
1038 l_column_value6:=NULL;
1039 ELSIF l_search_count = 5 THEN
1040 l_column_value5:=NULL;
1041 ELSIF l_search_count = 4 THEN
1042 l_column_value4:=NULL;
1043 ELSIF l_search_count = 3 THEN
1044 l_column_value3:=NULL;
1045 ELSIF l_search_count = 2 THEN
1046 l_column_value2:=NULL;
1047 ELSIF l_search_count = 1 THEN
1048 l_column_value1:=NULL;
1049 END IF;
1050 l_search_count:=l_search_count-1;
1051 CLOSE Cur_find_role;
1052 END IF;
1053 ELSE
1054 EXIT;
1055 END IF;
1056 END LOOP;
1057
1058
1059
1060 IF l_enable_flag = 'E' THEN
1061 /* Re assigning the column values */
1062 l_column_value1 :=temp_column_value1;
1063 l_column_value2 :=temp_column_value2;
1064 l_column_value3 :=temp_column_value3;
1065 l_column_value4 :=temp_column_value4;
1066 l_column_value5 :=temp_column_value5;
1067 l_column_value6 :=temp_column_value6;
1068 l_column_value7 :=temp_column_value7;
1069 l_column_value8 :=temp_column_value8;
1070 l_column_value9 :=temp_column_value9;
1071 l_column_value10:=temp_column_value10;
1072
1073 /* Initilizing the Search count to start from first column in hierarchy */
1074 l_search_count:=1;
1075
1076 /* Fetch the details using cursor Using Top Down Approach */
1077
1078 LOOP
1079 IF l_search_count <= 10 THEN
1080
1081 IF l_search_count = 10 THEN
1082 l_column_value10:=NULL;
1083 ELSIF l_search_count = 9 THEN
1084 l_column_value9:=NULL;
1085 ELSIF l_search_count = 8 THEN
1086 l_column_value8:=NULL;
1087 ELSIF l_search_count = 7 THEN
1088 l_column_value7:=NULL;
1089 ELSIF l_search_count = 6 THEN
1090 l_column_value6:=NULL;
1091 ELSIF l_search_count = 5 THEN
1092 l_column_value5:=NULL;
1093 ELSIF l_search_count = 4 THEN
1094 l_column_value4:=NULL;
1095 ELSIF l_search_count = 3 THEN
1096 l_column_value3:=NULL;
1097 ELSIF l_search_count = 2 THEN
1098 l_column_value2:=NULL;
1099 ELSIF l_search_count = 1 THEN
1100 l_column_value1:=NULL;
1101 END IF;
1102
1103 OPEN Cur_find_role(l_activity_id ,
1104 l_column_name1,l_column_value1, l_column_name2,l_column_value2,
1105 l_column_name3,l_column_value3, l_column_name4,l_column_value4,
1106 l_column_name5,l_column_value5, l_column_name6,l_column_value6,
1107 l_column_name7,l_column_value7, l_column_name8,l_column_value8,
1108 l_column_name9,l_column_value9, l_column_name10,l_column_value10);
1109 FETCH cur_find_role into l_enable_flag ;
1110 IF cur_find_role%FOUND THEN
1111 CLOSE Cur_find_role;
1112 EXIT;
1113 ELSE
1114 /* Make the NEXT column value in hierarchy NULL */
1115 l_search_count:=l_search_count+1;
1116 CLOSE Cur_find_role;
1117 END IF;
1118 ELSE
1119 EXIT;
1120 END IF;
1121 END LOOP;
1122 END IF;
1123 RETURN l_enable_flag;
1124 EXCEPTION
1125 WHEN no_data_found THEN
1126 l_enable_flag :='E';
1127 RETURN l_enable_flag;
1128 end check_activity_approval_req;
1129 /******************************************************************************************/
1130 FUNCTION check_process_enabled(p_wf_item_type VARCHAR2,
1131 p_Process_name VARCHAR2) RETURN BOOLEAN IS
1132 l_enable_flag GMA_PROCDEF_WF.enable_flag%TYPE;
1133 BEGIN
1134 SELECT enable_flag INTO l_enable_flag
1135 FROM GMA_PROCDEF_WF
1136 WHERE wf_item_type = p_wf_item_type AND
1137 process_name = p_process_name;
1138 IF l_enable_flag = 'Y' THEN
1139 RETURN TRUE;
1140 ELSE
1141 RETURN FALSE;
1142 END IF;
1143 END check_process_enabled;
1144 /***************************************************************************************/
1145 /*********************************************************************************/
1146
1147 PROCEDURE WF_GET_CONTORL_PARAMS(P_WF_ITEM_TYPE IN VARCHAR2,
1148 P_PROCESS_NAME IN VARCHAR2,
1149 P_ACTIVITY_NAME IN VARCHAR2,
1150 P_TABLE_NAME IN VARCHAR2,
1151 P_WHERE_CLAUSE IN VARCHAR2,
1152 P_DATASTRING OUT NOCOPY VARCHAR2,
1153 P_WFSTRING OUT NOCOPY VARCHAR2) IS
1154 l_sql_stmt VARCHAR2(4000);
1155 l_where_position Integer;
1156 l_key_Table Integer;
1157 l_column_name1 GMA_ACTDATA_WF.COLUMN_NAME1%TYPE DEFAULT NULL;
1158 l_column_value1 GMA_ACTDATA_WF.COLUMN_VALUE1%TYPE DEFAULT NULL;
1159 l_column_name2 GMA_ACTDATA_WF.COLUMN_NAME2%TYPE DEFAULT NULL;
1160 l_column_value2 GMA_ACTDATA_WF.COLUMN_VALUE2%TYPE DEFAULT NULL;
1161 l_column_name3 GMA_ACTDATA_WF.COLUMN_NAME3%TYPE DEFAULT NULL;
1162 l_column_value3 GMA_ACTDATA_WF.COLUMN_VALUE3%TYPE DEFAULT NULL;
1163 l_column_name4 GMA_ACTDATA_WF.COLUMN_NAME4%TYPE DEFAULT NULL;
1164 l_column_value4 GMA_ACTDATA_WF.COLUMN_VALUE4%TYPE DEFAULT NULL;
1165 l_column_name5 GMA_ACTDATA_WF.COLUMN_NAME5%TYPE DEFAULT NULL;
1166 l_column_value5 GMA_ACTDATA_WF.COLUMN_VALUE5%TYPE DEFAULT NULL;
1167 l_column_name6 GMA_ACTDATA_WF.COLUMN_NAME6%TYPE DEFAULT NULL;
1168 l_column_value6 GMA_ACTDATA_WF.COLUMN_VALUE6%TYPE DEFAULT NULL;
1169 l_column_name7 GMA_ACTDATA_WF.COLUMN_NAME7%TYPE DEFAULT NULL;
1170 l_column_value7 GMA_ACTDATA_WF.COLUMN_VALUE7%TYPE DEFAULT NULL;
1171 l_column_name8 GMA_ACTDATA_WF.COLUMN_NAME8%TYPE DEFAULT NULL;
1172 l_column_value8 GMA_ACTDATA_WF.COLUMN_VALUE8%TYPE DEFAULT NULL;
1173 l_column_name9 GMA_ACTDATA_WF.COLUMN_NAME9%TYPE DEFAULT NULL;
1174 l_column_value9 GMA_ACTDATA_WF.COLUMN_VALUE9%TYPE DEFAULT NULL;
1175 l_column_name10 GMA_ACTDATA_WF.COLUMN_NAME10%TYPE DEFAULT NULL;
1176 l_column_value10 GMA_ACTDATA_WF.COLUMN_VALUE10%TYPE DEFAULT NULL;
1177 l_column_prompt1 GMA_ACTCOL_WF_TL.COLUMN_PROMPT%TYPE DEFAULT NULL;
1178 l_column_prompt2 GMA_ACTCOL_WF_TL.COLUMN_PROMPT%TYPE DEFAULT NULL;
1179 l_column_prompt3 GMA_ACTCOL_WF_TL.COLUMN_PROMPT%TYPE DEFAULT NULL;
1180 l_column_prompt4 GMA_ACTCOL_WF_TL.COLUMN_PROMPT%TYPE DEFAULT NULL;
1181 l_column_prompt5 GMA_ACTCOL_WF_TL.COLUMN_PROMPT%TYPE DEFAULT NULL;
1182 l_column_prompt6 GMA_ACTCOL_WF_TL.COLUMN_PROMPT%TYPE DEFAULT NULL;
1183 l_column_prompt7 GMA_ACTCOL_WF_TL.COLUMN_PROMPT%TYPE DEFAULT NULL;
1184 l_column_prompt8 GMA_ACTCOL_WF_TL.COLUMN_PROMPT%TYPE DEFAULT NULL;
1185 l_column_prompt9 GMA_ACTCOL_WF_TL.COLUMN_PROMPT%TYPE DEFAULT NULL;
1186 l_column_prompt10 GMA_ACTCOL_WF_TL.COLUMN_PROMPT%TYPE DEFAULT NULL;
1187
1188 l_activity_id GMA_ACTDATA_WF.ACTIVITY_ID%TYPE;
1189 /* Cursor to get the column list for a given activity */
1190 V_cursor_id INTEGER;
1191 v_dummy INTEGER;
1192 Data_string Varchar2(2500);
1193 wf_Data_string Varchar2(2500);
1194 l_temp_col_name GMA_ACTDATA_WF.COLUMN_NAME1%TYPE;
1195 l_temp_prompt GMA_ACTCOL_WF_TL.COLUMN_PROMPT%TYPE;
1196 CURSOR Cur_Actcol_wf IS
1197 SELECT COLUMN_NAME,COLUMN_PROMPT
1198 FROM gma_actcol_wf_vl
1199 WHERE activity_id = l_activity_id
1200 ORDER BY Column_hierarchy;
1201 CURSOR Cur_Proccol_wf IS
1202 SELECT COLUMN_NAME,COLUMN_PROMPT
1203 FROM gma_proccol_wf_vl
1204 WHERE WF_ITEM_TYPE = P_WF_ITEM_TYPE AND
1205 PROCESS_NAME = p_PROCESS_NAME
1206 ORDER BY Column_hierarchy;
1207 l_column_count Integer :=0;
1208 l_no_rows Integer :=0;
1209 l_col_vals Integer :=0;
1210 error_message VARCHAR2(2000);
1211 /* To get the default delimiter */
1212 l_delimiter varchar2(10);
1213 WF_ERROR Exception;
1214 BEGIN
1215 IF p_where_clause is null
1216 Then
1217 data_string:= 'WHERE_ERROR';
1218 Raise WF_ERROR;
1219 END IF;
1220 IF P_table_name IS NULL
1221 THEN
1222 data_string:= 'TABLE_ERROR';
1223 Raise WF_ERROR;
1224 END IF;
1225 IF (FND_PROFILE.DEFINED ('SY$WF_DELIMITER')) THEN
1226 l_delimiter := FND_PROFILE.VALUE ('SY$WF_DELIMITER');
1227 ELSE
1228 data_string:= 'PROFILE_ERROR';
1229 Raise WF_ERROR;
1230 END IF;
1231
1232 IF l_delimiter is NULL THEN
1233 data_string:= 'PROFILE_ERROR';
1234 Raise WF_ERROR;
1235 END IF;
1236 IF P_ACTIVITY_NAME IS NULL THEN
1237 SELECT column_data_sql into l_sql_stmt
1238 FROM GMA_PROCDEF_WF
1239 WHERE WF_ITEM_TYPE = P_WF_ITEM_TYPE AND
1240 PROCESS_NAME = p_PROCESS_NAME;
1241 ELSE
1242 SELECT column_data_sql,activity_id into l_sql_stmt,l_activity_id
1243 FROM GMA_ACTDEF_WF
1244 WHERE WF_ITEM_TYPE = P_WF_ITEM_TYPE AND
1245 PROCESS_NAME = p_PROCESS_NAME AND
1246 ACTIVITY_NAME= P_ACTIVITY_NAME;
1247 END IF;
1248 l_key_table := instr(UPPER(l_sql_stmt),UPPER(p_table_name));
1249 IF nvl(l_key_table,0) = 0
1250 /* Key table is missing in SQL Statement or
1251 no SQL statement We can't proced with the workflow */
1252 THEN
1253 data_string:= 'SQL_ERROR';
1254 Raise WF_ERROR;
1255 ELSE
1256 l_where_position := instr(UPPER(l_sql_stmt),'WHERE');
1257 IF l_where_position = 0 /* No where Clause */
1258 THEN
1259 l_sql_stmt := l_sql_stmt || ' WHERE '||P_where_clause;
1260 ELSE
1261 l_sql_stmt := l_sql_stmt || ' AND '||p_where_clause;
1262 END IF;
1263 END IF;
1264 BEGIN
1265 -- Open the cursor for processing
1266 V_cursor_id := DBMS_SQL.OPEN_CURSOR;
1267
1268 -- Parse the Query
1269
1270 DBMS_SQL.PARSE(v_cursor_id,l_sql_stmt,DBMS_SQL.V7);
1271
1272 IF P_ACTIVITY_NAME IS NOT NULL THEN
1273 OPEN Cur_Actcol_wf;
1274 LOOP
1275 Fetch Cur_Actcol_wf into l_temp_col_name,l_temp_prompt;
1276 EXIT WHEN Cur_Actcol_WF%NOTFOUND;
1277 l_column_count := l_column_count + 1;
1278 IF l_column_count = 1 THEN
1279 l_column_name1 := l_temp_col_name;
1280 l_column_prompt1 := l_temp_prompt;
1281 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value1,240);
1282 ELSIF l_column_count = 2 THEN
1283 l_column_name2:=l_temp_col_name;
1284 l_column_prompt2 := l_temp_prompt;
1285 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value2,240);
1286 ELSIF l_column_count = 3 THEN
1287 l_column_name3:=l_temp_col_name;
1288 l_column_prompt3 := l_temp_prompt;
1289 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value3,240);
1290 ELSIF l_column_count = 4 THEN
1291 l_column_name4:=l_temp_col_name;
1292 l_column_prompt4 := l_temp_prompt;
1293 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value4,240);
1294 ELSIF l_column_count = 5 THEN
1295 l_column_name5:=l_temp_col_name;
1296 l_column_prompt5 := l_temp_prompt;
1297 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value5,240);
1298 ELSIF l_column_count = 6 THEN
1299 l_column_name6:=l_temp_col_name;
1300 l_column_prompt6 := l_temp_prompt;
1301 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value6,240);
1302 ELSIF l_column_count = 7 THEN
1303 l_column_name7:=l_temp_col_name;
1304 l_column_prompt7 := l_temp_prompt;
1305 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value7,240);
1306 ELSIF l_column_count = 8 THEN
1307 l_column_name8:=l_temp_col_name;
1308 l_column_prompt8 := l_temp_prompt;
1309 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value8,240);
1310 ELSIF l_column_count = 9 THEN
1311 l_column_name9:=l_temp_col_name;
1312 l_column_prompt9 := l_temp_prompt;
1313 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value9,240);
1314 ELSIF l_column_count = 10 THEN
1315 l_column_name10:=l_temp_col_name;
1316 l_column_prompt10 := l_temp_prompt;
1317 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value10,240);
1318 END IF;
1319 END LOOP;
1320 CLOSE Cur_Actcol_wf;
1321 ELSE
1322 OPEN Cur_proccol_wf;
1323 LOOP
1324 Fetch Cur_proccol_wf into l_temp_col_name,l_temp_prompt;
1325 EXIT WHEN Cur_proccol_WF%NOTFOUND;
1326 l_column_count := l_column_count + 1;
1327 IF l_column_count = 1 THEN
1328 l_column_name1:=l_temp_col_name;
1329 l_column_prompt1 := l_temp_prompt;
1330 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value1,240);
1331 ELSIF l_column_count = 2 THEN
1332 l_column_name2:=l_temp_col_name;
1333 l_column_prompt2 := l_temp_prompt;
1334 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value2,240);
1335 ELSIF l_column_count = 3 THEN
1336 l_column_name3:=l_temp_col_name;
1337 l_column_prompt3 := l_temp_prompt;
1338 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value3,240);
1339 ELSIF l_column_count = 4 THEN
1340 l_column_name4:=l_temp_col_name;
1341 l_column_prompt4 := l_temp_prompt;
1342 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value4,240);
1343 ELSIF l_column_count = 5 THEN
1344 l_column_name5:=l_temp_col_name;
1345 l_column_prompt5 := l_temp_prompt;
1346 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value5,240);
1347 ELSIF l_column_count = 6 THEN
1348 l_column_name6:=l_temp_col_name;
1349 l_column_prompt6 := l_temp_prompt;
1350 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value6,240);
1351 ELSIF l_column_count = 7 THEN
1352 l_column_name7:=l_temp_col_name;
1353 l_column_prompt8 := l_temp_prompt;
1354 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value7,240);
1355 ELSIF l_column_count = 8 THEN
1356 l_column_name8:=l_temp_col_name;
1357 l_column_prompt8 := l_temp_prompt;
1358 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value8,240);
1359 ELSIF l_column_count = 9 THEN
1360 l_column_name9:=l_temp_col_name;
1361 l_column_prompt9 := l_temp_prompt;
1362 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value9,240);
1363 ELSIF l_column_count = 10 THEN
1364 l_column_name10:=l_temp_col_name;
1365 l_column_prompt10 := l_temp_prompt;
1366 DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor_id,l_column_count,l_column_value10,240);
1367 END IF;
1368 END LOOP;
1369 CLOSE Cur_proccol_wf;
1370 END IF;
1371 -- Execute the statement
1372 v_dummy := DBMS_SQL.EXECUTE(v_cursor_id);
1373 LOOP
1374 IF DBMS_SQL.FETCH_ROWS(v_cursor_id) = 0 THEN
1375 DBMS_SQL.CLOSE_CURSOR(v_cursor_id);
1376 IF l_no_rows > 1 THEN
1377 -- Close the cursor
1378 data_string := 'MULTI_ROWS_ERROR';
1379 RAISE WF_ERROR;
1380 END IF;
1381 EXIT;
1382 END IF;
1383 FOR l_col_vals in 1..l_column_count
1384 LOOP
1385
1386
1387 --
1388 -- Modified following code to fix bug 2478400
1389 -- Modification is chnage if condions to use l_col_vals instead of l_column_count.
1390 --
1391
1392 IF l_col_vals = 1 THEN
1393 DBMS_SQL.COLUMN_VALUE_CHAR(v_cursor_id,l_col_vals,l_column_value1);
1394 data_string := data_string ||l_column_name1||'='||trim(l_column_value1);
1395 wf_data_string := wf_data_string ||l_column_prompt1||'='||trim(l_column_value1);
1396 ELSIF l_col_vals = 2 THEN
1397 DBMS_SQL.COLUMN_VALUE_CHAR(v_cursor_id,l_col_vals,l_column_value2);
1398 data_string := data_string ||l_delimiter||l_column_name2||'='||trim(l_column_value2);
1399 wf_data_string := wf_data_string ||l_column_prompt2||'='||trim(l_column_value2);
1400 ELSIF l_col_vals = 3 THEN
1401 DBMS_SQL.COLUMN_VALUE_CHAR(v_cursor_id,l_col_vals,l_column_value3);
1402 data_string := data_string ||l_delimiter||l_column_name3||'='||trim(l_column_value3);
1403 wf_data_string := wf_data_string ||l_column_prompt3||'='||trim(l_column_value3);
1404 ELSIF l_col_vals = 4 THEN
1405 DBMS_SQL.COLUMN_VALUE_CHAR(v_cursor_id,l_col_vals,l_column_value4);
1406 data_string := data_string ||l_delimiter||l_column_name4||'='||trim(l_column_value4);
1407 wf_data_string := wf_data_string ||l_column_prompt4||'='||trim(l_column_value4);
1408 ELSIF l_col_vals = 5 THEN
1409 DBMS_SQL.COLUMN_VALUE_CHAR(v_cursor_id,l_col_vals,l_column_value5);
1410 data_string := data_string ||l_delimiter||l_column_name5||'='||trim(l_column_value5);
1411 wf_data_string := wf_data_string ||l_column_prompt5||'='||trim(l_column_value5);
1412 ELSIF l_col_vals = 6 THEN
1413 DBMS_SQL.COLUMN_VALUE_CHAR(v_cursor_id,l_col_vals,l_column_value6);
1414 data_string := data_string ||l_delimiter||l_column_name6||'='||trim(l_column_value6);
1415 wf_data_string := wf_data_string ||l_column_prompt6||'='||trim(l_column_value6);
1416 ELSIF l_col_vals = 7 THEN
1417 DBMS_SQL.COLUMN_VALUE_CHAR(v_cursor_id,l_col_vals,l_column_value7);
1418 data_string := data_string ||l_delimiter||l_column_name7||'='||trim(l_column_value7);
1419 wf_data_string := wf_data_string ||l_column_prompt7||'='||trim(l_column_value7);
1420 ELSIF l_col_vals = 8 THEN
1421 DBMS_SQL.COLUMN_VALUE_CHAR(v_cursor_id,l_col_vals,l_column_value8);
1422 wf_data_string := wf_data_string ||l_column_prompt8||'='||trim(l_column_value8);
1423 data_string := data_string ||l_delimiter||l_column_name8||'='||trim(l_column_value8);
1424 ELSIF l_col_vals = 9 THEN
1425 wf_data_string := wf_data_string ||l_column_prompt9||'='||trim(l_column_value9);
1426 DBMS_SQL.COLUMN_VALUE_CHAR(v_cursor_id,l_col_vals,l_column_value9);
1427 data_string := data_string ||l_delimiter||l_column_name9||'='||trim(l_column_value9);
1428 ELSIF l_col_vals = 10 THEN
1429 DBMS_SQL.COLUMN_VALUE_CHAR(v_cursor_id,l_col_vals,l_column_value10);
1430 wf_data_string := wf_data_string ||l_column_prompt10||'='||trim(l_column_value10);
1431 data_string := data_string ||l_delimiter||l_column_name10||'='||trim(l_column_value10);
1432 END IF;
1433 END LOOP;
1434 l_no_rows :=l_no_rows + 1;
1435 END LOOP;
1436 P_DATASTRING := data_string;
1437 P_WFSTRING := wf_data_string;
1438 EXCEPTION WHEN OTHERS THEN
1439 data_string := 'SQL_ERROR';
1440 Raise WF_ERROR;
1441 END;
1442 EXCEPTION WHEN WF_ERROR THEN
1443 BEGIN
1444 IF data_string = 'SQL_ERROR' THEN
1445 error_message := FND_MESSAGE.GET_STRING('GMA','GMA_WF_CTRL_SQL_ERR');
1446 FND_MESSAGE.SET_NAME('GMA','GMA_WF_CTRL_SQL_ERR');
1447 ELSIF data_string = 'MULTI_ROWS_ERROR' THEN
1448 error_message := FND_MESSAGE.GET_STRING('GMA','GMA_WF_CTRL_MULTI_ROW_ERR');
1449 FND_MESSAGE.SET_NAME('GMA','GMA_WF_CTRL_MULTI_ROW_ERR');
1450 ELSIF data_string = 'PROFILE_ERROR' THEN
1451 error_message := FND_MESSAGE.GET_STRING('GMA','GMA_WF_CTRL_PROF_ERR');
1452 FND_MESSAGE.SET_NAME('GMA','GMA_WF_CTRL_PROF_ERR');
1453 END IF;
1454 END;
1455 WF_CORE.CONTEXT ('gma_wfstd_p','WF_GET_CONTORL_PARAMS',P_WF_ITEM_TYPE,P_PROCESS_NAME,P_ACTIVITY_NAME,error_message);
1456 app_exception.raise_exception;
1457 WHEN OTHERS THEN
1458 WF_CORE.CONTEXT ('gma_wfstd_p','WF_GET_CONTORL_PARAMS',P_WF_ITEM_TYPE,P_PROCESS_NAME,P_ACTIVITY_NAME,SQLERRM(SQLCODE));
1459 app_exception.raise_exception;
1460 END WF_GET_CONTORL_PARAMS;
1461 END gma_wfstd_p;