[Home] [Help]
PACKAGE: APPS.WF_CACHE
Source
1 package WF_CACHE as
2 /* $Header: WFCACHES.pls 120.2 2006/02/22 16:39:05 rwunderl ship $ */
3
4 /*======================================+
5 | |
6 | Global Configuration Variables |
7 | |
8 +======================================+================================*/
9
10 ErrorOnCollision BOOLEAN := FALSE;
11
12 MaxActivities PLS_INTEGER := 10000;
13 MaxActivityAttrs PLS_INTEGER := 50000;
14 MaxActivityAttrValues PLS_INTEGER := 50000;
15 MaxItemAttributes PLS_INTEGER := 1000;
16 MaxItemAttrValues PLS_INTEGER := 1000;
17 MaxItemTypes PLS_INTEGER := 50;
18 MaxProcessActivities PLS_INTEGER := 10000;
19 MaxActivityTransitions PLS_INTEGER := 5000;
20 MaxProcessStartActivities PLS_INTEGER := 10000;
21
22 task_FAILED CONSTANT PLS_INTEGER := 1; -- WF_CACHE was not able to
23 -- complete the task.
24
25 task_SUCCESS CONSTANT PLS_INTEGER := 0; -- WF_CACHE was able to
26 -- successfully complete
27 -- the task.
28
29 TAB_Activities CONSTANT PLS_INTEGER := 1;
30 TAB_ActivityAttributes CONSTANT PLS_INTEGER := 2;
31 TAB_ActivityAttrValues CONSTANT PLS_INTEGER := 3;
32 TAB_ItemAttributes CONSTANT PLS_INTEGER := 4;
33 TAB_ItemTypes CONSTANT PLS_INTEGER := 5;
34 TAB_ProcessActivities CONSTANT PLS_INTEGER := 6;
35 TAB_NLSParameters CONSTANT PLS_INTEGER := 7;
36 TAB_ItemAttrValues CONSTANT PLS_INTEGER := 8;
37 TAB_ActivityTransitions CONSTANT PLS_INTEGER := 9;
38 TAB_ProcessStartActivities CONSTANT PLS_INTEGER := 10;
39
40
41 /*======================================+
42 | |
43 | PL/SQL Record and Table Types |
44 | |
45 +======================================+================================+
46 | The meta-data stored in the design time tables are represented here |
47 | as records. There is then a corresponding PL/SQL table of those |
48 | records. The table type definition is used by the global cache. |
49 | The record definitions are used by consumers of the cache and are |
50 | passed and received to the accessor and manipulator apis. |
51 | |
52 +=======================================================================*/
53
54 /*============================+
55 | WF_ACTIVITIES |
56 +============================*/
57
58 TYPE ActivityREC IS RECORD (
59 ITEM_TYPE VARCHAR2(8),
60 NAME VARCHAR2(30),
61 VERSION NUMBER,
62 TYPE VARCHAR2(8),
63 RERUN VARCHAR2(8),
64 EXPAND_ROLE VARCHAR2(1),
65 COST NUMBER,
66 ERROR_ITEM_TYPE VARCHAR2(8),
67 ERROR_PROCESS VARCHAR2(30),
68 FUNCTION VARCHAR2(240),
69 FUNCTION_TYPE VARCHAR2(30),
70 EVENT_NAME VARCHAR2(240),
71 MESSAGE VARCHAR2(30),
72 BEGIN_DATE DATE,
73 END_DATE DATE,
74 DIRECTION VARCHAR2(30) );
75
76
77 TYPE ActivityTAB IS TABLE OF ActivityREC index by binary_integer;
78
79
80 /*============================+
81 | WF_ACTIVITY_ATTRIBUTES |
82 +============================*/
83
84 TYPE ActivityAttributeREC IS RECORD (
85 ACTIVITY_ITEM_TYPE VARCHAR2(8),
86 ACTIVITY_NAME VARCHAR2(30),
87 ACTIVITY_VERSION NUMBER,
88 NAME VARCHAR2(30),
89 TYPE VARCHAR2(8),
90 SUBTYPE VARCHAR2(8),
91 FORMAT VARCHAR2(240) );
92
93 TYPE ActivityAttributeTAB IS TABLE OF ActivityAttributeREC
94 index by binary_integer;
95
96
97 /*============================+
98 | WF_ACTIVITY_ATTR_VALUES |
99 +============================*/
100
101 TYPE ActivityAttrValueREC IS RECORD (
102 PROCESS_ACTIVITY_ID NUMBER,
103 NAME VARCHAR2(30),
104 VALUE_TYPE VARCHAR2(8),
105 TEXT_VALUE VARCHAR2(4000),
106 NUMBER_VALUE NUMBER,
107 DATE_VALUE DATE );
108
109 TYPE ActivityAttrValueTAB IS TABLE OF ActivityAttrValueREC
110 index by binary_integer;
111
112
113 /*============================+
114 | WF_ACTIVITY_TRANSITIONS |
115 +============================*/
116
117 TYPE ActivityTransitionREC IS RECORD (
118 FROM_PROCESS_ACTIVITY NUMBER,
119 RESULT_CODE VARCHAR2(30),
120 TO_PROCESS_ACTIVITY NUMBER,
121 PREV_LNK NUMBER,
122 NEXT_LNK NUMBER );
123
124 TYPE ActivityTransitionTAB IS TABLE OF ActivityTransitionREC
125 index by binary_integer;
126
127
128 /*============================+
129 | WF_ITEM_ATTRIBUTES |
130 +============================*/
131
132 TYPE ItemAttributeREC IS RECORD (
133 ITEM_TYPE VARCHAR2(8),
134 NAME VARCHAR2(30),
135 TYPE VARCHAR2(8),
136 SUBTYPE VARCHAR2(8),
137 FORMAT VARCHAR2(240),
138 TEXT_DEFAULT VARCHAR2(4000),
139 NUMBER_DEFAULT NUMBER,
140 DATE_DEFAULT DATE);
141
142 TYPE ItemAttributeTAB IS TABLE OF ItemAttributeREC
143 index by binary_integer;
144
145 /*============================+
146 | WF_ITEM_ATTRIBUTE_VALUES |
147 +============================*/
148
149 TYPE ItemAttrValueREC IS RECORD (
150 ITEM_TYPE VARCHAR2(8),
151 ITEM_KEY VARCHAR2(240),
152 NAME VARCHAR2(30),
153 TEXT_VALUE VARCHAR2(4000),
154 NUMBER_VALUE NUMBER,
155 DATE_VALUE DATE);
156
157 TYPE ItemAttrValueTAB IS TABLE OF ItemAttrValueREC
158 index by binary_integer;
159
160
161 /*============================+
162 | WF_ITEM_TYPES |
163 +============================*/
164
165 TYPE ItemTypeREC IS RECORD (
166 NAME VARCHAR2(8),
167 WF_SELECTOR VARCHAR2(240) );
168
169 TYPE ItemTypeTAB IS TABLE OF ItemTypeREC index by binary_integer;
170
171
172 /*============================+
173 | WF_PROCESS_ACTIVITIES |
174 +============================*/
175
176 TYPE ProcessActivityREC IS RECORD (
177 PROCESS_ITEM_TYPE VARCHAR2(8),
178 PROCESS_NAME VARCHAR2(30),
179 PROCESS_VERSION NUMBER,
180 ACTIVITY_ITEM_TYPE VARCHAR2(8),
181 ACTIVITY_NAME VARCHAR2(30),
182 INSTANCE_ID NUMBER,
183 INSTANCE_LABEL VARCHAR2(30),
184 PERFORM_ROLE VARCHAR2(320),
185 PERFORM_ROLE_TYPE VARCHAR2(8),
186 START_END VARCHAR2(8),
187 DEFAULT_RESULT VARCHAR2(30) );
188
189 TYPE ProcessActivityTAB IS TABLE OF ProcessActivityREC
190 index by binary_integer;
191
192 /*============================+
193 | NLSParameters | Runtime cache of NLS parameters.
194 +============================*/
195
196 TYPE NLSParameterREC IS RECORD (
197 PARAMETER VARCHAR2(64),
198 VALUE VARCHAR2(64));
199
200 TYPE NLSParameterTAB IS TABLE OF NLSParameterREC
201 index by binary_integer;
202
203
204 /*============================+
205 | ProcessStartActivities |
206 +============================*/
207 TYPE ProcessStartActivityREC IS RECORD (
208 INSTANCE_ID NUMBER,
209 PROCESS_ITEM_TYPE VARCHAR2(8),
210 PROCESS_NAME VARCHAR2(30),
211 PROCESS_VERSION NUMBER,
212 PREV_LNK NUMBER,
213 NEXT_LNK NUMBER );
214
215 TYPE ProcessStartActivityTAB IS TABLE OF ProcessStartActivityREC
216 index by binary_integer;
217
218
219 /*======================================+
220 | |
221 | Global Cache Tables |
222 | |
223 +======================================+================================*/
224
225 Activities ActivityTAB;
226 ActivityAttributes ActivityAttributeTAB;
227 ActivityAttrValues ActivityAttrValueTAB;
228 ActivityTransitions ActivityTransitionTAB;
229 ItemAttributes ItemAttributeTAB;
230 ItemTypes ItemTypeTAB;
231 ProcessActivities ProcessActivityTAB;
232 NLSParameters NLSParameterTAB;
233 ItemAttrValues ItemAttrValueTAB;
234 ProcessStartActivities ProcessStartActivityTAB;
235
236
237 /*======================================+
238 | |
239 | Functions |
240 | |
241 +======================================+================================*/
242
243
244 /*===========================+
245 | SetHashRange |
246 +===========================+===================+
247 | IN: p_HashBase in NUMBER, |
248 | p_HashSize in NUMBER |
249 +===============================================*/
250
251 PROCEDURE SetHashRange ( p_HashBase in NUMBER,
252 p_HashSize in NUMBER );
253
254
255 /*===========================+
256 | HashKey |
257 +===========================+===================+
258 | IN: p_HashString in VARCHAR2 |
259 +-----------------------------------------------+
260 | RETURNS: number |
261 +===============================================*/
262
263 FUNCTION HashKey (p_HashString in varchar2) return number;
264
265
266 /*=====================================+
267 | |
268 | Maintenance Procedures |
269 | |
270 +=====================================+================================+
271 | Maintenance procedures perform administrative functions such as |
272 | clearing, initializing, and managing the cache. |
273 | |
274 +======================================================================*/
275
276 /*===========================+
277 | Clear |
278 +===============================================*/
279 PROCEDURE Clear;
280
281
282 /*===========================+
283 | CacheManager |
284 +===========================+===================+
285 | IN: p_TableName (PLS_INTEGER) |
286 | |
287 +===============================================*/
288
289 PROCEDURE CacheManager (TableName in PLS_INTEGER,
290 NumRows in NUMBER default 0);
291
292
293 /*===========================+
294 | MetaRefreshed |
295 +===========================+===================+
296 | Returns |
297 | BOOLEAN |
298 +-----------------------------------------------+
299 | This api checks to see if the p_itemType |
300 | has been updated by wfload. |
301 +===============================================*/
302
303 FUNCTION MetaRefreshed return BOOLEAN;
304
305
306 /*===========================+
307 | Reset |
308 +===========================+===================+
309 | This api will update the WFCACHE_META_UPD |
310 | resource token to the current sysdate to |
311 | cause any running caches to be cleared |
312 +===============================================*/
313
314 PROCEDURE Reset;
315
316
317
318
319 /*=====================================+
320 | |
321 | Accessor Procedures |
322 | |
323 +=====================================+================================+
324 | Accessor procedures are the apis that consumers use to access meta- |
325 | data from cache. Each api will require as parameters the necessary |
326 | information to locate the record in cache as well as a record index. |
327 | |
328 +======================================================================*/
329
330
331
332 /*===========================+
333 | GetActivity |
334 +===========================+===================+
335 | IN: itemType (VARCHAR2) |
336 | name (VARCHAR2) |
337 | actdate (DATE) |
338 +-----------------------------------------------+
339 | OUT: status (PLS_INTEGER) |
340 | waIND (NUMBER) |
341 +===============================================*/
342
343 PROCEDURE GetActivity ( itemType in VARCHAR2,
344 name in VARCHAR2,
345 actdate in DATE,
346 status out NOCOPY PLS_INTEGER,
347 waIND out NOCOPY NUMBER);
348
349
350 /*===========================+
351 | GetActivityAttr |
352 +===========================+===================+
356 | actdate (DATE) |
353 | IN: itemType (VARCHAR2) |
354 | name (VARCHAR2) |
355 | actid (NUMBER) |
357 +-----------------------------------------------+
358 | OUT: status (PLS_INTEGER) |
359 | wa_index (NUMBER) |
360 | waa_index (NUMBER) |
361 +===============================================*/
362
363 PROCEDURE GetActivityAttr ( itemType in VARCHAR2,
364 name in VARCHAR2,
365 actid in NUMBER,
366 actdate in DATE,
367 status out NOCOPY PLS_INTEGER,
368 wa_index out NOCOPY NUMBER,
369 waa_index out NOCOPY NUMBER);
370
371
372
373 /*===========================+
374 | GetActivityAttrValue |
375 +===========================+===================+
376 | IN: actID (NUMBER) |
377 | name (VARCHAR2) |
378 +-----------------------------------------------+
379 | OUT: status (PLS_INTEGER) |
380 | waavIND (NUMBER) |
381 +===============================================*/
382
383 PROCEDURE GetActivityAttrValue (
384 actid in NUMBER,
385 name in VARCHAR2,
386 status out NOCOPY PLS_INTEGER,
387 waavIND out NOCOPY NUMBER );
388
389
390 /*===========================+
391 | GetActivityTransitions |
392 +===========================+===================+
393 | IN: FromActID (NUMBER) |
394 | result (VARCHAR2) |
395 +-----------------------------------------------+
396 | OUT: status (PLS_INTEGER) |
397 | watIND (NUMBER) |
398 +===============================================*/
399
400 PROCEDURE GetActivityTransitions (
401 FromActID in NUMBER,
402 result in VARCHAR2,
403 status out NOCOPY PLS_INTEGER,
404 watIND out NOCOPY NUMBER );
405
406
407 /*===========================+
408 | GetItemAttribute |
409 +===========================+===================+
410 | IN: itemType (VARCHAR2) |
411 | name (VARCHAR2) |
412 +-----------------------------------------------+
413 | OUT: status (PLS_INTEGER) |
414 | wiaIND (NUMBER) |
415 +===============================================*/
416
417 PROCEDURE GetItemAttribute (itemType in VARCHAR2,
418 name in VARCHAR2,
419 status out NOCOPY PLS_INTEGER,
420 wiaIND out NOCOPY NUMBER);
421
422
423 /*===========================+
424 | GetItemAttrValue |
425 +===========================+===================+
426 | IN: itemType (VARCHAR2) |
427 | itemKey (VARCHAR2) |
428 | name (VARCHAR2) |
429 +-----------------------------------------------+
430 | OUT: status (PLS_INTEGER) |
431 | wiavIND (NUMBER) |
432 +===============================================*/
433
434 PROCEDURE GetItemAttrValue (itemType in VARCHAR2,
435 itemKey in VARCHAR2,
436 name in VARCHAR2,
437 status out NOCOPY PLS_INTEGER,
438 wiavIND out NOCOPY NUMBER);
439
440
441 /*===========================+
442 | GetItemType |
443 +===========================+===================+
444 | IN: itemType (VARCHAR2) |
445 +-----------------------------------------------+
446 | OUT: status (PLS_INTEGER) |
447 | witIND (NUMBER) |
448 +===============================================*/
449
450 PROCEDURE GetItemType (itemType in VARCHAR2,
451 status out NOCOPY PLS_INTEGER,
452 witIND out NOCOPY NUMBER);
453
454
455
456 /*===========================+
457 | GetProcessActivity |
458 +===========================+===================+
459 | IN: actid (NUMBER) |
460 +-----------------------------------------------+
461 | OUT: status (PLS_INTEGER) |
462 +===============================================*/
463
464 PROCEDURE GetProcessActivity (actid in NUMBER,
465 status out NOCOPY PLS_INTEGER);
466
467
468 /*===========================+
469 | GetProcessActivityInfo |
473 +-----------------------------------------------+
470 +===========================+===================+
471 | IN: actid (NUMBER) |
472 | actdate (DATE) |
474 | OUT: status (PLS_INTEGER) |
475 | waIND (NUMBER) |
476 +===============================================*/
477
478 PROCEDURE GetProcessActivityInfo (actid in NUMBER,
479 actdate in DATE,
480 status out NOCOPY PLS_INTEGER,
481 waIND out NOCOPY NUMBER);
482
483
484 /*===========================+
485 | GetNLSParameter |
486 +===========================+===================+
487 | IN: Parameter (VARCHAR2) |
488 +-----------------------------------------------+
489 | OUT: status (PLS_INTEGER) |
490 | nlsIND (NUMBER) |
491 +===============================================*/
492
493 PROCEDURE GetNLSParameter (Parameter in VARCHAR2,
494 status out NOCOPY PLS_INTEGER,
495 nlsIND out NOCOPY NUMBER);
496
497
498 /*===========================+
499 | GetProcessStartActivities |
500 +===========================+===================+
501 | IN: itemType (VARCHAR2) |
502 | name (VARCHAR2) |
503 | version (NUMBER) |
504 +-----------------------------------------------+
505 | OUT: status (PLS_INTEGER) |
506 | psaIND (NUMBER) |
507 +===============================================*/
508
509 PROCEDURE GetProcessStartActivities (itemType in VARCHAR2,
510 name in VARCHAR2,
511 version in NUMBER,
512 status out NOCOPY PLS_INTEGER,
513 psaIND out NOCOPY NUMBER);
514
515 --
516 -- BeginTransaction
517 -- (PRIVATE)
518 -- Begins a trusted session where calls to Reset() will not have any effect.
519 -- Caller has to call EndTransaction() immediately before issuing commit.
520 -- Returns FALSE if transaction was already begun by a parent call.
521 FUNCTION BeginTransaction return BOOLEAN;
522
523 --
524 -- EndTransaction
525 -- (PRIVATE)
526 -- Signals the end of a trusted session and calls Reset() to lock and update
527 -- WFCACHE_META_UPD.
528 --
529 FUNCTION EndTransaction return BOOLEAN;
530
531 end WF_CACHE;
532