[Home] [Help]
PACKAGE BODY: APPS.CSC_PLAN_LINES_PVT
Source
1 PACKAGE BODY CSC_PLAN_LINES_PVT as
2 /* $Header: cscvplnb.pls 115.16 2002/11/25 12:35:17 bhroy ship $ */
3 -- Start of Comments
4 -- Package name : CSC_PLAN_LINES_PVT
5 -- Purpose : Private package to perform inserts, updates and delete operations
6 -- on CSC_PLAN_LINES table. It contains procedures to perform item
7 -- level validations if validation level is set to 100 (FULL).
8 -- History :
9 -- MM-DD-YYYY NAME MODIFICATIONS
10 -- 10-21-1999 dejoseph Created.
11 -- 12-08-1999 dejoseph 'Arcs'ed in for first code freeze.
12 -- 12-21-1999 dejoseph 'Arcs'ed in for second code freeze.
13 -- 01-03-2000 dejoseph 'Arcs'ed in for third code freeze. (10-JAN-2000)
14 -- 01-31-2000 dejoseph 'Arcs'ed in for fourth code freeze. (07-FEB-2000)
15 -- 02-13-2000 dejoseph 'Arcs'ed on for fifth code freeze. (21-FEB-2000)
16 -- 02-28-2000 dejoseph 'Arcs'ed on for sixth code freeze. (06-MAR-2000)
17 -- 11-11-2002 bhroy NOCOPY changes made
18 -- 11-25-2002 bhroy FND_API defaults removed, added WHENEVER OSERROR EXIT FAILURE ROLLBACK;
19
20 -- NOTE :
21 -- End of Comments
22
23 G_PKG_NAME CONSTANT VARCHAR2(30) := 'CSC_PLAN_LINES_PVT';
24 G_FILE_NAME CONSTANT VARCHAR2(12) := 'cscvplnb.pls';
25
26 PROCEDURE convert_columns_to_rec_type(
27 P_LINE_ID IN NUMBER,
28 P_PLAN_ID IN NUMBER,
29 P_CONDITION_ID IN NUMBER,
30 P_CREATION_DATE IN DATE,
31 P_LAST_UPDATE_DATE IN DATE,
32 P_CREATED_BY IN NUMBER,
33 P_LAST_UPDATED_BY IN NUMBER,
34 P_LAST_UPDATE_LOGIN IN NUMBER,
35 P_ATTRIBUTE1 IN VARCHAR2,
36 P_ATTRIBUTE2 IN VARCHAR2 ,
37 P_ATTRIBUTE3 IN VARCHAR2,
38 P_ATTRIBUTE4 IN VARCHAR2,
39 P_ATTRIBUTE5 IN VARCHAR2,
40 P_ATTRIBUTE6 IN VARCHAR2,
41 P_ATTRIBUTE7 IN VARCHAR2,
42 P_ATTRIBUTE8 IN VARCHAR2,
43 P_ATTRIBUTE9 IN VARCHAR2,
44 P_ATTRIBUTE10 IN VARCHAR2,
45 P_ATTRIBUTE11 IN VARCHAR2,
46 P_ATTRIBUTE12 IN VARCHAR2,
47 P_ATTRIBUTE13 IN VARCHAR2,
48 P_ATTRIBUTE14 IN VARCHAR2,
49 P_ATTRIBUTE15 IN VARCHAR2,
50 P_ATTRIBUTE_CATEGORY IN VARCHAR2,
51 P_OBJECT_VERSION_NUMBER IN NUMBER ,
52 x_csc_plan_lines_rec OUT NOCOPY CSC_PLAN_LINES_REC_TYPE)
53 IS
54 BEGIN
55 x_csc_plan_lines_rec.LINE_ID := P_LINE_ID;
56 x_csc_plan_lines_rec.PLAN_ID := P_PLAN_ID ;
57 x_csc_plan_lines_rec.CONDITION_ID := P_CONDITION_ID ;
58 x_csc_plan_lines_rec.CREATION_DATE := P_CREATION_DATE ;
59 x_csc_plan_lines_rec.LAST_UPDATE_DATE := P_LAST_UPDATE_DATE ;
60 x_csc_plan_lines_rec.CREATED_BY := P_CREATED_BY ;
61 x_csc_plan_lines_rec.LAST_UPDATED_BY := P_LAST_UPDATED_BY ;
62 x_csc_plan_lines_rec.LAST_UPDATE_LOGIN := P_LAST_UPDATE_LOGIN ;
63 x_csc_plan_lines_rec.ATTRIBUTE1 := P_ATTRIBUTE1 ;
64 x_csc_plan_lines_rec.ATTRIBUTE2 := P_ATTRIBUTE2 ;
65 x_csc_plan_lines_rec.ATTRIBUTE3 := P_ATTRIBUTE3 ;
66 x_csc_plan_lines_rec.ATTRIBUTE4 := P_ATTRIBUTE4 ;
67 x_csc_plan_lines_rec.ATTRIBUTE5 := P_ATTRIBUTE5 ;
68 x_csc_plan_lines_rec.ATTRIBUTE6 := P_ATTRIBUTE6 ;
69 x_csc_plan_lines_rec.ATTRIBUTE7 := P_ATTRIBUTE7 ;
70 x_csc_plan_lines_rec.ATTRIBUTE8 := P_ATTRIBUTE8 ;
71 x_csc_plan_lines_rec.ATTRIBUTE9 := P_ATTRIBUTE9 ;
72 x_csc_plan_lines_rec.ATTRIBUTE10 := P_ATTRIBUTE10 ;
73 x_csc_plan_lines_rec.ATTRIBUTE11 := P_ATTRIBUTE11 ;
74 x_csc_plan_lines_rec.ATTRIBUTE12 := P_ATTRIBUTE12 ;
75 x_csc_plan_lines_rec.ATTRIBUTE13 := P_ATTRIBUTE13 ;
76 x_csc_plan_lines_rec.ATTRIBUTE14 := P_ATTRIBUTE14 ;
77 x_csc_plan_lines_rec.ATTRIBUTE15 := P_ATTRIBUTE15 ;
78 x_csc_plan_lines_rec.ATTRIBUTE_CATEGORY := P_ATTRIBUTE_CATEGORY ;
79 x_csc_plan_lines_rec.OBJECT_VERSION_NUMBER := P_OBJECT_VERSION_NUMBER ;
80
81 END convert_columns_to_rec_type;
82
83
84 /* Overloaded procedure to take a detailed parameter list instead of a
85 record type parameter */
86
87 PROCEDURE Create_plan_lines(
88 P_Api_Version_Number IN NUMBER,
89 P_Init_Msg_List IN VARCHAR2,
90 P_Commit IN VARCHAR2,
91 p_validation_level IN NUMBER,
92 P_LINE_ID IN NUMBER,
93 P_PLAN_ID IN NUMBER,
94 P_CONDITION_ID IN NUMBER,
95 P_CREATION_DATE IN DATE,
96 P_LAST_UPDATE_DATE IN DATE,
97 P_CREATED_BY IN NUMBER,
98 P_LAST_UPDATED_BY IN NUMBER,
99 P_LAST_UPDATE_LOGIN IN NUMBER,
100 P_ATTRIBUTE1 IN VARCHAR2,
101 P_ATTRIBUTE2 IN VARCHAR2,
102 P_ATTRIBUTE3 IN VARCHAR2,
103 P_ATTRIBUTE4 IN VARCHAR2,
104 P_ATTRIBUTE5 IN VARCHAR2,
105 P_ATTRIBUTE6 IN VARCHAR2,
106 P_ATTRIBUTE7 IN VARCHAR2,
107 P_ATTRIBUTE8 IN VARCHAR2,
108 P_ATTRIBUTE9 IN VARCHAR2,
109 P_ATTRIBUTE10 IN VARCHAR2,
110 P_ATTRIBUTE11 IN VARCHAR2,
111 P_ATTRIBUTE12 IN VARCHAR2,
112 P_ATTRIBUTE13 IN VARCHAR2,
113 P_ATTRIBUTE14 IN VARCHAR2,
114 P_ATTRIBUTE15 IN VARCHAR2,
115 P_ATTRIBUTE_CATEGORY IN VARCHAR2,
116 P_OBJECT_VERSION_NUMBER IN NUMBER,
117 X_LINE_ID OUT NOCOPY NUMBER,
118 X_OBJECT_VERSION_NUMBER OUT NOCOPY NUMBER,
119 X_Return_Status OUT NOCOPY VARCHAR2,
120 X_Msg_Count OUT NOCOPY NUMBER,
121 X_Msg_Data OUT NOCOPY VARCHAR2
122 )
123 IS
124 l_csc_plan_lines_rec CSC_PLAN_LINES_REC_TYPE;
125
126 BEGIN
127 CONVERT_COLUMNS_TO_REC_TYPE(
128 P_LINE_ID => p_line_id,
129 P_PLAN_ID => p_plan_id,
130 P_CONDITION_ID => p_condition_id,
131 P_CREATION_DATE => p_creation_date,
132 P_LAST_UPDATE_DATE => p_last_update_date,
133 P_CREATED_BY => p_created_by,
134 P_LAST_UPDATED_BY => p_last_updated_by,
135 P_LAST_UPDATE_LOGIN => p_last_update_login,
136 P_ATTRIBUTE1 => p_attribute1,
137 P_ATTRIBUTE2 => p_attribute2,
138 P_ATTRIBUTE3 => p_attribute3,
139 P_ATTRIBUTE4 => p_attribute4,
140 P_ATTRIBUTE5 => p_attribute5,
141 P_ATTRIBUTE6 => p_attribute6,
142 P_ATTRIBUTE7 => p_attribute7,
143 P_ATTRIBUTE8 => p_attribute8,
144 P_ATTRIBUTE9 => p_attribute9,
145 P_ATTRIBUTE10 => p_attribute10,
146 P_ATTRIBUTE11 => p_attribute11,
147 P_ATTRIBUTE12 => p_attribute12,
148 P_ATTRIBUTE13 => p_attribute13,
149 P_ATTRIBUTE14 => p_attribute14,
150 P_ATTRIBUTE15 => p_attribute15,
151 P_ATTRIBUTE_CATEGORY => p_attribute_category,
152 P_OBJECT_VERSION_NUMBER => p_object_version_number,
153 x_csc_plan_lines_rec => l_csc_plan_lines_rec);
154
155 -- issue a call to the create_plan_lines proc. that accepts record_type parameters.
156
157 Create_plan_lines(
158 P_Api_Version_Number => p_api_version_number,
159 P_Init_Msg_List => p_init_msg_list,
160 P_Commit => p_commit,
161 P_Validation_level => p_validation_level,
162 P_CSC_PLAN_LINES_Rec => l_csc_plan_lines_rec,
163 X_LINE_ID => x_line_id,
164 X_OBJECT_VERSION_NUMBER => x_object_version_number,
165 X_Return_Status => x_return_status,
166 X_Msg_Count => x_msg_count,
167 X_Msg_Data => x_msg_data );
168
169 END Create_plan_lines; /* overloaded procedure */
170
171
172
173 PROCEDURE Create_plan_lines(
174 P_Api_Version_Number IN NUMBER,
175 P_Init_Msg_List IN VARCHAR2,
176 P_Commit IN VARCHAR2,
177 p_validation_level IN NUMBER,
178 P_CSC_PLAN_LINES_Rec IN CSC_PLAN_LINES_Rec_Type,
179 X_LINE_ID OUT NOCOPY NUMBER,
180 X_OBJECT_VERSION_NUMBER OUT NOCOPY NUMBER,
181 X_Return_Status OUT NOCOPY VARCHAR2,
182 X_Msg_Count OUT NOCOPY NUMBER,
183 X_Msg_Data OUT NOCOPY VARCHAR2
184 )
185 IS
186 l_api_name CONSTANT VARCHAR2(30) := 'Create_plan_lines';
187 l_api_version_number CONSTANT NUMBER := 1.0;
188 l_return_status_full VARCHAR2(1);
189 BEGIN
190 -- Standard Start of API savepoint
191 SAVEPOINT CREATE_PLAN_LINES_PVT;
192
193 -- Standard call to check for call compatibility.
194 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
195 p_api_version_number,
196 l_api_name,
197 G_PKG_NAME)
198 THEN
199 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
200 END IF;
201
202
203 -- Initialize message list if p_init_msg_list is set to TRUE.
204 IF FND_API.to_Boolean( p_init_msg_list )
205 THEN
206 FND_MSG_PUB.initialize;
207 END IF;
208
209 -- Initialize API return status to SUCCESS
210 x_return_status := FND_API.G_RET_STS_SUCCESS;
211
212 -- ******************************************************************
213 -- Validate Environment
214 -- ******************************************************************
215 IF FND_GLOBAL.User_Id IS NULL
216 THEN
217 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
218 THEN
219 FND_MESSAGE.Set_Name(CSC_CORE_UTILS_PVT.G_APP_SHORTNAME, 'UT_CANNOT_GET_PROFILE_VALUE');
220 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
221 -- FND_MSG_PUB.ADD;
222 END IF;
223 RAISE FND_API.G_EXC_ERROR;
224 END IF;
225
226 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL )
227 THEN
228 -- Invoke validation procedures
229 Validate_csc_plan_lines(
230 p_init_msg_list => FND_API.G_FALSE,
231 p_validation_level => p_validation_level,
232 p_validation_mode => CSC_CORE_UTILS_PVT.G_CREATE,
233 P_CSC_PLAN_LINES_Rec => P_CSC_PLAN_LINES_Rec,
234 x_return_status => x_return_status,
235 x_msg_count => x_msg_count,
236 x_msg_data => x_msg_data);
237 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
238 RAISE FND_API.G_EXC_ERROR;
239 END IF;
240 END IF;
241
242 -- Invoke table handler(CSC_PLAN_LINES_PKG.Insert_Row)
243 CSC_PLAN_LINES_PKG.Insert_Row(
244 px_LINE_ID => x_LINE_ID,
245 p_PLAN_ID => p_CSC_PLAN_LINES_rec.PLAN_ID,
246 p_CONDITION_ID => p_CSC_PLAN_LINES_rec.CONDITION_ID,
247 p_CREATION_DATE => SYSDATE,
248 p_LAST_UPDATE_DATE => SYSDATE,
249 p_CREATED_BY => FND_GLOBAL.USER_ID,
250 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
251 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
252 p_ATTRIBUTE1 => p_CSC_PLAN_LINES_rec.ATTRIBUTE1,
253 p_ATTRIBUTE2 => p_CSC_PLAN_LINES_rec.ATTRIBUTE2,
254 p_ATTRIBUTE3 => p_CSC_PLAN_LINES_rec.ATTRIBUTE3,
255 p_ATTRIBUTE4 => p_CSC_PLAN_LINES_rec.ATTRIBUTE4,
256 p_ATTRIBUTE5 => p_CSC_PLAN_LINES_rec.ATTRIBUTE5,
257 p_ATTRIBUTE6 => p_CSC_PLAN_LINES_rec.ATTRIBUTE6,
258 p_ATTRIBUTE7 => p_CSC_PLAN_LINES_rec.ATTRIBUTE7,
259 p_ATTRIBUTE8 => p_CSC_PLAN_LINES_rec.ATTRIBUTE8,
260 p_ATTRIBUTE9 => p_CSC_PLAN_LINES_rec.ATTRIBUTE9,
261 p_ATTRIBUTE10 => p_CSC_PLAN_LINES_rec.ATTRIBUTE10,
262 p_ATTRIBUTE11 => p_CSC_PLAN_LINES_rec.ATTRIBUTE11,
263 p_ATTRIBUTE12 => p_CSC_PLAN_LINES_rec.ATTRIBUTE12,
264 p_ATTRIBUTE13 => p_CSC_PLAN_LINES_rec.ATTRIBUTE13,
265 p_ATTRIBUTE14 => p_CSC_PLAN_LINES_rec.ATTRIBUTE14,
266 p_ATTRIBUTE15 => p_CSC_PLAN_LINES_rec.ATTRIBUTE15,
267 p_ATTRIBUTE_CATEGORY => p_CSC_PLAN_LINES_rec.ATTRIBUTE_CATEGORY,
268 x_OBJECT_VERSION_NUMBER => X_OBJECT_VERSION_NUMBER);
269
270 -- Standard check for p_commit
271 IF FND_API.to_Boolean( p_commit )
272 THEN
273 COMMIT WORK;
274 END IF;
275
276 -- Standard call to get message count and if count is 1, get message info.
277 FND_MSG_PUB.Count_And_Get
278 ( p_count => x_msg_count,
279 p_data => x_msg_data );
280
281 EXCEPTION
282 WHEN FND_API.G_EXC_ERROR THEN
283 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
284 P_API_NAME => L_API_NAME,
285 P_PKG_NAME => G_PKG_NAME,
286 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
287 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PVT,
288 X_MSG_COUNT => X_MSG_COUNT,
289 X_MSG_DATA => X_MSG_DATA,
290 X_RETURN_STATUS => X_RETURN_STATUS);
291 APP_EXCEPTION.RAISE_EXCEPTION;
292
293 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
294 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
295 P_API_NAME => L_API_NAME,
296 P_PKG_NAME => G_PKG_NAME,
297 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
298 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PVT,
299 X_MSG_COUNT => X_MSG_COUNT,
300 X_MSG_DATA => X_MSG_DATA,
301 X_RETURN_STATUS => X_RETURN_STATUS);
302 APP_EXCEPTION.RAISE_EXCEPTION;
303
304 WHEN OTHERS THEN
305 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
306 P_API_NAME => L_API_NAME,
307 P_PKG_NAME => G_PKG_NAME,
308 P_EXCEPTION_LEVEL => CSC_CORE_UTILS_PVT.G_MSG_LVL_OTHERS,
309 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PVT,
310 X_MSG_COUNT => X_MSG_COUNT,
311 X_MSG_DATA => X_MSG_DATA,
312 X_RETURN_STATUS => X_RETURN_STATUS);
313 APP_EXCEPTION.RAISE_EXCEPTION;
314
315 End Create_plan_lines;
316
317 /* Overloaded procedure to take a detailed parameter list instead of a
318 record type parameter */
319
320 PROCEDURE Update_plan_lines(
321 P_Api_Version_Number IN NUMBER,
322 P_Init_Msg_List IN VARCHAR2,
323 P_Commit IN VARCHAR2,
324 p_validation_level IN NUMBER,
325 P_LINE_ID IN NUMBER,
326 P_PLAN_ID IN NUMBER,
327 P_CONDITION_ID IN NUMBER,
328 P_CREATION_DATE IN DATE,
329 P_LAST_UPDATE_DATE IN DATE,
330 P_CREATED_BY IN NUMBER,
331 P_LAST_UPDATED_BY IN NUMBER,
332 P_LAST_UPDATE_LOGIN IN NUMBER,
333 P_ATTRIBUTE1 IN VARCHAR2,
334 P_ATTRIBUTE2 IN VARCHAR2,
335 P_ATTRIBUTE3 IN VARCHAR2,
336 P_ATTRIBUTE4 IN VARCHAR2,
337 P_ATTRIBUTE5 IN VARCHAR2,
338 P_ATTRIBUTE6 IN VARCHAR2,
339 P_ATTRIBUTE7 IN VARCHAR2,
340 P_ATTRIBUTE8 IN VARCHAR2,
341 P_ATTRIBUTE9 IN VARCHAR2,
342 P_ATTRIBUTE10 IN VARCHAR2,
343 P_ATTRIBUTE11 IN VARCHAR2,
344 P_ATTRIBUTE12 IN VARCHAR2,
345 P_ATTRIBUTE13 IN VARCHAR2,
346 P_ATTRIBUTE14 IN VARCHAR2,
347 P_ATTRIBUTE15 IN VARCHAR2,
348 P_ATTRIBUTE_CATEGORY IN VARCHAR2,
349 P_OBJECT_VERSION_NUMBER IN NUMBER,
350 X_OBJECT_VERSION_NUMBER OUT NOCOPY NUMBER,
351 X_Return_Status OUT NOCOPY VARCHAR2,
352 X_Msg_Count OUT NOCOPY NUMBER,
353 X_Msg_Data OUT NOCOPY VARCHAR2)
354 IS
355
356 l_csc_plan_lines_rec CSC_PLAN_LINES_REC_TYPE;
357
358 BEGIN
359 convert_columns_to_rec_type(
360 P_LINE_ID => p_line_id,
361 P_PLAN_ID => p_plan_id,
362 P_CONDITION_ID => p_condition_id,
363 P_CREATION_DATE => p_creation_date,
364 P_LAST_UPDATE_DATE => p_last_update_date,
365 P_CREATED_BY => p_created_by,
366 P_LAST_UPDATED_BY => p_last_updated_by,
367 P_LAST_UPDATE_LOGIN => p_last_update_login,
368 P_ATTRIBUTE1 => p_attribute1,
369 P_ATTRIBUTE2 => p_attribute2,
370 P_ATTRIBUTE3 => p_attribute3,
371 P_ATTRIBUTE4 => p_attribute4,
372 P_ATTRIBUTE5 => p_attribute5,
373 P_ATTRIBUTE6 => p_attribute6,
374 P_ATTRIBUTE7 => p_attribute7,
375 P_ATTRIBUTE8 => p_attribute8,
376 P_ATTRIBUTE9 => p_attribute9,
377 P_ATTRIBUTE10 => p_attribute10,
378 P_ATTRIBUTE11 => p_attribute11,
379 P_ATTRIBUTE12 => p_attribute12,
380 P_ATTRIBUTE13 => p_attribute13,
381 P_ATTRIBUTE14 => p_attribute14,
382 P_ATTRIBUTE15 => p_attribute15,
383 P_ATTRIBUTE_CATEGORY => p_attribute_category,
384 P_OBJECT_VERSION_NUMBER => p_object_version_number,
385 x_csc_plan_lines_rec => l_csc_plan_lines_rec);
386
387 -- issue a call to the create_plan_lines proc. that accepts record_type parameters.
388
389 Update_plan_lines(
390 P_Api_Version_Number => p_api_version_number,
391 P_Init_Msg_List => p_init_msg_list,
392 P_Commit => p_commit,
393 P_Validation_level => p_validation_level,
394 P_CSC_PLAN_LINES_Rec => l_csc_plan_lines_rec,
395 X_OBJECT_VERSION_NUMBER => x_object_version_number,
396 X_Return_Status => x_return_status,
397 X_Msg_Count => x_msg_count,
398 X_Msg_Data => x_msg_data );
399
400 END update_plan_lines; /* end of overloaded update */
401
402 PROCEDURE Update_plan_lines(
403 P_Api_Version_Number IN NUMBER,
404 P_Init_Msg_List IN VARCHAR2,
405 P_Commit IN VARCHAR2,
406 p_validation_level IN NUMBER,
407 P_CSC_PLAN_LINES_Rec IN CSC_PLAN_LINES_Rec_Type,
408 X_OBJECT_VERSION_NUMBER OUT NOCOPY NUMBER,
409 X_Return_Status OUT NOCOPY VARCHAR2,
410 X_Msg_Count OUT NOCOPY NUMBER,
411 X_Msg_Data OUT NOCOPY VARCHAR2
412 )
413 IS
414 Cursor C_Get_plan_lines(C_LINE_ID Number) IS
415 Select rowid, LINE_ID, PLAN_ID,
416 CONDITION_ID, LAST_UPDATE_DATE, CREATION_DATE,
417 LAST_UPDATED_BY, CREATED_BY, LAST_UPDATE_LOGIN,
418 ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3,
419 ATTRIBUTE4, ATTRIBUTE5, ATTRIBUTE6,
420 ATTRIBUTE7, ATTRIBUTE8, ATTRIBUTE9,
421 ATTRIBUTE10, ATTRIBUTE11, ATTRIBUTE12,
422 ATTRIBUTE13, ATTRIBUTE14, ATTRIBUTE15,
423 ATTRIBUTE_CATEGORY,OBJECT_VERSION_NUMBER
424 From CSC_PLAN_LINES
425 where line_id = c_line_id
426 For Update NOWAIT;
427
428 l_api_name CONSTANT VARCHAR2(30) := 'Update_plan_lines';
429 l_api_version_number CONSTANT NUMBER := 1.0;
430
431 l_ref_CSC_PLAN_LINES_rec CSC_plan_lines_PVT.CSC_PLAN_LINES_Rec_Type;
432 l_tar_CSC_PLAN_LINES_rec CSC_plan_lines_PVT.CSC_PLAN_LINES_Rec_Type := P_CSC_PLAN_LINES_Rec;
433 l_rowid ROWID;
434 BEGIN
435 -- Standard Start of API savepoint
436 SAVEPOINT UPDATE_PLAN_LINES_PVT;
437
438 -- Standard call to check for call compatibility.
439 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
440 p_api_version_number,
441 l_api_name,
442 G_PKG_NAME)
443 THEN
444 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
445 END IF;
446
447 -- Initialize message list if p_init_msg_list is set to TRUE.
448 IF FND_API.to_Boolean( p_init_msg_list )
449 THEN
450 FND_MSG_PUB.initialize;
451 END IF;
452
453 -- Initialize API return status to SUCCESS
454 x_return_status := FND_API.G_RET_STS_SUCCESS;
455
456 Open C_Get_plan_lines( l_tar_CSC_PLAN_LINES_rec.LINE_ID);
457
458 Fetch C_Get_plan_lines into
459 l_rowid,
460 l_ref_CSC_PLAN_LINES_rec.LINE_ID,
461 l_ref_CSC_PLAN_LINES_rec.PLAN_ID,
462 l_ref_CSC_PLAN_LINES_rec.CONDITION_ID,
463 l_ref_CSC_PLAN_LINES_rec.LAST_UPDATE_DATE,
464 l_ref_CSC_PLAN_LINES_rec.CREATION_DATE,
465 l_ref_CSC_PLAN_LINES_rec.LAST_UPDATED_BY,
466 l_ref_CSC_PLAN_LINES_rec.CREATED_BY,
467 l_ref_CSC_PLAN_LINES_rec.LAST_UPDATE_LOGIN,
468 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE1,
469 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE2,
470 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE3,
471 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE4,
472 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE5,
473 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE6,
474 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE7,
475 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE8,
476 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE9,
477 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE10,
478 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE11,
479 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE12,
480 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE13,
481 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE14,
482 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE15,
483 l_ref_CSC_PLAN_LINES_rec.ATTRIBUTE_CATEGORY,
484 l_ref_CSC_PLAN_LINES_rec.OBJECT_VERSION_NUMBER;
485
486 If ( C_Get_plan_lines%NOTFOUND) Then
487 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
488 THEN
489 Close C_Get_plan_lines;
490 FND_MESSAGE.Set_Name(CSC_CORE_UTILS_PVT.G_APP_SHORTNAME, 'API_MISSING_UPDATE_TARGET');
491 FND_MESSAGE.Set_Token ('INFO', 'plan_lines', FALSE);
492 -- FND_MSG_PUB.Add;
493 END IF;
494 raise FND_API.G_EXC_ERROR;
495 END IF;
496
497 Close C_Get_plan_lines;
498
499 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
500 THEN
501 -- Invoke validation procedures
502 Validate_csc_plan_lines(
503 p_init_msg_list => FND_API.G_FALSE,
504 p_validation_level => p_validation_level,
505 p_validation_mode => CSC_CORE_UTILS_PVT.G_UPDATE,
506 P_CSC_PLAN_LINES_Rec => P_CSC_PLAN_LINES_Rec,
507 x_return_status => x_return_status,
508 x_msg_count => x_msg_count,
509 x_msg_data => x_msg_data);
510 END IF;
511
512 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
513 RAISE FND_API.G_EXC_ERROR;
514 END IF;
515
516 -- Invoke table handler(CSC_PLAN_LINES_PKG.Update_Row)
517 CSC_PLAN_LINES_PKG.Update_Row(
518 p_LINE_ID => p_CSC_PLAN_LINES_rec.LINE_ID,
519 p_PLAN_ID => p_CSC_PLAN_LINES_rec.PLAN_ID,
520 p_CONDITION_ID => p_CSC_PLAN_LINES_rec.CONDITION_ID,
521 p_CREATION_DATE => SYSDATE,
522 p_LAST_UPDATE_DATE => SYSDATE,
523 p_CREATED_BY => FND_GLOBAL.USER_ID,
524 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
525 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
526 p_ATTRIBUTE1 => p_CSC_PLAN_LINES_rec.ATTRIBUTE1,
527 p_ATTRIBUTE2 => p_CSC_PLAN_LINES_rec.ATTRIBUTE2,
528 p_ATTRIBUTE3 => p_CSC_PLAN_LINES_rec.ATTRIBUTE3,
529 p_ATTRIBUTE4 => p_CSC_PLAN_LINES_rec.ATTRIBUTE4,
530 p_ATTRIBUTE5 => p_CSC_PLAN_LINES_rec.ATTRIBUTE5,
531 p_ATTRIBUTE6 => p_CSC_PLAN_LINES_rec.ATTRIBUTE6,
532 p_ATTRIBUTE7 => p_CSC_PLAN_LINES_rec.ATTRIBUTE7,
533 p_ATTRIBUTE8 => p_CSC_PLAN_LINES_rec.ATTRIBUTE8,
534 p_ATTRIBUTE9 => p_CSC_PLAN_LINES_rec.ATTRIBUTE9,
535 p_ATTRIBUTE10 => p_CSC_PLAN_LINES_rec.ATTRIBUTE10,
536 p_ATTRIBUTE11 => p_CSC_PLAN_LINES_rec.ATTRIBUTE11,
537 p_ATTRIBUTE12 => p_CSC_PLAN_LINES_rec.ATTRIBUTE12,
538 p_ATTRIBUTE13 => p_CSC_PLAN_LINES_rec.ATTRIBUTE13,
539 p_ATTRIBUTE14 => p_CSC_PLAN_LINES_rec.ATTRIBUTE14,
540 p_ATTRIBUTE15 => p_CSC_PLAN_LINES_rec.ATTRIBUTE15,
541 p_ATTRIBUTE_CATEGORY => p_CSC_PLAN_LINES_rec.ATTRIBUTE_CATEGORY,
542 x_OBJECT_VERSION_NUMBER => X_OBJECT_VERSION_NUMBER);
543
544 -- Standard check for p_commit
545 IF FND_API.to_Boolean( p_commit )
546 THEN
547 COMMIT WORK;
548 END IF;
549
550 -- Standard call to get message count and if count is 1, get message info.
551 FND_MSG_PUB.Count_And_Get
552 ( p_count => x_msg_count,
553 p_data => x_msg_data
554 );
555
556 EXCEPTION
557 WHEN FND_API.G_EXC_ERROR THEN
558 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
559 P_API_NAME => L_API_NAME,
560 P_PKG_NAME => G_PKG_NAME,
561 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
562 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PVT,
563 X_MSG_COUNT => X_MSG_COUNT,
564 X_MSG_DATA => X_MSG_DATA,
565 X_RETURN_STATUS => X_RETURN_STATUS);
566 APP_EXCEPTION.RAISE_EXCEPTION;
567
568 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
569 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
570 P_API_NAME => L_API_NAME,
571 P_PKG_NAME => G_PKG_NAME,
572 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
573 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PVT,
574 X_MSG_COUNT => X_MSG_COUNT,
575 X_MSG_DATA => X_MSG_DATA,
576 X_RETURN_STATUS => X_RETURN_STATUS);
577 APP_EXCEPTION.RAISE_EXCEPTION;
578
579 WHEN OTHERS THEN
580 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
581 P_API_NAME => L_API_NAME,
582 P_PKG_NAME => G_PKG_NAME,
583 P_EXCEPTION_LEVEL => CSC_CORE_UTILS_PVT.G_MSG_LVL_OTHERS,
584 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PVT,
585 X_MSG_COUNT => X_MSG_COUNT,
586 X_MSG_DATA => X_MSG_DATA,
587 X_RETURN_STATUS => X_RETURN_STATUS);
588 APP_EXCEPTION.RAISE_EXCEPTION;
589
590 End Update_plan_lines;
591
592
593 PROCEDURE Delete_plan_lines(
594 P_Api_Version_Number IN NUMBER,
595 P_Init_Msg_List IN VARCHAR2,
596 P_Commit IN VARCHAR2,
597 P_PLAN_ID IN NUMBER,
598 P_LINE_ID IN NUMBER,
599 X_Return_Status OUT NOCOPY VARCHAR2,
600 X_Msg_Count OUT NOCOPY NUMBER,
601 X_Msg_Data OUT NOCOPY VARCHAR2
602 )
603 IS
604 l_api_name CONSTANT VARCHAR2(30) := 'Delete_plan_lines';
605 l_api_version_number CONSTANT NUMBER := 1.0;
606 BEGIN
607 -- Standard Start of API savepoint
608 SAVEPOINT DELETE_PLAN_LINES_PVT;
609
610 -- Standard call to check for call compatibility.
611 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
612 p_api_version_number,
613 l_api_name,
614 G_PKG_NAME)
615 THEN
616 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
617 END IF;
618
619 -- Initialize message list if p_init_msg_list is set to TRUE.
620 IF FND_API.to_Boolean( p_init_msg_list )
621 THEN
622 FND_MSG_PUB.initialize;
623 END IF;
624
625 -- Initialize API return status to SUCCESS
626 x_return_status := FND_API.G_RET_STS_SUCCESS;
627
628 -- Invoke table handler(CSC_PLAN_LINES_PKG.Delete_Row)
629 CSC_PLAN_LINES_PKG.Delete_Row(
630 p_PLAN_ID => P_PLAN_ID,
631 p_LINE_ID => P_LINE_ID);
632
633 -- Standard check for p_commit
634 IF FND_API.to_Boolean( p_commit )
635 THEN
636 COMMIT WORK;
637 END IF;
638
639 -- Standard call to get message count and if count is 1, get message info.
640 FND_MSG_PUB.Count_And_Get
641 ( p_count => x_msg_count,
642 p_data => x_msg_data);
643
644 EXCEPTION
645 WHEN FND_API.G_EXC_ERROR THEN
646 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
647 P_API_NAME => L_API_NAME,
648 P_PKG_NAME => G_PKG_NAME,
649 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
650 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PVT,
651 X_MSG_COUNT => X_MSG_COUNT,
652 X_MSG_DATA => X_MSG_DATA,
653 X_RETURN_STATUS => X_RETURN_STATUS);
654 APP_EXCEPTION.RAISE_EXCEPTION;
655
656 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
657 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
658 P_API_NAME => L_API_NAME,
659 P_PKG_NAME => G_PKG_NAME,
660 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
661 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PVT,
662 X_MSG_COUNT => X_MSG_COUNT,
663 X_MSG_DATA => X_MSG_DATA,
664 X_RETURN_STATUS => X_RETURN_STATUS);
665 APP_EXCEPTION.RAISE_EXCEPTION;
666
667 WHEN OTHERS THEN
668 CSC_CORE_UTILS_PVT.HANDLE_EXCEPTIONS(
669 P_API_NAME => L_API_NAME,
670 P_PKG_NAME => G_PKG_NAME,
671 P_EXCEPTION_LEVEL => CSC_CORE_UTILS_PVT.G_MSG_LVL_OTHERS,
672 P_PACKAGE_TYPE => CSC_CORE_UTILS_PVT.G_PVT,
673 X_MSG_COUNT => X_MSG_COUNT,
674 X_MSG_DATA => X_MSG_DATA,
675 X_RETURN_STATUS => X_RETURN_STATUS);
676 APP_EXCEPTION.RAISE_EXCEPTION;
677
678 End Delete_plan_lines;
679
680
681 -- Item-level validation procedures
682
683 PROCEDURE Validate_LINE_ID (
684 P_Init_Msg_List IN VARCHAR2,
685 P_Validation_mode IN VARCHAR2,
686 P_LINE_ID IN NUMBER,
687 X_Return_Status OUT NOCOPY VARCHAR2,
688 X_Msg_Count OUT NOCOPY NUMBER,
689 X_Msg_Data OUT NOCOPY VARCHAR2
690 )
691 IS
692 cursor check_dup_line_id is
693 select line_id
694 from CSC_PLAN_LINES
695 where line_id = p_line_id;
696
697 l_line_id number;
698 l_api_name varchar2(30) := 'Validate_Line_Id';
699 BEGIN
700 -- Initialize message list if p_init_msg_list is set to TRUE.
701 IF FND_API.to_Boolean( p_init_msg_list )
702 THEN
703 FND_MSG_PUB.initialize;
704 END IF;
705
706 -- Initialize API return status to SUCCESS
707 x_return_status := FND_API.G_RET_STS_SUCCESS;
708
709 -- validate NOT NULL column for updates
710 IF( p_validation_mode = CSC_CORE_UTILS_PVT.G_UPDATE ) THEN
711 if ( p_line_id is NULL or p_line_id = FND_API.G_MISS_NUM ) then
712 fnd_message.set_name (CSC_CORE_UTILS_PVT.G_APP_SHORTNAME, 'CS_API_ALL_NULL_PARAMETER');
713 fnd_message.set_token ('API_NAME', G_PKG_NAME||'.'|| l_api_name);
714 fnd_message.set_token('NULL_PARAM', 'LINE_ID');
715 x_return_status := FND_API.G_RET_STS_ERROR;
716 end if;
717 ELSIF( p_validation_mode = CSC_CORE_UTILS_PVT.G_CREATE AND
718 p_line_id is not NULL and p_line_id <> FND_API.G_MISS_NUM ) THEN
719 -- check for duplicate line_ids.
720 open check_dup_line_id;
721 fetch check_dup_line_id into l_line_id;
722 if check_dup_line_id%FOUND then
723 fnd_message.set_name (CSC_CORE_UTILS_PVT.G_APP_SHORTNAME, 'CS_API_ALL_DUPLICATE_VALUE');
724 fnd_message.set_token ('API_NAME', G_PKG_NAME||'.'|| l_api_name);
725 fnd_message.set_token('DUPLICATE_VAL_PARAM', 'LINE_ID');
726 -- fnd_msg_pub.add;
727 x_return_status := FND_API.G_RET_STS_ERROR;
728 end if;
729 close check_dup_line_id;
730 END IF;
731
732 IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS ) then
733 APP_EXCEPTION.RAISE_EXCEPTION;
734 END IF;
735
736 -- Standard call to get message count and if count is 1, get message info.
737 FND_MSG_PUB.Count_And_Get
738 ( p_count => x_msg_count,
739 p_data => x_msg_data );
740
741 END Validate_LINE_ID;
742
743
744 PROCEDURE Validate_PLAN_ID (
745 P_Init_Msg_List IN VARCHAR2,
746 P_Validation_mode IN VARCHAR2,
747 P_PLAN_ID IN NUMBER,
748 X_Return_Status OUT NOCOPY VARCHAR2,
749 X_Msg_Count OUT NOCOPY NUMBER,
750 X_Msg_Data OUT NOCOPY VARCHAR2
751 )
752 IS
753 cursor c1 is
754 select plan_id
755 from csc_plan_headers_b
756 where plan_id = p_plan_id;
757
758 l_plan_id number;
759 l_api_name varchar2(30) := 'Validate_Plan_Id';
760 BEGIN
761 -- Initialize message list if p_init_msg_list is set to TRUE.
762 IF FND_API.to_Boolean( p_init_msg_list )
763 THEN
764 FND_MSG_PUB.initialize;
765 END IF;
766
767 -- Initialize API return status to SUCCESS
768 x_return_status := FND_API.G_RET_STS_SUCCESS;
769
770 -- validate NOT NULL column
771 IF( p_PLAN_ID is NULL or p_plan_id = FND_API.G_MISS_NUM ) then
772 fnd_message.set_name (CSC_CORE_UTILS_PVT.G_APP_SHORTNAME, 'CS_API_ALL_NULL_PARAMETER');
773 fnd_message.set_token ('API_NAME', G_PKG_NAME||'.'|| l_api_name);
774 fnd_message.set_token('NULL_PARAM', 'PLAN_ID');
775 x_return_status := FND_API.G_RET_STS_ERROR;
776 END IF;
777
778 -- validate for valid plan_ids.
779 IF ( x_return_status = FND_API.G_RET_STS_SUCCESS ) then
780 open c1;
781 fetch c1 into l_plan_id;
782 if c1%NOTFOUND then
783 fnd_message.set_name(CSC_CORE_UTILS_PVT.G_APP_SHORTNAME, 'CS_API_ALL_INVALID_ARGUMENT');
784 fnd_message.set_token('API_NAME', G_PKG_NAME||'.'|| l_api_name);
785 fnd_message.set_token('VALUE', p_plan_id);
786 fnd_message.set_token('PARAMETER', 'PLAN_ID');
787 x_return_status := FND_API.G_RET_STS_ERROR;
788 end if;
789 close c1;
790 END IF;
791
792 IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS ) then
793 APP_EXCEPTION.RAISE_EXCEPTION;
794 END IF;
795
796 -- Standard call to get message count and if count is 1, get message info.
797 FND_MSG_PUB.Count_And_Get
798 ( p_count => x_msg_count,
799 p_data => x_msg_data );
800
801 END Validate_PLAN_ID;
802
803
804 PROCEDURE Validate_CONDITION_ID (
805 P_Init_Msg_List IN VARCHAR2,
806 P_Validation_mode IN VARCHAR2,
807 P_PLAN_ID IN NUMBER,
808 P_CONDITION_ID IN NUMBER,
809 X_Return_Status OUT NOCOPY VARCHAR2,
810 X_Msg_Count OUT NOCOPY NUMBER,
811 X_Msg_Data OUT NOCOPY VARCHAR2
812 )
813 IS
814 cursor c1 is
815 select id
816 from okc_condition_headers_b
817 where id = p_condition_id;
818
819 cursor c2 is
820 select 1
821 from csc_plan_lines
822 where plan_id = p_plan_id
823 and condition_id = p_condition_id;
824
825 l_id NUMBER;
826 l_api_name VARCHAR2(30) := 'Validate_Condition_Id';
827
828 BEGIN
829 -- Initialize message list if p_init_msg_list is set to TRUE.
830 IF FND_API.to_Boolean( p_init_msg_list )
831 THEN
832 FND_MSG_PUB.initialize;
833 END IF;
834
835 -- Initialize API return status to SUCCESS
836 x_return_status := FND_API.G_RET_STS_SUCCESS;
837
838 -- validate NOT NULL column
839 IF( p_CONDITION_ID is NULL or p_condition_id = FND_API.G_MISS_NUM ) THEN
840 fnd_message.set_name (CSC_CORE_UTILS_PVT.G_APP_SHORTNAME, 'CS_API_ALL_NULL_PARAMETER');
841 fnd_message.set_token ('API_NAME', G_PKG_NAME||'.'|| l_api_name);
842 fnd_message.set_token('NULL_PARAM', 'CONDITION_ID');
843 -- fnd_msg_pub.add;
844 x_return_status := FND_API.G_RET_STS_ERROR;
845 END IF;
846
847 IF ( x_return_status = FND_API.G_RET_STS_SUCCESS ) then
848 -- validate for valid condition_id.
849 open c1;
850 fetch c1 into l_id;
851 if c1%NOTFOUND then
852 fnd_message.set_name (CSC_CORE_UTILS_PVT.G_APP_SHORTNAME, 'CS_API_ALL_INVALID_ARGUMENT');
853 fnd_message.set_token ('API_NAME', G_PKG_NAME||'.'||l_api_name);
854 fnd_message.set_token('VALUE', p_condition_id);
855 fnd_message.set_token('PARAMETER', 'CONDITION_ID');
856 x_return_status := FND_API.G_RET_STS_ERROR;
857 end if;
858 close c1;
859 END IF;
860
861 IF ( x_return_status = FND_API.G_RET_STS_SUCCESS ) then
862 -- validate for duplicate plan_id and condition_id
863 open c2;
864 fetch c2 into l_id;
865 if ( (p_validation_mode <> CSC_CORE_UTILS_PVT.G_UPDATE) AND (c2%FOUND) ) then
866 fnd_message.set_name (CSC_CORE_UTILS_PVT.G_APP_SHORTNAME, 'CS_API_ALL_DUPLICATE_VALUE');
867 fnd_message.set_token ('API_NAME', G_PKG_NAME||'.'|| l_api_name);
868 fnd_message.set_token('DUPLICATE_VAL_PARAM', 'CONDITION_ID');
869 x_return_status := FND_API.G_RET_STS_ERROR;
870 end if;
871 close c2;
872 END IF;
873
874 IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS ) then
875 APP_EXCEPTION.RAISE_EXCEPTION;
876 END IF;
877
878 END Validate_CONDITION_ID;
879
880
881 PROCEDURE Validate_OBJECT_VERSION_NUMBER (
882 P_Init_Msg_List IN VARCHAR2,
883 P_Validation_mode IN VARCHAR2,
884 P_OBJECT_VERSION_NUMBER IN NUMBER,
885 X_Return_Status OUT NOCOPY VARCHAR2,
886 X_Msg_Count OUT NOCOPY NUMBER,
887 X_Msg_Data OUT NOCOPY VARCHAR2
888 )
889 IS
890 BEGIN
891 -- Initialize message list if p_init_msg_list is set to TRUE.
892 IF FND_API.to_Boolean( p_init_msg_list )
893 THEN
894 FND_MSG_PUB.initialize;
895 END IF;
896
897
898 -- Initialize API return status to SUCCESS
899 x_return_status := FND_API.G_RET_STS_SUCCESS;
900
901 -- validate NOT NULL column
902 IF(p_OBJECT_VERSION_NUMBER is NULL)
903 THEN
904 x_return_status := FND_API.G_RET_STS_ERROR;
905 END IF;
906
907 IF(p_validation_mode = CSC_CORE_UTILS_PVT.G_CREATE)
908 THEN
909 -- Hint: Validate data
910 -- IF p_OBJECT_VERSION_NUMBER is not NULL and p_OBJECT_VERSION_NUMBER <> G_MISS_CHAR
911 -- verify if data is valid
912 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
913 NULL;
914 ELSIF(p_validation_mode = CSC_CORE_UTILS_PVT.G_UPDATE)
915 THEN
916 -- Hint: Validate data
917 -- IF p_OBJECT_VERSION_NUMBER <> G_MISS_CHAR
918 -- verify if data is valid
919 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
920 NULL;
921 END IF;
922
923 -- Standard call to get message count and if count is 1, get message info.
924 FND_MSG_PUB.Count_And_Get
925 ( p_count => x_msg_count,
926 p_data => x_msg_data
927 );
928
929 END Validate_OBJECT_VERSION_NUMBER;
930
931
932 PROCEDURE Validate_csc_plan_lines(
933 P_Init_Msg_List IN VARCHAR2,
934 P_Validation_level IN NUMBER,
935 P_Validation_mode IN VARCHAR2,
936 P_CSC_PLAN_LINES_Rec IN CSC_PLAN_LINES_Rec_Type,
937 X_Return_Status OUT NOCOPY VARCHAR2,
938 X_Msg_Count OUT NOCOPY NUMBER,
939 X_Msg_Data OUT NOCOPY VARCHAR2
940 )
941 IS
942 l_api_name CONSTANT VARCHAR2(30) := 'Validate_csc_plan_lines';
943 BEGIN
944 -- Initialize API return status to SUCCESS
945 x_return_status := FND_API.G_RET_STS_SUCCESS;
946
947 IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
948 Validate_LINE_ID(
949 p_init_msg_list => FND_API.G_FALSE,
950 p_validation_mode => p_validation_mode,
951 p_LINE_ID => P_CSC_PLAN_LINES_Rec.LINE_ID,
952 x_return_status => x_return_status,
953 x_msg_count => x_msg_count,
954 x_msg_data => x_msg_data);
955 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
956 raise FND_API.G_EXC_ERROR;
957 END IF;
958
959 Validate_PLAN_ID(
960 p_init_msg_list => FND_API.G_FALSE,
961 p_validation_mode => p_validation_mode,
962 p_PLAN_ID => P_CSC_PLAN_LINES_Rec.PLAN_ID,
963 x_return_status => x_return_status,
964 x_msg_count => x_msg_count,
965 x_msg_data => x_msg_data);
966 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
967 raise FND_API.G_EXC_ERROR;
968 END IF;
969
970 Validate_CONDITION_ID(
971 p_init_msg_list => FND_API.G_FALSE,
972 p_validation_mode => p_validation_mode,
973 P_PLAN_ID => P_CSC_PLAN_LINES_REC.PLAN_ID,
974 p_CONDITION_ID => P_CSC_PLAN_LINES_Rec.CONDITION_ID,
975 x_return_status => x_return_status,
976 x_msg_count => x_msg_count,
977 x_msg_data => x_msg_data);
978
979 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
980 raise FND_API.G_EXC_ERROR;
981 END IF;
982 END IF;
983
984
985 END Validate_csc_plan_lines;
986
987 End CSC_PLAN_LINES_PVT;