1 Package Body pqh_rule_attributes_swi As
2 /* $Header: pqrlaswi.pkb 115.0 2003/01/26 01:41:22 rpasapul noship $ */
3 --
4 -- Package variables
5 --
6 g_package varchar2(33) := 'pqh_rule_attributes_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |-------------------------< delete_rule_attribute >------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE delete_rule_attribute
12 (p_rule_attribute_id in number
13 ,p_object_version_number in number
14 ,p_return_status out nocopy varchar2
15 ) is
16 --
17 -- Variables for API Boolean parameters
18 --
19 -- Variables for IN/OUT parameters
20 --
21 -- Other variables
22 l_proc varchar2(72) := g_package ||'delete_rule_attribute';
23 Begin
24 hr_utility.set_location(' Entering:' || l_proc,10);
25 --
26 -- Issue a savepoint
27 --
28 savepoint delete_rule_attribute_swi;
29 --
30 -- Initialise Multiple Message Detection
31 --
32 hr_multi_message.enable_message_list;
33 --
34 -- Remember IN OUT parameter IN values
35 --
36 --
37 -- Convert constant values to their corresponding boolean value
38 --
39 --
40 -- Register Surrogate ID or user key values
41 --
42 --
43 -- Call API
44 --
45 pqh_rule_attributes_api.delete_rule_attribute
46 (p_rule_attribute_id => p_rule_attribute_id
47 ,p_object_version_number => p_object_version_number
48 );
49 --
50 -- Convert API warning boolean parameter values to specific
51 -- messages and add them to Multiple Message List
52 --
53 --
54 -- Convert API non-warning boolean parameter values
55 --
56 --
57 -- Derive the API return status value based on whether
58 -- messages of any type exist in the Multiple Message List.
59 -- Also disable Multiple Message Detection.
60 --
61 p_return_status := hr_multi_message.get_return_status_disable;
62 hr_utility.set_location(' Leaving:' || l_proc,20);
63 --
64 exception
65 when hr_multi_message.error_message_exist then
66 --
67 -- Catch the Multiple Message List exception which
68 -- indicates API processing has been aborted because
69 -- at least one message exists in the list.
70 --
71 rollback to delete_rule_attribute_swi;
72 --
73 -- Reset IN OUT parameters and set OUT parameters
74 --
75 p_return_status := hr_multi_message.get_return_status_disable;
76 hr_utility.set_location(' Leaving:' || l_proc, 30);
77 when others then
78 --
79 -- When Multiple Message Detection is enabled catch
80 -- any Application specific or other unexpected
81 -- exceptions. Adding appropriate details to the
82 -- Multiple Message List. Otherwise re-raise the
83 -- error.
84 --
85 rollback to delete_rule_attribute_swi;
86 if hr_multi_message.unexpected_error_add(l_proc) then
87 hr_utility.set_location(' Leaving:' || l_proc,40);
88 raise;
89 end if;
90 --
91 -- Reset IN OUT and set OUT parameters
92 --
93 p_return_status := hr_multi_message.get_return_status_disable;
94 hr_utility.set_location(' Leaving:' || l_proc,50);
95 end delete_rule_attribute;
96 -- ----------------------------------------------------------------------------
97 -- |-------------------------< insert_rule_attribute >------------------------|
98 -- ----------------------------------------------------------------------------
99 PROCEDURE insert_rule_attribute
100 (p_rule_set_id in number
101 ,p_attribute_code in varchar2
102 ,p_operation_code in varchar2
103 ,p_attribute_value in varchar2
104 ,p_rule_attribute_id out nocopy number
105 ,p_object_version_number out nocopy number
106 ,p_return_status out nocopy varchar2
107 ) is
108 --
109 -- Variables for API Boolean parameters
110 --
111 -- Variables for IN/OUT parameters
112 --
113 -- Other variables
114 l_proc varchar2(72) := g_package ||'insert_rule_attribute';
115 Begin
116 hr_utility.set_location(' Entering:' || l_proc,10);
117 --
118 -- Issue a savepoint
119 --
120 savepoint insert_rule_attribute_swi;
121 --
122 -- Initialise Multiple Message Detection
123 --
124 hr_multi_message.enable_message_list;
125 --
126 -- Remember IN OUT parameter IN values
127 --
128 --
129 -- Convert constant values to their corresponding boolean value
130 --
131 --
132 -- Register Surrogate ID or user key values
133 --
134 pqh_rla_ins.set_base_key_value
135 (p_rule_attribute_id => p_rule_attribute_id
136 );
137 --
138 -- Call API
139 --
140 pqh_rule_attributes_api.insert_rule_attribute
141 (p_rule_set_id => p_rule_set_id
142 ,p_attribute_code => p_attribute_code
143 ,p_operation_code => p_operation_code
144 ,p_attribute_value => p_attribute_value
145 ,p_rule_attribute_id => p_rule_attribute_id
146 ,p_object_version_number => p_object_version_number
147 );
148 --
149 -- Convert API warning boolean parameter values to specific
150 -- messages and add them to Multiple Message List
151 --
152 --
153 -- Convert API non-warning boolean parameter values
154 --
155 --
156 -- Derive the API return status value based on whether
157 -- messages of any type exist in the Multiple Message List.
158 -- Also disable Multiple Message Detection.
159 --
160 p_return_status := hr_multi_message.get_return_status_disable;
161 hr_utility.set_location(' Leaving:' || l_proc,20);
162 --
163 exception
164 when hr_multi_message.error_message_exist then
165 --
166 -- Catch the Multiple Message List exception which
167 -- indicates API processing has been aborted because
168 -- at least one message exists in the list.
169 --
170 rollback to insert_rule_attribute_swi;
171 --
172 -- Reset IN OUT parameters and set OUT parameters
173 --
174 p_rule_attribute_id := null;
175 p_object_version_number := null;
176 p_return_status := hr_multi_message.get_return_status_disable;
177 hr_utility.set_location(' Leaving:' || l_proc, 30);
178 when others then
179 --
180 -- When Multiple Message Detection is enabled catch
181 -- any Application specific or other unexpected
182 -- exceptions. Adding appropriate details to the
183 -- Multiple Message List. Otherwise re-raise the
184 -- error.
185 --
186 rollback to insert_rule_attribute_swi;
187 if hr_multi_message.unexpected_error_add(l_proc) then
188 hr_utility.set_location(' Leaving:' || l_proc,40);
189 raise;
190 end if;
191 --
192 -- Reset IN OUT and set OUT parameters
193 --
194 p_rule_attribute_id := null;
195 p_object_version_number := null;
196 p_return_status := hr_multi_message.get_return_status_disable;
197 hr_utility.set_location(' Leaving:' || l_proc,50);
198 end insert_rule_attribute;
199 -- ----------------------------------------------------------------------------
200 -- |-------------------------< update_rule_attribute >------------------------|
201 -- ----------------------------------------------------------------------------
202 PROCEDURE update_rule_attribute
203 (p_rule_attribute_id in number
204 ,p_object_version_number in out nocopy number
205 ,p_rule_set_id in number default hr_api.g_number
206 ,p_attribute_code in varchar2 default hr_api.g_varchar2
207 ,p_operation_code in varchar2 default hr_api.g_varchar2
208 ,p_attribute_value in varchar2 default hr_api.g_varchar2
209 ,p_return_status out nocopy varchar2
210 ) is
211 --
212 -- Variables for API Boolean parameters
213 --
214 -- Variables for IN/OUT parameters
215 l_object_version_number number;
216 --
217 -- Other variables
218 l_proc varchar2(72) := g_package ||'update_rule_attribute';
219 Begin
220 hr_utility.set_location(' Entering:' || l_proc,10);
221 --
222 -- Issue a savepoint
223 --
224 savepoint update_rule_attribute_swi;
225 --
226 -- Initialise Multiple Message Detection
227 --
228 hr_multi_message.enable_message_list;
229 --
230 -- Remember IN OUT parameter IN values
231 --
232 l_object_version_number := p_object_version_number;
233 --
234 -- Convert constant values to their corresponding boolean value
235 --
236 --
237 -- Register Surrogate ID or user key values
238 --
239 --
240 -- Call API
241 --
242 pqh_rule_attributes_api.update_rule_attribute
243 (p_rule_attribute_id => p_rule_attribute_id
244 ,p_object_version_number => p_object_version_number
245 ,p_rule_set_id => p_rule_set_id
246 ,p_attribute_code => p_attribute_code
247 ,p_operation_code => p_operation_code
248 ,p_attribute_value => p_attribute_value
249 );
250 --
251 -- Convert API warning boolean parameter values to specific
252 -- messages and add them to Multiple Message List
253 --
254 --
255 -- Convert API non-warning boolean parameter values
256 --
257 --
258 -- Derive the API return status value based on whether
259 -- messages of any type exist in the Multiple Message List.
260 -- Also disable Multiple Message Detection.
261 --
262 p_return_status := hr_multi_message.get_return_status_disable;
263 hr_utility.set_location(' Leaving:' || l_proc,20);
264 --
265 exception
266 when hr_multi_message.error_message_exist then
267 --
268 -- Catch the Multiple Message List exception which
269 -- indicates API processing has been aborted because
270 -- at least one message exists in the list.
271 --
272 rollback to update_rule_attribute_swi;
273 --
274 -- Reset IN OUT parameters and set OUT parameters
275 --
276 p_object_version_number := l_object_version_number;
277 p_return_status := hr_multi_message.get_return_status_disable;
278 hr_utility.set_location(' Leaving:' || l_proc, 30);
279 when others then
280 --
281 -- When Multiple Message Detection is enabled catch
282 -- any Application specific or other unexpected
283 -- exceptions. Adding appropriate details to the
284 -- Multiple Message List. Otherwise re-raise the
285 -- error.
286 --
287 rollback to update_rule_attribute_swi;
288 if hr_multi_message.unexpected_error_add(l_proc) then
289 hr_utility.set_location(' Leaving:' || l_proc,40);
290 raise;
291 end if;
292 --
293 -- Reset IN OUT and set OUT parameters
294 --
295 p_object_version_number := l_object_version_number;
296 p_return_status := hr_multi_message.get_return_status_disable;
297 hr_utility.set_location(' Leaving:' || l_proc,50);
298 end update_rule_attribute;
299 end pqh_rule_attributes_swi;