33: fetch csr_wiav into l_dummy;
34: if csr_wiav%notfound then
35: --
36: -- item attribute does not exist so create it
37: wf_engine.additemattr
38: (itemtype => p_item_type
39: ,itemkey => p_item_key
40: ,aname => p_name);
41: end if;
204: ELSE
205: l_item_key := 'LP^' ||p_lp_enrollment_id || '^' || l_lp_details.notify_days_before_target||'^' ||to_char(sysdate,'DDMMRRRR');
206: END IF;
207:
208: WF_ENGINE.CREATEPROCESS(l_item_type, l_item_key, l_process);
209: --Enh 5606090: Language support for LrngPath.
210: WF_ENGINE.setitemattrtext(l_item_type, l_item_key, 'LP_NAME', p_lp_enrollment_id);
211: WF_ENGINE.setitemattrdate(l_item_type, l_item_key, 'TARGET_DATE', l_lp_details.completion_target);
212: WF_ENGINE.setitemattrdate(l_item_type, l_item_key, 'COMPLETION_DATE', l_lp_details.completion_date);
206: END IF;
207:
208: WF_ENGINE.CREATEPROCESS(l_item_type, l_item_key, l_process);
209: --Enh 5606090: Language support for LrngPath.
210: WF_ENGINE.setitemattrtext(l_item_type, l_item_key, 'LP_NAME', p_lp_enrollment_id);
211: WF_ENGINE.setitemattrdate(l_item_type, l_item_key, 'TARGET_DATE', l_lp_details.completion_target);
212: WF_ENGINE.setitemattrdate(l_item_type, l_item_key, 'COMPLETION_DATE', l_lp_details.completion_date);
213: WF_ENGINE.setitemattrnumber(l_item_type, l_item_key, 'NOTIFY_DAYS_BEFORE_TARGET', l_lp_details.notify_days_before_target);
214:
207:
208: WF_ENGINE.CREATEPROCESS(l_item_type, l_item_key, l_process);
209: --Enh 5606090: Language support for LrngPath.
210: WF_ENGINE.setitemattrtext(l_item_type, l_item_key, 'LP_NAME', p_lp_enrollment_id);
211: WF_ENGINE.setitemattrdate(l_item_type, l_item_key, 'TARGET_DATE', l_lp_details.completion_target);
212: WF_ENGINE.setitemattrdate(l_item_type, l_item_key, 'COMPLETION_DATE', l_lp_details.completion_date);
213: WF_ENGINE.setitemattrnumber(l_item_type, l_item_key, 'NOTIFY_DAYS_BEFORE_TARGET', l_lp_details.notify_days_before_target);
214:
215: create_item_attrib_if_notexist(p_item_type => l_item_type
208: WF_ENGINE.CREATEPROCESS(l_item_type, l_item_key, l_process);
209: --Enh 5606090: Language support for LrngPath.
210: WF_ENGINE.setitemattrtext(l_item_type, l_item_key, 'LP_NAME', p_lp_enrollment_id);
211: WF_ENGINE.setitemattrdate(l_item_type, l_item_key, 'TARGET_DATE', l_lp_details.completion_target);
212: WF_ENGINE.setitemattrdate(l_item_type, l_item_key, 'COMPLETION_DATE', l_lp_details.completion_date);
213: WF_ENGINE.setitemattrnumber(l_item_type, l_item_key, 'NOTIFY_DAYS_BEFORE_TARGET', l_lp_details.notify_days_before_target);
214:
215: create_item_attrib_if_notexist(p_item_type => l_item_type
216: ,p_item_key => l_item_key
209: --Enh 5606090: Language support for LrngPath.
210: WF_ENGINE.setitemattrtext(l_item_type, l_item_key, 'LP_NAME', p_lp_enrollment_id);
211: WF_ENGINE.setitemattrdate(l_item_type, l_item_key, 'TARGET_DATE', l_lp_details.completion_target);
212: WF_ENGINE.setitemattrdate(l_item_type, l_item_key, 'COMPLETION_DATE', l_lp_details.completion_date);
213: WF_ENGINE.setitemattrnumber(l_item_type, l_item_key, 'NOTIFY_DAYS_BEFORE_TARGET', l_lp_details.notify_days_before_target);
214:
215: create_item_attrib_if_notexist(p_item_type => l_item_type
216: ,p_item_key => l_item_key
217: ,p_name => 'LP_ENROLLMENT_ID');
214:
215: create_item_attrib_if_notexist(p_item_type => l_item_type
216: ,p_item_key => l_item_key
217: ,p_name => 'LP_ENROLLMENT_ID');
218: WF_ENGINE.setitemattrnumber(l_item_type,l_item_key,'LP_ENROLLMENT_ID',p_lp_enrollment_id);
219: l_person_id := l_lp_details.person_id;
220: l_contact_id := l_lp_details.contact_id;
221:
222: IF l_lp_details.creator_person_id <> l_person_id THEN
223: OPEN csr_get_person_name(l_lp_details.creator_person_id);
224: FETCH csr_get_person_name INTO l_creator_person_name;
225: CLOSE csr_get_person_name;
226: fnd_file.put_line(FND_FILE.LOG,'creator_person_id ' || l_creator_person_name);
227: WF_ENGINE.setitemattrtext(l_item_type,l_item_key,'LP_CREATOR_NAME',l_creator_person_name);
228: END IF;
229:
230: ELSIF p_lp_notification_type IS NOT NULL THEN
231: OPEN csr_get_lpm_details;
233: CLOSE csr_get_lpm_details;
234:
235: l_item_key := 'LPM^' ||p_lp_member_enrollment_id || '^' || l_lpm_details.notify_days_before_target||'^' ||to_char(sysdate,'DDMMRRRR');
236:
237: WF_ENGINE.CREATEPROCESS(l_item_type, l_item_key, l_process);
238:
239:
240: WF_ENGINE.setitemattrtext(l_item_type, l_item_key, 'COURSE_NAME', l_lpm_details.course_name);
241: --Enh 5606090: Language support for LrngPath.
236:
237: WF_ENGINE.CREATEPROCESS(l_item_type, l_item_key, l_process);
238:
239:
240: WF_ENGINE.setitemattrtext(l_item_type, l_item_key, 'COURSE_NAME', l_lpm_details.course_name);
241: --Enh 5606090: Language support for LrngPath.
242: WF_ENGINE.setitemattrtext(l_item_type, l_item_key, 'LP_NAME', p_lp_member_enrollment_id);
243: WF_ENGINE.setitemattrdate(l_item_type, l_item_key, 'TARGET_DATE', l_lpm_details.completion_target);
244: create_item_attrib_if_notexist(p_item_type => l_item_type
238:
239:
240: WF_ENGINE.setitemattrtext(l_item_type, l_item_key, 'COURSE_NAME', l_lpm_details.course_name);
241: --Enh 5606090: Language support for LrngPath.
242: WF_ENGINE.setitemattrtext(l_item_type, l_item_key, 'LP_NAME', p_lp_member_enrollment_id);
243: WF_ENGINE.setitemattrdate(l_item_type, l_item_key, 'TARGET_DATE', l_lpm_details.completion_target);
244: create_item_attrib_if_notexist(p_item_type => l_item_type
245: ,p_item_key => l_item_key
246: ,p_name => 'LPM_ENROLLMENT_ID');
239:
240: WF_ENGINE.setitemattrtext(l_item_type, l_item_key, 'COURSE_NAME', l_lpm_details.course_name);
241: --Enh 5606090: Language support for LrngPath.
242: WF_ENGINE.setitemattrtext(l_item_type, l_item_key, 'LP_NAME', p_lp_member_enrollment_id);
243: WF_ENGINE.setitemattrdate(l_item_type, l_item_key, 'TARGET_DATE', l_lpm_details.completion_target);
244: create_item_attrib_if_notexist(p_item_type => l_item_type
245: ,p_item_key => l_item_key
246: ,p_name => 'LPM_ENROLLMENT_ID');
247: WF_ENGINE.setitemattrnumber(l_item_type,l_item_key,'LPM_ENROLLMENT_ID',p_lp_member_enrollment_id);
243: WF_ENGINE.setitemattrdate(l_item_type, l_item_key, 'TARGET_DATE', l_lpm_details.completion_target);
244: create_item_attrib_if_notexist(p_item_type => l_item_type
245: ,p_item_key => l_item_key
246: ,p_name => 'LPM_ENROLLMENT_ID');
247: WF_ENGINE.setitemattrnumber(l_item_type,l_item_key,'LPM_ENROLLMENT_ID',p_lp_member_enrollment_id);
248: WF_ENGINE.setitemattrnumber(l_item_type, l_item_key, 'NOTIFY_DAYS_BEFORE_TARGET', l_lpm_details.notify_days_before_target);
249: l_person_id := l_lpm_details.person_id;
250: l_contact_id := l_lpm_details.contact_id;
251:
244: create_item_attrib_if_notexist(p_item_type => l_item_type
245: ,p_item_key => l_item_key
246: ,p_name => 'LPM_ENROLLMENT_ID');
247: WF_ENGINE.setitemattrnumber(l_item_type,l_item_key,'LPM_ENROLLMENT_ID',p_lp_member_enrollment_id);
248: WF_ENGINE.setitemattrnumber(l_item_type, l_item_key, 'NOTIFY_DAYS_BEFORE_TARGET', l_lpm_details.notify_days_before_target);
249: l_person_id := l_lpm_details.person_id;
250: l_contact_id := l_lpm_details.contact_id;
251:
252:
254: OPEN csr_get_person_name(l_lpm_details.creator_person_id);
255: FETCH csr_get_person_name INTO l_creator_person_name;
256: CLOSE csr_get_person_name;
257: fnd_file.put_line(FND_FILE.LOG,'creator_person_id ' || l_creator_person_name);
258: WF_ENGINE.setitemattrtext(l_item_type,l_item_key,'LP_CREATOR_NAME',l_creator_person_name);
259: END IF;
260:
261: IF p_lp_notification_type = 'LNR_CTG_LPM_REMINDER' OR p_lp_notification_type = 'MGR_CTG_LPM_REMINDER' THEN
262: OPEN csr_get_section_name;
261: IF p_lp_notification_type = 'LNR_CTG_LPM_REMINDER' OR p_lp_notification_type = 'MGR_CTG_LPM_REMINDER' THEN
262: OPEN csr_get_section_name;
263: FETCH csr_get_section_name INTO l_section_name;
264: CLOSE csr_get_section_name;
265: WF_ENGINE.setitemattrtext(l_item_type,l_item_key,'SECTION_NAME',l_section_name);
266: END IF;
267:
268: END IF;
269:
269:
270: create_item_attrib_if_notexist(p_item_type => l_item_type
271: ,p_item_key => l_item_key
272: ,p_name => 'LP_NOTIFICATION_TYPE');
273: WF_ENGINE.setitemattrtext(l_item_type, l_item_key, 'LP_NOTIFICATION_TYPE', p_lp_notification_type);
274:
275:
276: IF l_person_id IS NOT NULL THEN
277: --Commented for Bug 9976677,as it doesn't retrieve rows for terminated learners.Since the use of below call is only to
302: ELSE
303: CLOSE csr_get_person_name;
304: END IF;
305:
306: WF_ENGINE.setitemattrtext(l_item_type,l_item_key,'EVENT_OWNER',l_user_name);
307: WF_ENGINE.setitemattrtext(l_item_type,l_item_key,'LP_ENROLLEE',l_learner_full_name);
308:
309:
310:
303: CLOSE csr_get_person_name;
304: END IF;
305:
306: WF_ENGINE.setitemattrtext(l_item_type,l_item_key,'EVENT_OWNER',l_user_name);
307: WF_ENGINE.setitemattrtext(l_item_type,l_item_key,'LP_ENROLLEE',l_learner_full_name);
308:
309:
310:
311:
310:
311:
312: --Commented for Bug 9976677
313: /*IF l_person_details.full_name IS NOT NULL then
314: WF_ENGINE.setitemattrtext(l_item_type,l_item_key,'EVENT_OWNER',l_user_name);
315: WF_ENGINE.setitemattrtext(l_item_type,l_item_key,'LP_ENROLLEE',l_person_details.full_name);
316: END IF;*/
317:
318: ELSIF l_contact_id IS NOT NULL THEN
311:
312: --Commented for Bug 9976677
313: /*IF l_person_details.full_name IS NOT NULL then
314: WF_ENGINE.setitemattrtext(l_item_type,l_item_key,'EVENT_OWNER',l_user_name);
315: WF_ENGINE.setitemattrtext(l_item_type,l_item_key,'LP_ENROLLEE',l_person_details.full_name);
316: END IF;*/
317:
318: ELSIF l_contact_id IS NOT NULL THEN
319: OPEN csr_get_contact_name;
339: ELSE
340: CLOSE csr_get_contact_user_name;
341: END IF;
342:
343: WF_ENGINE.setitemattrtext(l_item_type,l_item_key,'LP_ENROLLEE',l_contact_name);
344: WF_ENGINE.setitemattrtext(l_item_type,l_item_key,'EVENT_OWNER',l_user_name);
345: END IF;
346:
347:
340: CLOSE csr_get_contact_user_name;
341: END IF;
342:
343: WF_ENGINE.setitemattrtext(l_item_type,l_item_key,'LP_ENROLLEE',l_contact_name);
344: WF_ENGINE.setitemattrtext(l_item_type,l_item_key,'EVENT_OWNER',l_user_name);
345: END IF;
346:
347:
348:
355: p_name =>l_role_name,
356: p_display_name =>l_role_display_name);
357:
358:
359: WF_ENGINE.SetItemOwner(itemtype => l_item_type,
360: itemkey =>l_item_key,
361: owner =>l_role_name);
362:
363: hr_utility.set_location('After Setting Owner'||l_proc, 10);
362:
363: hr_utility.set_location('After Setting Owner'||l_proc, 10);
364:
365:
366: WF_ENGINE.STARTPROCESS(l_item_type,l_item_key);
367:
368: hr_utility.set_location('leaving:'||l_proc, 20);
369:
370: EXCEPTION
382:
383: l_notification_type varchar2(30);
384: BEGIN
385: IF (funcmode='RUN') THEN
386: l_notification_type := WF_ENGINE.getitemattrtext(itemtype => itemtype,
387: itemkey => itemkey,
388: aname =>'LP_NOTIFICATION_TYPE',
389: ignore_notfound => true);
390: resultout := 'COMPLETE:'||l_notification_type;
429:
430: BEGIN
431: --
432: IF (funcmode = 'RUN') THEN
433: l_lp_enrollment_id := wf_engine.getItemAttrNumber
434: (itemtype => itemtype
435: ,itemkey => itemkey
436: ,aname => 'LP_ENROLLMENT_ID');
437:
437:
438: OPEN csr_get_manager_name;
439: FETCH csr_get_manager_name INTO l_manager_details;
440: IF csr_get_manager_name%FOUND THEN
441: WF_ENGINE.setitemattrtext(itemtype,itemkey,'SUPERVISOR_USERNAME',l_manager_details.full_name);
442: create_item_attrib_if_notexist(p_item_type => itemtype
443: ,p_item_key => itemkey
444: ,p_name => 'MANAGER_ID');
445: WF_ENGINE.setitemattrNumber(itemtype,itemkey,'MANAGER_ID',l_manager_details.person_id);
441: WF_ENGINE.setitemattrtext(itemtype,itemkey,'SUPERVISOR_USERNAME',l_manager_details.full_name);
442: create_item_attrib_if_notexist(p_item_type => itemtype
443: ,p_item_key => itemkey
444: ,p_name => 'MANAGER_ID');
445: WF_ENGINE.setitemattrNumber(itemtype,itemkey,'MANAGER_ID',l_manager_details.person_id);
446: CLOSE csr_get_manager_name;
447: OPEN csr_get_user_name(l_manager_details.person_id);
448: FETCH csr_get_user_name INTO l_manager_user_name;
449: IF csr_get_user_name%FOUND THEN
446: CLOSE csr_get_manager_name;
447: OPEN csr_get_user_name(l_manager_details.person_id);
448: FETCH csr_get_user_name INTO l_manager_user_name;
449: IF csr_get_user_name%FOUND THEN
450: WF_ENGINE.setitemattrText(itemtype,itemkey,'EVENT_OWNER',l_manager_user_name);
451: END IF;
452: CLOSE csr_get_user_name;
453: resultout := 'COMPLETE:T';
454: ELSE
492:
493: BEGIN
494: --
495: IF (funcmode = 'RUN') THEN
496: l_manager_id := wf_engine.getItemAttrNumber
497: (itemtype => itemtype
498: ,itemkey => itemkey
499: ,aname => 'MANAGER_ID');
500:
497: (itemtype => itemtype
498: ,itemkey => itemkey
499: ,aname => 'MANAGER_ID');
500:
501: l_lp_enrollment_id := wf_engine.getItemAttrNumber
502: (itemtype => itemtype
503: ,itemkey => itemkey
504: ,aname => 'LP_ENROLLMENT_ID');
505: OPEN csr_get_creator_name;
507: IF l_creator_details.person_id = l_manager_id THEN
508: CLOSE csr_get_creator_name;
509: resultout := 'COMPLETE:T';
510: ELSE
511: WF_ENGINE.setitemattrtext(itemtype,itemkey,'LP_CREATOR_NAME',l_creator_details.full_name);
512: create_item_attrib_if_notexist(p_item_type => itemtype
513: ,p_item_key => itemkey
514: ,p_name => 'CREATOR_ID');
515: WF_ENGINE.setitemattrNumber(itemtype,itemkey,'CREATOR_ID',l_creator_details.person_id);
511: WF_ENGINE.setitemattrtext(itemtype,itemkey,'LP_CREATOR_NAME',l_creator_details.full_name);
512: create_item_attrib_if_notexist(p_item_type => itemtype
513: ,p_item_key => itemkey
514: ,p_name => 'CREATOR_ID');
515: WF_ENGINE.setitemattrNumber(itemtype,itemkey,'CREATOR_ID',l_creator_details.person_id);
516: CLOSE csr_get_creator_name;
517: OPEN csr_get_user_name(l_creator_details.person_id);
518: FETCH csr_get_user_name INTO l_manager_user_name;
519: IF csr_get_user_name%FOUND THEN
516: CLOSE csr_get_creator_name;
517: OPEN csr_get_user_name(l_creator_details.person_id);
518: FETCH csr_get_user_name INTO l_manager_user_name;
519: IF csr_get_user_name%FOUND THEN
520: WF_ENGINE.setitemattrText(itemtype,itemkey,'EVENT_OWNER',l_manager_user_name);
521: END IF;
522: CLOSE csr_get_user_name;
523: resultout := 'COMPLETE:F';
524: END IF;