[Home] [Help]
PACKAGE BODY: APPS.PER_ASP_SHD
Source
1 Package Body per_asp_shd as
2 /* $Header: peasprhi.pkb 115.15 2002/12/02 14:20:06 apholt ship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' per_asp_shd.'; -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |---------------------------< constraint_error >---------------------------|
12 -- ----------------------------------------------------------------------------
13 Procedure constraint_error
14 (p_constraint_name in all_constraints.constraint_name%TYPE) Is
15 --
16 l_proc varchar2(72) := g_package||'constraint_error';
17 --
18 Begin
19 hr_utility.set_location('Entering:'||l_proc, 5);
20 --
21 If (p_constraint_name = 'PER_SEC_PROFILE_ASSIGNMENTS_FK') Then
22 hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
23 hr_utility.set_message_token('PROCEDURE', l_proc);
24 hr_utility.set_message_token('STEP','5');
25 hr_utility.raise_error;
26 ElsIf (p_constraint_name = 'PER_SEC_PROFILE_ASSIGNMENTS_PK') Then
27 hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
28 hr_utility.set_message_token('PROCEDURE', l_proc);
29 hr_utility.set_message_token('STEP','10');
30 hr_utility.raise_error;
31 ElsIf (p_constraint_name = 'PER_SEC_PROFILE_ASSIGNMENTS_UK') Then
32 hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
33 hr_utility.set_message_token('PROCEDURE', l_proc);
34 hr_utility.set_message_token('STEP','15');
35 hr_utility.raise_error;
36 Else
37 hr_utility.set_message(801, 'HR_7877_API_INVALID_CONSTRAINT');
38 hr_utility.set_message_token('PROCEDURE', l_proc);
39 hr_utility.set_message_token('CONSTRAINT_NAME', p_constraint_name);
40 hr_utility.raise_error;
41 End If;
42 --
43 hr_utility.set_location(' Leaving:'||l_proc, 10);
44 End constraint_error;
45 --
46 -- ----------------------------------------------------------------------------
47 -- |-----------------------------< api_updating >-----------------------------|
48 -- ----------------------------------------------------------------------------
49 Function api_updating
50 (
51 p_sec_profile_assignment_id in number,
52 p_object_version_number in number
53 ) Return Boolean Is
54 --
55 --
56 -- Cursor selects the 'current' row from the HR Schema
57 --
58 Cursor C_Sel1 is
59 select
60 sec_profile_assignment_id,
61 user_id,
62 security_group_id,
63 business_group_id,
64 security_profile_id,
65 responsibility_id,
66 responsibility_application_id,
67 start_date,
68 end_date,
69 object_version_number
70 from per_sec_profile_assignments
71 where sec_profile_assignment_id = p_sec_profile_assignment_id;
72 --
73 l_proc varchar2(72) := g_package||'api_updating';
74 l_fct_ret boolean;
75 --
76 Begin
77 hr_utility.set_location('Entering:'||l_proc, 5);
78 --
79 If (
80 p_sec_profile_assignment_id is null and
81 p_object_version_number is null
82 ) Then
83 --
84 -- One of the primary key arguments is null therefore we must
85 -- set the returning function value to false
86 --
87 l_fct_ret := false;
88 Else
89 If (
90 p_sec_profile_assignment_id = g_old_rec.sec_profile_assignment_id and
91 p_object_version_number = g_old_rec.object_version_number
92 ) Then
93 hr_utility.set_location(l_proc, 10);
94 --
95 -- The g_old_rec is current therefore we must
96 -- set the returning function to true
97 --
98 l_fct_ret := true;
99 Else
100 --
101 -- Select the current row into g_old_rec
102 --
103 Open C_Sel1;
104 Fetch C_Sel1 Into g_old_rec;
105 If C_Sel1%notfound Then
106 Close C_Sel1;
107 --
108 -- The primary key is invalid therefore we must error
109 --
110 hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
111 hr_utility.raise_error;
112 End If;
113 Close C_Sel1;
114 If (p_object_version_number <> g_old_rec.object_version_number) Then
115 hr_utility.set_message(801, 'HR_7155_OBJECT_INVALID');
116 hr_utility.raise_error;
117 End If;
118 hr_utility.set_location(l_proc, 15);
119 l_fct_ret := true;
120 End If;
121 End If;
122 hr_utility.set_location(' Leaving:'||l_proc, 20);
123 Return (l_fct_ret);
124 --
125 End api_updating;
126 --
127 -- ----------------------------------------------------------------------------
128 -- |---------------------------------< lck >----------------------------------|
129 -- ----------------------------------------------------------------------------
130 Procedure lck
131 (
132 p_sec_profile_assignment_id in number,
133 p_object_version_number in number
134 ) is
135 --
136 -- Cursor selects the 'current' row from the HR Schema
137 --
138 Cursor C_Sel1 is
139 select sec_profile_assignment_id,
140 user_id,
141 security_group_id,
142 business_group_id,
143 security_profile_id,
144 responsibility_id,
145 responsibility_application_id,
146 start_date,
147 end_date,
148 object_version_number
149 from per_sec_profile_assignments
150 where sec_profile_assignment_id = p_sec_profile_assignment_id
151 for update nowait;
152 --
153 l_proc varchar2(72) := g_package||'lck';
154 --
155 Begin
156 hr_utility.set_location('Entering:'||l_proc, 5);
157 --
158 -- Add any mandatory argument checking here:
159 -- Example:
160 -- hr_api.mandatory_arg_error
161 -- (p_api_name => l_proc,
162 -- p_argument => 'object_version_number',
163 -- p_argument_value => p_object_version_number);
164 --
165 Open C_Sel1;
166 Fetch C_Sel1 Into g_old_rec;
167 If C_Sel1%notfound then
168 Close C_Sel1;
169 --
170 -- The primary key is invalid therefore we must error
171 --
172 hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
173 hr_utility.raise_error;
174 End If;
175 Close C_Sel1;
176 If (p_object_version_number <> g_old_rec.object_version_number) Then
177 hr_utility.set_message(801, 'HR_7155_OBJECT_INVALID');
178 hr_utility.raise_error;
179 End If;
180 --
181 hr_utility.set_location(' Leaving:'||l_proc, 10);
182 --
183 -- We need to trap the ORA LOCK exception
184 --
185 Exception
186 When HR_Api.Object_Locked then
187 --
188 -- The object is locked therefore we need to supply a meaningful
189 -- error message.
190 --
191 hr_utility.set_message(801, 'HR_7165_OBJECT_LOCKED');
192 hr_utility.set_message_token('TABLE_NAME', 'per_sec_profile_assignments');
193 hr_utility.raise_error;
194 End lck;
195 --
196 -- ----------------------------------------------------------------------------
197 -- |-----------------------------< convert_args >-----------------------------|
198 -- ----------------------------------------------------------------------------
199 Function convert_args
200 (
201 p_sec_profile_assignment_id in number,
202 p_user_id in number,
203 p_security_group_id in number,
204 p_business_group_id in number,
205 p_security_profile_id in number,
206 p_responsibility_id in number,
207 p_responsibility_application_i in number,
208 p_start_date in date,
209 p_end_date in date,
210 p_object_version_number in number
211 )
212 Return g_rec_type is
213 --
214 l_rec g_rec_type;
215 l_proc varchar2(72) := g_package||'convert_args';
216 --
217 Begin
218 --
219 hr_utility.set_location('Entering:'||l_proc, 5);
220 --
221 -- Convert arguments into local l_rec structure.
222 --
223 l_rec.sec_profile_assignment_id := p_sec_profile_assignment_id;
224 l_rec.user_id := p_user_id;
225 l_rec.security_group_id := p_security_group_id;
226 l_rec.business_group_id := p_business_group_id;
227 l_rec.security_profile_id := p_security_profile_id;
228 l_rec.responsibility_id := p_responsibility_id;
229 l_rec.responsibility_application_id := p_responsibility_application_i;
230 l_rec.start_date := p_start_date;
231 l_rec.end_date := p_end_date;
232 l_rec.object_version_number := p_object_version_number;
233 --
234 -- Return the plsql record structure.
235 --
236 hr_utility.set_location(' Leaving:'||l_proc, 10);
237 Return(l_rec);
238 --
239 End convert_args;
240 --
241 end per_asp_shd;