1 PACKAGE BODY AHL_UMP_UNITMAINT_PUB AS
2 --/* $Header: AHLPUMXB.pls 115.5 2003/10/17 05:32:09 sracha noship $ */
3
4
5 G_PKG_NAME CONSTANT VARCHAR2(30) := 'AHL_UMP_UNITMAINT_PUB';
6
7 ------------------------------
8 -- Declare Local Procedures --
9 ------------------------------
10
11 ------------------------
12 -- Define Procedures --
13 ------------------------
14
15 -- Start of Comments --
16 -- Procedure name : Capture_MR_Updates
17 -- Type : Public
18 -- Function : For a given set of instances, will record their statuses with either
19 -- accomplishment date or deferred-next due date or termination date with
20 -- their corresponding counter and counter values.
21 -- Pre-reqs :
22 -- Parameters :
23 --
24 -- Standard IN Parameters :
25 -- p_api_version IN NUMBER Default 1.0
26 -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
27 -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
28 -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
29 -- Standard OUT Parameters :
30 -- x_return_status OUT VARCHAR2 Required
31 -- x_msg_count OUT NUMBER Required
32 -- x_msg_data OUT VARCHAR2 Required
33 --
34 -- p_module_type IN VARCHAR2 Required.
35 -- This parameter indicates the front-end form interface. The default value is 'JSP'. If the value
36 -- is JSP, then this API clears out all id columns and validations are done using the values based
37 -- on which the Id's are populated.
38 --
39 -- Capture MR Update Parameters:
40 -- p_unit_Effectivity_tbl IN Unit_Effectivity_tbl_type Required
41 -- List of all unit effectivities whose status, due or accomplished dates
42 -- and counter values need to be captured
43 -- p_x_Unit_Threshold_tbl IN OUT Unit_Threshold_tbl_type Required
44 -- List of all thresholds (counters and counter values) when a MR becomes due
45 -- p_x_Unit_Accomplish_tbl IN OUT Unit_Accomplish_tbl_type Required
46 -- List of all counters and corresponding counter values when the MR was last accomplished
47 --
48 -- Version :
49 -- Initial Version 1.0
50 --
51 -- End of Comments.
52
53 PROCEDURE Capture_MR_Updates (
54 p_api_version IN NUMBER := 1.0,
55 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
56 p_commit IN VARCHAR2 := FND_API.G_FALSE,
57 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
58 p_unit_Effectivity_tbl IN AHL_UMP_UNITMAINT_PVT.Unit_Effectivity_tbl_type,
59 p_x_unit_threshold_tbl IN OUT NOCOPY AHL_UMP_UNITMAINT_PVT.Unit_Threshold_tbl_type,
60 p_x_unit_accomplish_tbl IN OUT NOCOPY AHL_UMP_UNITMAINT_PVT.Unit_Accomplish_tbl_type,
61 x_return_status OUT NOCOPY VARCHAR2,
62 x_msg_count OUT NOCOPY NUMBER,
63 x_msg_data OUT NOCOPY VARCHAR2) IS
64
65
66 l_api_name CONSTANT VARCHAR2(30) := 'Capture_MR_Updates';
67 l_api_version CONSTANT NUMBER := 1.0;
68
69 BEGIN
70
71 -- Standard start of API savepoint
72 SAVEPOINT Capture_MR_Updates_Pub;
73
74 -- Standard call to check for call compatibility
75 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
76 G_PKG_NAME) THEN
77 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
78 END IF;
79
80 -- Initialize message list if p_init_msg_list is set to TRUE
81 IF FND_API.To_Boolean(p_init_msg_list) THEN
82 FND_MSG_PUB.Initialize;
83 END IF;
84
85 -- Initialize API return status to success
86 x_return_status := FND_API.G_RET_STS_SUCCESS;
87
88 -- Call Private API.
89 AHL_UMP_UNITMAINT_PVT.Capture_MR_Updates(
90 p_api_version => 1.0,
91 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
92 p_unit_Effectivity_tbl => p_unit_Effectivity_tbl,
93 p_x_unit_threshold_tbl => p_x_unit_threshold_tbl,
94 p_x_unit_accomplish_tbl => p_x_unit_accomplish_tbl,
95 x_return_status => x_return_status,
96 x_msg_count => x_msg_count,
97 x_msg_data => x_msg_data );
98
99
100
101 IF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
102 RAISE FND_API.G_EXC_ERROR;
103 ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
104 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
105 END IF;
106
107 -- Standard check of p_commit
108 IF FND_API.To_Boolean(p_commit) THEN
109 COMMIT WORK;
110 END IF;
111
112 -- Standard call to get message count and if count is 1, get message
113 FND_MSG_PUB.Count_And_Get
114 ( p_count => x_msg_count,
115 p_data => x_msg_data,
116 p_encoded => fnd_api.g_false);
117
118 --
119 EXCEPTION
120 WHEN FND_API.G_EXC_ERROR THEN
121 x_return_status := FND_API.G_RET_STS_ERROR;
122 Rollback to Capture_MR_Updates_Pub;
123 FND_MSG_PUB.count_and_get( p_count => x_msg_count,
124 p_data => x_msg_data,
125 p_encoded => fnd_api.g_false);
126 --AHL_UTIL_PKG.Err_Mesg_To_Table(x_err_mesg_tbl);
127
128
129 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
130 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
131 Rollback to Capture_MR_Updates_Pub;
132 FND_MSG_PUB.count_and_get( p_count => x_msg_count,
133 p_data => x_msg_data,
134 p_encoded => fnd_api.g_false);
135 --AHL_UTIL_PKG.Err_Mesg_To_Table(x_err_mesg_tbl);
136
137 WHEN OTHERS THEN
138 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
139 Rollback to Capture_MR_Updates_Pub;
140 --IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
141 fnd_msg_pub.add_exc_msg(p_pkg_name => G_PKG_NAME,
142 p_procedure_name => 'Process_Master_Config',
143 p_error_text => SQLERRM);
144 --END IF;
145 FND_MSG_PUB.count_and_get( p_count => x_msg_count,
146 p_data => x_msg_data,
147 p_encoded => fnd_api.g_false);
148 --AHL_UTIL_PKG.Err_Mesg_To_Table(x_err_mesg_tbl);
149
150
151 END Capture_MR_Updates;
152
153
154
155
156
157 ------------------------
158 -- Define Procedures Terminate_MR_Instances --
159 ------------------------
160
161 -- Start of Comments --
162 -- Procedure name : Terminate_MR_Instances
163 -- Type : Public
164 -- Function :
165 -- Pre-reqs :
166 -- Parameters :
167 --
168 -- Standard IN Parameters :
169 -- p_api_version IN NUMBER Required
170 -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
171 -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
172 -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
173 -- Standard OUT Parameters :
174 -- x_return_status OUT VARCHAR2 Required
175 -- x_msg_count OUT NUMBER Required
176 -- x_msg_data OUT VARCHAR2 Required
177 --
178 -- p_module_type IN VARCHAR2 Required.
179 -- This parameter indicates the front-end form interface. The default value is null. If the value
180 -- is JSP, then this API clears out all id columns and validations are done using the values;based
181 -- on which the Id's are populated.
182 --
183 --
184 -- Terminate_MR_Instances Parameters :
185 -- p_old_mr_header_id IN NUMBER,
186 -- p_old_mr_title IN VARCHAR2,
187 -- p_old_version_number IN NUMBER,
188 -- p_new_mr_header_id IN NUMBER,
189 -- p_new_mr_title IN VARCHAR2,
190 -- p_new_version_number IN NUMBER,
191 --
192 -- Version :
193 -- Initial Version 1.0
194 --
195 -- End of Comments.
196
197 PROCEDURE Terminate_MR_Instances (
198 p_api_version IN NUMBER := 1.0,
199 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
200 p_commit IN VARCHAR2 := FND_API.G_FALSE,
201 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
202 p_default IN VARCHAR2 := FND_API.G_TRUE,
203 p_module_type IN VARCHAR2 := NULL,
204 p_old_mr_header_id IN NUMBER,
205 p_old_mr_title IN VARCHAR2,
206 p_old_version_number IN NUMBER,
207 p_new_mr_header_id IN NUMBER := NULL,
208 p_new_mr_title IN VARCHAR2 := NULL,
209 p_new_version_number IN NUMBER := NULL,
210 x_return_status OUT NOCOPY VARCHAR2,
211 x_msg_count OUT NOCOPY NUMBER,
212 x_msg_data OUT NOCOPY VARCHAR2 ) IS
213
214
215 l_api_name CONSTANT VARCHAR2(30) := 'Terminate_MR_Instances';
216 l_api_version CONSTANT NUMBER := 1.0;
217
218 BEGIN
219
220 -- Standard start of API savepoint
221 SAVEPOINT Terminate_MR_Instances_Pub;
222
223 -- Standard call to check for call compatibility
224 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
225 G_PKG_NAME) THEN
226 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
227 END IF;
228
229 -- Initialize message list if p_init_msg_list is set to TRUE
230 IF FND_API.To_Boolean(p_init_msg_list) THEN
231 FND_MSG_PUB.Initialize;
232 END IF;
233
234 -- Initialize API return status to success
235 x_return_status := FND_API.G_RET_STS_SUCCESS;
236
237 -- Call Private API.
238 AHL_UMP_UNITMAINT_PVT.Terminate_MR_Instances (
239 p_api_version => 1.0,
240 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
241 p_old_mr_header_id => p_old_mr_header_id,
242 p_old_mr_title => p_old_mr_title,
243 p_old_version_number => p_old_version_number,
244 p_new_mr_header_id => p_new_mr_header_id,
245 p_new_mr_title => p_new_mr_title,
246 p_new_version_number => p_new_version_number,
247 x_return_status => x_return_status,
248 x_msg_count => x_msg_count,
249 x_msg_data => x_msg_data );
250
251
252
253 IF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
254 RAISE FND_API.G_EXC_ERROR;
255 ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
256 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
257 END IF;
258
259 -- Standard check of p_commit
260 IF FND_API.To_Boolean(p_commit) THEN
261 COMMIT WORK;
262 END IF;
263
264 -- Standard call to get message count and if count is 1, get message
265 FND_MSG_PUB.Count_And_Get
266 ( p_count => x_msg_count,
267 p_data => x_msg_data,
268 p_encoded => fnd_api.g_false);
269
270 --
271 EXCEPTION
272 WHEN FND_API.G_EXC_ERROR THEN
273 x_return_status := FND_API.G_RET_STS_ERROR;
274 Rollback to Terminate_MR_Instances_Pub;
275 FND_MSG_PUB.count_and_get( p_count => x_msg_count,
276 p_data => x_msg_data,
277 p_encoded => fnd_api.g_false);
278 --AHL_UTIL_PKG.Err_Mesg_To_Table(x_err_mesg_tbl);
279
280
281 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
282 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
283 Rollback to Terminate_MR_Instances_Pub;
284 FND_MSG_PUB.count_and_get( p_count => x_msg_count,
285 p_data => x_msg_data,
286 p_encoded => fnd_api.g_false);
287 --AHL_UTIL_PKG.Err_Mesg_To_Table(x_err_mesg_tbl);
288
289 WHEN OTHERS THEN
290 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
291 Rollback to Terminate_MR_Instances_Pub;
292 --IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
293 fnd_msg_pub.add_exc_msg(p_pkg_name => G_PKG_NAME,
294 p_procedure_name => 'Terminate_MR_Instances',
295 p_error_text => SQLERRM);
296 --END IF;
297 FND_MSG_PUB.count_and_get( p_count => x_msg_count,
298 p_data => x_msg_data,
299 p_encoded => fnd_api.g_false);
300 --AHL_UTIL_PKG.Err_Mesg_To_Table(x_err_mesg_tbl);
301
302
303 END Terminate_MR_Instances;
304
305 -- Start of Comments --
306 -- Procedure name : Process_UnitEffectivity
307 -- Type : Private
308 -- Function : Manages Create/Modify/Delete operations of applicable maintenance
309 -- requirements on a unit.
310 -- Pre-reqs :
311 -- Parameters :
312 --
313 -- Standard IN Parameters :
314 -- p_api_version IN NUMBER Required
315 -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
316 -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
317 -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL _FULL
318 -- p_default IN VARCHAR2 Default FND_API.G_TRUE
319 -- Based on this flag, the API will set the default attributes.
320 -- p_module_type In VARCHAR2 Default NULL
321 -- This will be null.
322 -- Standard OUT Parameters :
323 -- x_return_status OUT VARCHAR2 Required
327
324 -- x_msg_count OUT NUMBER Required
325 -- x_msg_data OUT VARCHAR2 Required
326 --
328 --
329 -- Process_UnitEffectivity Parameters :
330 -- If no input parameters are passed, then effectivity will be built for all units.
331 -- If either p_mr_header_id OR p_mr_title and p_mr_version_number are passed, then effectivity
332 -- will be built for all units having this maintenance requirement; p_mr_header_id being the unique
333 -- identifier of a maintenance requirement.
334 -- If either p_csi_item_instance_id OR p_csi_instance_number are passed, then effectivity
335 -- will be built for the unit this item instance belongs to.
336 -- If either p_unit_name OR p_unit_config_header_id are passed, then effectivity will be
337 -- built for the unit configuration.
338 --
339
340 PROCEDURE Process_UnitEffectivity (
341 p_api_version IN NUMBER,
342 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
343 p_commit IN VARCHAR2 := FND_API.G_FALSE,
344 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
345 p_default IN VARCHAR2 := FND_API.G_TRUE,
346 p_module_type IN VARCHAR2 := NULL,
347 x_return_status OUT NOCOPY VARCHAR2,
348 x_msg_count OUT NOCOPY NUMBER,
349 x_msg_data OUT NOCOPY VARCHAR2,
350 p_mr_header_id IN NUMBER := NULL,
351 p_mr_title IN VARCHAR2 := NULL,
352 p_mr_version_number IN NUMBER := NULL,
353 p_unit_config_header_id IN NUMBER := NULL,
354 p_unit_name IN VARCHAR2 := NULL,
355 p_csi_item_instance_id IN NUMBER := NULL,
356 p_csi_instance_number IN VARCHAR2 := NULL)
357
358 IS
359
360 l_api_name CONSTANT VARCHAR2(30) := 'Process_UnitEffectivity';
361 l_api_version CONSTANT NUMBER := 1.0;
362
363 BEGIN
364
365 -- Standard start of API savepoint
366 SAVEPOINT Process_UnitEffectivity_PUB;
367
368 -- Standard call to check for call compatibility
369 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
370 G_PKG_NAME) THEN
371 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
372 END IF;
373
374 -- Initialize message list if p_init_msg_list is set to TRUE
375 IF FND_API.To_Boolean(p_init_msg_list) THEN
376 FND_MSG_PUB.Initialize;
377 END IF;
378
379 -- Initialize API return status to success
380 x_return_status := FND_API.G_RET_STS_SUCCESS;
381
382 -- Call Private API.
383 AHL_UMP_UNITMAINT_PVT.Process_UnitEffectivity(
384 p_api_version => 1.0,
385 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
386 x_return_status => x_return_status,
387 x_msg_count => x_msg_count,
388 x_msg_data => x_msg_data,
389 p_mr_header_id => p_mr_header_id,
390 p_mr_title => p_mr_title,
391 p_mr_version_number => p_mr_version_number,
392 p_unit_config_header_id => p_unit_config_header_id,
393 p_unit_name => p_unit_name,
394 p_csi_item_instance_id => p_csi_item_instance_id,
395 p_csi_instance_number => p_csi_instance_number);
396
397 IF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
398 RAISE FND_API.G_EXC_ERROR;
399 ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
400 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
401 END IF;
402
403 -- Standard check of p_commit
404 IF FND_API.To_Boolean(p_commit) THEN
405 COMMIT WORK;
406 END IF;
407
408 -- Standard call to get message count and if count is 1, get message
409 FND_MSG_PUB.Count_And_Get
410 ( p_count => x_msg_count,
411 p_data => x_msg_data,
412 p_encoded => fnd_api.g_false);
413
414 --
415 EXCEPTION
416 WHEN FND_API.G_EXC_ERROR THEN
417 x_return_status := FND_API.G_RET_STS_ERROR;
418 Rollback to Process_UnitEffectivity_PUB;
419 FND_MSG_PUB.count_and_get( p_count => x_msg_count,
420 p_data => x_msg_data,
421 p_encoded => fnd_api.g_false);
422
423
424 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
425 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
426 Rollback to Process_UnitEffectivity_PUB;
427 FND_MSG_PUB.count_and_get( p_count => x_msg_count,
428 p_data => x_msg_data,
429 p_encoded => fnd_api.g_false);
430
431 WHEN OTHERS THEN
432 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
433 Rollback to Process_UnitEffectivity_PUB;
434 --IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
435 fnd_msg_pub.add_exc_msg(p_pkg_name => G_PKG_NAME,
436 p_procedure_name => 'Process_UnitEffectivity',
437 p_error_text => SQLERRM);
438 --END IF;
442
439 FND_MSG_PUB.count_and_get( p_count => x_msg_count,
440 p_data => x_msg_data,
441 p_encoded => fnd_api.g_false);
443
444 END Process_UnitEffectivity;
445
446 End AHL_UMP_UNITMAINT_PUB;