[Home] [Help]
PACKAGE BODY: APPS.PA_CI_IMPACT_TYPE_USAGE_PUB
Source
1 PACKAGE BODY PA_CI_IMPACT_TYPE_USAGE_PUB AS
2 /* $Header: PACIIMPB.pls 120.1 2009/03/24 17:36:09 cklee ship $ */
3
4 PROCEDURE create_ci_impact_type_usage (
5 p_api_version IN NUMBER := 1.0,
6 p_init_msg_list IN VARCHAR2 := 'T',
7 p_commit IN VARCHAR2 := 'F',
8 p_validate_only IN VARCHAR2 := 'T',
9 p_max_msg_count IN NUMBER := null,
10
11 p_impact_type_code IN VARCHAR2 := null,
12 p_ci_type_class_code IN VARCHAR2 := null,
13 p_CI_TYPE_ID in NUMBER := null,
14
15 p_created_by IN NUMBER DEFAULT fnd_global.user_id,
16 p_creation_date IN DATE DEFAULT SYSDATE,
17 p_last_update_login IN NUMBER DEFAULT fnd_global.login_id,
18 --start:| 16-FEB-2009 cklee R12.1.2 setup ehancement
19 P_IMPACT_TYPE_CODE_ORDER IN NUMBER default null,
20 --end:| 16-FEB-2009 cklee R12.1.2 setup ehancement
21
22 x_ci_impact_type_usage_id OUT NOCOPY NUMBER,
23 x_return_status OUT NOCOPY VARCHAR2,
24 x_msg_count OUT NOCOPY NUMBER,
25 x_msg_data OUT NOCOPY VARCHAR2
26 )
27 IS
28
29 l_msg_index_out NUMBER;
30
31 BEGIN
32 pa_debug.set_err_stack ('PA_CI_IMPACT_TYPE_USAGE_PUB.CREATE_CI_IMPACT_TYPE_USAGE');
33
34 IF p_commit = 'T' THEN
35 SAVEPOINT create_ci_impact_type_usage;
36 END IF;
37
38 IF p_init_msg_list = 'T' THEN
39 fnd_msg_pub.initialize;
40 END IF;
41
42 x_return_status := 'S';
43 x_msg_count := 0;
44 x_msg_data := '';
45
46 IF (p_validate_only <> 'T' AND x_return_status = 'S') THEN
47 PA_CI_IMPACT_TYPE_USAGE_pvt.create_ci_impact_type_usage(
48 p_api_version => p_api_version,
49 p_init_msg_list => p_init_msg_list,
50 p_commit => p_commit,
51 p_validate_only => p_validate_only,
52 p_max_msg_count => p_max_msg_count,
53
54 p_impact_type_code => p_impact_type_code,
55 p_ci_type_class_code => p_ci_type_class_code,
56 p_ci_type_id => p_ci_type_id,
57 --start:| 16-FEB-2009 cklee R12.1.2 setup ehancement
58 P_IMPACT_TYPE_CODE_ORDER => P_IMPACT_TYPE_CODE_ORDER,
59 --end:| 16-FEB-2009 cklee R12.1.2 setup ehancement
60 x_ci_impact_type_usage_id => x_ci_impact_type_usage_id,
61
62 x_return_status => x_return_status,
63 x_msg_count => x_msg_count,
64 x_msg_data => x_msg_data
65 );
66 END IF;
67
68
69 x_msg_count := FND_MSG_PUB.Count_Msg;
70 IF x_msg_count = 1 THEN
71 pa_interface_utils_pub.get_messages ( p_encoded => 'T'
72 ,p_msg_index => 1
73 ,p_data => x_msg_data
74 ,p_msg_index_out => l_msg_index_out
75 );
76 END IF;
77
78 -- Reset the error stack when returning to the calling program
79 PA_DEBUG.Reset_Err_Stack;
80
81
82
83 EXCEPTION
84 WHEN OTHERS THEN
85 IF p_commit = 'T' THEN
86 ROLLBACK TO create_ci_impact_type_usage;
87 END IF;
88
89 x_return_status := 'U';
90 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_CI_IMPACT_TYPE_USAGE_PUB',
91 p_procedure_name => 'CREATE_CI_IMPACT_TYPE_USAGE',
92 p_error_text => SUBSTRB(SQLERRM,1,240));
93
94 fnd_msg_pub.count_and_get(p_count => x_msg_count,
95 p_data => x_msg_data);
96 END create_ci_impact_type_usage;
97
98 --start:| 16-FEB-2009 cklee R12.1.2 setup ehancement
99
100 PROCEDURE update_ci_impact_type_usage (
101 p_api_version IN NUMBER := 1.0,
102 p_init_msg_list IN VARCHAR2 := 'T',
103 p_commit IN VARCHAR2 := 'F',
104 p_validate_only IN VARCHAR2 := 'T',
105 p_max_msg_count IN NUMBER := null,
106
107 p_ci_impact_type_usage_id IN NUMBER,
108 P_IMPACT_TYPE_CODE_ORDER IN NUMBER,
109
110 x_return_status OUT NOCOPY VARCHAR2,
111 x_msg_count OUT NOCOPY NUMBER,
112 x_msg_data OUT NOCOPY VARCHAR2
113 )
114 IS
115 l_msg_index_out NUMBER;
116
117 BEGIN
118 pa_debug.set_err_stack ('PA_CI_IMPACT_TYPE_USAGE_PUB.UPDATE_CI_IMPACT_TYPE_USAGE');
119
120 IF p_commit = 'T' THEN
121 SAVEPOINT update_ci_impact_type_usage;
122 END IF;
123
124 IF p_init_msg_list = 'T' THEN
125 fnd_msg_pub.initialize;
126 END IF;
127
128 x_return_status := 'S';
129 x_msg_count := 0;
130 x_msg_data := '';
131
132 IF (p_validate_only <> 'T' AND x_return_status = 'S') THEN
133 PA_CI_IMPACT_TYPE_USAGE_pvt.update_ci_impact_type_usage(
134 p_api_version => p_api_version,
135 p_init_msg_list => p_init_msg_list,
136 p_commit => p_commit,
137 p_validate_only => p_validate_only,
138 p_max_msg_count => p_max_msg_count,
139
140 P_IMPACT_TYPE_CODE_ORDER => P_IMPACT_TYPE_CODE_ORDER,
141 p_ci_impact_type_usage_id => p_ci_impact_type_usage_id,
142
143 x_return_status => x_return_status,
144 x_msg_count => x_msg_count,
145 x_msg_data => x_msg_data
146 );
147 END IF;
148
149
150 x_msg_count := FND_MSG_PUB.Count_Msg;
151 IF x_msg_count = 1 THEN
152 pa_interface_utils_pub.get_messages ( p_encoded => 'T'
153 ,p_msg_index => 1
154 ,p_data => x_msg_data
155 ,p_msg_index_out => l_msg_index_out
156 );
157 END IF;
158
159 -- Reset the error stack when returning to the calling program
160 PA_DEBUG.Reset_Err_Stack;
161
162
163
164 EXCEPTION
165 WHEN OTHERS THEN
166 IF p_commit = 'T' THEN
167 ROLLBACK TO create_ci_impact_type_usage;
168 END IF;
169
170 x_return_status := 'U';
171 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_CI_IMPACT_TYPE_USAGE_PUB',
172 p_procedure_name => 'UPDATE_CI_IMPACT_TYPE_USAGE',
173 p_error_text => SUBSTRB(SQLERRM,1,240));
174
175 fnd_msg_pub.count_and_get(p_count => x_msg_count,
176 p_data => x_msg_data);
177 END update_ci_impact_type_usage;
178
179 --end:| 16-FEB-2009 cklee R12.1.2 setup ehancement
180
181
182 PROCEDURE delete_ci_impact_type_usage (
183 p_api_version IN NUMBER := 1.0,
184 p_init_msg_list IN VARCHAR2 := 'T',
185 p_commit IN VARCHAR2 := 'F',
186 p_validate_only IN VARCHAR2 := 'T',
187 p_max_msg_count IN NUMBER := null,
188
189 p_ci_impact_type_usage_id IN NUMBER := null,
190 p_impact_type_code IN VARCHAR2 := null,
191 p_ci_type_class_code IN VARCHAR2 := null,
192 p_ci_type_id IN NUMBER := null,
193 --start:| 16-FEB-2009 cklee R12.1.2 setup ehancement
194 P_IMPACT_TYPE_CODE_ORDER IN NUMBER default null,
195 --end:| 16-FEB-2009 cklee R12.1.2 setup ehancement
196 x_return_status OUT NOCOPY VARCHAR2,
197 x_msg_count OUT NOCOPY NUMBER,
198 x_msg_data OUT NOCOPY VARCHAR2
199 )
200 IS
201 l_msg_index_out NUMBER;
202 l_temp VARCHAR2(1);
203 BEGIN
204 pa_debug.set_err_stack ('PA_CI_IMPACT_TYPE_USAGE_PUB.DELETE_CI_IMPACT_TYPE_USAGE');
205
206 IF p_commit = 'T' THEN
207 SAVEPOINT delete_ci_impact_type_usage;
208 END IF;
209
210 IF p_init_msg_list = 'T' THEN
211 fnd_msg_pub.initialize;
212 END IF;
213
214 x_return_status := 'S';
215 x_msg_count := 0;
216 x_msg_data := '';
217
218 -- Trying to lock the record
219 PA_CI_IMPACT_TYPE_USAGE_pvt.delete_ci_impact_type_usage (
220 p_api_version => p_api_version,
221 p_init_msg_list => p_init_msg_list,
222 p_commit => p_commit,
223 p_validate_only => p_validate_only,
224 p_max_msg_count => p_max_msg_count,
225
226 p_ci_impact_type_usage_id => p_ci_impact_type_usage_id,
227 p_impact_type_code => p_impact_type_code,
228 p_ci_type_class_code => p_ci_type_class_code,
229 p_ci_type_id => p_ci_type_id,
230 --start:| 16-FEB-2009 cklee R12.1.2 setup ehancement
231 P_IMPACT_TYPE_CODE_ORDER => P_IMPACT_TYPE_CODE_ORDER,
232 --end:| 16-FEB-2009 cklee R12.1.2 setup ehancement
233 x_return_status => x_return_status,
234 x_msg_count => x_msg_count,
235 x_msg_data => x_msg_data
236
237 );
238 x_msg_count := FND_MSG_PUB.Count_Msg;
239 IF x_msg_count = 1 THEN
240 pa_interface_utils_pub.get_messages ( p_encoded => 'T'
241 ,p_msg_index => 1
242 ,p_data => x_msg_data
243 ,p_msg_index_out => l_msg_index_out
244 );
245 END IF;
246
247
248 -- Reset the error stack when returning to the calling program
249 PA_DEBUG.Reset_Err_Stack;
250
251
252 EXCEPTION
253 WHEN OTHERS THEN
254 IF p_commit = 'T' THEN
255 ROLLBACK TO delete_ci_impact_type_usage;
256 END IF;
257
258 x_return_status := 'U';
259 fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_CI_IMPACT_TYPES_PUB',
260 p_procedure_name => 'DELETE_CI_IMPACT_TYPE_USAGE',
261 p_error_text => SUBSTRB(SQLERRM,1,240));
262
263 fnd_msg_pub.count_and_get(p_count => x_msg_count,
264 p_data => x_msg_data);
265 END delete_ci_impact_type_usage;
266
267
268 FUNCTION delete_impact_type_usage_ok
269 (
270 p_impact_type_code IN VARCHAR2 ,
271 p_ci_type_id IN NUMBER
272 ) RETURN varchar2
273 IS
274 l_dummy VARCHAR2(1);
275
276 BEGIN
277
278
279 SELECT 'N'
280 INTO l_dummy
281 FROM dual
282 WHERE exists (Select pci.ci_id from
283 pa_control_items pci,
284 pa_ci_impacts pc
285 where pci.ci_type_id = p_ci_type_id
286 and pci.ci_id = pc.ci_id
287 and pc.impact_type_code = p_impact_type_code
288 );
289
290 RETURN l_dummy;
291 EXCEPTION
292
293
294 WHEN NO_DATA_FOUND THEN
295
296 RETURN 'Y';
297
298 END ;
299
300 END PA_CI_IMPACT_TYPE_USAGE_PUB;