1 Package Body pay_balance_attribute_swi As
2 /* $Header: pypbaswi.pkb 120.0 2005/05/29 07:18 appldev noship $ */
3 --
4 -- Package variables
5 --
6 g_package varchar2(33) := 'pay_balance_attribute_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |-----------------------< create_balance_attribute >-----------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_balance_attribute
12 (p_validate in number default hr_api.g_false_num
13 ,p_attribute_id in number
14 ,p_defined_balance_id in number
15 ,p_business_group_id in number default null
16 ,p_legislation_code in varchar2 default null
17 ,p_balance_attribute_id out nocopy number
18 ,p_return_status out nocopy varchar2
19 ) is
20 --
21 -- Variables for API Boolean parameters
22 l_validate boolean;
23 --
24 -- Variables for IN/OUT parameters
25 --
26 -- Other variables
27 l_proc varchar2(72) := g_package ||'create_balance_attribute';
28 Begin
29 hr_utility.set_location(' Entering:' || l_proc,10);
30 --
31 -- Issue a savepoint
32 --
33 savepoint create_balance_attribute_swi;
34 --
35 -- Initialise Multiple Message Detection
36 --
37 hr_multi_message.enable_message_list;
38 --
39 -- Remember IN OUT parameter IN values
40 --
41 --
42 -- Convert constant values to their corresponding boolean value
43 --
44 l_validate :=
45 hr_api.constant_to_boolean
46 (p_constant_value => p_validate);
47 --
48 -- Register Surrogate ID or user key values
49 --
50 --
51 -- Call API
52 --
53 pay_balance_attribute_api.create_balance_attribute
54 (p_validate => l_validate
55 ,p_attribute_id => p_attribute_id
56 ,p_defined_balance_id => p_defined_balance_id
57 ,p_business_group_id => p_business_group_id
58 ,p_legislation_code => p_legislation_code
59 ,p_balance_attribute_id => p_balance_attribute_id
60 );
61 --
62 -- Convert API warning boolean parameter values to specific
63 -- messages and add them to Multiple Message List
64 --
65 --
66 -- Convert API non-warning boolean parameter values
67 --
68 --
69 -- Derive the API return status value based on whether
70 -- messages of any type exist in the Multiple Message List.
71 -- Also disable Multiple Message Detection.
72 --
73 p_return_status := hr_multi_message.get_return_status_disable;
74 hr_utility.set_location(' Leaving:' || l_proc,20);
75 --
76 exception
77 when hr_multi_message.error_message_exist then
78 --
79 -- Catch the Multiple Message List exception which
80 -- indicates API processing has been aborted because
81 -- at least one message exists in the list.
82 --
83 rollback to create_balance_attribute_swi;
84 --
85 -- Reset IN OUT parameters and set OUT parameters
86 --
87 p_balance_attribute_id := null;
88 p_return_status := hr_multi_message.get_return_status_disable;
89 hr_utility.set_location(' Leaving:' || l_proc, 30);
90 when others then
91 --
92 -- When Multiple Message Detection is enabled catch
93 -- any Application specific or other unexpected
94 -- exceptions. Adding appropriate details to the
95 -- Multiple Message List. Otherwise re-raise the
96 -- error.
97 --
98 rollback to create_balance_attribute_swi;
99 if hr_multi_message.unexpected_error_add(l_proc) then
100 hr_utility.set_location(' Leaving:' || l_proc,40);
101 raise;
102 end if;
103 --
104 -- Reset IN OUT and set OUT parameters
105 --
106 p_balance_attribute_id := null;
107 p_return_status := hr_multi_message.get_return_status_disable;
108 hr_utility.set_location(' Leaving:' || l_proc,50);
109 end create_balance_attribute;
110 -- ----------------------------------------------------------------------------
111 -- |-----------------------< delete_balance_attribute >-----------------------|
112 -- ----------------------------------------------------------------------------
113 PROCEDURE delete_balance_attribute
114 (p_validate in number default hr_api.g_false_num
115 ,p_balance_attribute_id in number
116 ,p_business_group_id in number default hr_api.g_number
117 ,p_legislation_code in varchar2 default hr_api.g_varchar2
118 ,p_return_status out nocopy varchar2
119 ) is
120 --
121 -- Variables for API Boolean parameters
122 l_validate boolean;
123 --
124 -- Variables for IN/OUT parameters
125 --
126 -- Other variables
127 l_proc varchar2(72) := g_package ||'delete_balance_attribute';
128 Begin
129 hr_utility.set_location(' Entering:' || l_proc,10);
130 --
131 -- Issue a savepoint
132 --
133 savepoint delete_balance_attribute_swi;
134 --
135 -- Initialise Multiple Message Detection
136 --
137 hr_multi_message.enable_message_list;
138 --
139 -- Remember IN OUT parameter IN values
140 --
141 --
142 -- Convert constant values to their corresponding boolean value
143 --
144 l_validate :=
145 hr_api.constant_to_boolean
146 (p_constant_value => p_validate);
147 --
148 -- Register Surrogate ID or user key values
149 --
150 --
151 -- Call API
152 --
153 pay_balance_attribute_api.delete_balance_attribute
154 (p_validate => l_validate
155 ,p_balance_attribute_id => p_balance_attribute_id
156 ,p_business_group_id => p_business_group_id
157 ,p_legislation_code => p_legislation_code
158 );
159 --
160 -- Convert API warning boolean parameter values to specific
161 -- messages and add them to Multiple Message List
162 --
163 --
164 -- Convert API non-warning boolean parameter values
165 --
166 --
167 -- Derive the API return status value based on whether
168 -- messages of any type exist in the Multiple Message List.
169 -- Also disable Multiple Message Detection.
170 --
171 p_return_status := hr_multi_message.get_return_status_disable;
172 hr_utility.set_location(' Leaving:' || l_proc,20);
173 --
174 exception
175 when hr_multi_message.error_message_exist then
176 --
177 -- Catch the Multiple Message List exception which
178 -- indicates API processing has been aborted because
179 -- at least one message exists in the list.
180 --
181 rollback to delete_balance_attribute_swi;
182 --
183 -- Reset IN OUT parameters and set OUT parameters
184 --
185 p_return_status := hr_multi_message.get_return_status_disable;
186 hr_utility.set_location(' Leaving:' || l_proc, 30);
187 when others then
188 --
189 -- When Multiple Message Detection is enabled catch
190 -- any Application specific or other unexpected
191 -- exceptions. Adding appropriate details to the
192 -- Multiple Message List. Otherwise re-raise the
193 -- error.
194 --
195 rollback to delete_balance_attribute_swi;
196 if hr_multi_message.unexpected_error_add(l_proc) then
197 hr_utility.set_location(' Leaving:' || l_proc,40);
198 raise;
199 end if;
200 --
201 -- Reset IN OUT and set OUT parameters
202 --
203 p_return_status := hr_multi_message.get_return_status_disable;
204 hr_utility.set_location(' Leaving:' || l_proc,50);
205 end delete_balance_attribute;
206 end pay_balance_attribute_swi;