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