[Home] [Help]
PACKAGE BODY: APPS.PER_RI_WORKBENCH_ITEM_API
Source
1 Package Body per_ri_workbench_item_api AS
2 /* $Header: pewbiapi.pkb 115.0 2003/07/03 05:51:24 kavenkat noship $ */
3 --
4 -- Package Variables
5 --
6 g_package VARCHAR2(33) := 'per_ri_workbench_item_api.';
7 --
8 --------------------------------------------------------------------------------
9 g_dummy number(1); -- Dummy for cursor returns which are not needed
10 g_business_group_id number(15); -- For validating translation;
11 g_legislation_code varchar2(150); -- For validating translation;
12 --------------------------------------------------------------------------------
13 -- ----------------------------------------------------------------------------------
14 -- |-----------------------------< create_workbench_items >--------------------------|
15 -- ----------------------------------------------------------------------------------
16 --
17 Procedure create_workbench_item
18 ( p_validate In Boolean Default False
19 ,p_workbench_item_code In Varchar2
20 ,p_workbench_item_name In Varchar2
21 ,p_workbench_item_description In Varchar2
22 ,p_menu_id In Number
23 ,p_workbench_item_sequence In Number
24 ,p_workbench_parent_item_code In Varchar2
25 ,p_workbench_item_creation_date In Date
26 ,p_workbench_item_type In Varchar2
27 ,p_language_code In Varchar2 Default hr_api.userenv_lang
28 ,p_effective_date In Date
29 ,p_object_version_number Out Nocopy Number
30 ) Is
31 --
32 -- Declare cursors and local variables
33 --
34 l_proc Varchar2(72) := g_package||'create_workbench_item';
35 l_object_version_number hr_locations_all.object_version_number%TYPE;
36 l_language_code per_ri_workbench_items_tl.language%TYPE;
37 l_effective_date Date;
38 l_workbench_item_creation_date Date;
39 l_workbench_item_code per_ri_workbench_items.workbench_item_code%TYPE;
40 --
41 Begin
42 --
43 hr_utility.set_location('Entering:'|| l_proc, 10);
44 --
45 -- Issue a savepoint
46 --
47 Savepoint create_workbench_item;
48 --
49 hr_utility.set_location(l_proc, 15);
50 per_wbi_ins.set_base_key_value (p_workbench_item_code => p_workbench_item_code );
51 --
52 -- All date input parameters must be truncated to remove time elements
53 --
54 l_effective_date := trunc (p_effective_date);
55 l_workbench_item_creation_date := trunc (p_workbench_item_creation_date);
56 --
57 --
61 --
58 -- Validate the language parameter. l_language_code should be passed to functions
59 -- instead of p_language_code from now on, to allow an IN OUT parameter to
60 -- be passed through.
62 l_language_code := p_language_code;
63 hr_api.validate_language_code(p_language_code => l_language_code);
64 --
65 hr_utility.set_location(l_proc, 20);
66
67 -- Process Logic
68 --
69 -- Insert non-translatable rows into PER_RI_WORKBENCH_ITEMS first
70 per_wbi_ins.ins
71 ( p_workbench_item_code => l_workbench_item_code
72 ,p_menu_id => p_menu_id
73 ,p_workbench_item_sequence => p_workbench_item_sequence
74 ,p_workbench_parent_item_code => p_workbench_parent_item_code
75 ,p_workbench_item_creation_date => l_workbench_item_creation_date
76 ,p_workbench_item_type => p_workbench_item_type
77 ,p_effective_date => l_effective_date
78 ,p_object_version_number => l_object_version_number
79 );
80 --
81 -- Now insert translatable rows in PER_RI_WORKBENCH_ITEMS_TL table
82 per_wbt_ins.ins_tl
83 ( p_workbench_item_code => p_workbench_item_code
84 ,p_workbench_item_name => p_workbench_item_name
85 ,p_workbench_item_description => p_workbench_item_description
86 ,p_language_code => l_language_code
87 );
88
89 hr_utility.set_location(l_proc, 60);
90 --
91 -- When in validation only mode raise the Validate_Enabled exception
92 --
93 If p_validate Then
94 Raise hr_api.validate_enabled;
95 End If;
96 --
97 -- Set all output arguments
98 --
99 p_object_version_number := l_object_version_number;
100 --
101 hr_utility.set_location(' Leaving:'||l_proc, 70);
102 --
103 Exception
104 --
105 When hr_api.validate_enabled Then
106 --
107 -- As the Validate_Enabled exception has been raised
108 -- we must rollback to the savepoint
109 --
110 Rollback To create_workbench_item;
111 --
112 -- Only set output warning arguments
113 -- (Any key or derived arguments must be set to null
114 -- when validation only mode is being used.)
115 --
116 p_object_version_number := Null;
117 hr_utility.set_location(' Leaving:'||l_proc, 80);
118 When Others Then
119 --
120 -- A validation or unexpected error has occurred
121 Rollback To create_workbench_item;
122 -- Set OUT parameters.
123 p_object_version_number := Null;
124 hr_utility.set_location(' Leaving:'||l_proc, 90);
125 Raise;
126 --
127 End create_workbench_item;
128 -- ----------------------------------------------------------------------------
129 -- |--------------------------< update_workbench_items >-----------------------------|
130 -- ----------------------------------------------------------------------------
131 --
132 Procedure update_workbench_item
133 ( p_validate In Boolean Default False
134 ,p_workbench_item_code In Varchar2
135 ,p_workbench_item_name In Varchar2 Default hr_api.g_varchar2
136 ,p_workbench_item_description In Varchar2 Default hr_api.g_varchar2
137 ,p_menu_id In Number Default hr_api.g_number
138 ,p_workbench_item_sequence In Number Default hr_api.g_number
139 ,p_workbench_parent_item_code In Varchar2 Default hr_api.g_varchar2
140 ,p_workbench_item_creation_date In Date Default hr_api.g_date
141 ,p_workbench_item_type In Varchar2 Default hr_api.g_varchar2
142 ,p_language_code In Varchar2 Default hr_api.userenv_lang
143 ,p_effective_date In Date
144 ,p_object_version_number In Out Nocopy Number
145 ) Is
146 --
147 -- Declare cursors and local variables
148 --
149 l_proc VARCHAR2(72) := g_package||'update_workbench_item';
150 l_object_version_number hr_locations.object_version_number%TYPE;
151 l_language_code hr_locations_all_tl.language%TYPE;
152 l_workbench_item_creation_date Date;
153 l_effective_date DATE;
154
155 l_temp_ovn number := p_object_version_number;
156 --
157 BEGIN
158 --
159 hr_utility.set_location('Entering:'|| l_proc, 10);
160 --
161 -- Issue a savepoint.
162 --
163 savepoint update_workbench_item;
164 --
165 --
166 -- All date input parameters must be truncated to remove time elements
167 --
168 l_effective_date := trunc (p_effective_date);
169 l_workbench_item_creation_date := trunc (p_workbench_item_creation_date);
170 --
171 -- Validate the language parameter. l_language_code should be passed to functions
172 -- instead of p_language_code from now on, to allow an IN OUT parameter to be
173 -- passed through.
174 --
175 l_language_code := p_language_code;
176 hr_api.validate_language_code(p_language_code => l_language_code);
177 hr_utility.set_location(l_proc, 20);
178 --
179 --
180 -- Process Logic
181 --
182 l_object_version_number := p_object_version_number;
183 --
184 -- Insert non-translatable rows in PER_RI_WORKBENCH_ITEMS Table
185 --
186 per_wbi_upd.upd
187 ( p_workbench_item_code => p_workbench_item_code
188 ,p_menu_id => p_menu_id
189 ,p_workbench_item_sequence => p_workbench_item_sequence
190 ,p_workbench_parent_item_code => p_workbench_parent_item_code
191 ,p_workbench_item_creation_date => l_workbench_item_creation_date
192 ,p_workbench_item_type => p_workbench_item_type
193 ,p_effective_date => l_effective_date
194 ,p_object_version_number => l_object_version_number);
195 --
196 -- Now insert translatable rows in PER_RI_WORKBENCH_ITEMS_TL table
197
198 per_wbt_upd.upd_tl
199 ( p_workbench_item_code => p_workbench_item_code
200 ,p_workbench_item_name => p_workbench_item_name
201 ,p_workbench_item_description => p_workbench_item_description
202 ,p_language_code => l_language_code
203 );
204
205 --
206
207 hr_utility.set_location(l_proc, 60);
208 --
209 -- When in validation only mode raise the Validate_Enabled exception
210 --
211 If p_validate Then
212 Raise hr_api.validate_enabled;
213 End If;
214 --
215 -- Set all output arguments. If p_validate was TRUE, this bit is
216 -- never reached, so p_object_version_number is passed back unchanged.
217 --
218 p_object_version_number := l_object_version_number;
219 --
220 hr_utility.set_location(' Leaving:'||l_proc, 70);
221 --
222 Exception
223 --
224 When hr_api.validate_enabled Then
225 --
226 -- As the Validate_Enabled exception has been raised
227 -- we must rollback to the savepoint
228 --
229 Rollback To update_workbench_item;
230 --
231 -- Only set output warning arguments
232 -- (Any key or derived arguments must be set to null
233 -- when validation only mode is being used.)
234 -- Reset IN OUT parameters.
235 p_object_version_number := l_temp_ovn;
236 hr_utility.set_location(' Leaving:'||l_proc, 80);
237 When Others Then
238 --
239 -- A validation or unexpected error has occurred
240 Rollback To update_workbench_item;
241 -- Reset IN OUT parameters.
242 p_object_version_number := l_temp_ovn;
243 hr_utility.set_location(' Leaving:'||l_proc, 90);
244 Raise;
245 --
246 --
247 End update_workbench_item;
248 -- ----------------------------------------------------------------------------
249 -- |-------------------------< delete_location >------------------------------|
250 -- ----------------------------------------------------------------------------
251 --
252 Procedure delete_workbench_item
253 ( p_validate In Boolean Default False
254 ,p_workbench_item_code In Varchar2
255 ,p_object_version_number IN Number )
256
257 Is
258 --
259 --
260 -- Declare cursors and local variables
261 --
262 l_proc Varchar2(72) := g_package||'delete_workbench_item';
263 --
264 Begin
265 --
266 hr_utility.set_location('Entering:'|| l_proc, 10);
267 --
268 -- Issue a savepoint
269 --
270 Savepoint delete_workbench_item;
271
272 --
273 -- Process Logic
274 -- =============
275 --
276 -- Need to lock main table to maintain the locking ladder order
277 --
278 hr_utility.set_location( l_proc, 30);
279 per_wbi_shd.lck ( p_workbench_item_code => p_workbench_item_code,
280 p_object_version_number => p_object_version_number );
281 --
282 -- Remove all matching translation rows
283 --
284 hr_utility.set_location( l_proc, 35);
285
286 per_wbt_del.del_tl( p_workbench_item_code => p_workbench_item_code );
287 --
288 -- Remove non-translated data row
289 --
290 hr_utility.set_location( l_proc, 40);
291
292 per_wbi_del.del(p_workbench_item_code => p_workbench_item_code,
293 p_object_version_number => p_object_version_number );
294 --
295 --
296 hr_utility.set_location(' Leaving:'||l_proc, 60);
297 --
298 -- When in validation only mode raise the Validate_Enabled exception
299 --
300 If p_validate Then
301 Raise hr_api.validate_enabled;
302 End If;
303 --
304 --
305 Exception
306 --
307 When hr_api.validate_enabled Then
308 --
309 -- As the Validate_Enabled exception has been raised
310 -- we must rollback to the savepoint
311 --
312 Rollback To delete_workbench_item;
313 --
314 -- Only set output warning arguments
315 -- (Any key or derived arguments must be set to null
316 -- when validation only mode is being used.)
317 --
318 hr_utility.set_location(' Leaving:'||l_proc, 80);
319 When Others Then
320 --
321 -- A validation or unexpected error has occurred
322 Rollback To delete_workbench_item;
323 hr_utility.set_location(' Leaving:'||l_proc, 90);
324 Raise;
325 --
326 End delete_workbench_item;
327
328 --
329
330 End per_ri_workbench_item_api;