72:
73:
74: -- Do nothing in cancel or timeout mode
75: --
76: if (funcmode <> wf_engine.eng_run) then
77:
78: resultout := wf_engine.eng_null;
79: return;
80:
74: -- Do nothing in cancel or timeout mode
75: --
76: if (funcmode <> wf_engine.eng_run) then
77:
78: resultout := wf_engine.eng_null;
79: return;
80:
81: end if;
82:
96: itemkey => itemkey,
97: aname => 'RESPONDER_APPL_ID',
98: avalue => fnd_global.RESP_APPL_ID);
99:
100: -- resultout := wf_engine.eng_completed || ':' || 'ACTIVITY_PERFORMED';
101:
102: resultout := 'COMPLETE' ;
103:
104: x_progress := 'PO_REQAPPROVAL_FINDAPPRV1.Set_Forward_To_From_App_fwd: 02';
143:
144:
145: -- Do nothing in cancel or timeout mode
146: --
147: if (funcmode <> wf_engine.eng_run) then
148:
149: resultout := wf_engine.eng_null;
150: return;
151:
145: -- Do nothing in cancel or timeout mode
146: --
147: if (funcmode <> wf_engine.eng_run) then
148:
149: resultout := wf_engine.eng_null;
150: return;
151:
152: end if;
153:
170:
171: /* If the responder chooses APPROVE or the notification times out, then
172: ** Set the Approver to be the old forward-to
173: */
174: l_approver_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
175: itemkey => itemkey,
176: aname => 'FORWARD_TO_ID');
177:
178: l_approver_username := wf_engine.GetItemAttrText (itemtype => itemType,
174: l_approver_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
175: itemkey => itemkey,
176: aname => 'FORWARD_TO_ID');
177:
178: l_approver_username := wf_engine.GetItemAttrText (itemtype => itemType,
179: itemkey => itemkey,
180: aname => 'FORWARD_TO_USERNAME');
181:
182: l_approver_disp_name := wf_engine.GetItemAttrText (itemtype => itemType,
178: l_approver_username := wf_engine.GetItemAttrText (itemtype => itemType,
179: itemkey => itemkey,
180: aname => 'FORWARD_TO_USERNAME');
181:
182: l_approver_disp_name := wf_engine.GetItemAttrText (itemtype => itemType,
183: itemkey => itemkey,
184: aname => 'FORWARD_TO_DISPLAY_NAME');
185: --
186: wf_engine.SetItemAttrNumber (itemtype => itemtype,
182: l_approver_disp_name := wf_engine.GetItemAttrText (itemtype => itemType,
183: itemkey => itemkey,
184: aname => 'FORWARD_TO_DISPLAY_NAME');
185: --
186: wf_engine.SetItemAttrNumber (itemtype => itemtype,
187: itemkey => itemkey,
188: aname => 'APPROVER_EMPID',
189: avalue => l_approver_id);
190:
187: itemkey => itemkey,
188: aname => 'APPROVER_EMPID',
189: avalue => l_approver_id);
190:
191: wf_engine.SetItemAttrText ( itemtype => itemType,
192: itemkey => itemkey,
193: aname => 'APPROVER_USER_NAME' ,
194: avalue => l_approver_username);
195:
192: itemkey => itemkey,
193: aname => 'APPROVER_USER_NAME' ,
194: avalue => l_approver_username);
195:
196: wf_engine.SetItemAttrText ( itemtype => itemType,
197: itemkey => itemkey,
198: aname => 'APPROVER_DISPLAY_NAME' ,
199: avalue => l_approver_disp_name);
200:
200:
201: /*
202: ** Reset the Forward-to and Forward-From.
203: */
204: wf_engine.SetItemAttrNumber (itemtype => itemtype,
205: itemkey => itemkey,
206: aname => 'FORWARD_TO_ID',
207: avalue => NULL);
208: --
205: itemkey => itemkey,
206: aname => 'FORWARD_TO_ID',
207: avalue => NULL);
208: --
209: wf_engine.SetItemAttrText ( itemtype => itemType,
210: itemkey => itemkey,
211: aname => 'FORWARD_TO_USERNAME' ,
212: avalue => NULL);
213:
210: itemkey => itemkey,
211: aname => 'FORWARD_TO_USERNAME' ,
212: avalue => NULL);
213:
214: wf_engine.SetItemAttrText ( itemtype => itemType,
215: itemkey => itemkey,
216: aname => 'FORWARD_TO_DISPLAY_NAME' ,
217: avalue => NULL);
218: --
231: ** Set_Fwd_To_From_App_timeout procedure which is the forward to person
232: ** when the timeout occurs.
233: */
234:
235: wf_engine.SetItemAttrNumber (itemtype => itemtype,
236: itemkey => itemkey,
237: aname => 'FORWARD_FROM_ID',
238: avalue => l_approver_id);
239: --
236: itemkey => itemkey,
237: aname => 'FORWARD_FROM_ID',
238: avalue => l_approver_id);
239: --
240: wf_engine.SetItemAttrText ( itemtype => itemType,
241: itemkey => itemkey,
242: aname => 'FORWARD_FROM_USER_NAME' ,
243: avalue => l_approver_username);
244:
241: itemkey => itemkey,
242: aname => 'FORWARD_FROM_USER_NAME' ,
243: avalue => l_approver_username);
244:
245: wf_engine.SetItemAttrText ( itemtype => itemType,
246: itemkey => itemkey,
247: aname => 'FORWARD_FROM_DISP_NAME' ,
248: avalue => l_approver_disp_name);
249:
248: avalue => l_approver_disp_name);
249:
250:
251: /* Reset the FORWARD_TO_USERNAME_RESPONSE attribute */
252: wf_engine.SetItemAttrText (itemtype => itemtype,
253: itemkey => itemkey,
254: aname => 'FORWARD_TO_USERNAME_RESPONSE',
255: avalue => NULL);
256:
260: */
261: fnd_message.set_name ('PO','PO_WF_NOTIF_REQUIRES_APPROVAL');
262: l_error_msg := fnd_message.get;
263:
264: wf_engine.SetItemAttrText ( itemtype => itemType,
265: itemkey => itemkey,
266: aname => 'REQUIRES_APPROVAL_MSG' ,
267: avalue => l_error_msg);
268:
265: itemkey => itemkey,
266: aname => 'REQUIRES_APPROVAL_MSG' ,
267: avalue => l_error_msg);
268:
269: wf_engine.SetItemAttrText ( itemtype => itemType,
270: itemkey => itemkey,
271: aname => 'WRONG_FORWARD_TO_MSG' ,
272: avalue => '');
273:
270: itemkey => itemkey,
271: aname => 'WRONG_FORWARD_TO_MSG' ,
272: avalue => '');
273:
274: -- resultout := wf_engine.eng_completed || ':' || 'ACTIVITY_PERFORMED';
275:
276: resultout := 'COMPLETE' ;
277:
278: x_progress := 'PO_REQAPPROVAL_FINDAPPRV1.Set_Fwd_To_From_App_timeout: 02';
336:
337:
338: -- Do nothing in cancel or timeout mode
339: --
340: if (funcmode <> wf_engine.eng_run) then
341:
342: resultout := wf_engine.eng_null;
343: return;
344:
338: -- Do nothing in cancel or timeout mode
339: --
340: if (funcmode <> wf_engine.eng_run) then
341:
342: resultout := wf_engine.eng_null;
343: return;
344:
345: end if;
346:
355: ** Desc: When responding from the E-mail notifications, the forward
356: ** to failed as the org context was not set.
357: */
358:
359: l_orgid := wf_engine.GetItemAttrNumber (itemtype => itemtype,
360: itemkey => itemkey,
361: aname => 'ORG_ID');
362:
363: IF l_orgid is NOT NULL THEN
372: ** Then set the Forward-To to the one the user entered in the response.
373: */
374: /* NOTE: We take the value entered by the user and set it to ALL CAPITAL LETTERS!!!
375: */
376: l_forward_to_username_response := wf_engine.GetItemAttrText (itemtype => itemtype,
377: itemkey => itemkey,
378: aname => 'FORWARD_TO_USERNAME_RESPONSE');
379:
380: l_forward_to_username_response := UPPER(l_forward_to_username_response);
396: /* The FORWARD-FROM is now the old FORWARD-TO and the NEW FORWARD-TO is set
397: ** to what the user entered in the response
398: */
399:
400: l_forward_to_username:= wf_engine.GetItemAttrText (itemtype => itemtype,
401: itemkey => itemkey,
402: aname => 'FORWARD_TO_USERNAME');
403:
404: /* Bug# 1352995: kagarwal
419: */
420:
421: IF l_forward_to_username is NOT NULL THEN
422:
423: l_forward_to_username_disp:= wf_engine.GetItemAttrText (itemtype => itemtype,
424: itemkey => itemkey,
425: aname => 'FORWARD_TO_DISPLAY_NAME');
426:
427: l_forward_to_id:= wf_engine.GetItemAttrNumber (itemtype => itemtype,
423: l_forward_to_username_disp:= wf_engine.GetItemAttrText (itemtype => itemtype,
424: itemkey => itemkey,
425: aname => 'FORWARD_TO_DISPLAY_NAME');
426:
427: l_forward_to_id:= wf_engine.GetItemAttrNumber (itemtype => itemtype,
428: itemkey => itemkey,
429: aname => 'FORWARD_TO_ID');
430: ELSE /* get the approver name who took this action */
431: l_forward_to_username:= wf_engine.GetItemAttrText (itemtype => itemtype,
427: l_forward_to_id:= wf_engine.GetItemAttrNumber (itemtype => itemtype,
428: itemkey => itemkey,
429: aname => 'FORWARD_TO_ID');
430: ELSE /* get the approver name who took this action */
431: l_forward_to_username:= wf_engine.GetItemAttrText (itemtype => itemtype,
432: itemkey => itemkey,
433: aname => 'APPROVER_USER_NAME');
434:
435: l_forward_to_username_disp:= wf_engine.GetItemAttrText (itemtype => itemtype,
431: l_forward_to_username:= wf_engine.GetItemAttrText (itemtype => itemtype,
432: itemkey => itemkey,
433: aname => 'APPROVER_USER_NAME');
434:
435: l_forward_to_username_disp:= wf_engine.GetItemAttrText (itemtype => itemtype,
436: itemkey => itemkey,
437: aname => 'APPROVER_DISPLAY_NAME');
438:
439: l_forward_to_id:= wf_engine.GetItemAttrNumber (itemtype => itemtype,
435: l_forward_to_username_disp:= wf_engine.GetItemAttrText (itemtype => itemtype,
436: itemkey => itemkey,
437: aname => 'APPROVER_DISPLAY_NAME');
438:
439: l_forward_to_id:= wf_engine.GetItemAttrNumber (itemtype => itemtype,
440: itemkey => itemkey,
441: aname => 'APPROVER_EMPID');
442: END IF;
443:
450: IF (g_po_wf_debug = 'Y') THEN
451: /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,x_progress);
452: END IF;
453:
454: l_preparer_id := wf_engine.GetItemAttrText(itemtype => itemtype,
455: itemkey => itemkey,
456: aname => 'PREPARER_ID');
457:
458: if (x_user_id = l_preparer_id) then
474:
475: fnd_message.set_name('PO', 'PO_WF_NOTIF_INVALID_FORWARD');
476: l_error_msg := fnd_message.get;
477:
478: wf_engine.SetItemAttrText (itemtype => itemtype,
479: itemkey => itemkey,
480: aname => 'REQUIRES_APPROVAL_MSG',
481: avalue => '');
482:
479: itemkey => itemkey,
480: aname => 'REQUIRES_APPROVAL_MSG',
481: avalue => '');
482:
483: wf_engine.SetItemAttrText (itemtype => itemtype,
484: itemkey => itemkey,
485: aname => 'WRONG_FORWARD_TO_MSG',
486: avalue => l_error_msg);
487:
484: itemkey => itemkey,
485: aname => 'WRONG_FORWARD_TO_MSG',
486: avalue => l_error_msg);
487:
488: resultout := wf_engine.eng_completed || ':' || 'N';
489:
490: x_progress := 'PO_REQAPPROVAL_FINDAPPRV1.Is_Forward_To_Valid: 050';
491: IF (g_po_wf_debug = 'Y') THEN
492: /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,x_progress);
504: END IF;
505:
506:
507: /* Set the FORWARD_FROM */
508: wf_engine.SetItemAttrNumber ( itemtype => itemtype,
509: itemkey => itemkey,
510: aname => 'FORWARD_FROM_ID',
511: avalue => l_forward_to_id);
512:
509: itemkey => itemkey,
510: aname => 'FORWARD_FROM_ID',
511: avalue => l_forward_to_id);
512:
513: wf_engine.SetItemAttrText ( itemtype => itemtype,
514: itemkey => itemkey,
515: aname => 'FORWARD_FROM_USER_NAME',
516: avalue => l_forward_to_username);
517:
514: itemkey => itemkey,
515: aname => 'FORWARD_FROM_USER_NAME',
516: avalue => l_forward_to_username);
517:
518: wf_engine.SetItemAttrText ( itemtype => itemtype,
519: itemkey => itemkey,
520: aname => 'FORWARD_FROM_DISP_NAME',
521: avalue => l_forward_to_username_disp);
522:
522:
523: /* Set the approver to the person who took the action on the notification,
524: ** i.e. the old forward-to person
525: */
526: wf_engine.SetItemAttrNumber ( itemtype => itemtype,
527: itemkey => itemkey,
528: aname => 'APPROVER_EMPID',
529: avalue => l_forward_to_id);
530:
527: itemkey => itemkey,
528: aname => 'APPROVER_EMPID',
529: avalue => l_forward_to_id);
530:
531: wf_engine.SetItemAttrText ( itemtype => itemtype,
532: itemkey => itemkey,
533: aname => 'APPROVER_USER_NAME',
534: avalue => l_forward_to_username);
535:
532: itemkey => itemkey,
533: aname => 'APPROVER_USER_NAME',
534: avalue => l_forward_to_username);
535:
536: wf_engine.SetItemAttrText ( itemtype => itemtype,
537: itemkey => itemkey,
538: aname => 'APPROVER_DISPLAY_NAME',
539: avalue => l_forward_to_username_disp);
540:
539: avalue => l_forward_to_username_disp);
540:
541: /* Set the FORWARD-TO */
542:
543: wf_engine.SetItemAttrText ( itemtype => itemtype,
544: itemkey => itemkey,
545: aname => 'FORWARD_TO_USERNAME',
546: avalue => l_forward_to_username_response);
547:
544: itemkey => itemkey,
545: aname => 'FORWARD_TO_USERNAME',
546: avalue => l_forward_to_username_response);
547:
548: wf_engine.SetItemAttrNumber ( itemtype => itemType,
549: itemkey => itemkey,
550: aname => 'FORWARD_TO_ID',
551: avalue => x_user_id);
552:
550: aname => 'FORWARD_TO_ID',
551: avalue => x_user_id);
552:
553: /* Get the Display name for the user from the WF Directory */
554: wf_engine.SetItemAttrText ( itemtype => itemtype,
555: itemkey => itemkey,
556: aname => 'FORWARD_TO_DISPLAY_NAME',
557: avalue =>
558: wf_directory.GetRoleDisplayName(l_forward_to_username_response));
557: avalue =>
558: wf_directory.GetRoleDisplayName(l_forward_to_username_response));
559:
560: /* Reset the FORWARD_TO_USERNAME_RESPONSE attribute */
561: wf_engine.SetItemAttrText (itemtype => itemtype,
562: itemkey => itemkey,
563: aname => 'FORWARD_TO_USERNAME_RESPONSE',
564: avalue => NULL);
565:
569: */
570: fnd_message.set_name ('PO','PO_WF_NOTIF_REQUIRES_APPROVAL');
571: l_error_msg := fnd_message.get;
572:
573: wf_engine.SetItemAttrText ( itemtype => itemType,
574: itemkey => itemkey,
575: aname => 'REQUIRES_APPROVAL_MSG' ,
576: avalue => l_error_msg);
577:
574: itemkey => itemkey,
575: aname => 'REQUIRES_APPROVAL_MSG' ,
576: avalue => l_error_msg);
577:
578: wf_engine.SetItemAttrText ( itemtype => itemType,
579: itemkey => itemkey,
580: aname => 'WRONG_FORWARD_TO_MSG' ,
581: avalue => '');
582:
580: aname => 'WRONG_FORWARD_TO_MSG' ,
581: avalue => '');
582:
583: --
584: resultout := wf_engine.eng_completed || ':' || 'Y';
585: --
586:
587: ELSE
588:
596: */
597: fnd_message.set_name ('PO','PO_WF_NOTIF_INVALID_FORWARD');
598: l_error_msg := fnd_message.get;
599:
600: wf_engine.SetItemAttrText ( itemtype => itemType,
601: itemkey => itemkey,
602: aname => 'REQUIRES_APPROVAL_MSG' ,
603: avalue => '');
604:
601: itemkey => itemkey,
602: aname => 'REQUIRES_APPROVAL_MSG' ,
603: avalue => '');
604:
605: wf_engine.SetItemAttrText ( itemtype => itemType,
606: itemkey => itemkey,
607: aname => 'WRONG_FORWARD_TO_MSG' ,
608: avalue => l_error_msg);
609:
607: aname => 'WRONG_FORWARD_TO_MSG' ,
608: avalue => l_error_msg);
609:
610: --
611: resultout := wf_engine.eng_completed || ':' || 'N';
612: --
613:
614: END IF;
615:
649:
650:
651: -- Do nothing in cancel or timeout mode
652: --
653: if (funcmode <> wf_engine.eng_run) then
654:
655: resultout := wf_engine.eng_null;
656: return;
657:
651: -- Do nothing in cancel or timeout mode
652: --
653: if (funcmode <> wf_engine.eng_run) then
654:
655: resultout := wf_engine.eng_null;
656: return;
657:
658: end if;
659:
657:
658: end if;
659:
660:
661: l_forward_to_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
662: itemkey => itemkey,
663: aname => 'FORWARD_TO_ID');
664:
665: IF l_forward_to_id is NOT NULL THEN
664:
665: IF l_forward_to_id is NOT NULL THEN
666:
667: /* Set the Approver to be the person receiving the approval notification */
668: wf_engine.SetItemAttrNumber (itemtype => itemtype,
669: itemkey => itemkey,
670: aname => 'APPROVER_EMPID',
671: avalue => l_forward_to_id);
672:
669: itemkey => itemkey,
670: aname => 'APPROVER_EMPID',
671: avalue => l_forward_to_id);
672:
673: resultout := wf_engine.eng_completed || ':' || 'Y';
674:
675: ELSE
676:
677: resultout := wf_engine.eng_completed || ':' || 'N';
673: resultout := wf_engine.eng_completed || ':' || 'Y';
674:
675: ELSE
676:
677: resultout := wf_engine.eng_completed || ':' || 'N';
678:
679: END IF;
680:
681:
727:
728:
729: -- Do nothing in cancel or timeout mode
730: --
731: if (funcmode <> wf_engine.eng_run) then
732:
733: resultout := wf_engine.eng_null;
734: return;
735:
729: -- Do nothing in cancel or timeout mode
730: --
731: if (funcmode <> wf_engine.eng_run) then
732:
733: resultout := wf_engine.eng_null;
734: return;
735:
736: end if;
737:
734: return;
735:
736: end if;
737:
738: l_user_name := wf_engine.GetItemAttrText (itemtype => itemtype,
739: itemkey => itemkey,
740: aname => 'FORWARD_TO_USERNAME');
741:
742: IF l_user_name is NOT NULL THEN
740: aname => 'FORWARD_TO_USERNAME');
741:
742: IF l_user_name is NOT NULL THEN
743:
744: resultout := wf_engine.eng_completed || ':' || 'Y';
745:
746: ELSE
747: l_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
748: itemkey => itemkey,
743:
744: resultout := wf_engine.eng_completed || ':' || 'Y';
745:
746: ELSE
747: l_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
748: itemkey => itemkey,
749: aname => 'FORWARD_TO_ID');
750:
751: /* Bug# 1312794: kagarwal
763: WHERE person_id = l_id
764: AND trunc(sysdate) BETWEEN effective_start_date
765: AND effective_end_date;
766:
767: wf_engine.SetItemAttrText ( itemtype => itemType,
768: itemkey => itemkey,
769: aname => 'APPROVER_DISPLAY_NAME' ,
770: avalue => l_disp_name);
771:
768: itemkey => itemkey,
769: aname => 'APPROVER_DISPLAY_NAME' ,
770: avalue => l_disp_name);
771:
772: resultout := wf_engine.eng_completed || ':' || 'N';
773:
774: END IF;
775:
776: x_progress := 'PO_REQAPPROVAL_FINDAPPRV1.Is_forward_to_user_name_valid: 02';
819:
820:
821: -- Do nothing in cancel or timeout mode
822: --
823: if (funcmode <> wf_engine.eng_run) then
824:
825: resultout := wf_engine.eng_null;
826: return;
827:
821: -- Do nothing in cancel or timeout mode
822: --
823: if (funcmode <> wf_engine.eng_run) then
824:
825: resultout := wf_engine.eng_null;
826: return;
827:
828: end if;
829:
827:
828: end if;
829:
830: -- Set the multi-org context
831: l_document_type := wf_engine.GetItemAttrText (itemtype => itemtype,
832: itemkey => itemkey,
833: aname => 'DOCUMENT_TYPE');
834: l_document_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
835: itemkey => itemkey,
830: -- Set the multi-org context
831: l_document_type := wf_engine.GetItemAttrText (itemtype => itemtype,
832: itemkey => itemkey,
833: aname => 'DOCUMENT_TYPE');
834: l_document_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
835: itemkey => itemkey,
836: aname => 'DOCUMENT_ID');
837:
838: -- PO_REQAPPROVAL_INIT1.get_multiorg_context (l_document_type, l_document_id, x_orgid);
835: itemkey => itemkey,
836: aname => 'DOCUMENT_ID');
837:
838: -- PO_REQAPPROVAL_INIT1.get_multiorg_context (l_document_type, l_document_id, x_orgid);
839: l_orgid := wf_engine.GetItemAttrNumber (itemtype => itemtype,
840: itemkey => itemkey,
841: aname => 'ORG_ID');
842:
843: IF l_orgid is NOT NULL THEN
850: PO_REQAPPROVAL_FINDAPPRV1.GetApprovalPathId(itemtype,itemkey);
851:
852:
853: --
854: resultout := wf_engine.eng_completed || ':' || 'ACTIVITY_PERFORMED';
855: --
856: x_progress := 'PO_REQAPPROVAL_FINDAPPRV1.Get_approval_path_id: 02';
857: IF (g_po_wf_debug = 'Y') THEN
858: /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,x_progress);
897:
898:
899: -- Do nothing in cancel or timeout mode
900: --
901: if (funcmode <> wf_engine.eng_run) then
902:
903: resultout := wf_engine.eng_null;
904: return;
905:
899: -- Do nothing in cancel or timeout mode
900: --
901: if (funcmode <> wf_engine.eng_run) then
902:
903: resultout := wf_engine.eng_null;
904: return;
905:
906: end if;
907:
905:
906: end if;
907:
908: -- Set the multi-org context
909: l_document_type := wf_engine.GetItemAttrText (itemtype => itemtype,
910: itemkey => itemkey,
911: aname => 'DOCUMENT_TYPE');
912: l_document_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
913: itemkey => itemkey,
908: -- Set the multi-org context
909: l_document_type := wf_engine.GetItemAttrText (itemtype => itemtype,
910: itemkey => itemkey,
911: aname => 'DOCUMENT_TYPE');
912: l_document_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
913: itemkey => itemkey,
914: aname => 'DOCUMENT_ID');
915:
916: -- PO_REQAPPROVAL_INIT1.get_multiorg_context (l_document_type, l_document_id,x_orgid);
914: aname => 'DOCUMENT_ID');
915:
916: -- PO_REQAPPROVAL_INIT1.get_multiorg_context (l_document_type, l_document_id,x_orgid);
917:
918: l_orgid := wf_engine.GetItemAttrNumber (itemtype => itemtype,
919: itemkey => itemkey,
920: aname => 'ORG_ID');
921:
922: IF l_orgid is NOT NULL THEN
929: l_forward_mode := PO_REQAPPROVAL_FINDAPPRV1.GetForwardMode(itemtype, itemkey);
930:
931: IF l_forward_mode = 'DIRECT' THEN
932:
933: resultout := wf_engine.eng_completed || ':' || 'DIRECT';
934:
935: ELSIF l_forward_mode = 'HIERARCHY' THEN
936:
937: resultout := wf_engine.eng_completed || ':' || 'HIERARCHY';
933: resultout := wf_engine.eng_completed || ':' || 'DIRECT';
934:
935: ELSIF l_forward_mode = 'HIERARCHY' THEN
936:
937: resultout := wf_engine.eng_completed || ':' || 'HIERARCHY';
938:
939: END IF;
940:
941: x_progress := 'PO_REQAPPROVAL_FINDAPPRV1.Get_Forward_mode: 02';
981:
982:
983: -- Do nothing in cancel or timeout mode
984: --
985: if (funcmode <> wf_engine.eng_run) then
986:
987: resultout := wf_engine.eng_null;
988: return;
989:
983: -- Do nothing in cancel or timeout mode
984: --
985: if (funcmode <> wf_engine.eng_run) then
986:
987: resultout := wf_engine.eng_null;
988: return;
989:
990: end if;
991:
989:
990: end if;
991:
992: -- Set the multi-org context
993: l_document_type := wf_engine.GetItemAttrText (itemtype => itemtype,
994: itemkey => itemkey,
995: aname => 'DOCUMENT_TYPE');
996: l_document_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
997: itemkey => itemkey,
992: -- Set the multi-org context
993: l_document_type := wf_engine.GetItemAttrText (itemtype => itemtype,
994: itemkey => itemkey,
995: aname => 'DOCUMENT_TYPE');
996: l_document_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
997: itemkey => itemkey,
998: aname => 'DOCUMENT_ID');
999:
1000: -- PO_REQAPPROVAL_INIT1.get_multiorg_context (l_document_type, l_document_id,x_orgid);
997: itemkey => itemkey,
998: aname => 'DOCUMENT_ID');
999:
1000: -- PO_REQAPPROVAL_INIT1.get_multiorg_context (l_document_type, l_document_id,x_orgid);
1001: l_orgid := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1002: itemkey => itemkey,
1003: aname => 'ORG_ID');
1004:
1005: IF l_orgid is NOT NULL THEN
1012: l_use_positions_flag := PO_REQAPPROVAL_FINDAPPRV1.UsePositionFlag;
1013:
1014: IF l_use_positions_flag = 'Y' THEN
1015:
1016: resultout := wf_engine.eng_completed || ':' || 'Y';
1017:
1018: ELSIF l_use_positions_flag = 'N' THEN
1019:
1020: resultout := wf_engine.eng_completed || ':' || 'N';
1016: resultout := wf_engine.eng_completed || ':' || 'Y';
1017:
1018: ELSIF l_use_positions_flag = 'N' THEN
1019:
1020: resultout := wf_engine.eng_completed || ':' || 'N';
1021:
1022: END IF;
1023:
1024: x_progress := 'PO_REQAPPROVAL_FINDAPPRV1.Use_Position_flag: 02';
1066:
1067:
1068: -- Do nothing in cancel or timeout mode
1069: --
1070: if (funcmode <> wf_engine.eng_run) then
1071:
1072: resultout := wf_engine.eng_null;
1073: return;
1074:
1068: -- Do nothing in cancel or timeout mode
1069: --
1070: if (funcmode <> wf_engine.eng_run) then
1071:
1072: resultout := wf_engine.eng_null;
1073: return;
1074:
1075: end if;
1076:
1074:
1075: end if;
1076:
1077: -- Set the multi-org context
1078: l_document_type := wf_engine.GetItemAttrText (itemtype => itemtype,
1079: itemkey => itemkey,
1080: aname => 'DOCUMENT_TYPE');
1081: l_document_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1082: itemkey => itemkey,
1077: -- Set the multi-org context
1078: l_document_type := wf_engine.GetItemAttrText (itemtype => itemtype,
1079: itemkey => itemkey,
1080: aname => 'DOCUMENT_TYPE');
1081: l_document_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1082: itemkey => itemkey,
1083: aname => 'DOCUMENT_ID');
1084:
1085: -- PO_REQAPPROVAL_INIT1.get_multiorg_context (l_document_type, l_document_id,x_orgid);
1083: aname => 'DOCUMENT_ID');
1084:
1085: -- PO_REQAPPROVAL_INIT1.get_multiorg_context (l_document_type, l_document_id,x_orgid);
1086:
1087: l_orgid := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1088: itemkey => itemkey,
1089: aname => 'ORG_ID');
1090:
1091: IF l_orgid is NOT NULL THEN
1099: l_found_manager := PO_REQAPPROVAL_FINDAPPRV1.GetMgrHRHier(itemtype, itemkey);
1100:
1101: IF l_found_manager = 'Y' THEN
1102:
1103: resultout := wf_engine.eng_completed || ':' || 'Y';
1104: x_progress := 'PO_REQAPPROVAL_FINDAPPRV1.GetMgr_hr_hier: RESULT=Y';
1105:
1106: ELSIF l_found_manager = 'N' THEN
1107:
1104: x_progress := 'PO_REQAPPROVAL_FINDAPPRV1.GetMgr_hr_hier: RESULT=Y';
1105:
1106: ELSIF l_found_manager = 'N' THEN
1107:
1108: resultout := wf_engine.eng_completed || ':' || 'N';
1109: x_progress := 'PO_REQAPPROVAL_FINDAPPRV1.GetMgr_hr_hier: RESULT=N';
1110:
1111: END IF;
1112:
1155:
1156:
1157: -- Do nothing in cancel or timeout mode
1158: --
1159: if (funcmode <> wf_engine.eng_run) then
1160:
1161: resultout := wf_engine.eng_null;
1162: return;
1163:
1157: -- Do nothing in cancel or timeout mode
1158: --
1159: if (funcmode <> wf_engine.eng_run) then
1160:
1161: resultout := wf_engine.eng_null;
1162: return;
1163:
1164: end if;
1165:
1163:
1164: end if;
1165:
1166: -- Set the multi-org context
1167: l_document_type := wf_engine.GetItemAttrText (itemtype => itemtype,
1168: itemkey => itemkey,
1169: aname => 'DOCUMENT_TYPE');
1170: l_document_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1171: itemkey => itemkey,
1166: -- Set the multi-org context
1167: l_document_type := wf_engine.GetItemAttrText (itemtype => itemtype,
1168: itemkey => itemkey,
1169: aname => 'DOCUMENT_TYPE');
1170: l_document_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1171: itemkey => itemkey,
1172: aname => 'DOCUMENT_ID');
1173:
1174: -- PO_REQAPPROVAL_INIT1.get_multiorg_context (l_document_type, l_document_id, x_orgid);
1171: itemkey => itemkey,
1172: aname => 'DOCUMENT_ID');
1173:
1174: -- PO_REQAPPROVAL_INIT1.get_multiorg_context (l_document_type, l_document_id, x_orgid);
1175: l_orgid := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1176: itemkey => itemkey,
1177: aname => 'ORG_ID');
1178:
1179: IF l_orgid is NOT NULL THEN
1186: l_found_manager := PO_REQAPPROVAL_FINDAPPRV1.GetMgrPOHier(itemtype, itemkey);
1187:
1188: IF l_found_manager = 'Y' THEN
1189:
1190: resultout := wf_engine.eng_completed || ':' || 'Y';
1191: x_progress := 'PO_REQAPPROVAL_FINDAPPRV1.GetMgr_po_hier: RESULT=Y';
1192:
1193: ELSIF l_found_manager = 'N' THEN
1194:
1191: x_progress := 'PO_REQAPPROVAL_FINDAPPRV1.GetMgr_po_hier: RESULT=Y';
1192:
1193: ELSIF l_found_manager = 'N' THEN
1194:
1195: resultout := wf_engine.eng_completed || ':' || 'N';
1196: x_progress := 'PO_REQAPPROVAL_FINDAPPRV1.GetMgr_po_hier: RESULT=N';
1197:
1198: END IF;
1199:
1251: ** referenced in the message attribute).
1252: ** It should also return that id.
1253: */
1254:
1255: l_forward_to_username_response := wf_engine.GetItemAttrText (itemtype => itemtype,
1256: itemkey => itemkey,
1257: aname => 'FORWARD_TO_USERNAME_RESPONSE');
1258:
1259: /* If there is no Forward-to provided in the notification, then the forward_to_id
1282: IF (g_po_wf_debug = 'Y') THEN
1283: /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,x_progress);
1284: END IF;
1285:
1286: wf_engine.SetItemAttrText ( itemtype => itemType,
1287: itemkey => itemkey,
1288: aname => 'FORWARD_TO_USERNAME',
1289: avalue => l_forward_to_username_response);
1290:
1287: itemkey => itemkey,
1288: aname => 'FORWARD_TO_USERNAME',
1289: avalue => l_forward_to_username_response);
1290:
1291: wf_engine.SetItemAttrNumber ( itemtype => itemType,
1292: itemkey => itemkey,
1293: aname => 'FORWARD_TO_ID',
1294: avalue => l_forward_to_id);
1295:
1310: IF (g_po_wf_debug = 'Y') THEN
1311: /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,x_progress);
1312: END IF;
1313:
1314: l_forward_to_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1315: itemkey => itemkey,
1316: aname => 'FORWARD_TO_ID');
1317: END IF;
1318:
1316: aname => 'FORWARD_TO_ID');
1317: END IF;
1318:
1319: /* Reset the value of the forward_to RESPONSE attribute */
1320: wf_engine.SetItemAttrText ( itemtype => itemType,
1321: itemkey => itemkey,
1322: aname => 'FORWARD_TO_USERNAME_RESPONSE',
1323: avalue => NULL);
1324:
1321: itemkey => itemkey,
1322: aname => 'FORWARD_TO_USERNAME_RESPONSE',
1323: avalue => NULL);
1324:
1325: l_forward_to_id_old := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1326: itemkey => itemkey,
1327: aname => 'FORWARD_TO_ID_OLD');
1328:
1329: IF ( NVL(l_forward_to_id,0) <> NVL(l_forward_to_id_old,0) ) THEN
1330:
1331: -- x_progress:= '006';
1332:
1333: /* Set the old value equal to the new value */
1334: wf_engine.SetItemAttrNumber ( itemtype => itemType,
1335: itemkey => itemkey,
1336: aname => 'FORWARD_TO_ID_OLD',
1337: avalue => l_forward_to_id);
1338:
1445: x_progress varchar2(200) := '000';
1446: BEGIN
1447:
1448: x_progress := '001';
1449: l_approval_path_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1450: itemkey => itemkey,
1451: aname => 'APPROVAL_PATH_ID');
1452:
1453: /* If No Approval Path was specified by the user, then get the default */
1453: /* If No Approval Path was specified by the user, then get the default */
1454:
1455: IF l_approval_path_id is NULL THEN
1456:
1457: l_document_type_code := wf_engine.GetItemAttrText (itemtype => itemtype,
1458: itemkey => itemkey,
1459: aname => 'DOCUMENT_TYPE');
1460:
1461: l_document_subtype := wf_engine.GetItemAttrText (itemtype => itemtype,
1457: l_document_type_code := wf_engine.GetItemAttrText (itemtype => itemtype,
1458: itemkey => itemkey,
1459: aname => 'DOCUMENT_TYPE');
1460:
1461: l_document_subtype := wf_engine.GetItemAttrText (itemtype => itemtype,
1462: itemkey => itemkey,
1463: aname => 'DOCUMENT_SUBTYPE');
1464:
1465: x_progress := '002';
1468: FROM po_document_types podt
1469: WHERE podt.document_type_code = l_document_type_code
1470: AND podt.document_subtype = l_document_subtype;
1471:
1472: wf_engine.SetItemAttrNumber (itemtype => itemtype,
1473: itemkey => itemkey,
1474: aname => 'APPROVAL_PATH_ID',
1475: avalue => l_approval_path_id);
1476:
1501: x_progress varchar2(3) := '000';
1502: BEGIN
1503:
1504: x_progress := '001';
1505: l_document_type_code := wf_engine.GetItemAttrText (itemtype => itemtype,
1506: itemkey => itemkey,
1507: aname => 'DOCUMENT_TYPE');
1508:
1509: l_document_subtype := wf_engine.GetItemAttrText (itemtype => itemtype,
1505: l_document_type_code := wf_engine.GetItemAttrText (itemtype => itemtype,
1506: itemkey => itemkey,
1507: aname => 'DOCUMENT_TYPE');
1508:
1509: l_document_subtype := wf_engine.GetItemAttrText (itemtype => itemtype,
1510: itemkey => itemkey,
1511: aname => 'DOCUMENT_SUBTYPE');
1512:
1513: SELECT FORWARDING_MODE_CODE into l_forward_mode
1657: /* Get the employee whos manager we need to find. This is always
1658: ** kept in APPROVER_EMPID.
1659: */
1660:
1661: l_empid := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1662: itemkey => itemkey,
1663: aname => 'APPROVER_EMPID');
1664: SELECT business_group_id
1665: INTO l_business_group_id
1724: ** At this point, we find an approver, so we need to set the forward-from
1725: ** to be the last person that took the APPROVE action.
1726: */
1727:
1728: l_forward_from_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1729: itemkey => itemkey,
1730: aname => 'FORWARD_FROM_ID');
1731:
1732: IF l_forward_from_id is NULL THEN
1731:
1732: IF l_forward_from_id is NULL THEN
1733:
1734: /* Get the previous approver username and display name */
1735: l_forward_from_username := wf_engine.GetItemAttrText ( itemtype => itemType,
1736: itemkey => itemkey,
1737: aname => 'APPROVER_USER_NAME');
1738:
1739: l_forward_from_disp_name := wf_engine.GetItemAttrText ( itemtype => itemType,
1735: l_forward_from_username := wf_engine.GetItemAttrText ( itemtype => itemType,
1736: itemkey => itemkey,
1737: aname => 'APPROVER_USER_NAME');
1738:
1739: l_forward_from_disp_name := wf_engine.GetItemAttrText ( itemtype => itemType,
1740: itemkey => itemkey,
1741: aname => 'APPROVER_DISPLAY_NAME');
1742:
1743: /* Set the forward-from username and display name to that of the previous
1742:
1743: /* Set the forward-from username and display name to that of the previous
1744: ** approver.
1745: */
1746: wf_engine.SetItemAttrText ( itemtype => itemType,
1747: itemkey => itemkey,
1748: aname => 'FORWARD_FROM_ID' ,
1749: avalue => l_empid);
1750:
1747: itemkey => itemkey,
1748: aname => 'FORWARD_FROM_ID' ,
1749: avalue => l_empid);
1750:
1751: wf_engine.SetItemAttrText ( itemtype => itemType,
1752: itemkey => itemkey,
1753: aname => 'FORWARD_FROM_USER_NAME' ,
1754: avalue => l_forward_from_username);
1755:
1752: itemkey => itemkey,
1753: aname => 'FORWARD_FROM_USER_NAME' ,
1754: avalue => l_forward_from_username);
1755:
1756: wf_engine.SetItemAttrText ( itemtype => itemType,
1757: itemkey => itemkey,
1758: aname => 'FORWARD_FROM_DISP_NAME' ,
1759: avalue => l_forward_from_disp_name);
1760:
1768: **
1769: ** NOTE: Activity "Verify Authority" always uses the APPROVER_EMPID attribute
1770: ** as the approver.
1771: */
1772: wf_engine.SetItemAttrNumber (itemtype => itemtype,
1773: itemkey => itemkey,
1774: aname => 'APPROVER_EMPID',
1775: avalue => l_superior_id);
1776:
1774: aname => 'APPROVER_EMPID',
1775: avalue => l_superior_id);
1776:
1777: /* Set the forward-to ID. This is the approver that will get the notification */
1778: wf_engine.SetItemAttrNumber (itemtype => itemtype,
1779: itemkey => itemkey,
1780: aname => 'FORWARD_TO_ID',
1781: avalue => l_superior_id);
1782:
1782:
1783: /* Set the value of FORWARD_TO_ID_OLD. This is used to determine if the responder
1784: ** to the notification entered a different USERNAME to forward the doc to.
1785: */
1786: wf_engine.SetItemAttrNumber ( itemtype => itemType,
1787: itemkey => itemkey,
1788: aname => 'FORWARD_TO_ID_OLD',
1789: avalue => l_superior_id);
1790:
1793: /* Commented out the call since we have already got the username */
1794: /*PO_REQAPPROVAL_INIT1.get_user_name(l_superior_id, x_username,
1795: x_user_display_name);*/
1796:
1797: wf_engine.SetItemAttrText ( itemtype => itemType,
1798: itemkey => itemkey,
1799: aname => 'FORWARD_TO_USERNAME' ,
1800: avalue => x_username);
1801:
1798: itemkey => itemkey,
1799: aname => 'FORWARD_TO_USERNAME' ,
1800: avalue => x_username);
1801:
1802: wf_engine.SetItemAttrText ( itemtype => itemType,
1803: itemkey => itemkey,
1804: aname => 'FORWARD_TO_DISPLAY_NAME' ,
1805: avalue => x_user_display_name);
1806:
1803: itemkey => itemkey,
1804: aname => 'FORWARD_TO_DISPLAY_NAME' ,
1805: avalue => x_user_display_name);
1806:
1807: wf_engine.SetItemAttrText ( itemtype => itemType,
1808: itemkey => itemkey,
1809: aname => 'APPROVER_USER_NAME' ,
1810: avalue => x_username);
1811:
1808: itemkey => itemkey,
1809: aname => 'APPROVER_USER_NAME' ,
1810: avalue => x_username);
1811:
1812: wf_engine.SetItemAttrText ( itemtype => itemType,
1813: itemkey => itemkey,
1814: aname => 'APPROVER_DISPLAY_NAME' ,
1815: avalue => x_user_display_name);
1816:
1886: x_progress varchar2(200) := NULL;
1887: BEGIN
1888:
1889:
1890: l_empid := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1891: itemkey => itemkey,
1892: aname => 'APPROVER_EMPID');
1893:
1894: l_approval_path_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1890: l_empid := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1891: itemkey => itemkey,
1892: aname => 'APPROVER_EMPID');
1893:
1894: l_approval_path_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1895: itemkey => itemkey,
1896: aname => 'APPROVAL_PATH_ID');
1897:
1898: x_progress := '001';
1944: ** At this point, we find an approver, so we need to set the forward-from
1945: ** to be the last person that took the APPROVE action.
1946: */
1947:
1948: l_forward_from_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
1949: itemkey => itemkey,
1950: aname => 'FORWARD_FROM_ID');
1951:
1952: IF l_forward_from_id is NULL THEN
1951:
1952: IF l_forward_from_id is NULL THEN
1953:
1954: /* Get the previous approver username and display name */
1955: l_forward_from_username := wf_engine.GetItemAttrText ( itemtype => itemType,
1956: itemkey => itemkey,
1957: aname => 'APPROVER_USER_NAME');
1958:
1959: l_forward_from_disp_name := wf_engine.GetItemAttrText ( itemtype => itemType,
1955: l_forward_from_username := wf_engine.GetItemAttrText ( itemtype => itemType,
1956: itemkey => itemkey,
1957: aname => 'APPROVER_USER_NAME');
1958:
1959: l_forward_from_disp_name := wf_engine.GetItemAttrText ( itemtype => itemType,
1960: itemkey => itemkey,
1961: aname => 'APPROVER_DISPLAY_NAME');
1962:
1963: /* Set the forward-from username and display name to that of the previous
1962:
1963: /* Set the forward-from username and display name to that of the previous
1964: ** approver.
1965: */
1966: wf_engine.SetItemAttrText ( itemtype => itemType,
1967: itemkey => itemkey,
1968: aname => 'FORWARD_FROM_ID' ,
1969: avalue => l_empid);
1970:
1967: itemkey => itemkey,
1968: aname => 'FORWARD_FROM_ID' ,
1969: avalue => l_empid);
1970:
1971: wf_engine.SetItemAttrText ( itemtype => itemType,
1972: itemkey => itemkey,
1973: aname => 'FORWARD_FROM_USER_NAME' ,
1974: avalue => l_forward_from_username);
1975:
1972: itemkey => itemkey,
1973: aname => 'FORWARD_FROM_USER_NAME' ,
1974: avalue => l_forward_from_username);
1975:
1976: wf_engine.SetItemAttrText ( itemtype => itemType,
1977: itemkey => itemkey,
1978: aname => 'FORWARD_FROM_DISP_NAME' ,
1979: avalue => l_forward_from_disp_name);
1980:
1988: **
1989: ** NOTE: Activity "Verify Authority" always uses the APPROVER_EMPID attribute
1990: ** as the approver.
1991: */
1992: wf_engine.SetItemAttrNumber (itemtype => itemtype,
1993: itemkey => itemkey,
1994: aname => 'APPROVER_EMPID',
1995: avalue => l_superior_id);
1996:
1994: aname => 'APPROVER_EMPID',
1995: avalue => l_superior_id);
1996:
1997: /* Set the forward-to ID. This is the approver that will get the notification */
1998: wf_engine.SetItemAttrNumber (itemtype => itemtype,
1999: itemkey => itemkey,
2000: aname => 'FORWARD_TO_ID',
2001: avalue => l_superior_id);
2002:
2002:
2003: /* Set the value of FORWARD_TO_ID_OLD. This is used to determine if the responder
2004: ** to the notification entered a different USERNAME to forward the doc to.
2005: */
2006: wf_engine.SetItemAttrNumber ( itemtype => itemType,
2007: itemkey => itemkey,
2008: aname => 'FORWARD_TO_ID_OLD',
2009: avalue => l_superior_id);
2010:
2012: ** performer of the notification */
2013: /*PO_REQAPPROVAL_INIT1.get_user_name(l_superior_id, x_username,
2014: x_user_display_name);*/
2015:
2016: wf_engine.SetItemAttrText ( itemtype => itemType,
2017: itemkey => itemkey,
2018: aname => 'FORWARD_TO_USERNAME' ,
2019: avalue => x_username);
2020:
2017: itemkey => itemkey,
2018: aname => 'FORWARD_TO_USERNAME' ,
2019: avalue => x_username);
2020:
2021: wf_engine.SetItemAttrText ( itemtype => itemType,
2022: itemkey => itemkey,
2023: aname => 'FORWARD_TO_DISPLAY_NAME' ,
2024: avalue => x_user_display_name);
2025:
2022: itemkey => itemkey,
2023: aname => 'FORWARD_TO_DISPLAY_NAME' ,
2024: avalue => x_user_display_name);
2025:
2026: wf_engine.SetItemAttrText ( itemtype => itemType,
2027: itemkey => itemkey,
2028: aname => 'APPROVER_USER_NAME' ,
2029: avalue => x_username);
2030:
2027: itemkey => itemkey,
2028: aname => 'APPROVER_USER_NAME' ,
2029: avalue => x_username);
2030:
2031: wf_engine.SetItemAttrText ( itemtype => itemType,
2032: itemkey => itemkey,
2033: aname => 'APPROVER_DISPLAY_NAME' ,
2034: avalue => x_user_display_name);
2035:
2072: x_progress varchar2(3):= '000';
2073:
2074: BEGIN
2075: x_progress := '001';
2076: l_document_type_code := wf_engine.GetItemAttrText (itemtype => itemtype,
2077: itemkey => itemkey,
2078: aname => 'DOCUMENT_TYPE');
2079:
2080: l_document_subtype := wf_engine.GetItemAttrText (itemtype => itemtype,
2076: l_document_type_code := wf_engine.GetItemAttrText (itemtype => itemtype,
2077: itemkey => itemkey,
2078: aname => 'DOCUMENT_TYPE');
2079:
2080: l_document_subtype := wf_engine.GetItemAttrText (itemtype => itemtype,
2081: itemkey => itemkey,
2082: aname => 'DOCUMENT_SUBTYPE');
2083:
2084: open C1(l_document_type_code, l_document_subtype);