[Home] [Help]
PACKAGE BODY: APPS.CSC_PLAN_LINES_PUB
Source
1 PACKAGE BODY CSC_PLAN_LINES_PUB as
2 /* $Header: cscpplnb.pls 115.12 2002/11/25 12:34:05 bhroy ship $ */
3 -- Start of Comments
4 -- Package name : CSC_PLAN_LINES_PUB
5 -- Purpose : Public package to insert, update and delete records from
6 -- CSC_PLAN_LINES table.
7 -- History :
8 -- MM-DD-YYYY NAME MODIFICATIONS
9 -- 10-21-1999 dejoseph Created.
10 -- 12-08-1999 dejoseph 'Arcs'ed in for first code freeze.
11 -- 12-21-1999 dejoseph 'Arcs'ed in for second code freeze.
12 -- 01-03-2000 dejoseph 'Arcs'ed in for third code freeze. (10-JAN-2000)
13 -- 01-31-2000 dejoseph 'Arcs'ed in for fourth code freeze. (07-FEB-2000)
14 -- 02-13-2000 dejoseph 'Arcs'ed on for fifth code freeze. (21-FEB-2000)
15 -- 02-28-2000 dejoseph 'Arcs'ed on for sixth code freeze. (06-MAR-2000)
16 -- 11-25-2002 bhroy FND_API defaults removed, added WHENEVER OSERROR EXIT FAILURE ROLLBACK
17
18 -- NOTE :
19 -- End of Comments
20
21
22 G_PKG_NAME CONSTANT VARCHAR2(30) := 'CSC_PLAN_LINES_PUB';
23 G_FILE_NAME CONSTANT VARCHAR2(12) := 'cscpplnb.pls';
24
25 -- Start of Comments
26 -- ***************** Private Conversion Routines Values -> Ids **************
27 -- Purpose
28 --
29 -- This procedure takes a public PLAN_LINES record as input. It may contain
30 -- values or ids. All values are then converted into ids and a
31 -- private PLAN_LINESrecord is returned for the private
32 -- API call.
33 --
34 -- Conversions:
35 --
36 -- Notes
37 --
38 -- 1. IDs take precedence over values. If both are present for a field, ID is used,
39 -- the value based parameter is ignored and a warning message is created.
40 -- 2. This is automatically generated procedure, it converts public record type to
41 -- private record type for all attributes.
42 --
43 -- End of Comments
44 PROCEDURE CONVERT_CSC_PLAN_LINES(
45 P_CSC_PLAN_LINES_Rec IN CSC_plan_lines_PUB.CSC_PLAN_LINES_Rec_Type,
46 x_pvt_CSC_PLAN_LINES_rec OUT NOCOPY CSC_plan_lines_PVT.CSC_PLAN_LINES_Rec_Type
47 )
48 IS
49 -- Hint: Declare cursor and local variables
50 -- Example: CURSOR C_Get_Lookup_Code(X_Lookup_Type VARCHAR2, X_Meaning VARCHAR2) IS
51 -- SELECT lookup_code
52 -- FROM as_lookups
53 -- WHERE lookup_type = X_Lookup_Type
54 -- AND nls_upper(meaning) = nls_upper(X_Meaning);
55
56 l_any_errors BOOLEAN := FALSE;
57
58 BEGIN
59 -- As of now there are no values to be converted into Ids. So just converts a
60 -- public record type into a private record type.
61
62 x_pvt_CSC_PLAN_LINES_rec.LINE_ID := P_CSC_PLAN_LINES_Rec.LINE_ID;
63 x_pvt_CSC_PLAN_LINES_rec.PLAN_ID := P_CSC_PLAN_LINES_Rec.PLAN_ID;
64 x_pvt_CSC_PLAN_LINES_rec.CONDITION_ID := P_CSC_PLAN_LINES_Rec.CONDITION_ID;
65 x_pvt_CSC_PLAN_LINES_rec.CREATION_DATE := P_CSC_PLAN_LINES_Rec.CREATION_DATE;
66 x_pvt_CSC_PLAN_LINES_rec.LAST_UPDATE_DATE := P_CSC_PLAN_LINES_Rec.LAST_UPDATE_DATE;
67 x_pvt_CSC_PLAN_LINES_rec.CREATED_BY := P_CSC_PLAN_LINES_Rec.CREATED_BY;
68 x_pvt_CSC_PLAN_LINES_rec.LAST_UPDATED_BY := P_CSC_PLAN_LINES_Rec.LAST_UPDATED_BY;
69 x_pvt_CSC_PLAN_LINES_rec.LAST_UPDATE_LOGIN := P_CSC_PLAN_LINES_Rec.LAST_UPDATE_LOGIN;
70 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE1 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE1;
71 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE2 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE2;
72 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE3 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE3;
73 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE4 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE4;
74 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE5 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE5;
75 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE6 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE6;
76 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE7 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE7;
77 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE8 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE8;
78 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE9 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE9;
79 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE10 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE10;
80 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE11 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE11;
81 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE12 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE12;
82 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE13 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE13;
83 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE14 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE14;
84 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE15 := P_CSC_PLAN_LINES_Rec.ATTRIBUTE15;
85 x_pvt_CSC_PLAN_LINES_rec.ATTRIBUTE_CATEGORY := P_CSC_PLAN_LINES_Rec.ATTRIBUTE_CATEGORY;
86 x_pvt_CSC_PLAN_LINES_rec.OBJECT_VERSION_NUMBER := P_CSC_PLAN_LINES_Rec.OBJECT_VERSION_NUMBER;
87
88 -- If there is an error in conversion precessing, raise an error.
89 IF l_any_errors
90 THEN
91 raise FND_API.G_EXC_ERROR;
92 END IF;
93
94 END CONVERT_CSC_PLAN_LINES;
95
96
97 PROCEDURE convert_columns_to_rec_type(
98 P_ROW_ID IN ROWID ,
99 P_LINE_ID IN NUMBER,
100 P_PLAN_ID IN NUMBER,
101 P_CONDITION_ID IN NUMBER,
102 P_CREATION_DATE IN DATE ,
103 P_LAST_UPDATE_DATE IN DATE,
104 P_CREATED_BY IN NUMBER ,
105 P_LAST_UPDATED_BY IN NUMBER,
106 P_LAST_UPDATE_LOGIN IN NUMBER ,
107 P_ATTRIBUTE1 IN VARCHAR2 ,
108 P_ATTRIBUTE2 IN VARCHAR2,
109 P_ATTRIBUTE3 IN VARCHAR2,
110 P_ATTRIBUTE4 IN VARCHAR2,
111 P_ATTRIBUTE5 IN VARCHAR2,
112 P_ATTRIBUTE6 IN VARCHAR2,
113 P_ATTRIBUTE7 IN VARCHAR2,
114 P_ATTRIBUTE8 IN VARCHAR2,
115 P_ATTRIBUTE9 IN VARCHAR2,
116 P_ATTRIBUTE10 IN VARCHAR2,
117 P_ATTRIBUTE11 IN VARCHAR2,
118 P_ATTRIBUTE12 IN VARCHAR2,
119 P_ATTRIBUTE13 IN VARCHAR2,
120 P_ATTRIBUTE14 IN VARCHAR2,
121 P_ATTRIBUTE15 IN VARCHAR2,
122 P_ATTRIBUTE_CATEGORY IN VARCHAR2,
123 P_OBJECT_VERSION_NUMBER IN NUMBER ,
124 x_csc_plan_lines_rec OUT NOCOPY CSC_PLAN_LINES_REC_TYPE)
125 IS
126 BEGIN
127 x_csc_plan_lines_rec.ROW_ID := P_ROW_ID;
128 x_csc_plan_lines_rec.LINE_ID := P_LINE_ID;
129 x_csc_plan_lines_rec.PLAN_ID := P_PLAN_ID ;
130 x_csc_plan_lines_rec.CONDITION_ID := P_CONDITION_ID ;
131 x_csc_plan_lines_rec.CREATION_DATE := P_CREATION_DATE ;
132 x_csc_plan_lines_rec.LAST_UPDATE_DATE := P_LAST_UPDATE_DATE ;
133 x_csc_plan_lines_rec.CREATED_BY := P_CREATED_BY ;
134 x_csc_plan_lines_rec.LAST_UPDATED_BY := P_LAST_UPDATED_BY ;
135 x_csc_plan_lines_rec.LAST_UPDATE_LOGIN := P_LAST_UPDATE_LOGIN ;
136 x_csc_plan_lines_rec.ATTRIBUTE1 := P_ATTRIBUTE1 ;
137 x_csc_plan_lines_rec.ATTRIBUTE2 := P_ATTRIBUTE2 ;
138 x_csc_plan_lines_rec.ATTRIBUTE3 := P_ATTRIBUTE3 ;
139 x_csc_plan_lines_rec.ATTRIBUTE4 := P_ATTRIBUTE4 ;
140 x_csc_plan_lines_rec.ATTRIBUTE5 := P_ATTRIBUTE5 ;
141 x_csc_plan_lines_rec.ATTRIBUTE6 := P_ATTRIBUTE6 ;
142 x_csc_plan_lines_rec.ATTRIBUTE7 := P_ATTRIBUTE7 ;
143 x_csc_plan_lines_rec.ATTRIBUTE8 := P_ATTRIBUTE8 ;
144 x_csc_plan_lines_rec.ATTRIBUTE9 := P_ATTRIBUTE9 ;
145 x_csc_plan_lines_rec.ATTRIBUTE10 := P_ATTRIBUTE10 ;
146 x_csc_plan_lines_rec.ATTRIBUTE11 := P_ATTRIBUTE11 ;
147 x_csc_plan_lines_rec.ATTRIBUTE12 := P_ATTRIBUTE12 ;
148 x_csc_plan_lines_rec.ATTRIBUTE13 := P_ATTRIBUTE13 ;
149 x_csc_plan_lines_rec.ATTRIBUTE14 := P_ATTRIBUTE14 ;
150 x_csc_plan_lines_rec.ATTRIBUTE15 := P_ATTRIBUTE15 ;
151 x_csc_plan_lines_rec.ATTRIBUTE_CATEGORY := P_ATTRIBUTE_CATEGORY ;
152 x_csc_plan_lines_rec.OBJECT_VERSION_NUMBER := P_OBJECT_VERSION_NUMBER ;
153
154 END convert_columns_to_rec_type;
155
156
157 /* Overloaded procedure to take a detailed parameter list instead of a
158 record type parameter */
159
160 PROCEDURE Create_plan_lines(
161 P_Api_Version_Number IN NUMBER,
162 P_Init_Msg_List IN VARCHAR2,
163 P_Commit IN VARCHAR2,
164 P_ROW_ID IN ROWID ,
165 P_LINE_ID IN NUMBER,
166 P_PLAN_ID IN NUMBER,
167 P_CONDITION_ID IN NUMBER,
168 P_CREATION_DATE IN DATE ,
169 P_LAST_UPDATE_DATE IN DATE,
170 P_CREATED_BY IN NUMBER ,
171 P_LAST_UPDATED_BY IN NUMBER,
172 P_LAST_UPDATE_LOGIN IN NUMBER,
173 P_ATTRIBUTE1 IN VARCHAR2 ,
174 P_ATTRIBUTE2 IN VARCHAR2,
175 P_ATTRIBUTE3 IN VARCHAR2,
176 P_ATTRIBUTE4 IN VARCHAR2,
177 P_ATTRIBUTE5 IN VARCHAR2,
178 P_ATTRIBUTE6 IN VARCHAR2,
179 P_ATTRIBUTE7 IN VARCHAR2,
180 P_ATTRIBUTE8 IN VARCHAR2,
181 P_ATTRIBUTE9 IN VARCHAR2,
182 P_ATTRIBUTE10 IN VARCHAR2,
183 P_ATTRIBUTE11 IN VARCHAR2,
184 P_ATTRIBUTE12 IN VARCHAR2,
185 P_ATTRIBUTE13 IN VARCHAR2,
186 P_ATTRIBUTE14 IN VARCHAR2,
187 P_ATTRIBUTE15 IN VARCHAR2,
188 P_ATTRIBUTE_CATEGORY IN VARCHAR2,
189 P_OBJECT_VERSION_NUMBER IN NUMBER ,
190 X_LINE_ID OUT NOCOPY NUMBER,
191 X_OBJECT_VERSION_NUMBER OUT NOCOPY NUMBER,
192 X_Return_Status OUT NOCOPY VARCHAR2,
193 X_Msg_Count OUT NOCOPY NUMBER,
194 X_Msg_Data OUT NOCOPY VARCHAR2
195 )
196 IS
197 l_csc_plan_lines_rec CSC_PLAN_LINES_PUB.CSC_PLAN_LINES_REC_TYPE;
198
199 BEGIN
200 CONVERT_COLUMNS_TO_REC_TYPE(
201 P_ROW_ID => p_row_id,
202 P_LINE_ID => p_line_id,
203 P_PLAN_ID => p_plan_id,
204 P_CONDITION_ID => p_condition_id,
205 P_CREATION_DATE => p_creation_date,
206 P_LAST_UPDATE_DATE => p_last_update_date,
207 P_CREATED_BY => p_created_by,
208 P_LAST_UPDATED_BY => p_last_updated_by,
209 P_LAST_UPDATE_LOGIN => p_last_update_login,
210 P_ATTRIBUTE1 => p_attribute1,
211 P_ATTRIBUTE2 => p_attribute2,
212 P_ATTRIBUTE3 => p_attribute3,
213 P_ATTRIBUTE4 => p_attribute4,
214 P_ATTRIBUTE5 => p_attribute5,
215 P_ATTRIBUTE6 => p_attribute6,
216 P_ATTRIBUTE7 => p_attribute7,
217 P_ATTRIBUTE8 => p_attribute8,
218 P_ATTRIBUTE9 => p_attribute8,
219 P_ATTRIBUTE10 => p_attribute9,
220 P_ATTRIBUTE11 => p_attribute10,
221 P_ATTRIBUTE12 => p_attribute11,
222 P_ATTRIBUTE13 => p_attribute12,
223 P_ATTRIBUTE14 => p_attribute13,
224 P_ATTRIBUTE15 => p_attribute14,
225 P_ATTRIBUTE_CATEGORY => p_attribute15,
226 P_OBJECT_VERSION_NUMBER => p_object_version_number,
227 x_csc_plan_lines_rec => l_csc_plan_lines_rec);
228
229 -- issue a call to the create_plan_lines proc. that accepts record_type parameters.
230
231 Create_plan_lines(
232 P_Api_Version_Number => p_api_version_number,
233 P_Init_Msg_List => p_init_msg_list,
234 P_Commit => p_commit,
235 P_CSC_PLAN_LINES_Rec => l_csc_plan_lines_rec,
236 X_LINE_ID => x_line_id,
237 X_OBJECT_VERSION_NUMBER => x_object_version_number,
238 X_Return_Status => x_return_status,
239 X_Msg_Count => x_msg_count,
240 X_Msg_Data => x_msg_data );
241
242 END Create_plan_lines; /* overloaded procedure */
243
244
245 PROCEDURE Create_plan_lines(
246 P_Api_Version_Number IN NUMBER,
247 P_Init_Msg_List IN VARCHAR2,
248 P_Commit IN VARCHAR2,
249 P_CSC_PLAN_LINES_Rec IN CSC_PLAN_LINES_Rec_Type,
250 X_LINE_ID OUT NOCOPY NUMBER,
251 X_OBJECT_VERSION_NUMBER OUT NOCOPY NUMBER,
252 X_Return_Status OUT NOCOPY VARCHAR2,
253 X_Msg_Count OUT NOCOPY NUMBER,
254 X_Msg_Data OUT NOCOPY VARCHAR2
255 )
256 IS
257 l_api_name CONSTANT VARCHAR2(30) := 'Create_plan_lines';
258 l_api_version_number CONSTANT NUMBER := 1.0;
259 l_pvt_CSC_PLAN_LINES_rec CSC_PLAN_LINES_PVT.CSC_PLAN_LINES_Rec_Type;
260 BEGIN
261 -- Standard Start of API savepoint
262 SAVEPOINT CREATE_PLAN_LINES_PUB;
263
264 -- Standard call to check for call compatibility.
265 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
266 p_api_version_number,
267 l_api_name,
268 G_PKG_NAME)
269 THEN
270 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
271 END IF;
272
273 -- Initialize message list if p_init_msg_list is set to TRUE.
274 IF FND_API.to_Boolean( p_init_msg_list )
275 THEN
276 FND_MSG_PUB.initialize;
277 END IF;
278
279 -- Initialize API return status to SUCCESS
280 x_return_status := FND_API.G_RET_STS_SUCCESS;
281
282 -- Convert the values to ids
283 CONVERT_CSC_PLAN_LINES (
284 p_CSC_PLAN_LINES_rec => p_CSC_PLAN_LINES_rec,
285 x_pvt_CSC_PLAN_LINES_rec => l_pvt_CSC_PLAN_LINES_rec);
286
287 -- Calling Private package: Create_PLAN_LINES
288 -- Hint: Primary key needs to be returned
289
290 CSC_PLAN_LINES_PVT.Create_plan_lines(
291 P_Api_Version_Number => 1,
292 P_Init_Msg_List => FND_API.G_FALSE,
293 P_Commit => FND_API.G_FALSE,
294 P_Validation_Level => FND_API.G_VALID_LEVEL_FULL,
295 P_CSC_PLAN_LINES_Rec => l_pvt_CSC_PLAN_LINES_Rec ,
296 X_LINE_ID => x_LINE_ID,
297 X_OBJECT_VERSION_NUMBER => x_OBJECT_VERSION_NUMBER,
298 X_Return_Status => x_return_status,
299 X_Msg_Count => x_msg_count,
300 X_Msg_Data => x_msg_data);
301
302 -- Check return status from the above procedure call
303 IF x_return_status = FND_API.G_RET_STS_ERROR then
304 raise FND_API.G_EXC_ERROR;
305 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
306 raise FND_API.G_EXC_UNEXPECTED_ERROR;
307 END IF;
308
309 -- Standard check for p_commit
310 IF FND_API.to_Boolean( p_commit )
311 THEN
312 COMMIT WORK;
313 END IF;
314
315 -- Standard call to get message count and if count is 1, get message info.
316 FND_MSG_PUB.Count_And_Get
317 ( p_count => x_msg_count,
318 p_data => x_msg_data );
319
320 EXCEPTION
321 WHEN FND_API.G_EXC_ERROR THEN
322 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
323 P_API_NAME => L_API_NAME,
324 P_PKG_NAME => G_PKG_NAME,
325 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
326 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PUB,
327 X_MSG_COUNT => X_MSG_COUNT,
328 X_MSG_DATA => X_MSG_DATA,
329 X_RETURN_STATUS => X_RETURN_STATUS);
330 APP_EXCEPTION.RAISE_EXCEPTION;
331
332 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
333 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
334 P_API_NAME => L_API_NAME,
335 P_PKG_NAME => G_PKG_NAME,
336 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
337 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PUB,
338 X_MSG_COUNT => X_MSG_COUNT,
339 X_MSG_DATA => X_MSG_DATA,
340 X_RETURN_STATUS => X_RETURN_STATUS);
341 APP_EXCEPTION.RAISE_EXCEPTION;
342
343 WHEN OTHERS THEN
344 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
345 P_API_NAME => L_API_NAME,
346 P_PKG_NAME => G_PKG_NAME,
347 P_EXCEPTION_LEVEL => CSC_CORE_UTILS_PVT.G_MSG_LVL_OTHERS,
348 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PUB,
349 X_MSG_COUNT => X_MSG_COUNT,
350 X_MSG_DATA => X_MSG_DATA,
351 X_RETURN_STATUS => X_RETURN_STATUS);
352 APP_EXCEPTION.RAISE_EXCEPTION;
353
354 End Create_plan_lines;
355
356
357 /* Overloaded procedure to take a detailed parameter list instead of a
358 record type parameter */
359
360 PROCEDURE Update_plan_lines(
361 P_Api_Version_Number IN NUMBER,
362 P_Init_Msg_List IN VARCHAR2,
363 P_Commit IN VARCHAR2,
364 P_ROW_ID IN ROWID,
365 P_LINE_ID IN NUMBER,
366 P_PLAN_ID IN NUMBER,
367 P_CONDITION_ID IN NUMBER,
368 P_CREATION_DATE IN DATE,
369 P_LAST_UPDATE_DATE IN DATE,
370 P_CREATED_BY IN NUMBER,
371 P_LAST_UPDATED_BY IN NUMBER,
372 P_LAST_UPDATE_LOGIN IN NUMBER,
373 P_ATTRIBUTE1 IN VARCHAR2,
374 P_ATTRIBUTE2 IN VARCHAR2,
375 P_ATTRIBUTE3 IN VARCHAR2,
376 P_ATTRIBUTE4 IN VARCHAR2,
377 P_ATTRIBUTE5 IN VARCHAR2,
378 P_ATTRIBUTE6 IN VARCHAR2,
379 P_ATTRIBUTE7 IN VARCHAR2,
380 P_ATTRIBUTE8 IN VARCHAR2,
381 P_ATTRIBUTE9 IN VARCHAR2,
382 P_ATTRIBUTE10 IN VARCHAR2,
383 P_ATTRIBUTE11 IN VARCHAR2,
384 P_ATTRIBUTE12 IN VARCHAR2,
385 P_ATTRIBUTE13 IN VARCHAR2,
386 P_ATTRIBUTE14 IN VARCHAR2,
387 P_ATTRIBUTE15 IN VARCHAR2,
388 P_ATTRIBUTE_CATEGORY IN VARCHAR2,
389 P_OBJECT_VERSION_NUMBER IN NUMBER,
390 X_OBJECT_VERSION_NUMBER OUT NOCOPY NUMBER,
391 X_Return_Status OUT NOCOPY VARCHAR2,
392 X_Msg_Count OUT NOCOPY NUMBER,
393 X_Msg_Data OUT NOCOPY VARCHAR2)
394 IS
395
396 l_csc_plan_lines_rec CSC_PLAN_LINES_PUB.CSC_PLAN_LINES_REC_TYPE;
397
398 BEGIN
399 CONVERT_COLUMNS_TO_REC_TYPE(
400 P_ROW_ID => p_row_id,
401 P_LINE_ID => p_line_id,
402 P_PLAN_ID => p_plan_id,
403 P_CONDITION_ID => p_condition_id,
404 P_CREATION_DATE => p_creation_date,
405 P_LAST_UPDATE_DATE => p_last_update_date,
406 P_CREATED_BY => p_created_by,
407 P_LAST_UPDATED_BY => p_last_updated_by,
408 P_LAST_UPDATE_LOGIN => p_last_update_login,
409 P_ATTRIBUTE1 => p_attribute1,
410 P_ATTRIBUTE2 => p_attribute2,
411 P_ATTRIBUTE3 => p_attribute3,
412 P_ATTRIBUTE4 => p_attribute4,
413 P_ATTRIBUTE5 => p_attribute5,
414 P_ATTRIBUTE6 => p_attribute6,
415 P_ATTRIBUTE7 => p_attribute7,
416 P_ATTRIBUTE8 => p_attribute8,
417 P_ATTRIBUTE9 => p_attribute8,
418 P_ATTRIBUTE10 => p_attribute9,
419 P_ATTRIBUTE11 => p_attribute10,
420 P_ATTRIBUTE12 => p_attribute11,
421 P_ATTRIBUTE13 => p_attribute12,
422 P_ATTRIBUTE14 => p_attribute13,
423 P_ATTRIBUTE15 => p_attribute14,
424 P_ATTRIBUTE_CATEGORY => p_attribute15,
425 P_OBJECT_VERSION_NUMBER => p_object_version_number,
426 x_csc_plan_lines_rec => l_csc_plan_lines_rec);
427
428 -- issue a call to the create_plan_lines proc. that accepts record_type parameters.
429
430 Update_plan_lines(
431 P_Api_Version_Number => p_api_version_number,
432 P_Init_Msg_List => p_init_msg_list,
433 P_Commit => p_commit,
434 P_CSC_PLAN_LINES_Rec => l_csc_plan_lines_rec,
435 X_OBJECT_VERSION_NUMBER => x_object_version_number,
436 X_Return_Status => x_return_status,
437 X_Msg_Count => x_msg_count,
438 X_Msg_Data => x_msg_data );
439
440 END update_plan_lines; /* end of overloaded update */
441
442
443 PROCEDURE Update_plan_lines(
444 P_Api_Version_Number IN NUMBER,
445 P_Init_Msg_List IN VARCHAR2,
446 P_Commit IN VARCHAR2,
447 P_CSC_PLAN_LINES_Rec IN CSC_PLAN_LINES_Rec_Type,
448 X_OBJECT_VERSION_NUMBER OUT NOCOPY NUMBER,
449 X_Return_Status OUT NOCOPY VARCHAR2,
450 X_Msg_Count OUT NOCOPY NUMBER,
451 X_Msg_Data OUT NOCOPY VARCHAR2
452 )
453 IS
454 l_api_name CONSTANT VARCHAR2(30) := 'Update_plan_lines';
455 l_api_version_number CONSTANT NUMBER := 1.0;
456 l_pvt_CSC_PLAN_LINES_rec CSC_PLAN_LINES_PVT.CSC_PLAN_LINES_Rec_Type;
457 BEGIN
458 -- Standard Start of API savepoint
459 SAVEPOINT UPDATE_PLAN_LINES_PUB;
460
461 -- Standard call to check for call compatibility.
462 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
463 p_api_version_number,
464 l_api_name,
465 G_PKG_NAME)
466 THEN
467 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
468 END IF;
469
470 -- Initialize message list if p_init_msg_list is set to TRUE.
471 IF FND_API.to_Boolean( p_init_msg_list )
472 THEN
473 FND_MSG_PUB.initialize;
474 END IF;
475
476 -- Initialize API return status to SUCCESS
477 x_return_status := FND_API.G_RET_STS_SUCCESS;
478
479 -- Convert the values to ids
480 CONVERT_CSC_PLAN_LINES (
481 p_CSC_PLAN_LINES_rec => p_CSC_PLAN_LINES_rec,
482 x_pvt_CSC_PLAN_LINES_rec => l_pvt_CSC_PLAN_LINES_rec);
483
484 -- Call private API to perform validations and the update.
485 CSC_plan_lines_PVT.Update_plan_lines(
486 P_Api_Version_Number => 1.0,
487 P_Init_Msg_List => FND_API.G_FALSE,
488 P_Commit => p_commit,
489 P_Validation_Level => FND_API.G_VALID_LEVEL_FULL,
490 P_CSC_PLAN_LINES_Rec => l_pvt_CSC_PLAN_LINES_Rec ,
491 X_OBJECT_VERSION_NUMBER => x_object_version_number,
492 X_Return_Status => x_return_status,
493 X_Msg_Count => x_msg_count,
494 X_Msg_Data => x_msg_data);
495
496 -- Check return status from the above procedure call
497 IF x_return_status = FND_API.G_RET_STS_ERROR then
498 raise FND_API.G_EXC_ERROR;
499 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
500 raise FND_API.G_EXC_UNEXPECTED_ERROR;
501 END IF;
502
503 -- Standard check for p_commit
504 IF FND_API.to_Boolean( p_commit )
505 THEN
506 COMMIT WORK;
507 END IF;
508
509 -- Standard call to get message count and if count is 1, get message info.
510 FND_MSG_PUB.Count_And_Get
511 ( p_count => x_msg_count,
512 p_data => x_msg_data );
513
514 EXCEPTION
515 WHEN FND_API.G_EXC_ERROR THEN
516 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
517 P_API_NAME => L_API_NAME,
518 P_PKG_NAME => G_PKG_NAME,
519 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
520 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PUB,
521 X_MSG_COUNT => X_MSG_COUNT,
522 X_MSG_DATA => X_MSG_DATA,
523 X_RETURN_STATUS => X_RETURN_STATUS);
524 APP_EXCEPTION.RAISE_EXCEPTION;
525
526 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
527 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
528 P_API_NAME => L_API_NAME,
529 P_PKG_NAME => G_PKG_NAME,
530 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
531 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PUB,
532 X_MSG_COUNT => X_MSG_COUNT,
533 X_MSG_DATA => X_MSG_DATA,
534 X_RETURN_STATUS => X_RETURN_STATUS);
535 APP_EXCEPTION.RAISE_EXCEPTION;
536
537 WHEN OTHERS THEN
538 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
539 P_API_NAME => L_API_NAME,
540 P_PKG_NAME => G_PKG_NAME,
541 P_EXCEPTION_LEVEL => CSC_CORE_UTILS_PVT.G_MSG_LVL_OTHERS,
542 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PUB,
543 X_MSG_COUNT => X_MSG_COUNT,
544 X_MSG_DATA => X_MSG_DATA,
545 X_RETURN_STATUS => X_RETURN_STATUS);
546 APP_EXCEPTION.RAISE_EXCEPTION;
547
548 End Update_plan_lines;
549
550
551 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
552 -- The Master delete procedure may not be needed depends on different business requirements.
553 PROCEDURE Delete_plan_lines(
554 P_Api_Version_Number IN NUMBER,
555 P_Init_Msg_List IN VARCHAR2,
556 P_Commit IN VARCHAR2,
557 P_PLAN_ID IN NUMBER ,
558 P_LINE_ID IN NUMBER ,
559 X_Return_Status OUT NOCOPY VARCHAR2,
560 X_Msg_Count OUT NOCOPY NUMBER,
561 X_Msg_Data OUT NOCOPY VARCHAR2
562 )
563 IS
564 l_api_name CONSTANT VARCHAR2(30) := 'Delete_plan_lines';
565 l_api_version_number CONSTANT NUMBER := 1.0;
566 l_pvt_CSC_PLAN_LINES_rec CSC_PLAN_LINES_PVT.CSC_PLAN_LINES_Rec_Type;
567 BEGIN
568 -- Standard Start of API savepoint
569 SAVEPOINT DELETE_PLAN_LINES_PUB;
570
571 -- Standard call to check for call compatibility.
572 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
573 p_api_version_number,
574 l_api_name,
575 G_PKG_NAME)
576 THEN
577 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
578 END IF;
579
580 -- Initialize message list if p_init_msg_list is set to TRUE.
581 IF FND_API.to_Boolean( p_init_msg_list )
582 THEN
583 FND_MSG_PUB.initialize;
584 END IF;
585
586 -- Initialize API return status to SUCCESS
587 x_return_status := FND_API.G_RET_STS_SUCCESS;
588
589 CSC_plan_lines_PVT.Delete_plan_lines(
590 P_Api_Version_Number => 1.0,
591 P_Init_Msg_List => FND_API.G_FALSE,
592 P_Commit => p_commit,
593 P_PLAN_ID => p_plan_id,
594 P_LINE_ID => p_line_id,
595 X_Return_Status => x_return_status,
596 X_Msg_Count => x_msg_count,
597 X_Msg_Data => x_msg_data);
598
599 -- Check return status from the above procedure call
600 IF x_return_status = FND_API.G_RET_STS_ERROR then
601 raise FND_API.G_EXC_ERROR;
602 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
603 raise FND_API.G_EXC_UNEXPECTED_ERROR;
604 END IF;
605
606 -- Standard check for p_commit
607 IF FND_API.to_Boolean( p_commit )
608 THEN
609 COMMIT WORK;
610 END IF;
611
612 -- Standard call to get message count and if count is 1, get message info.
613 FND_MSG_PUB.Count_And_Get
614 ( p_count => x_msg_count,
615 p_data => x_msg_data );
616
617 EXCEPTION
618 WHEN FND_API.G_EXC_ERROR THEN
619 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
620 P_API_NAME => L_API_NAME,
621 P_PKG_NAME => G_PKG_NAME,
622 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
623 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PUB,
624 X_MSG_COUNT => X_MSG_COUNT,
625 X_MSG_DATA => X_MSG_DATA,
626 X_RETURN_STATUS => X_RETURN_STATUS);
627 APP_EXCEPTION.RAISE_EXCEPTION;
628
629 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
630 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
631 P_API_NAME => L_API_NAME,
632 P_PKG_NAME => G_PKG_NAME,
633 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
634 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PUB,
635 X_MSG_COUNT => X_MSG_COUNT,
636 X_MSG_DATA => X_MSG_DATA,
637 X_RETURN_STATUS => X_RETURN_STATUS);
638 APP_EXCEPTION.RAISE_EXCEPTION;
639
640 WHEN OTHERS THEN
641 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
642 P_API_NAME => L_API_NAME,
643 P_PKG_NAME => G_PKG_NAME,
644 P_EXCEPTION_LEVEL => CSC_CORE_UTILS_PVT.G_MSG_LVL_OTHERS,
645 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PUB,
646 X_MSG_COUNT => X_MSG_COUNT,
647 X_MSG_DATA => X_MSG_DATA,
648 X_RETURN_STATUS => X_RETURN_STATUS);
649 APP_EXCEPTION.RAISE_EXCEPTION;
650
651 End Delete_plan_lines;
652
653 End CSC_PLAN_LINES_PUB;