5: --
6: g_package varchar2(33) := 'hr_transaction_ss.';
7: g_update_object_version varchar2(30) := 'update_object_version';
8:
9: g_debug boolean := hr_utility.debug_enabled;
10:
11: --- -------------------------------------------------------------------------
12: --- -------------setRespondedUserCtx-----------------------------------
13: --- -------------------------------------------------------------------------
26: cursor username is
27: select user_id from fnd_user where user_name=contextUser;
28: begin
29: if g_debug then
30: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
31: hr_utility.set_location('p_item_type:'||p_item_type,2);
32: hr_utility.set_location('p_item_key:'||p_item_key,3);
33: hr_utility.set_location('fnd_global.user_name:'||fnd_global.user_name,4);
34: hr_utility.set_location('fnd_global.user_id:'||fnd_global.user_id,5);
27: select user_id from fnd_user where user_name=contextUser;
28: begin
29: if g_debug then
30: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
31: hr_utility.set_location('p_item_type:'||p_item_type,2);
32: hr_utility.set_location('p_item_key:'||p_item_key,3);
33: hr_utility.set_location('fnd_global.user_name:'||fnd_global.user_name,4);
34: hr_utility.set_location('fnd_global.user_id:'||fnd_global.user_id,5);
35: end if;
28: begin
29: if g_debug then
30: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
31: hr_utility.set_location('p_item_type:'||p_item_type,2);
32: hr_utility.set_location('p_item_key:'||p_item_key,3);
33: hr_utility.set_location('fnd_global.user_name:'||fnd_global.user_name,4);
34: hr_utility.set_location('fnd_global.user_id:'||fnd_global.user_id,5);
35: end if;
36:
29: if g_debug then
30: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
31: hr_utility.set_location('p_item_type:'||p_item_type,2);
32: hr_utility.set_location('p_item_key:'||p_item_key,3);
33: hr_utility.set_location('fnd_global.user_name:'||fnd_global.user_name,4);
34: hr_utility.set_location('fnd_global.user_id:'||fnd_global.user_id,5);
35: end if;
36:
37:
30: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
31: hr_utility.set_location('p_item_type:'||p_item_type,2);
32: hr_utility.set_location('p_item_key:'||p_item_key,3);
33: hr_utility.set_location('fnd_global.user_name:'||fnd_global.user_name,4);
34: hr_utility.set_location('fnd_global.user_id:'||fnd_global.user_id,5);
35: end if;
36:
37:
38: -- check if we have the context set by the Approver Notification
41: contextUser := wf_engine.getitemattrtext(p_item_type,p_item_key,'HR_CONTEXT_USER_ATTR',true);
42: contextProxyUser := wf_engine.getitemattrtext(p_item_type,p_item_key,'HR_CONTEXT_PROXY_ATTR',true);
43:
44: if g_debug then
45: hr_utility.set_location('contextUser value :'|| contextUser,6);
46: hr_utility.set_location('contextProxyUser value :'|| contextProxyUser,6);
47:
48: end if;
49: /* possible values
42: contextProxyUser := wf_engine.getitemattrtext(p_item_type,p_item_key,'HR_CONTEXT_PROXY_ATTR',true);
43:
44: if g_debug then
45: hr_utility.set_location('contextUser value :'|| contextUser,6);
46: hr_utility.set_location('contextProxyUser value :'|| contextProxyUser,6);
47:
48: end if;
49: /* possible values
50: Case 1: Null => Call back function does not exists or context attribute
73: if(nvl(contextProxyUser,fnd_global.user_name)<>fnd_global.user_name) then
74:
75: -- check if the role is a valid FND user
76: if g_debug then
77: hr_utility.set_location('contextUser and contextProxyUser does not match fnd_global.user_name',7);
78: end if;
79: open username;
80: fetch username into userId;
81: if username%found then
79: open username;
80: fetch username into userId;
81: if username%found then
82: if g_debug then
83: hr_utility.set_location('found a valid fnd user corresponding to context user',8);
84: hr_utility.set_location('calling fnd_global.apps_initialize for userId:'||userId,9);
85: end if;
86: -- call the apps intialization
87: fnd_global.apps_initialize(userId,null,null,null,null);
80: fetch username into userId;
81: if username%found then
82: if g_debug then
83: hr_utility.set_location('found a valid fnd user corresponding to context user',8);
84: hr_utility.set_location('calling fnd_global.apps_initialize for userId:'||userId,9);
85: end if;
86: -- call the apps intialization
87: fnd_global.apps_initialize(userId,null,null,null,null);
88: if g_debug then
85: end if;
86: -- call the apps intialization
87: fnd_global.apps_initialize(userId,null,null,null,null);
88: if g_debug then
89: hr_utility.set_location('returned from calling fnd_global.apps_initialize for userId:'||userId,10);
90: hr_utility.set_location('fnd_global.user_name after reset:'||fnd_global.user_name,11);
91: hr_utility.set_location('fnd_global.user_id after reset:'||fnd_global.user_id,12);
92: end if;
93: end if;
86: -- call the apps intialization
87: fnd_global.apps_initialize(userId,null,null,null,null);
88: if g_debug then
89: hr_utility.set_location('returned from calling fnd_global.apps_initialize for userId:'||userId,10);
90: hr_utility.set_location('fnd_global.user_name after reset:'||fnd_global.user_name,11);
91: hr_utility.set_location('fnd_global.user_id after reset:'||fnd_global.user_id,12);
92: end if;
93: end if;
94: close username;
87: fnd_global.apps_initialize(userId,null,null,null,null);
88: if g_debug then
89: hr_utility.set_location('returned from calling fnd_global.apps_initialize for userId:'||userId,10);
90: hr_utility.set_location('fnd_global.user_name after reset:'||fnd_global.user_name,11);
91: hr_utility.set_location('fnd_global.user_id after reset:'||fnd_global.user_id,12);
92: end if;
93: end if;
94: close username;
95: end if;
96: end if;
97: end if;
98:
99: if (g_debug ) then
100: hr_utility.set_location('Leaving:'|| g_package||'.'||c_proc, 20);
101: end if;
102:
103: exception
104: when others then
105: if ( username%isopen ) then
106: close username;
107: end if;
108: if g_debug then
109: hr_utility.set_location('Error in setRespondedUserCtx SQLERRM' ||' '||to_char(SQLCODE),30);
110: end if;
111: raise;
112: end setRespondedUserCtx;
113:
141: l_proc constant varchar2(100) := g_package || ' reset_ame_approval_status';
142: --ns end
143:
144: BEGIN
145: hr_utility.set_location('Entering: '|| l_proc,5);
146: g_debug := hr_utility.debug_enabled;
147:
148: IF g_debug THEN
149: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
142: --ns end
143:
144: BEGIN
145: hr_utility.set_location('Entering: '|| l_proc,5);
146: g_debug := hr_utility.debug_enabled;
147:
148: IF g_debug THEN
149: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
150: END IF;
145: hr_utility.set_location('Entering: '|| l_proc,5);
146: g_debug := hr_utility.debug_enabled;
147:
148: IF g_debug THEN
149: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 1);
150: END IF;
151:
152:
153: -- get AME related WF attribute values
155: (p_item_type => p_item_type
156: ,p_item_key => p_item_key
157: ,p_name => 'HR_AME_APP_ID_ATTR') then
158: -- get the attribute value
159: hr_utility.trace('In : (if hr_workflow_utility.item_attribute_exists) '|| l_proc);
160: c_application_id :=wf_engine.GetItemAttrNumber(itemtype => p_item_type ,
161: itemkey => p_item_key,
162: aname => 'HR_AME_APP_ID_ATTR');
163:
161: itemkey => p_item_key,
162: aname => 'HR_AME_APP_ID_ATTR');
163:
164: else
165: hr_utility.trace('In : else of (if hr_workflow_utility.item_attribute_exists) '|| l_proc);
166: c_application_id := null;
167: end if;
168:
169: c_application_id := nvl(c_application_id,800);
172: (p_item_type => p_item_type
173: ,p_item_key => p_item_key
174: ,p_name => 'TRANSACTION_ID') then
175: -- get the attribute value
176: hr_utility.trace('In : (if hr_workflow_utility.item_attribute_exists) '|| l_proc);
177: c_transaction_id := wf_engine.GetItemAttrNumber(itemtype => p_item_type ,
178: itemkey => p_item_key,
179: aname => 'TRANSACTION_ID');
180: else
177: c_transaction_id := wf_engine.GetItemAttrNumber(itemtype => p_item_type ,
178: itemkey => p_item_key,
179: aname => 'TRANSACTION_ID');
180: else
181: hr_utility.trace('In : else of (if hr_workflow_utility.item_attribute_exists) '|| l_proc);
182: c_transaction_id := null;
183: end if;
184:
185:
187: (p_item_type => p_item_type
188: ,p_item_key => p_item_key
189: ,p_name => 'HR_AME_TRAN_TYPE_ATTR') then
190: -- get the attribute value
191: hr_utility.trace('In : (if hr_workflow_utility.item_attribute_exists) '|| l_proc);
192: c_transaction_type := wf_engine.GetItemAttrText(itemtype => p_item_type ,
193: itemkey => p_item_key,
194: aname => 'HR_AME_TRAN_TYPE_ATTR');
195: else
192: c_transaction_type := wf_engine.GetItemAttrText(itemtype => p_item_type ,
193: itemkey => p_item_key,
194: aname => 'HR_AME_TRAN_TYPE_ATTR');
195: else
196: hr_utility.trace('In : else of (if hr_workflow_utility.item_attribute_exists) '|| l_proc);
197: c_transaction_type := null;
198:
199: end if;
200:
205: itemkey => p_item_key,
206: aname => 'HR_AME_TRAN_TYPE_ATTR');
207:
208: if(c_transaction_type is not null) then
209: hr_utility.trace('In : (if(c_transaction_type is not null) ) '|| l_proc);
210: IF g_debug THEN
211: hr_utility.trace('calling ame_api.getAllApprovers ');
212: END IF;
213:
207:
208: if(c_transaction_type is not null) then
209: hr_utility.trace('In : (if(c_transaction_type is not null) ) '|| l_proc);
210: IF g_debug THEN
211: hr_utility.trace('calling ame_api.getAllApprovers ');
212: END IF;
213:
214: ame_api.getAllApprovers(applicationIdIn =>c_application_id,
215: transactionIdIn=>c_transaction_id,
225: itemkey => p_item_key,
226: aname => 'RETURN_TO_USERNAME');
227: Exception
228: WHEN others then
229: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
230: null; -- Bug 3050544
231: End;
232: IF ( c_return_user IS NULL OR c_creator_user = c_return_user ) THEN
233: c_rfc_initiator := 'Y';
239:
240: for i in 1..c_all_approvers.count loop
241:
242: IF g_debug THEN
243: hr_utility.trace('calling ame_api..updateApprovalStatus2 ');
244: END IF;
245:
246: -- call AME update approval status as null
247: --ns comment start
270: end if;
271:
272:
273: IF g_debug THEN
274: hr_utility.set_location('Leaving:'||g_package||'.'|| c_proc, 35);
275: END IF;
276:
277: hr_utility.set_location('Leaving: '|| l_proc,40);
278: EXCEPTION
273: IF g_debug THEN
274: hr_utility.set_location('Leaving:'||g_package||'.'|| c_proc, 35);
275: END IF;
276:
277: hr_utility.set_location('Leaving: '|| l_proc,40);
278: EXCEPTION
279: when others then
280: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
281: hr_utility.trace(' exception in '||c_proc||' : ' || sqlerrm);
276:
277: hr_utility.set_location('Leaving: '|| l_proc,40);
278: EXCEPTION
279: when others then
280: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
281: hr_utility.trace(' exception in '||c_proc||' : ' || sqlerrm);
282: Wf_Core.Context(g_package, c_proc, p_item_type, p_item_key);
283: raise;
284:
277: hr_utility.set_location('Leaving: '|| l_proc,40);
278: EXCEPTION
279: when others then
280: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
281: hr_utility.trace(' exception in '||c_proc||' : ' || sqlerrm);
282: Wf_Core.Context(g_package, c_proc, p_item_type, p_item_key);
283: raise;
284:
285: END reset_ame_approval_status;
297: c_proc varchar2(30) default 'reset_approval_status';
298: l_approvalProcessVersion varchar2(10);
299: l_proc constant varchar2(100) := g_package || ' reset_approval_status';
300: BEGIN
301: hr_utility.set_location('Entering: '|| l_proc,5);
302: g_debug := hr_utility.debug_enabled;
303:
304: IF g_debug THEN
305: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 10);
298: l_approvalProcessVersion varchar2(10);
299: l_proc constant varchar2(100) := g_package || ' reset_approval_status';
300: BEGIN
301: hr_utility.set_location('Entering: '|| l_proc,5);
302: g_debug := hr_utility.debug_enabled;
303:
304: IF g_debug THEN
305: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 10);
306: END IF;
301: hr_utility.set_location('Entering: '|| l_proc,5);
302: g_debug := hr_utility.debug_enabled;
303:
304: IF g_debug THEN
305: hr_utility.set_location('Entering:'|| g_package||'.'||c_proc, 10);
306: END IF;
307:
308: -- need to reset all the Workflow item attributes used in the approval process
309:
386: itemkey => p_item_Key,
387: aname => 'HR_APPROVAL_PRC_VERSION');
388: Exception
389: when others then
390: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
391: null;
392:
393: End;
394:
396: wf_engine.GetItemAttrText(
397: itemtype => p_item_Type, itemkey => p_item_Key,
398: aname => 'HR_AME_TRAN_TYPE_ATTR') IS NOT NULL) THEN
399: -- CURRENT_APPROVER_INDEX
400: hr_utility.trace('In ( IF ( NVL(l_approvalProcessversion,X) <> V5 OR
401: wf_engine.GetItemAttrText(..,..,..,)IS NOT NULL '|| l_proc);
402: if hr_workflow_utility.item_attribute_exists
403: (p_item_type => p_item_type
404: ,p_item_key => p_item_key
437:
438:
439:
440: IF g_debug THEN
441: hr_utility.set_location('Leaving:'||g_package||'.'|| c_proc, 20);
442: END IF;
443:
444: hr_utility.set_location('Leaving: '|| l_proc,25);
445: EXCEPTION
440: IF g_debug THEN
441: hr_utility.set_location('Leaving:'||g_package||'.'|| c_proc, 20);
442: END IF;
443:
444: hr_utility.set_location('Leaving: '|| l_proc,25);
445: EXCEPTION
446: when others then
447: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
448: hr_utility.trace(' exception in '||c_proc||' : ' || sqlerrm);
443:
444: hr_utility.set_location('Leaving: '|| l_proc,25);
445: EXCEPTION
446: when others then
447: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
448: hr_utility.trace(' exception in '||c_proc||' : ' || sqlerrm);
449: Wf_Core.Context(g_package, c_proc, p_item_type, p_item_key);
450: raise;
451:
444: hr_utility.set_location('Leaving: '|| l_proc,25);
445: EXCEPTION
446: when others then
447: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
448: hr_utility.trace(' exception in '||c_proc||' : ' || sqlerrm);
449: Wf_Core.Context(g_package, c_proc, p_item_type, p_item_key);
450: raise;
451:
452: END reset_approval_status;
468: l_item_key hr_api_transaction_steps.item_key%type;
469: l_effective_date varchar2(100);
470: l_proc constant varchar2(100) := g_package || ' get_wf_effective_date';
471: BEGIN
472: hr_utility.set_location('Entering: '|| l_proc,5);
473: open csr_item_type_key;
474: fetch csr_item_type_key into l_item_type,l_item_key;
475: close csr_item_type_key;
476: if l_item_type is not null and l_item_key is not null then
480: ,aname => 'P_EFFECTIVE_DATE');
481: else
482: l_effective_date := null;
483: end if;
484: hr_utility.set_location('Leaving: '|| l_proc,10);
485: return l_effective_date;
486:
487: EXCEPTION
488: when others then
486:
487: EXCEPTION
488: when others then
489:
490: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
491: return null;
492:
493: END get_wf_effective_date;
494:
506: ,p_status in varchar2
507: ,p_transaction_id in number default null) is
508: l_proc constant varchar2(100) := g_package || ' set_save_for_later_status';
509: begin
510: hr_utility.set_location('Entering: '|| l_proc,5);
511: If (p_item_type is not null and
512: p_item_key is not null )
513: then
514: wf_engine.SetItemAttrText(itemtype => p_item_type,
522: hr_transaction_api.update_transaction(p_transaction_id => p_transaction_id,
523: p_status => p_status );
524: end If;
525:
526: hr_utility.set_location('Leaving: '|| l_proc,10);
527: end set_save_for_later_status;
528:
529: procedure set_initial_save_for_later
530: (itemtype in varchar2,
533: funmode in varchar2,
534: result out nocopy varchar2 ) is
535: l_proc constant varchar2(100) := g_package || ' set_initial_save_for_later';
536: begin
537: hr_utility.set_location('Entering: '|| l_proc,5);
538: if ( funmode = 'RUN' ) then
539: set_save_for_later_status
540: (p_item_type => itemtype,
541: p_item_key => itemkey,
546: null;
547: --
548: --
549: end if;
550: hr_utility.set_location('Leaving: '|| l_proc,10);
551:
552: end set_initial_save_for_later;
553:
554: procedure set_delete_save_for_later
559: result out nocopy varchar2 ) is
560: ln_transaction_id hr_api_transactions.transaction_id%TYPE;
561: l_proc constant varchar2(100) := g_package || ' set_delete_save_for_later';
562: begin
563: hr_utility.set_location('Entering: '|| l_proc,5);
564: if ( funmode = 'RUN' ) then
565: ln_transaction_id := get_transaction_id(itemtype, itemkey);
566: set_save_for_later_status
567: (p_item_type => itemtype,
574: null;
575: --
576: --
577: end if;
578: hr_utility.set_location('Leaving: '|| l_proc,10);
579: end set_delete_save_for_later;
580:
581:
582: procedure set_save_for_later
586: funmode in varchar2,
587: result out nocopy varchar2 ) is
588: l_proc constant varchar2(100) := g_package || ' set_save_for_later';
589: begin
590: hr_utility.set_location('Entering: '|| l_proc,5);
591: if ( funmode = 'RUN' ) then
592: set_save_for_later_status
593: (p_item_type => itemtype,
594: p_item_key => itemkey,
599: null;
600: --
601: --
602: end if;
603: hr_utility.set_location('Leaving: '|| l_proc,10);
604: end set_save_for_later;
605:
606:
607: procedure set_return_for_correction
614: l_result varchar2(2000); --ns
615: l_transaction_ref_table hr_api_transactions.transaction_ref_table%type;
616: l_proc constant varchar2(100) := g_package || ' set_return_for_correction';
617: begin
618: hr_utility.set_location('Entering: '|| l_proc,5);
619: if ( funmode = 'RUN' ) then
620: hr_utility.trace('In (: if ( funmode = RUN )'|| l_proc);
621: --ns commented
622: --ns this procedure is replace by the one below to set the return for correction status appropriately.
616: l_proc constant varchar2(100) := g_package || ' set_return_for_correction';
617: begin
618: hr_utility.set_location('Entering: '|| l_proc,5);
619: if ( funmode = 'RUN' ) then
620: hr_utility.trace('In (: if ( funmode = RUN )'|| l_proc);
621: --ns commented
622: --ns this procedure is replace by the one below to set the return for correction status appropriately.
623: /*
624: ln_transaction_id := get_transaction_id(itemtype, itemkey);
666: end if;
667:
668: exception
669: when others then
670: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
671: raise;
672: end;
673: result := 'COMPLETE:SUCCESS';
674: elsif ( funmode = 'CANCEL' ) then
671: raise;
672: end;
673: result := 'COMPLETE:SUCCESS';
674: elsif ( funmode = 'CANCEL' ) then
675: hr_utility.trace('In (: if ( funmode = CANCEL )'|| l_proc);
676: --
677: null;
678: --
679: --
677: null;
678: --
679: --
680: end if;
681: hr_utility.set_location('Leaving: '|| l_proc,20);
682:
683: end set_return_for_correction;
684:
685:
691: result out nocopy varchar2 ) is
692: ln_transaction_id hr_api_transactions.transaction_id%TYPE;
693: l_proc constant varchar2(100) := g_package || ' set_submit_for_approval';
694: begin
695: hr_utility.set_location('Entering: '|| l_proc,5);
696:
697: if ( funmode = 'RUN' ) then
698: ln_transaction_id := get_transaction_id(itemtype, itemkey);
699: set_save_for_later_status
707: null;
708: --
709: --
710: end if;
711: hr_utility.set_location('Leaving: '|| l_proc,10);
712: end set_submit_for_approval;
713:
714:
715: -- ----------------------------------------------------------------------------
721: l_proc constant varchar2(100) := g_package || ' get_transaction_id';
722: --
723: l_transaction_id number;
724: begin
725: hr_utility.set_location('Entering: '|| l_proc,5);
726: hr_utility.set_location('Leaving: '|| l_proc,10);
727: return(wf_engine.getitemattrnumber
728: (itemtype => p_item_type
729: ,itemkey => p_item_key
722: --
723: l_transaction_id number;
724: begin
725: hr_utility.set_location('Entering: '|| l_proc,5);
726: hr_utility.set_location('Leaving: '|| l_proc,10);
727: return(wf_engine.getitemattrnumber
728: (itemtype => p_item_type
729: ,itemkey => p_item_key
730: ,aname => 'TRANSACTION_ID'));
729: ,itemkey => p_item_key
730: ,aname => 'TRANSACTION_ID'));
731: exception
732: when others then
733: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
734: -- the TRANSACTION_ID doesn't exist as an item so return null
735: select transaction_id into l_transaction_id from hr_api_transactions where item_type = p_item_type and item_key = p_item_key;
736: hr_utility.set_location('l_transaction_id: '|| l_transaction_id,10);
737: return(l_transaction_id);
732: when others then
733: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
734: -- the TRANSACTION_ID doesn't exist as an item so return null
735: select transaction_id into l_transaction_id from hr_api_transactions where item_type = p_item_type and item_key = p_item_key;
736: hr_utility.set_location('l_transaction_id: '|| l_transaction_id,10);
737: return(l_transaction_id);
738:
739: end get_transaction_id;
740:
771:
772: l_function_name fnd_form_functions_vl.function_name%TYPE default null;
773: l_proc constant varchar2(100) := g_package || ' populate_null_values';
774: BEGIN
775: hr_utility.set_location('Entering: '|| l_proc,5);
776: If p_function_id is null then
777: hr_utility.trace('In(If p_function_id is null)'|| l_proc);
778: If p_item_type is not null and p_item_key is not null then
779: hr_utility.trace('In(p_item_type is not null and p_item_key is not null)'|| l_proc);
773: l_proc constant varchar2(100) := g_package || ' populate_null_values';
774: BEGIN
775: hr_utility.set_location('Entering: '|| l_proc,5);
776: If p_function_id is null then
777: hr_utility.trace('In(If p_function_id is null)'|| l_proc);
778: If p_item_type is not null and p_item_key is not null then
779: hr_utility.trace('In(p_item_type is not null and p_item_key is not null)'|| l_proc);
780: OPEN get_function_info(p_item_type => p_item_type,
781: p_item_key => p_item_key);
775: hr_utility.set_location('Entering: '|| l_proc,5);
776: If p_function_id is null then
777: hr_utility.trace('In(If p_function_id is null)'|| l_proc);
778: If p_item_type is not null and p_item_key is not null then
779: hr_utility.trace('In(p_item_type is not null and p_item_key is not null)'|| l_proc);
780: OPEN get_function_info(p_item_type => p_item_type,
781: p_item_key => p_item_key);
782:
783: FETCH get_function_info into l_function_id, l_function_name;
787: END if;*/
788: close get_function_info;
789: end if;
790: else
791: hr_utility.trace('In else of (If p_function_id is null)'|| l_proc);
792: l_function_id := p_function_id;
793: end if;
794:
795: If p_selected_person_id is null then
858: else
859: lv_transaction_type := nvl(p_transaction_type,'NWF');
860: end if;
861:
862: hr_utility.set_location('Leaving: '|| l_proc,20);
863: END populate_null_values;
864:
865: -- ----------------------------------------------------------------------------
866: -- |----------------------------< start_transaction >-------------------------|
904: lv_transaction_type hr_api_transactions.transaction_type%TYPE;
905: l_proc constant varchar2(100) := g_package || ' start_transaction';
906: --
907: begin
908: hr_utility.set_location('Entering: '|| l_proc,5);
909: g_debug := hr_utility.debug_enabled;
910:
911: IF g_debug THEN
912: hr_utility.trace('In (IF g_debug )'|| l_proc);
905: l_proc constant varchar2(100) := g_package || ' start_transaction';
906: --
907: begin
908: hr_utility.set_location('Entering: '|| l_proc,5);
909: g_debug := hr_utility.debug_enabled;
910:
911: IF g_debug THEN
912: hr_utility.trace('In (IF g_debug )'|| l_proc);
913: END IF;
908: hr_utility.set_location('Entering: '|| l_proc,5);
909: g_debug := hr_utility.debug_enabled;
910:
911: IF g_debug THEN
912: hr_utility.trace('In (IF g_debug )'|| l_proc);
913: END IF;
914:
915: populate_null_values
916: (itemtype
935:
936:
937:
938: if funmode = 'RUN' then
939: hr_utility.trace('In (if funmode = RUN) '|| l_proc);
940: savepoint start_transaction;
941: -- check to see if the TRANSACTION_ID attribute has been created
942: if hr_workflow_utility.item_attribute_exists
943: (p_item_type => itemtype
942: if hr_workflow_utility.item_attribute_exists
943: (p_item_type => itemtype
944: ,p_item_key => itemkey
945: ,p_name => 'TRANSACTION_ID') then
946: hr_utility.trace('In (if hr_workflow_utility.item_attribute_exists) '|| l_proc);
947: -- the TRANSACTION_ID exists so ensure that it is null
948: if get_transaction_id
949: (p_item_type => itemtype
950: ,p_item_key => itemkey) is not null then
948: if get_transaction_id
949: (p_item_type => itemtype
950: ,p_item_key => itemkey) is not null then
951: -- a current transaction is in progress we cannot overwrite it
952: -- hr_utility.set_message(801, 'HR_51750_WEB_TRANSAC_STARTED');
953: -- hr_utility.raise_error;
954: result := 'SUCCESS';
955: hr_utility.set_location('Leaving: '|| l_proc,25);
956: return;
949: (p_item_type => itemtype
950: ,p_item_key => itemkey) is not null then
951: -- a current transaction is in progress we cannot overwrite it
952: -- hr_utility.set_message(801, 'HR_51750_WEB_TRANSAC_STARTED');
953: -- hr_utility.raise_error;
954: result := 'SUCCESS';
955: hr_utility.set_location('Leaving: '|| l_proc,25);
956: return;
957: end if;
951: -- a current transaction is in progress we cannot overwrite it
952: -- hr_utility.set_message(801, 'HR_51750_WEB_TRANSAC_STARTED');
953: -- hr_utility.raise_error;
954: result := 'SUCCESS';
955: hr_utility.set_location('Leaving: '|| l_proc,25);
956: return;
957: end if;
958: else
959: hr_utility.trace('In else of (if hr_workflow_utility.item_attribute_exists) '|| l_proc);
955: hr_utility.set_location('Leaving: '|| l_proc,25);
956: return;
957: end if;
958: else
959: hr_utility.trace('In else of (if hr_workflow_utility.item_attribute_exists) '|| l_proc);
960: -- the TRANSACTION_ID does not exist so create it
961: wf_engine.additemattr
962: (itemtype => itemtype
963: ,itemkey => itemkey
1033: -- transaction has been successfully created so commit and return success
1034: -- commit;
1035: result := 'SUCCESS';
1036: elsif funmode = 'CANCEL' then
1037: hr_utility.trace('In ( elsif funmode = CANCEL) '|| l_proc);
1038: null;
1039: end if;
1040:
1041: IF g_debug THEN
1038: null;
1039: end if;
1040:
1041: IF g_debug THEN
1042: hr_utility.set_location(' Leaving:'||l_proc, 30);
1043: END IF;
1044: hr_utility.set_location('Leaving: '|| l_proc,35);
1045: exception
1046: when hr_util_web.g_error_handled then
1040:
1041: IF g_debug THEN
1042: hr_utility.set_location(' Leaving:'||l_proc, 30);
1043: END IF;
1044: hr_utility.set_location('Leaving: '|| l_proc,35);
1045: exception
1046: when hr_util_web.g_error_handled then
1047: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1048: -- error from validating the login
1043: END IF;
1044: hr_utility.set_location('Leaving: '|| l_proc,35);
1045: exception
1046: when hr_util_web.g_error_handled then
1047: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1048: -- error from validating the login
1049: rollback to start_transaction;
1050: when others then
1051: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
1047: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1048: -- error from validating the login
1049: rollback to start_transaction;
1050: when others then
1051: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
1052: -- rollback any work
1053: rollback to start_transaction;
1054: raise;
1055: --
1069: -- --------------------------------------------------------------------------
1070: lv_transaction_ref_table hr_api_transactions.transaction_ref_table%type;
1071: l_proc constant varchar2(100) := g_package || ' rollback_transaction';
1072: begin
1073: hr_utility.set_location('Entering: '|| l_proc,5);
1074: if funmode = 'RUN' then
1075: hr_utility.trace('In ( if funmode = RUN ) '|| l_proc);
1076: -- Get the TRANSACTION_ID exists so ensure that it is null
1077: if get_transaction_id
1071: l_proc constant varchar2(100) := g_package || ' rollback_transaction';
1072: begin
1073: hr_utility.set_location('Entering: '|| l_proc,5);
1074: if funmode = 'RUN' then
1075: hr_utility.trace('In ( if funmode = RUN ) '|| l_proc);
1076: -- Get the TRANSACTION_ID exists so ensure that it is null
1077: if get_transaction_id
1078: (p_item_type => itemtype
1079: ,p_item_key => itemkey) is not null then
1076: -- Get the TRANSACTION_ID exists so ensure that it is null
1077: if get_transaction_id
1078: (p_item_type => itemtype
1079: ,p_item_key => itemkey) is not null then
1080: hr_utility.trace('In ( if get_transaction_id(..,.., ) '|| l_proc);
1081: savepoint rollback_transaction;
1082: -- check if this is appraisal transaction
1083: -- we need to call the custom call to update the appraisal status
1084: begin
1094: end if;
1095: */
1096: exception
1097: when others then
1098: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1099: hr_utility.trace(' exception in checking the hr_api_transactions.transaction_ref_table:'||
1100: 'rollback_transaction'||' : ' || sqlerrm);
1101: -- just log the message no need to raise it
1102: end;
1095: */
1096: exception
1097: when others then
1098: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1099: hr_utility.trace(' exception in checking the hr_api_transactions.transaction_ref_table:'||
1100: 'rollback_transaction'||' : ' || sqlerrm);
1101: -- just log the message no need to raise it
1102: end;
1103:
1108: end if;
1109: --commit;
1110: result := 'SUCCESS';
1111: elsif funmode = 'CANCEL' then
1112: hr_utility.trace('In ( if funmode = CANCEL ) '|| l_proc);
1113: null;
1114: end if;
1115: hr_utility.set_location('Leaving: '|| l_proc,20);
1116: exception
1111: elsif funmode = 'CANCEL' then
1112: hr_utility.trace('In ( if funmode = CANCEL ) '|| l_proc);
1113: null;
1114: end if;
1115: hr_utility.set_location('Leaving: '|| l_proc,20);
1116: exception
1117: when others then
1118: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
1119: -- rollback any work
1114: end if;
1115: hr_utility.set_location('Leaving: '|| l_proc,20);
1116: exception
1117: when others then
1118: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
1119: -- rollback any work
1120: rollback to rollback_transaction;
1121: -- raise a system error
1122: raise;
1198: end if;
1199: end loop;
1200: */
1201:
1202: hr_utility.set_location('Entering: '|| l_proc,5);
1203: l_process_api := true;
1204: --
1205: if l_process_api then
1206: hr_utility.trace('In ( if l_process_api): '|| l_proc);
1202: hr_utility.set_location('Entering: '|| l_proc,5);
1203: l_process_api := true;
1204: --
1205: if l_process_api then
1206: hr_utility.trace('In ( if l_process_api): '|| l_proc);
1207: --
1208: -- issue a savepoint if operating in validation only mode.
1209: --
1210: if p_validate then
1247: if p_validate then
1248: raise hr_api.validate_enabled;
1249: end if;
1250: end if;
1251: hr_utility.set_location('Leaving: '|| l_proc,15);
1252: exception
1253: when hr_api.validate_enabled then
1254: --
1255: -- As the Validate_Enabled exception has been raised
1254: --
1255: -- As the Validate_Enabled exception has been raised
1256: -- we must rollback to the savepoint
1257: --
1258: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1259: rollback to process_web_api_call;
1260: when others then
1261: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
1262:
1257: --
1258: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1259: rollback to process_web_api_call;
1260: when others then
1261: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
1262:
1263: --close the cursor
1264: dbms_sql.close_cursor(l_cursor);
1265: raise;
1343: --
1344: l_parameter fnd_form_functions.parameters%TYPE;
1345: l_effectiveDate boolean := FALSE;
1346: begin
1347: hr_utility.set_location('Entering: '|| l_proc,5);
1348: -- set the ignore warnings flag
1349: if upper(p_ignore_warnings) = 'Y' then
1350: l_ignore_warnings := true;
1351: else
1356: (p_item_type => p_item_type
1357: ,p_item_key => p_item_key);
1358: if l_transaction_id is null then
1359: fnd_message.set_name('PER','l_transaction_id');
1360: hr_utility.raise_error;
1361: end if;
1362: -- set the Profiles before starting to process any step.
1363: hr_utility.set_location('Call Set_Transaction_Context: '|| l_proc, 10);
1364: -- Call Set_Transaction_Context
1359: fnd_message.set_name('PER','l_transaction_id');
1360: hr_utility.raise_error;
1361: end if;
1362: -- set the Profiles before starting to process any step.
1363: hr_utility.set_location('Call Set_Transaction_Context: '|| l_proc, 10);
1364: -- Call Set_Transaction_Context
1365: hr_transaction_swi.set_transaction_context(l_transaction_id);
1366:
1367: -- If p_effective_date is not NULL then set it on the g_txn_ctx.EFFECTIVE_DATE
1372: hr_transaction_swi.g_txn_ctx.EFFECTIVE_DATE := trunc(fnd_date.chardate_to_date(p_effective_date));
1373: END;
1374: end if;
1375:
1376: hr_utility.set_location('Call Set_Person_Context: '|| l_proc, 15);
1377: -- Call Set_Person_Context
1378:
1379: hr_transaction_swi.set_person_context(
1380: p_selected_person_id => hr_transaction_swi.g_txn_ctx.SELECTED_PERSON_ID,
1382: p_effective_date => hr_transaction_swi.g_txn_ctx.EFFECTIVE_DATE
1383: );
1384:
1385: -- select each transaction steps to process
1386: hr_utility.set_location('select each transaction steps to process: '|| l_proc, 20);
1387: open cur_fn;
1388: fetch cur_fn INTO l_parameter;
1389: close cur_fn;
1390: --
1397: hr_process_person_ss.g_person_id := null;
1398: hr_process_person_ss.g_assignment_id := null;
1399: hr_process_person_ss.g_session_id := null;
1400: hr_new_user_reg_ss.g_ignore_emp_generation := 'NO';
1401: hr_utility.trace('In (for I in csr_trs loop) '|| l_proc);
1402: for I in csr_trs loop
1403: begin
1404: -- call the API for the transaction step
1405: if p_update_object_version = 'Y' then
1454: l_warning_error := true;
1455: end if;
1456: end if;
1457: exception
1458: when hr_utility.hr_error then
1459: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1460: -- an application error has been raised. set the error flag
1461: -- to indicate an application error
1462: -- the error message should of been set already
1455: end if;
1456: end if;
1457: exception
1458: when hr_utility.hr_error then
1459: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1460: -- an application error has been raised. set the error flag
1461: -- to indicate an application error
1462: -- the error message should of been set already
1463: hr_message.provide_error;
1504: -- 05/09/2002 Bug 2356339 Fix Ends
1505:
1506: end if;
1507: when others then
1508: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
1509: -- a system error has occurred so raise it to stop
1510: -- processing of the transaction steps
1511: raise;
1512: end;
1513: end loop;
1514: -- check to see if any application errors where raised
1515: if l_obj_fatal_error then
1516: fnd_message.set_name('PER','HR_FATAL_OBJECT_ERROR');
1517: raise hr_utility.hr_error;
1518: elsif l_object_version_error then
1519: fnd_message.set_name('PER','HR_7155_OBJECT_INVALID');
1520: raise hr_utility.hr_error;
1521: elsif l_application_error or l_warning_error then
1516: fnd_message.set_name('PER','HR_FATAL_OBJECT_ERROR');
1517: raise hr_utility.hr_error;
1518: elsif l_object_version_error then
1519: fnd_message.set_name('PER','HR_7155_OBJECT_INVALID');
1520: raise hr_utility.hr_error;
1521: elsif l_application_error or l_warning_error then
1522: raise hr_utility.hr_error;
1523: end if;
1524: hr_utility.set_location('Leaving: '|| l_proc,15);
1518: elsif l_object_version_error then
1519: fnd_message.set_name('PER','HR_7155_OBJECT_INVALID');
1520: raise hr_utility.hr_error;
1521: elsif l_application_error or l_warning_error then
1522: raise hr_utility.hr_error;
1523: end if;
1524: hr_utility.set_location('Leaving: '|| l_proc,15);
1525:
1526: exception
1520: raise hr_utility.hr_error;
1521: elsif l_application_error or l_warning_error then
1522: raise hr_utility.hr_error;
1523: end if;
1524: hr_utility.set_location('Leaving: '|| l_proc,15);
1525:
1526: exception
1527: when others then
1528: hr_utility.set_location('EXCEPTION: '|| l_proc,565);
1524: hr_utility.set_location('Leaving: '|| l_proc,15);
1525:
1526: exception
1527: when others then
1528: hr_utility.set_location('EXCEPTION: '|| l_proc,565);
1529: -- an application error, warning or system error was raised so
1530: -- keep raising it so the calling process must handle it
1531: raise;
1532: end process_transaction;
1542: ,p_update_object_version in varchar2 default 'N'
1543: ,p_result out nocopy varchar2) is
1544: l_proc constant varchar2(100) := g_package || ' validate_transaction';
1545: begin
1546: hr_utility.set_location('Entering: '|| l_proc,5);
1547: validate_transaction (
1548: p_item_type => p_item_type
1549: ,p_item_key => p_item_key
1550: ,p_effective_date => p_effective_date
1551: ,p_update_object_version => p_update_object_version
1552: ,p_ignore_warnings => 'N'
1553: ,p_result => p_result );
1554:
1555: hr_utility.set_location('Leaving: '|| l_proc,10);
1556: end;
1557:
1558:
1559: -- ns 11/06/2003: Bug 3223682: Overloaded validate_transaction with additional
1572: ,p_ignore_warnings in varchar2 default 'N'
1573: ,p_result out nocopy varchar2) is
1574: l_proc constant varchar2(100) := g_package || ' validate_transaction';
1575: begin
1576: hr_utility.set_location('Entering: '|| l_proc,5);
1577: p_result := 'N';
1578: savepoint VALIDATE_TRANSACTION;
1579: begin
1580: -- process the transaction reporting warnings if they exist
1587: ,p_validate => false);
1588: rollback to VALIDATE_TRANSACTION;
1589: p_result := null;
1590: exception
1591: when hr_utility.hr_error then
1592: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1593: hr_message.provide_error;
1594: --result := fnd_message.get;
1595: p_result := hr_message.last_message_name;
1588: rollback to VALIDATE_TRANSACTION;
1589: p_result := null;
1590: exception
1591: when hr_utility.hr_error then
1592: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1593: hr_message.provide_error;
1594: --result := fnd_message.get;
1595: p_result := hr_message.last_message_name;
1596: if p_result <> 'HR_7155_OBJECT_INVALID' and
1598: p_result := hr_message.get_message_text;
1599: end if;
1600: rollback to VALIDATE_TRANSACTION;
1601: when others then
1602: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
1603: p_result := sqlerrm;
1604: rollback to VALIDATE_TRANSACTION;
1605: end;
1606: hr_utility.set_location('Leaving: '|| l_proc,10);
1602: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
1603: p_result := sqlerrm;
1604: rollback to VALIDATE_TRANSACTION;
1605: end;
1606: hr_utility.set_location('Leaving: '|| l_proc,10);
1607: end validate_transaction;
1608: -- ----------------------------------------------------------------------------
1609: -- |----------------------------< commit_transaction >------------------------|
1610: -- ----------------------------------------------------------------------------
1623: l_return_status varchar2(10);
1624: l_txn_id number;
1625:
1626: begin
1627: hr_utility.set_location('Entering: '|| l_proc,5);
1628:
1629: if funmode = 'RUN' then
1630: hr_utility.trace('In(if funmode = RUN) '|| l_proc);
1631:
1626: begin
1627: hr_utility.set_location('Entering: '|| l_proc,5);
1628:
1629: if funmode = 'RUN' then
1630: hr_utility.trace('In(if funmode = RUN) '|| l_proc);
1631:
1632:
1633: -- new call to reset the apps context, if does not match
1634: -- the approving user context
1632:
1633: -- new call to reset the apps context, if does not match
1634: -- the approving user context
1635: if g_debug then
1636: hr_utility.set_location('calling setRespondedUserCtx',10);
1637: hr_utility.set_location('itemtype:'||itemtype,11);
1638: hr_utility.set_location('itemkey:'||itemkey,12);
1639: end if;
1640: begin
1633: -- new call to reset the apps context, if does not match
1634: -- the approving user context
1635: if g_debug then
1636: hr_utility.set_location('calling setRespondedUserCtx',10);
1637: hr_utility.set_location('itemtype:'||itemtype,11);
1638: hr_utility.set_location('itemkey:'||itemkey,12);
1639: end if;
1640: begin
1641: setRespondedUserCtx(itemtype,itemkey);
1634: -- the approving user context
1635: if g_debug then
1636: hr_utility.set_location('calling setRespondedUserCtx',10);
1637: hr_utility.set_location('itemtype:'||itemtype,11);
1638: hr_utility.set_location('itemkey:'||itemkey,12);
1639: end if;
1640: begin
1641: setRespondedUserCtx(itemtype,itemkey);
1642: exception
1642: exception
1643: when others then
1644: -- do nothing ??
1645: if g_debug then
1646: hr_utility.set_location('Error calling setRespondedUserCtx SQLERRM' ||' '||to_char(SQLCODE),20);
1647: end if;
1648: null;
1649: end;
1650:
1681: end if;
1682:
1683: exception
1684: when l_commit_error then
1685: hr_utility.set_location('EXCEPTION: SWI COMMIT ERROR '|| l_proc,555);
1686: raise;
1687:
1688: when others then
1689: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1685: hr_utility.set_location('EXCEPTION: SWI COMMIT ERROR '|| l_proc,555);
1686: raise;
1687:
1688: when others then
1689: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1690: l_sqlerrm := sqlerrm;
1691: raise;
1692: end;
1693: -- transition workflow with SUCCESS
1692: end;
1693: -- transition workflow with SUCCESS
1694: result := 'COMPLETE:SUCCESS';
1695: elsif funmode = 'CANCEL' then
1696: hr_utility.trace('In(if funmode = CANCEL) '|| l_proc);
1697: result := 'COMPLETE:';
1698: end if;
1699: hr_utility.set_location('Leaving: '|| l_proc,15);
1700: exception
1695: elsif funmode = 'CANCEL' then
1696: hr_utility.trace('In(if funmode = CANCEL) '|| l_proc);
1697: result := 'COMPLETE:';
1698: end if;
1699: hr_utility.set_location('Leaving: '|| l_proc,15);
1700: exception
1701: when hr_utility.hr_error then
1702: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
1703: -- rollback any work
1697: result := 'COMPLETE:';
1698: end if;
1699: hr_utility.set_location('Leaving: '|| l_proc,15);
1700: exception
1701: when hr_utility.hr_error then
1702: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
1703: -- rollback any work
1704: rollback to commit_transaction;
1705: --
1698: end if;
1699: hr_utility.set_location('Leaving: '|| l_proc,15);
1700: exception
1701: when hr_utility.hr_error then
1702: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
1703: -- rollback any work
1704: rollback to commit_transaction;
1705: --
1706: l_error_text := hr_utility.get_message;
1702: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
1703: -- rollback any work
1704: rollback to commit_transaction;
1705: --
1706: l_error_text := hr_utility.get_message;
1707: if l_error_text is null then
1708: l_error_text := fnd_message.get;
1709: end if;
1710: -- 1903606
1730:
1731: -- an application error or warning has been set
1732: result := 'COMPLETE:APPLICATION_ERROR';
1733: when others then
1734: hr_utility.set_location('EXCEPTION: '|| l_proc,565);
1735: -- rollback any work
1736: rollback to commit_transaction;
1737: -- 1903606
1738: wf_engine.setitemattrtext
1767: ,funmode in varchar2
1768: ,result out nocopy varchar2) is
1769: l_proc constant varchar2(100) := g_package || ' commit_approval_transaction';
1770: begin
1771: hr_utility.set_location('Entering: '|| l_proc,5);
1772: if funmode = 'RUN' then
1773: savepoint commit_approval_transaction;
1774: -- process the transaction reporting warnings if they exist
1775: process_transaction
1780: result := 'SUCCESS';
1781: elsif funmode = 'CANCEL' then
1782: null;
1783: end if;
1784: hr_utility.set_location('Leaving: '|| l_proc,10);
1785: exception
1786: when others then
1787: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1788: -- rollback any work
1783: end if;
1784: hr_utility.set_location('Leaving: '|| l_proc,10);
1785: exception
1786: when others then
1787: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1788: -- rollback any work
1789: rollback to commit_approval_transaction;
1790: -- system error
1791: raise;
1799: ,p_actid in number) is
1800: l_proc constant varchar2(100) := g_package || ' retry_transaction';
1801:
1802: begin
1803: hr_utility.set_location('Entering: '|| l_proc,5);
1804: savepoint retry_transaction;
1805: -- process the transaction ignoring warnings if they exist
1806: process_transaction
1807: (p_item_type => p_item_type
1819: -- ,activity => '#'||p_actid
1820: -- ,result => 'SUCCESS');
1821: -- commit the transaction
1822: -- commit;
1823: hr_utility.set_location('Leaving: '|| l_proc,10);
1824: exception
1825: when hr_utility.hr_error then
1826: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1827: -- rollback any work
1821: -- commit the transaction
1822: -- commit;
1823: hr_utility.set_location('Leaving: '|| l_proc,10);
1824: exception
1825: when hr_utility.hr_error then
1826: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1827: -- rollback any work
1828: rollback to retry_transaction;
1829: -- an application error has been set
1822: -- commit;
1823: hr_utility.set_location('Leaving: '|| l_proc,10);
1824: exception
1825: when hr_utility.hr_error then
1826: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1827: -- rollback any work
1828: rollback to retry_transaction;
1829: -- an application error has been set
1830: -- redisplay the errors
1829: -- an application error has been set
1830: -- redisplay the errors
1831: raise;
1832: when others then
1833: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
1834: -- rollback any work
1835: rollback to retry_transaction;
1836: -- system error
1837: raise;
1900: ln_transaction_id hr_api_transaction_steps.transaction_id%TYPE;
1901:
1902: BEGIN
1903:
1904: hr_utility.set_location('Entering: '|| l_proc,5);
1905: -- populate the values in case of null before passing it to API.
1906: -- CompWorkBench
1907:
1908: populate_null_values
1974: END IF;
1975:
1976: hr_transaction_api.g_update_flag := 'N';
1977: l_count := p_transaction_data.COUNT;
1978: hr_utility.trace('In(for I in csr_trs loop)'||l_proc);
1979: FOR i IN 1..l_count LOOP
1980: IF p_transaction_data(i).param_data_type = 'DATE' THEN
1981: --ensure that the effective date is in the correct format
1982: BEGIN
1985: l_original_date := trunc(to_date(p_transaction_data(i).param_original_value,
1986: g_date_format)); --ns
1987: EXCEPTION
1988: WHEN OTHERS THEN
1989: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
1990: -- the date check failed therefore we must report the error
1991: -- and reset to the original value
1992: l_value_error := true;
1993: fnd_message.set_name('PER', 'HR_51778_WEB_KIOSK_INV_EDATE');
2000: ,p_value => l_date
2001: ,p_original_value => l_original_date);
2002:
2003: IF l_value_error THEN
2004: RAISE hr_utility.hr_error;
2005: END IF;
2006: ELSIF p_transaction_data(i).param_data_type = 'NUMBER' THEN
2007: BEGIN
2008: --ns start
2034: ,p_original_value => l_original_number); --ns
2035: END IF;
2036: exception
2037: when others then
2038: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
2039: --SQLERRM
2040: RAISE hr_utility.hr_error;
2041: END;
2042: ELSIF p_transaction_data(i).param_data_type = 'VARCHAR2' THEN
2036: exception
2037: when others then
2038: hr_utility.set_location('EXCEPTION: '|| l_proc,560);
2039: --SQLERRM
2040: RAISE hr_utility.hr_error;
2041: END;
2042: ELSIF p_transaction_data(i).param_data_type = 'VARCHAR2' THEN
2043: BEGIN
2044: hr_transaction_api.set_varchar2_value
2048: ,p_value => p_transaction_data(i).param_value
2049: ,p_original_value => p_transaction_data(i).param_original_value); --ns
2050: exception
2051: when others then
2052: hr_utility.set_location('EXCEPTION: '|| l_proc,565);
2053: --SQLERRM
2054: RAISE hr_utility.hr_error;
2055: END;
2056: END IF;
2050: exception
2051: when others then
2052: hr_utility.set_location('EXCEPTION: '|| l_proc,565);
2053: --SQLERRM
2054: RAISE hr_utility.hr_error;
2055: END;
2056: END IF;
2057: END LOOP;
2058:
2067: -- --------------------------------------------------------------------
2068: -- Find out how many variables we have to set
2069:
2070: IF p_transaction_step_id IS NOT NULL THEN
2071: hr_utility.trace('In ( IF p_transaction_step_id IS NOT NULL ) '|| l_proc);
2072:
2073: OPEN get_trans_id(p_transaction_step_id);
2074: FETCH get_trans_id into ln_transaction_id;
2075: CLOSE get_trans_id;
2074: FETCH get_trans_id into ln_transaction_id;
2075: CLOSE get_trans_id;
2076:
2077: IF ln_transaction_id IS NOT NULL THEN
2078: hr_utility.trace('In ( I IF ln_transaction_id IS NOT NULL ) '|| l_proc);
2079: Begin
2080: if ( wf_engine.GetItemAttrText(p_item_type ,p_item_key ,'HR_APPROVAL_PRC_VERSION') = 'V5' ) then
2081: lv_status := hr_api.g_varchar2; -- so that the original value is picked from txn table;
2082: end if;
2081: lv_status := hr_api.g_varchar2; -- so that the original value is picked from txn table;
2082: end if;
2083: Exception
2084: when Others then -- wf attribute not found
2085: hr_utility.set_location('EXCEPTION: '|| l_proc,570);
2086: null;
2087: End;
2088:
2089: hr_transaction_api.update_transaction
2094: );
2095: END IF;
2096: END IF;
2097:
2098: hr_utility.set_location('Leaving: '|| l_proc,25);
2099: EXCEPTION
2100: WHEN OTHERS THEN
2101: hr_utility.set_location('EXCEPTION: '|| l_proc,575);
2102: --SQLERRM
2097:
2098: hr_utility.set_location('Leaving: '|| l_proc,25);
2099: EXCEPTION
2100: WHEN OTHERS THEN
2101: hr_utility.set_location('EXCEPTION: '|| l_proc,575);
2102: --SQLERRM
2103: raise;
2104: END save_transaction_step;
2105:
2121: li_step_count INTEGER;
2122: l_proc constant varchar2(100) := g_package || ' get_activity_trans_step_id';
2123: BEGIN
2124:
2125: hr_utility.set_location('Entering: '|| l_proc,5);
2126: li_step_count := p_trans_step_id_tbl.COUNT;
2127: hr_utility.trace('Going to ( FOR i IN 0..li_step_count LOOP): '|| l_proc);
2128: FOR i IN 0..li_step_count LOOP
2129: IF p_activity_name =
2123: BEGIN
2124:
2125: hr_utility.set_location('Entering: '|| l_proc,5);
2126: li_step_count := p_trans_step_id_tbl.COUNT;
2127: hr_utility.trace('Going to ( FOR i IN 0..li_step_count LOOP): '|| l_proc);
2128: FOR i IN 0..li_step_count LOOP
2129: IF p_activity_name =
2130: hr_transaction_api.get_varchar2_value
2131: (p_transaction_step_id => p_trans_step_id_tbl(i)
2133: THEN
2134: RETURN p_trans_step_id_tbl(i);
2135: END IF;
2136: END LOOP;
2137: hr_utility.set_location('Leaving: '|| l_proc,15);
2138:
2139:
2140: RETURN NULL;
2141:
2141:
2142:
2143: EXCEPTION
2144: WHEN OTHERS THEN
2145: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
2146: --SQLERRM
2147: raise;
2148: END get_activity_trans_step_id;
2149:
2162: ltt_trans_obj_vers_num hr_util_web.g_varchar2_tab_type;
2163: ln_trans_step_rows number ;
2164: l_proc constant varchar2(100) := g_package || ' check_txn_step_exists';
2165: BEGIN
2166: hr_utility.set_location('Entering: '|| l_proc,5);
2167: ln_transaction_id := get_transaction_id
2168: (p_Item_Type => p_item_type
2169: , p_Item_Key => p_item_key);
2170:
2169: , p_Item_Key => p_item_key);
2170:
2171: IF ln_transaction_id IS NOT NULL
2172: THEN
2173: hr_utility.trace(' In(IF ln_transaction_id IS NOT NULL)'|| l_proc);
2174: hr_transaction_api.get_transaction_step_info
2175: (p_Item_Type => p_item_type,
2176: p_Item_Key => p_item_key,
2177: p_activity_id =>p_actid,
2181:
2182: -- if no transaction steps are found , return
2183: IF ln_trans_step_rows >= 1
2184: THEN
2185: hr_utility.trace(' In( IF ln_trans_step_rows >= 1)'|| l_proc);
2186: hr_utility.set_location('Leaving: '|| l_proc,20);
2187: return TRUE ;
2188: ELSE
2189: hr_utility.set_location('Leaving: '|| l_proc,20);
2182: -- if no transaction steps are found , return
2183: IF ln_trans_step_rows >= 1
2184: THEN
2185: hr_utility.trace(' In( IF ln_trans_step_rows >= 1)'|| l_proc);
2186: hr_utility.set_location('Leaving: '|| l_proc,20);
2187: return TRUE ;
2188: ELSE
2189: hr_utility.set_location('Leaving: '|| l_proc,20);
2190: return FALSE ;
2185: hr_utility.trace(' In( IF ln_trans_step_rows >= 1)'|| l_proc);
2186: hr_utility.set_location('Leaving: '|| l_proc,20);
2187: return TRUE ;
2188: ELSE
2189: hr_utility.set_location('Leaving: '|| l_proc,20);
2190: return FALSE ;
2191: END IF ;
2192:
2193: END IF ;
2190: return FALSE ;
2191: END IF ;
2192:
2193: END IF ;
2194: hr_utility.set_location('Leaving: '|| l_proc,20);
2195: return FALSE ;
2196: END ;
2197:
2198:
2215: ln_trans_step_rows NUMBER ;
2216: ln_value_id NUMBER ;
2217: l_proc constant varchar2(100) := g_package || ' delete_trn_step_by_act_name';
2218: BEGIN
2219: hr_utility.set_location('Entering: '|| l_proc,5);
2220: IF p_activity_name is not null THEN
2221: hr_utility.trace('In(IF p_activity_name is not null) '|| l_proc);
2222:
2223: ln_transaction_id := get_transaction_id
2217: l_proc constant varchar2(100) := g_package || ' delete_trn_step_by_act_name';
2218: BEGIN
2219: hr_utility.set_location('Entering: '|| l_proc,5);
2220: IF p_activity_name is not null THEN
2221: hr_utility.trace('In(IF p_activity_name is not null) '|| l_proc);
2222:
2223: ln_transaction_id := get_transaction_id
2224: (p_Item_Type => p_item_type,
2225: p_Item_Key => p_item_key);
2224: (p_Item_Type => p_item_type,
2225: p_Item_Key => p_item_key);
2226: IF ln_transaction_id IS NOT NULL
2227: THEN
2228: hr_utility.trace('In( IF ln_transaction_id IS NOT NULL) '|| l_proc);
2229: hr_transaction_api.get_transaction_step_info
2230: (p_Item_Type => p_item_type,
2231: p_Item_Key => p_item_key,
2232: p_activity_id =>p_actid,
2237:
2238: -- if no transaction steps are found , return
2239: IF ln_trans_step_rows > 0
2240: THEN
2241: hr_utility.trace('In( IF ln_trans_step_rows > 0) '|| l_proc);
2242: ln_transaction_step_id :=
2243: hr_transaction_ss.get_activity_trans_step_id
2244: (p_activity_name =>p_activity_name,
2245: p_trans_step_id_tbl => ltt_trans_step_ids);
2248: p_login_person_id => p_login_person_id);
2249: END IF ;
2250: END IF;
2251: END IF;
2252: hr_utility.set_location('Leaving: '|| l_proc,25);
2253:
2254: EXCEPTION
2255: WHEN OTHERS THEN
2256: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
2252: hr_utility.set_location('Leaving: '|| l_proc,25);
2253:
2254: EXCEPTION
2255: WHEN OTHERS THEN
2256: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
2257: raise;
2258: END delete_trn_step_by_act_name;
2259:
2260: -- -------------------------------------------------------------------------
2273: l_trans_step_rows NUMBER;
2274: l_proc constant varchar2(100) := g_package || ' delete_transaction_steps';
2275:
2276: BEGIN
2277: hr_utility.set_location('Entering: '|| l_proc,5);
2278: if p_actid IS NULL then
2279: hr_transaction_api.get_transaction_step_info (
2280: p_Item_Type => p_item_type,
2281: p_Item_Key => p_item_key,
2292: p_object_version_number => l_trans_obj_vers_num,
2293: p_rows => l_trans_step_rows
2294: );
2295: end if;
2296: hr_utility.trace('Going to ( FOR i IN 0..(l_trans_step_rows - 1) LOOP) '|| l_proc);
2297: FOR i IN 0..(l_trans_step_rows - 1) LOOP
2298: delete_transaction_step
2299: (p_transaction_step_id => l_trans_step_ids(i)
2300: ,p_object_version_number => l_trans_obj_vers_num(i)
2300: ,p_object_version_number => l_trans_obj_vers_num(i)
2301: ,p_login_person_id => p_login_person_id);
2302: END LOOP;
2303:
2304: --hr_utility.set_message(801, 'HR_51750_WEB_TRANSAC_STARTED');
2305: --hr_utility.raise_error;
2306: hr_utility.set_location('Leaving: '|| l_proc,15);
2307:
2308: EXCEPTION
2301: ,p_login_person_id => p_login_person_id);
2302: END LOOP;
2303:
2304: --hr_utility.set_message(801, 'HR_51750_WEB_TRANSAC_STARTED');
2305: --hr_utility.raise_error;
2306: hr_utility.set_location('Leaving: '|| l_proc,15);
2307:
2308: EXCEPTION
2309: WHEN OTHERS THEN
2302: END LOOP;
2303:
2304: --hr_utility.set_message(801, 'HR_51750_WEB_TRANSAC_STARTED');
2305: --hr_utility.raise_error;
2306: hr_utility.set_location('Leaving: '|| l_proc,15);
2307:
2308: EXCEPTION
2309: WHEN OTHERS THEN
2310: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
2306: hr_utility.set_location('Leaving: '|| l_proc,15);
2307:
2308: EXCEPTION
2309: WHEN OTHERS THEN
2310: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
2311: raise;
2312:
2313: END delete_transaction_steps;
2314:
2332: ----- bug 5102128
2333:
2334:
2335: BEGIN
2336: hr_utility.set_location('Entering: '|| l_proc,5);
2337: if p_transaction_step_id is not null then
2338: hr_utility.trace('In (if p_transaction_step_id is not null ) '|| l_proc);
2339: if p_object_version_number is null then
2340: hr_utility.trace('In (if p_object_version_number is null ) '|| l_proc);
2334:
2335: BEGIN
2336: hr_utility.set_location('Entering: '|| l_proc,5);
2337: if p_transaction_step_id is not null then
2338: hr_utility.trace('In (if p_transaction_step_id is not null ) '|| l_proc);
2339: if p_object_version_number is null then
2340: hr_utility.trace('In (if p_object_version_number is null ) '|| l_proc);
2341: l_object_version_number :=
2342: get_transaction_step_ovn(to_number(p_transaction_step_id));
2336: hr_utility.set_location('Entering: '|| l_proc,5);
2337: if p_transaction_step_id is not null then
2338: hr_utility.trace('In (if p_transaction_step_id is not null ) '|| l_proc);
2339: if p_object_version_number is null then
2340: hr_utility.trace('In (if p_object_version_number is null ) '|| l_proc);
2341: l_object_version_number :=
2342: get_transaction_step_ovn(to_number(p_transaction_step_id));
2343: else
2344: hr_utility.trace('In else of (if p_object_version_number is null ) '|| l_proc);
2340: hr_utility.trace('In (if p_object_version_number is null ) '|| l_proc);
2341: l_object_version_number :=
2342: get_transaction_step_ovn(to_number(p_transaction_step_id));
2343: else
2344: hr_utility.trace('In else of (if p_object_version_number is null ) '|| l_proc);
2345: l_object_version_number := to_number(p_object_version_number);
2346: end if;
2347:
2348: ----- bug 5102128
2369: ----- bug 5102128
2370: end if;
2371: ----- bug 5102128
2372: end if;
2373: hr_utility.set_location('Leaving: '|| l_proc,20);
2374:
2375: EXCEPTION
2376: WHEN OTHERS THEN
2377: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
2373: hr_utility.set_location('Leaving: '|| l_proc,20);
2374:
2375: EXCEPTION
2376: WHEN OTHERS THEN
2377: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
2378: raise;
2379:
2380: END delete_transaction_step;
2381:
2390:
2391: l_ovb number;
2392: l_proc constant varchar2(100) := g_package || ' get_transaction_step_ovn';
2393: begin
2394: hr_utility.set_location('Entering: '|| l_proc,5);
2395: open csr_hats;
2396: fetch csr_hats into l_ovb;
2397: if csr_hats%notfound then
2398: l_ovb := null;
2397: if csr_hats%notfound then
2398: l_ovb := null;
2399: end if;
2400: close csr_hats;
2401: hr_utility.set_location('Leaving: '|| l_proc,10);
2402: return l_ovb;
2403:
2404: EXCEPTION
2405: WHEN OTHERS THEN
2402: return l_ovb;
2403:
2404: EXCEPTION
2405: WHEN OTHERS THEN
2406: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
2407: raise;
2408:
2409: end get_transaction_step_ovn;
2410:
2419: l_number_value number;
2420: l_date date;
2421: l_proc constant varchar2(100) := g_package || ' set_transaction_value';
2422: begin
2423: hr_utility.set_location('Entering: '|| l_proc,5);
2424: if (p_datatype = 'VARCHAR2') then
2425: hr_utility.trace('In (if (p_datatype = VARCHAR2)) '|| l_proc);
2426: hr_transaction_api.set_varchar2_value
2427: (p_transaction_step_id => p_transaction_step_id
2421: l_proc constant varchar2(100) := g_package || ' set_transaction_value';
2422: begin
2423: hr_utility.set_location('Entering: '|| l_proc,5);
2424: if (p_datatype = 'VARCHAR2') then
2425: hr_utility.trace('In (if (p_datatype = VARCHAR2)) '|| l_proc);
2426: hr_transaction_api.set_varchar2_value
2427: (p_transaction_step_id => p_transaction_step_id
2428: ,p_person_id => p_login_person_id
2429: ,p_name => p_name
2428: ,p_person_id => p_login_person_id
2429: ,p_name => p_name
2430: ,p_value => p_value);
2431: elsif p_datatype = 'NUMBER' then
2432: hr_utility.trace('In ( elsif p_datatype = NUMBER) '|| l_proc);
2433: hr_transaction_api.set_number_value
2434: (p_transaction_step_id => p_transaction_step_id
2435: ,p_person_id => p_login_person_id
2436: ,p_name => p_name
2435: ,p_person_id => p_login_person_id
2436: ,p_name => p_name
2437: ,p_value => to_number(p_value));
2438: elsif p_datatype = 'DATE' then
2439: hr_utility.trace('In ( elsif p_datatype = DATE) '|| l_proc);
2440: hr_transaction_api.set_date_value
2441: (p_transaction_step_id => p_transaction_step_id
2442: ,p_person_id => p_login_person_id
2443: ,p_name => p_name
2442: ,p_person_id => p_login_person_id
2443: ,p_name => p_name
2444: ,p_value => to_date(p_value, g_date_format));
2445: else
2446: hr_utility.trace('In else of (if (p_datatype = VARCHAR2)) '|| l_proc);
2447: --raise datetype error;
2448: null;
2449: end if;
2450: hr_utility.set_location('Leaving: '|| l_proc,15);
2446: hr_utility.trace('In else of (if (p_datatype = VARCHAR2)) '|| l_proc);
2447: --raise datetype error;
2448: null;
2449: end if;
2450: hr_utility.set_location('Leaving: '|| l_proc,15);
2451: EXCEPTION
2452: WHEN OTHERS THEN
2453:
2454: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
2450: hr_utility.set_location('Leaving: '|| l_proc,15);
2451: EXCEPTION
2452: WHEN OTHERS THEN
2453:
2454: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
2455: raise;
2456: end set_transaction_value;
2457:
2458: procedure create_transaction_step
2469: l_trns_object_version_number number;
2470: l_proc constant varchar2(100) := g_package || ' create_transaction_step';
2471:
2472: begin
2473: hr_utility.set_location('Entering: '|| l_proc,5);
2474: l_transaction_id := get_transaction_id
2475: (p_item_type => p_item_type
2476: ,p_item_key => p_item_key);
2477: if l_transaction_id is null then
2497: ,p_item_key => p_item_key
2498: ,p_activity_id => to_number(p_actid)
2499: ,p_transaction_step_id => p_transaction_step_id
2500: ,p_object_version_number => l_trns_object_version_number);
2501: hr_utility.set_location('Leaving: '|| l_proc,10);
2502: end create_transaction_step;
2503:
2504: --
2505: -- --------------------
2561: and name = p_name
2562: and varchar2_value Is Not Null;
2563:
2564: begin
2565: hr_utility.set_location('Entering: '|| l_proc,5);
2566: -- to hold error message if raised;
2567: p_status := 'SUCCESS';
2568:
2569: select count(transaction_step_id)
2572: where item_key = p_item_key
2573: and item_type = p_item_type;
2574:
2575: if l_tx_step_count <> 0 then -- user has changed data in one of the previous pages
2576: hr_utility.trace('In ( if l_tx_step_count <> 0 ) '|| l_proc);
2577:
2578: -- Initialize Table index to 0
2579: l_index := 0;
2580: hr_utility.trace('Going to ( for I in csr_hatv ( p_item_key => p_item_key ) '|| l_proc);
2576: hr_utility.trace('In ( if l_tx_step_count <> 0 ) '|| l_proc);
2577:
2578: -- Initialize Table index to 0
2579: l_index := 0;
2580: hr_utility.trace('Going to ( for I in csr_hatv ( p_item_key => p_item_key ) '|| l_proc);
2581: for I in csr_hatv ( p_item_key => p_item_key
2582: ,p_item_type => p_item_type
2583: ,p_name => 'P_REVIEW_PROC_CALL'
2584: ) loop
2653: else
2654: p_review_regions := 'NO_CHANGES';
2655: end if;
2656:
2657: hr_utility.set_location('Leaving: '|| l_proc,20);
2658:
2659: --
2660: EXCEPTION WHEN OTHERS THEN
2661: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
2657: hr_utility.set_location('Leaving: '|| l_proc,20);
2658:
2659: --
2660: EXCEPTION WHEN OTHERS THEN
2661: hr_utility.set_location('EXCEPTION: '|| l_proc,555);
2662: p_status := g_package||'get_review_regions Error :'||substr(SQLERRM,1,1000);
2663: -- handle this exception and raise it to jdbc call
2664: end; -- get_review_regions
2665:
2680: i integer := 0;
2681: l_proc constant varchar2(100) := g_package || ' get_transaction_data';
2682:
2683: begin
2684: hr_utility.set_location('Entering: '|| l_proc,5);
2685: p_transaction_data := null;
2686: open transaction_data_row;
2687: if g_oracle_db_version >= 9 then
2688: hr_utility.trace('In(if g_oracle_db_version >= 9 ): '|| l_proc);
2684: hr_utility.set_location('Entering: '|| l_proc,5);
2685: p_transaction_data := null;
2686: open transaction_data_row;
2687: if g_oracle_db_version >= 9 then
2688: hr_utility.trace('In(if g_oracle_db_version >= 9 ): '|| l_proc);
2689: loop
2690: fetch transaction_data_row bulk collect
2691: into p_transaction_data.name,
2692: p_transaction_data.VARCHAR2_VALUE,
2695: limit p_bulk_fetch_limit;
2696: exit when transaction_data_row%notfound;
2697: end loop;
2698: else
2699: hr_utility.trace('In else of (if g_oracle_db_version >= 9 ): '|| l_proc);
2700: loop
2701: i := i + 1;
2702: fetch transaction_data_row
2703: into p_transaction_data.name(i),
2707: exit when transaction_data_row%notfound;
2708: end loop;
2709: end if;
2710: close transaction_data_row;
2711: hr_utility.set_location('Leaving: '|| l_proc,15);
2712: end get_transaction_data;
2713:
2714: end hr_transaction_ss;