31: wf_engine.synch_attr_count := 0;
32:
33: exception
34: when others then
35: Wf_Core.Context('Wf_Item', 'ClearCache');
36: raise;
37: end ClearCache;
38:
39: --
78: when others then
79: status := 'x'; -- Treat errors like incomplete process
80: end;
81: if (nvl(status, 'x') <> wf_engine.eng_completed) then
82: Wf_Core.Token('ITEMTYPE', itemtype);
83: Wf_Core.Token('ITEMKEY', itemkey);
84: Wf_Core.Raise('WFENG_SYNCH_ITEM');
85: end if;
86: end if;
79: status := 'x'; -- Treat errors like incomplete process
80: end;
81: if (nvl(status, 'x') <> wf_engine.eng_completed) then
82: Wf_Core.Token('ITEMTYPE', itemtype);
83: Wf_Core.Token('ITEMKEY', itemkey);
84: Wf_Core.Raise('WFENG_SYNCH_ITEM');
85: end if;
86: end if;
87:
80: end;
81: if (nvl(status, 'x') <> wf_engine.eng_completed) then
82: Wf_Core.Token('ITEMTYPE', itemtype);
83: Wf_Core.Token('ITEMKEY', itemkey);
84: Wf_Core.Raise('WFENG_SYNCH_ITEM');
85: end if;
86: end if;
87:
88: -- Query new values
125: WF_ITEM.ClearCache;
126:
127: else
128:
129: Wf_Core.Context('Wf_Item', 'InitCache', itemtype, itemkey);
130: raise;
131:
132: end if;
133:
131:
132: end if;
133:
134: when others then
135: Wf_Core.Context('Wf_Item', 'InitCache', itemtype, itemkey);
136: raise;
137: end InitCache;
138:
139: --
197: '#WAITFORDETAIL', 1) is NOT NULL) then
198: if (parent_context is NOT null) then
199: --Increment/Create label counter.
200: if (length(parent_context) > 25) then
201: WF_CORE.Token('LABEL', parent_context);
202: WF_CORE.Token('LENGTH', '25');
203: WF_CORE.Raise('WFENG_LABEL_TOO_LARGE');
204:
205: elsif (WF_ENGINE.AddToItemAttrNumber(parent_itemType, parent_itemKey,
198: if (parent_context is NOT null) then
199: --Increment/Create label counter.
200: if (length(parent_context) > 25) then
201: WF_CORE.Token('LABEL', parent_context);
202: WF_CORE.Token('LENGTH', '25');
203: WF_CORE.Raise('WFENG_LABEL_TOO_LARGE');
204:
205: elsif (WF_ENGINE.AddToItemAttrNumber(parent_itemType, parent_itemKey,
206: '#CNT_'||parent_context, 1)
199: --Increment/Create label counter.
200: if (length(parent_context) > 25) then
201: WF_CORE.Token('LABEL', parent_context);
202: WF_CORE.Token('LENGTH', '25');
203: WF_CORE.Raise('WFENG_LABEL_TOO_LARGE');
204:
205: elsif (WF_ENGINE.AddToItemAttrNumber(parent_itemType, parent_itemKey,
206: '#CNT_'||parent_context, 1)
207: is NULL) then
230: end if; --Caller is signalling that this "should" be a coordinated flow.
231:
232: exception
233: when no_data_found then
234: Wf_Core.Context('Wf_Item', 'Set_Item_Parent', itemtype, itemkey,
235: parent_itemtype, parent_itemkey, parent_context);
236: Wf_Core.Token('TYPE', itemtype);
237: Wf_Core.Token('KEY', itemkey);
238: Wf_Core.Raise('WFENG_ITEM');
232: exception
233: when no_data_found then
234: Wf_Core.Context('Wf_Item', 'Set_Item_Parent', itemtype, itemkey,
235: parent_itemtype, parent_itemkey, parent_context);
236: Wf_Core.Token('TYPE', itemtype);
237: Wf_Core.Token('KEY', itemkey);
238: Wf_Core.Raise('WFENG_ITEM');
239:
240: when ValTooLarge then
233: when no_data_found then
234: Wf_Core.Context('Wf_Item', 'Set_Item_Parent', itemtype, itemkey,
235: parent_itemtype, parent_itemkey, parent_context);
236: Wf_Core.Token('TYPE', itemtype);
237: Wf_Core.Token('KEY', itemkey);
238: Wf_Core.Raise('WFENG_ITEM');
239:
240: when ValTooLarge then
241: Wf_Core.Context('Wf_Item', 'Set_Item_Parent', itemtype, itemkey,
234: Wf_Core.Context('Wf_Item', 'Set_Item_Parent', itemtype, itemkey,
235: parent_itemtype, parent_itemkey, parent_context);
236: Wf_Core.Token('TYPE', itemtype);
237: Wf_Core.Token('KEY', itemkey);
238: Wf_Core.Raise('WFENG_ITEM');
239:
240: when ValTooLarge then
241: Wf_Core.Context('Wf_Item', 'Set_Item_Parent', itemtype, itemkey,
242: parent_itemtype, parent_itemkey, parent_context, 'TRUE');
237: Wf_Core.Token('KEY', itemkey);
238: Wf_Core.Raise('WFENG_ITEM');
239:
240: when ValTooLarge then
241: Wf_Core.Context('Wf_Item', 'Set_Item_Parent', itemtype, itemkey,
242: parent_itemtype, parent_itemkey, parent_context, 'TRUE');
243: WF_CORE.Token('LABEL', parent_context);
244: WF_CORE.Token('LENGTH', 25);
245: WF_CORE.Raise('WFENG_LABEL_TOO_LARGE');
239:
240: when ValTooLarge then
241: Wf_Core.Context('Wf_Item', 'Set_Item_Parent', itemtype, itemkey,
242: parent_itemtype, parent_itemkey, parent_context, 'TRUE');
243: WF_CORE.Token('LABEL', parent_context);
244: WF_CORE.Token('LENGTH', 25);
245: WF_CORE.Raise('WFENG_LABEL_TOO_LARGE');
246:
247: when others then
240: when ValTooLarge then
241: Wf_Core.Context('Wf_Item', 'Set_Item_Parent', itemtype, itemkey,
242: parent_itemtype, parent_itemkey, parent_context, 'TRUE');
243: WF_CORE.Token('LABEL', parent_context);
244: WF_CORE.Token('LENGTH', 25);
245: WF_CORE.Raise('WFENG_LABEL_TOO_LARGE');
246:
247: when others then
248: Wf_Core.Context('Wf_Item', 'Set_Item_Parent', itemtype, itemkey,
241: Wf_Core.Context('Wf_Item', 'Set_Item_Parent', itemtype, itemkey,
242: parent_itemtype, parent_itemkey, parent_context, 'TRUE');
243: WF_CORE.Token('LABEL', parent_context);
244: WF_CORE.Token('LENGTH', 25);
245: WF_CORE.Raise('WFENG_LABEL_TOO_LARGE');
246:
247: when others then
248: Wf_Core.Context('Wf_Item', 'Set_Item_Parent', itemtype, itemkey,
249: parent_itemtype, parent_itemkey, parent_context);
244: WF_CORE.Token('LENGTH', 25);
245: WF_CORE.Raise('WFENG_LABEL_TOO_LARGE');
246:
247: when others then
248: Wf_Core.Context('Wf_Item', 'Set_Item_Parent', itemtype, itemkey,
249: parent_itemtype, parent_itemkey, parent_context);
250: raise;
251: end Set_Item_Parent;
252:
275: raise no_data_found;
276: end if;
277: exception
278: when no_data_found then
279: Wf_Core.Context('Wf_Item', 'SetItemOwner', itemtype, itemkey,
280: owner);
281: Wf_Core.Token('TYPE', itemtype);
282: Wf_Core.Token('KEY', itemkey);
283: Wf_Core.Raise('WFENG_ITEM');
277: exception
278: when no_data_found then
279: Wf_Core.Context('Wf_Item', 'SetItemOwner', itemtype, itemkey,
280: owner);
281: Wf_Core.Token('TYPE', itemtype);
282: Wf_Core.Token('KEY', itemkey);
283: Wf_Core.Raise('WFENG_ITEM');
284: when others then
285: Wf_Core.Context('Wf_Item', 'SetItemOwner', itemtype, itemkey,
278: when no_data_found then
279: Wf_Core.Context('Wf_Item', 'SetItemOwner', itemtype, itemkey,
280: owner);
281: Wf_Core.Token('TYPE', itemtype);
282: Wf_Core.Token('KEY', itemkey);
283: Wf_Core.Raise('WFENG_ITEM');
284: when others then
285: Wf_Core.Context('Wf_Item', 'SetItemOwner', itemtype, itemkey,
286: owner);
279: Wf_Core.Context('Wf_Item', 'SetItemOwner', itemtype, itemkey,
280: owner);
281: Wf_Core.Token('TYPE', itemtype);
282: Wf_Core.Token('KEY', itemkey);
283: Wf_Core.Raise('WFENG_ITEM');
284: when others then
285: Wf_Core.Context('Wf_Item', 'SetItemOwner', itemtype, itemkey,
286: owner);
287: raise;
281: Wf_Core.Token('TYPE', itemtype);
282: Wf_Core.Token('KEY', itemkey);
283: Wf_Core.Raise('WFENG_ITEM');
284: when others then
285: Wf_Core.Context('Wf_Item', 'SetItemOwner', itemtype, itemkey,
286: owner);
287: raise;
288: end SetItemOwner;
289:
316: wf_item.c_userkey := userkey;
317: end if;
318: exception
319: when no_data_found then
320: Wf_Core.Context('Wf_Item', 'SetItemUserKey', itemtype, itemkey,
321: userkey);
322: Wf_Core.Token('TYPE', itemtype);
323: Wf_Core.Token('KEY', itemkey);
324: Wf_Core.Raise('WFENG_ITEM');
318: exception
319: when no_data_found then
320: Wf_Core.Context('Wf_Item', 'SetItemUserKey', itemtype, itemkey,
321: userkey);
322: Wf_Core.Token('TYPE', itemtype);
323: Wf_Core.Token('KEY', itemkey);
324: Wf_Core.Raise('WFENG_ITEM');
325: when others then
326: Wf_Core.Context('Wf_Item', 'SetItemUserKey', itemtype, itemkey,
319: when no_data_found then
320: Wf_Core.Context('Wf_Item', 'SetItemUserKey', itemtype, itemkey,
321: userkey);
322: Wf_Core.Token('TYPE', itemtype);
323: Wf_Core.Token('KEY', itemkey);
324: Wf_Core.Raise('WFENG_ITEM');
325: when others then
326: Wf_Core.Context('Wf_Item', 'SetItemUserKey', itemtype, itemkey,
327: userkey);
320: Wf_Core.Context('Wf_Item', 'SetItemUserKey', itemtype, itemkey,
321: userkey);
322: Wf_Core.Token('TYPE', itemtype);
323: Wf_Core.Token('KEY', itemkey);
324: Wf_Core.Raise('WFENG_ITEM');
325: when others then
326: Wf_Core.Context('Wf_Item', 'SetItemUserKey', itemtype, itemkey,
327: userkey);
328: raise;
322: Wf_Core.Token('TYPE', itemtype);
323: Wf_Core.Token('KEY', itemkey);
324: Wf_Core.Raise('WFENG_ITEM');
325: when others then
326: Wf_Core.Context('Wf_Item', 'SetItemUserKey', itemtype, itemkey,
327: userkey);
328: raise;
329: end SetItemUserKey;
330:
359:
360: return(buf);
361: exception
362: when no_data_found then
363: Wf_Core.Context('Wf_Item', 'GetItemUserKey', itemtype, itemkey);
364: Wf_Core.Token('TYPE', itemtype);
365: Wf_Core.Token('KEY', itemkey);
366: Wf_Core.Raise('WFENG_ITEM');
367: when others then
360: return(buf);
361: exception
362: when no_data_found then
363: Wf_Core.Context('Wf_Item', 'GetItemUserKey', itemtype, itemkey);
364: Wf_Core.Token('TYPE', itemtype);
365: Wf_Core.Token('KEY', itemkey);
366: Wf_Core.Raise('WFENG_ITEM');
367: when others then
368: Wf_Core.Context('Wf_Item', 'GetItemUserKey', itemtype, itemkey);
361: exception
362: when no_data_found then
363: Wf_Core.Context('Wf_Item', 'GetItemUserKey', itemtype, itemkey);
364: Wf_Core.Token('TYPE', itemtype);
365: Wf_Core.Token('KEY', itemkey);
366: Wf_Core.Raise('WFENG_ITEM');
367: when others then
368: Wf_Core.Context('Wf_Item', 'GetItemUserKey', itemtype, itemkey);
369: raise;
362: when no_data_found then
363: Wf_Core.Context('Wf_Item', 'GetItemUserKey', itemtype, itemkey);
364: Wf_Core.Token('TYPE', itemtype);
365: Wf_Core.Token('KEY', itemkey);
366: Wf_Core.Raise('WFENG_ITEM');
367: when others then
368: Wf_Core.Context('Wf_Item', 'GetItemUserKey', itemtype, itemkey);
369: raise;
370: end GetItemUserKey;
364: Wf_Core.Token('TYPE', itemtype);
365: Wf_Core.Token('KEY', itemkey);
366: Wf_Core.Raise('WFENG_ITEM');
367: when others then
368: Wf_Core.Context('Wf_Item', 'GetItemUserKey', itemtype, itemkey);
369: raise;
370: end GetItemUserKey;
371:
372: --
395: end if;
396:
397: exception
398: when OTHERS then
399: Wf_Core.Context('Wf_Item', 'Item_Exist', itemtype, itemkey);
400: raise;
401: end Item_Exist;
402:
403: --
426: when NO_DATA_FOUND then
427: wflow := '';
428: version := -1;
429: when OTHERS then
430: Wf_Core.Context('Wf_Item', 'Root_Process', itemtype, itemkey);
431: raise;
432: end Root_Process;
433:
434: --
573: end if;
574:
575: exception
576: when DUP_VAL_ON_INDEX then
577: Wf_Core.Context('Wf_Item', 'Create_Item', itemtype, itemkey, wflow);
578: Wf_Core.Token('TYPE', itemtype);
579: Wf_Core.Token('KEY', itemkey);
580: Wf_Core.Raise('WFENG_ITEM_UNIQUE');
581: when OTHERS then
574:
575: exception
576: when DUP_VAL_ON_INDEX then
577: Wf_Core.Context('Wf_Item', 'Create_Item', itemtype, itemkey, wflow);
578: Wf_Core.Token('TYPE', itemtype);
579: Wf_Core.Token('KEY', itemkey);
580: Wf_Core.Raise('WFENG_ITEM_UNIQUE');
581: when OTHERS then
582: Wf_Core.Context('Wf_Item', 'Create_Item', itemtype, itemkey, wflow);
575: exception
576: when DUP_VAL_ON_INDEX then
577: Wf_Core.Context('Wf_Item', 'Create_Item', itemtype, itemkey, wflow);
578: Wf_Core.Token('TYPE', itemtype);
579: Wf_Core.Token('KEY', itemkey);
580: Wf_Core.Raise('WFENG_ITEM_UNIQUE');
581: when OTHERS then
582: Wf_Core.Context('Wf_Item', 'Create_Item', itemtype, itemkey, wflow);
583: raise;
576: when DUP_VAL_ON_INDEX then
577: Wf_Core.Context('Wf_Item', 'Create_Item', itemtype, itemkey, wflow);
578: Wf_Core.Token('TYPE', itemtype);
579: Wf_Core.Token('KEY', itemkey);
580: Wf_Core.Raise('WFENG_ITEM_UNIQUE');
581: when OTHERS then
582: Wf_Core.Context('Wf_Item', 'Create_Item', itemtype, itemkey, wflow);
583: raise;
584: end Create_Item;
578: Wf_Core.Token('TYPE', itemtype);
579: Wf_Core.Token('KEY', itemkey);
580: Wf_Core.Raise('WFENG_ITEM_UNIQUE');
581: when OTHERS then
582: Wf_Core.Context('Wf_Item', 'Create_Item', itemtype, itemkey, wflow);
583: raise;
584: end Create_Item;
585:
586: --
600: Wf_Item.InitCache(itemtype, itemkey);
601: return(wf_item.c_begin_date);
602: exception
603: when NO_DATA_FOUND then
604: Wf_Core.Context('Wf_Item', 'Active_Date', itemtype, itemkey);
605: Wf_Core.Token('TYPE', itemtype);
606: Wf_Core.Token('KEY', itemkey);
607: Wf_Core.Raise('WFENG_ITEM');
608: when OTHERS then
601: return(wf_item.c_begin_date);
602: exception
603: when NO_DATA_FOUND then
604: Wf_Core.Context('Wf_Item', 'Active_Date', itemtype, itemkey);
605: Wf_Core.Token('TYPE', itemtype);
606: Wf_Core.Token('KEY', itemkey);
607: Wf_Core.Raise('WFENG_ITEM');
608: when OTHERS then
609: Wf_Core.Context('Wf_Item', 'Active_Date', itemtype, itemkey);
602: exception
603: when NO_DATA_FOUND then
604: Wf_Core.Context('Wf_Item', 'Active_Date', itemtype, itemkey);
605: Wf_Core.Token('TYPE', itemtype);
606: Wf_Core.Token('KEY', itemkey);
607: Wf_Core.Raise('WFENG_ITEM');
608: when OTHERS then
609: Wf_Core.Context('Wf_Item', 'Active_Date', itemtype, itemkey);
610: end Active_Date;
603: when NO_DATA_FOUND then
604: Wf_Core.Context('Wf_Item', 'Active_Date', itemtype, itemkey);
605: Wf_Core.Token('TYPE', itemtype);
606: Wf_Core.Token('KEY', itemkey);
607: Wf_Core.Raise('WFENG_ITEM');
608: when OTHERS then
609: Wf_Core.Context('Wf_Item', 'Active_Date', itemtype, itemkey);
610: end Active_Date;
611:
605: Wf_Core.Token('TYPE', itemtype);
606: Wf_Core.Token('KEY', itemkey);
607: Wf_Core.Raise('WFENG_ITEM');
608: when OTHERS then
609: Wf_Core.Context('Wf_Item', 'Active_Date', itemtype, itemkey);
610: end Active_Date;
611:
612: --Function Acquire_lock (PRIVATE)
613: --This function tries to lock the particular item (for the give
666: CLOSE itemlock;
667: end if;
668: --In this case we do not want a TRUE/FALSE return
669: --we just raise the error.
670: Wf_Core.Context('Wf_Item', 'Acquire_lock', itemtype, itemkey);
671: raise;
672: end;
673:
674: --
769: end if; --This item has a parent.
770: return 0;
771: exception
772: when OTHERS then
773: WF_CORE.Context('WF_ITEM', 'SetEndDate', p_itemType, p_itemKey);
774: raise;
775:
776: end SetEndDate;
777: