[Home] [Help]
PACKAGE BODY: APPS.CSC_PROFILE_CHECK_RULES_PVT
Source
1 PACKAGE BODY CSC_PROFILE_CHECK_RULES_PVT as
2 /* $Header: cscvpcrb.pls 115.13 2002/12/03 17:57:22 jamose ship $ */
3 -- Start of Comments
4 -- Package name : CSC_PROFILE_CHECK_RULES_PVT
5 -- Purpose :
6 -- History :26 Nov 02 jamose made changes for the NOCOPY and FND_API.G_MISS*
7 -- NOTE :
8 -- End of Comments
9
10
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'CSC_PROFILE_CHECK_RULES_PVT';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'cscvucrb.pls';
13
14 PROCEDURE Convert_Columns_to_Rec(
15 P_CHECK_ID IN NUMBER,
16 P_BLOCK_ID IN NUMBER,
17 P_SEQUENCE IN NUMBER,
18 P_CREATED_BY IN NUMBER,
19 P_CREATION_DATE IN DATE,
20 P_LAST_UPDATED_BY IN NUMBER,
21 P_LAST_UPDATE_DATE IN DATE,
22 P_LAST_UPDATE_LOGIN IN NUMBER,
23 P_LOGICAL_OPERATOR IN VARCHAR2,
24 P_LEFT_PAREN IN VARCHAR2,
25 P_COMPARISON_OPERATOR IN VARCHAR2,
26 P_EXPRESSION IN VARCHAR2,
27 P_EXPR_TO_BLOCK_ID IN NUMBER,
28 P_RIGHT_PAREN IN VARCHAR2,
29 P_SEEDED_FLAG IN VARCHAR2,
30 X_CHK_RULES_Rec OUT NOCOPY CHK_RULES_Rec_Type
31 )
32 IS
33 BEGIN
34
35 X_CHK_RULES_rec.CHECK_ID := P_CHECK_ID;
36 X_CHK_RULES_rec.BLOCK_ID := P_BLOCK_ID;
37
38 X_CHK_RULES_rec.SEQUENCE := P_SEQUENCE;
39 X_CHK_RULES_rec.LOGICAL_OPERATOR := P_LOGICAL_OPERATOR;
40 X_CHK_RULES_rec.LEFT_PAREN := P_LEFT_PAREN;
41 X_CHK_RULES_rec.COMPARISON_OPERATOR := P_COMPARISON_OPERATOR;
42 X_CHK_RULES_rec.EXPRESSION := P_EXPRESSION;
43 X_CHK_RULES_rec.EXPR_TO_BLOCK_ID := P_EXPR_TO_BLOCK_ID;
44 X_CHK_RULES_rec.RIGHT_PAREN := P_RIGHT_PAREN;
45 X_CHK_RULES_rec.SEEDED_FLAG := P_SEEDED_FLAG;
46 X_CHK_RULES_rec.CREATED_BY := P_CREATED_BY;
47 X_CHK_RULES_rec.CREATION_DATE := P_CREATION_DATE;
48 X_CHK_RULES_rec.LAST_UPDATED_BY := P_LAST_UPDATED_BY;
49 X_CHK_RULES_rec.LAST_UPDATE_DATE := P_LAST_UPDATE_DATE;
50 X_CHK_RULES_rec.LAST_UPDATE_LOGIN := P_LAST_UPDATE_LOGIN;
51
52 END;
53
54
55 PROCEDURE Create_profile_check_rules(
56 P_Api_Version_Number IN NUMBER,
57 P_Init_Msg_List IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
58 P_Commit IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
59 p_validation_level IN NUMBER := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
60 P_CHECK_ID IN NUMBER,
61 P_BLOCK_ID IN NUMBER,
62 P_SEQUENCE IN NUMBER,
63 P_CREATED_BY IN NUMBER,
64 P_CREATION_DATE IN DATE,
65 P_LAST_UPDATED_BY IN NUMBER,
66 P_LAST_UPDATE_DATE IN DATE,
67 P_LAST_UPDATE_LOGIN IN NUMBER,
68 P_LOGICAL_OPERATOR IN VARCHAR2,
69 P_LEFT_PAREN IN VARCHAR2,
70 P_COMPARISON_OPERATOR IN VARCHAR2,
71 P_EXPRESSION IN VARCHAR2,
72 P_EXPR_TO_BLOCK_ID IN NUMBER,
73 P_RIGHT_PAREN IN VARCHAR2,
74 P_SEEDED_FLAG IN VARCHAR2,
75 X_OBJECT_VERSION_NUMBER OUT NOCOPY NUMBER,
76 X_Return_Status OUT NOCOPY VARCHAR2,
77 X_Msg_Count OUT NOCOPY NUMBER,
78 X_Msg_Data OUT NOCOPY VARCHAR2
79 )
80 IS
81 l_CHK_RULES_Rec CHK_RULES_Rec_Type;
82 BEGIN
83
84 Convert_Columns_to_Rec(
85 P_CHECK_ID => P_CHECK_ID,
86 P_BLOCK_ID => P_BLOCK_ID,
87 P_SEQUENCE => P_SEQUENCE,
88 P_CREATED_BY => P_CREATED_BY,
89 P_CREATION_DATE => P_CREATION_DATE,
90 P_LAST_UPDATED_BY => P_LAST_UPDATED_BY,
91 P_LAST_UPDATE_DATE => P_LAST_UPDATE_DATE,
92 P_LAST_UPDATE_LOGIN => P_LAST_UPDATE_LOGIN,
93 P_LOGICAL_OPERATOR => P_LOGICAL_OPERATOR,
94 P_LEFT_PAREN => P_LEFT_PAREN,
95 P_COMPARISON_OPERATOR => P_COMPARISON_OPERATOR,
96 P_EXPRESSION => P_EXPRESSION,
97 P_EXPR_TO_BLOCK_ID => P_EXPR_TO_BLOCK_ID,
98 P_RIGHT_PAREN => P_RIGHT_PAREN,
99 P_SEEDED_FLAG => P_SEEDED_FLAG,
100 X_CHK_RULES_Rec => l_CHK_RULES_Rec
101 );
102
103 Create_profile_check_rules(
104 P_Api_Version_Number => P_Api_Version_Number ,
105 P_Init_Msg_List => P_Init_Msg_List,
106 P_Commit => P_Commit,
107 p_validation_level => p_validation_level,
108 P_CHK_RULES_Rec => l_CHK_RULES_Rec,
109 X_OBJECT_VERSION_NUMBER => X_OBJECT_VERSION_NUMBER,
110 X_Return_Status => X_Return_Status,
111 X_Msg_Count => X_Msg_Count,
112 X_Msg_Data => X_Msg_Data
113 );
114
115
116 END Create_profile_check_rules;
117
118 PROCEDURE Create_profile_check_rules(
119 P_Api_Version_Number IN NUMBER,
120 P_Init_Msg_List IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
121 P_Commit IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
122 p_validation_level IN NUMBER := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
123 P_CHK_RULES_Rec IN CHK_RULES_Rec_Type := G_MISS_CHK_RULES_REC,
124 X_Object_Version_Number OUT NOCOPY NUMBER,
125 X_Return_Status OUT NOCOPY VARCHAR2,
126 X_Msg_Count OUT NOCOPY NUMBER,
127 X_Msg_Data OUT NOCOPY VARCHAR2
128 )
129 IS
130 l_api_name CONSTANT VARCHAR2(30) := 'Create_profile_check_rules';
131 l_api_version_number CONSTANT NUMBER := 1.0;
132 l_return_status VARCHAR2(1);
133
134 -- local record type
135 l_chk_rules_rec CHK_RULES_REC_TYPE := P_CHK_RULES_Rec;
136 l_check_id Number;
137
138 BEGIN
139
140 -- Standard Start of API savepoint
141 SAVEPOINT CREATE_PROFILE_CHECK_RULES_PVT;
142
143
144 -- Standard call to check for call compatibility.
145 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
146 p_api_version_number,
147 l_api_name,
148 G_PKG_NAME)
149 THEN
150 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
151 END IF;
152
153
154 -- Initialize message list if p_init_msg_list is set to TRUE.
155 IF FND_API.to_Boolean( p_init_msg_list )
156 THEN
157 FND_MSG_PUB.initialize;
158 END IF;
159
160
161 -- Initialize API return status to SUCCESS
162 x_return_status := FND_API.G_RET_STS_SUCCESS;
163
164 --
165 -- API body
166 --
167
168 IF ( P_validation_level >= CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL)
169 THEN
170 -- Invoke validation procedures
171 Validate_profile_check_rules(
172 p_api_name => l_api_name,
173 p_init_msg_list => CSC_CORE_UTILS_PVT.G_FALSE,
174 p_validation_level => p_validation_level,
175 p_validation_mode => CSC_CORE_UTILS_PVT.G_CREATE,
176 P_CHK_RULES_Rec => p_CHK_RULES_Rec,
177 x_return_status => x_return_status,
178 x_msg_count => x_msg_count,
179 x_msg_data => x_msg_data);
180 END IF;
181
182 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
183 RAISE FND_API.G_EXC_ERROR;
184 END IF;
185
186 -- Invoke table handler(CSC_PROF_CHECK_RULES_PKG.Insert_Row)
187
188 CSC_PROFILE_CHECK_RULES_PKG.Insert_Row(
189 p_CHECK_ID => l_CHK_RULES_rec.CHECK_ID,
190 p_SEQUENCE => l_CHK_RULES_rec.SEQUENCE,
191 p_CREATED_BY => FND_GLOBAL.USER_ID,
192 p_CREATION_DATE => SYSDATE,
193 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
194 p_LAST_UPDATE_DATE => SYSDATE,
195 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
196 p_LOGICAL_OPERATOR => l_CHK_RULES_rec.LOGICAL_OPERATOR,
197 p_LEFT_PAREN => l_CHK_RULES_rec.LEFT_PAREN,
198 p_BLOCK_ID => l_CHK_RULES_rec.BLOCK_ID,
199 p_COMPARISON_OPERATOR => l_CHK_RULES_rec.COMPARISON_OPERATOR,
200 p_EXPRESSION => l_CHK_RULES_rec.EXPRESSION,
201 p_EXPR_TO_BLOCK_ID => l_CHK_RULES_rec.EXPR_TO_BLOCK_ID,
202 p_RIGHT_PAREN => l_CHK_RULES_rec.RIGHT_PAREN,
203 p_SEEDED_FLAG => l_CHK_RULES_rec.SEEDED_FLAG,
204 x_OBJECT_VERSION_NUMBER => X_OBJECT_VERSION_NUMBER);
205
206 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
207 RAISE FND_API.G_EXC_ERROR;
208 END IF;
209
210
211 --
212 -- End of API body
213 --
214
215 -- Standard check for p_commit
216 IF FND_API.to_Boolean( p_commit )
217 THEN
218 COMMIT WORK;
219 END IF;
220
221
222 -- Standard call to get message count and if count is 1, get message info.
223 FND_MSG_PUB.Count_And_Get
224 ( p_count => x_msg_count,
225 p_data => x_msg_data
226 );
227
228 EXCEPTION
229 WHEN FND_API.G_EXC_ERROR THEN
230 ROLLBACK TO Create_profile_check_rules_PVT;
231 x_return_status := FND_API.G_RET_STS_ERROR;
232 FND_MSG_PUB.Count_And_Get(
233 p_count => x_msg_count,
234 p_data => x_msg_data );
235 APP_EXCEPTION.RAISE_EXCEPTION;
236 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
237 ROLLBACK TO Create_profile_check_rules_PVT;
238 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
239 FND_MSG_PUB.Count_And_Get(
240 p_count => x_msg_count,
241 p_data => x_msg_data );
242 APP_EXCEPTION.RAISE_EXCEPTION;
243 WHEN OTHERS THEN
244 ROLLBACK TO Create_profile_check_rules_PVT;
245 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
246 FND_MSG_PUB.Count_And_Get(
247 p_count => x_msg_count,
248 p_data => x_msg_data );
249 FND_MSG_PUB.Build_Exc_Msg;
250 APP_EXCEPTION.RAISE_EXCEPTION;
251
252 End Create_profile_check_rules;
253
254
255
256 PROCEDURE Update_profile_check_rules(
257 P_Api_Version_Number IN NUMBER,
258 P_Init_Msg_List IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
259 P_Commit IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
260 p_validation_level IN NUMBER := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
261 P_CHECK_ID IN NUMBER,
262 P_BLOCK_ID IN NUMBER,
263 P_SEQUENCE IN NUMBER,
264 P_CREATED_BY IN NUMBER,
265 P_CREATION_DATE IN DATE,
266 P_LAST_UPDATED_BY IN NUMBER,
267 P_LAST_UPDATE_DATE IN DATE,
268 P_LAST_UPDATE_LOGIN IN NUMBER,
269 P_LOGICAL_OPERATOR IN VARCHAR2,
270 P_LEFT_PAREN IN VARCHAR2,
271 P_COMPARISON_OPERATOR IN VARCHAR2,
272 P_EXPRESSION IN VARCHAR2,
273 P_EXPR_TO_BLOCK_ID IN NUMBER,
274 P_RIGHT_PAREN IN VARCHAR2,
275 P_SEEDED_FLAG IN VARCHAR2,
276 PX_OBJECT_VERSION_NUMBER IN OUT NOCOPY NUMBER,
277 X_Return_Status OUT NOCOPY VARCHAR2,
278 X_Msg_Count OUT NOCOPY NUMBER,
279 X_Msg_Data OUT NOCOPY VARCHAR2
280 )
281 IS
282 l_CHK_RULES_Rec CHK_RULES_Rec_Type;
283 BEGIN
284
285 Convert_Columns_to_Rec(
286 P_CHECK_ID => P_CHECK_ID,
287 P_BLOCK_ID => P_BLOCK_ID,
288 P_SEQUENCE => P_SEQUENCE,
289 P_CREATED_BY => P_CREATED_BY,
290 P_CREATION_DATE => P_CREATION_DATE,
291 P_LAST_UPDATED_BY => P_LAST_UPDATED_BY,
292 P_LAST_UPDATE_DATE => P_LAST_UPDATE_DATE,
293 P_LAST_UPDATE_LOGIN => P_LAST_UPDATE_LOGIN,
294 P_LOGICAL_OPERATOR => P_LOGICAL_OPERATOR,
295 P_LEFT_PAREN => P_LEFT_PAREN,
296 P_COMPARISON_OPERATOR => P_COMPARISON_OPERATOR,
297 P_EXPRESSION => P_EXPRESSION,
298 P_EXPR_TO_BLOCK_ID => P_EXPR_TO_BLOCK_ID,
299 P_RIGHT_PAREN => P_RIGHT_PAREN,
300 P_SEEDED_FLAG => P_SEEDED_FLAG,
301 X_CHK_RULES_Rec => l_CHK_RULES_Rec
302 );
303
304 Update_profile_check_rules(
305 P_Api_Version_Number => P_Api_Version_Number ,
306 P_Init_Msg_List => P_Init_Msg_List,
307 P_Commit => P_Commit,
308 p_validation_level => p_validation_level,
309 P_CHK_RULES_Rec => l_CHK_RULES_Rec,
310 PX_Object_Version_Number => PX_OBJECT_VERSION_NUMBER,
311 X_Return_Status => X_Return_Status,
312 X_Msg_Count => X_Msg_Count,
313 X_Msg_Data => X_Msg_Data
314 );
315
316
317 END Update_profile_check_rules;
318
319
320 PROCEDURE Update_profile_check_rules(
321 P_Api_Version_Number IN NUMBER,
322 P_Init_Msg_List IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
323 P_Commit IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
324 p_validation_level IN NUMBER := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
325 P_CHK_RULES_Rec IN CHK_RULES_Rec_Type := G_MISS_CHK_RULES_REC,
326 PX_OBJECT_VERSION_NUMBER IN OUT NOCOPY NUMBER,
327 X_Return_Status OUT NOCOPY VARCHAR2,
328 X_Msg_Count OUT NOCOPY NUMBER,
329 X_Msg_Data OUT NOCOPY VARCHAR2
330 )
331
332 IS
333
334 Cursor C_Get_profile_check_rules(c_CHECK_ID NUMBER,c_sequence NUMBER,c_object_version_number NUMBER) IS
335 Select rowid,
336 CHECK_ID,
337 SEQUENCE,
338 CREATED_BY,
339 CREATION_DATE,
340 LAST_UPDATED_BY,
341 LAST_UPDATE_DATE,
342 LAST_UPDATE_LOGIN,
343 LOGICAL_OPERATOR,
344 LEFT_PAREN,
345 BLOCK_ID,
346 COMPARISON_OPERATOR,
347 EXPRESSION,
348 EXPR_TO_BLOCK_ID,
349 RIGHT_PAREN
350 From CSC_PROF_CHECK_RULES_VL
351 Where check_id = c_check_id
352 and sequence = c_sequence
353 and object_version_number = c_object_version_number
354 For Update NOWAIT;
355 l_api_name CONSTANT VARCHAR2(30) := 'Update_profile_check_rules';
356 l_api_version_number CONSTANT NUMBER := 1.0;
357 -- Local Variables
358 l_rowid ROWID;
359
360 --local record type
361 l_old_CHK_RULES_rec CHK_RULES_Rec_Type := G_MISS_CHK_RULES_REC;
362
363 l_CHK_RULES_rec CHK_RULES_Rec_Type := P_CHK_RULES_Rec;
364
365 BEGIN
366
367 -- Standard Start of API savepoint
368 SAVEPOINT UPDATE_PROFILE_CHECK_RULES_PVT;
369
370 -- Standard call to check for call compatibility.
371 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
372 p_api_version_number,
373 l_api_name,
374 G_PKG_NAME)
375 THEN
376 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
377 END IF;
378
379
380 -- Initialize message list if p_init_msg_list is set to TRUE.
381 IF FND_API.to_Boolean( p_init_msg_list )
382 THEN
383 FND_MSG_PUB.initialize;
384 END IF;
385
386
387
388 -- Initialize API return status to SUCCESS
389 x_return_status := FND_API.G_RET_STS_SUCCESS;
390
391 --
392 -- Api body
396
393 --
394
395 Open C_Get_profile_check_rules( l_CHK_RULES_REC.CHECK_ID,l_CHK_RULES_REC.SEQUENCE,px_Object_Version_Number);
397 Fetch C_Get_profile_check_rules into
398 l_rowid,
399 l_old_CHK_RULES_rec.CHECK_ID,
400 l_old_CHK_RULES_rec.SEQUENCE,
401 l_old_CHK_RULES_rec.CREATED_BY,
402 l_old_CHK_RULES_rec.CREATION_DATE,
403 l_old_CHK_RULES_rec.LAST_UPDATED_BY,
404 l_old_CHK_RULES_rec.LAST_UPDATE_DATE,
405 l_old_CHK_RULES_rec.LAST_UPDATE_LOGIN,
406 l_old_CHK_RULES_rec.LOGICAL_OPERATOR,
407 l_old_CHK_RULES_rec.LEFT_PAREN,
408 l_old_CHK_RULES_rec.BLOCK_ID,
409 l_old_CHK_RULES_rec.COMPARISON_OPERATOR,
410 l_old_CHK_RULES_rec.EXPRESSION,
411 l_old_CHK_RULES_rec.EXPR_TO_BLOCK_ID,
412 l_old_CHK_RULES_rec.RIGHT_PAREN;
413
414 If ( C_Get_profile_check_rules%NOTFOUND) Then
415 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
416 THEN
417 CSC_CORE_UTILS_PVT.Record_Is_Locked_Msg(p_api_name => l_api_name);
418 END IF;
419 raise FND_API.G_EXC_ERROR;
420 END IF;
421
422
423 IF ( P_validation_level >= CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL)
424 THEN
425 -- bug 1231208 -- > Validation mode should be UPDATE here
426 -- Invoke validation procedures
427 Validate_profile_check_rules(
428 p_api_name => l_api_name,
429 p_init_msg_list => CSC_CORE_UTILS_PVT.G_FALSE,
430 p_validation_level => p_validation_level,
431 --p_validation_mode => CSC_CORE_UTILS_PVT.G_CREATE,
432 p_validation_mode => CSC_CORE_UTILS_PVT.G_UPDATE,
433 P_CHK_RULES_Rec => p_CHK_RULES_Rec,
434 x_return_status => x_return_status,
435 x_msg_count => x_msg_count,
436 x_msg_data => x_msg_data);
437
438
439 END IF;
440
441 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
442 RAISE FND_API.G_EXC_ERROR;
443 END IF;
444
445 -- Invoke table handler(CSC_PROF_CHECK_RULES_PKG.Update_Row)
446 CSC_PROFILE_CHECK_RULES_PKG.Update_Row(
447 p_CHECK_ID => csc_core_utils_pvt.get_g_miss_num(l_CHK_RULES_rec.CHECK_ID,l_old_CHK_RULES_rec.CHECK_ID),
448 p_SEQUENCE => csc_core_utils_pvt.get_g_miss_num(l_CHK_RULES_rec.SEQUENCE,l_old_CHK_RULES_rec.SEQUENCE),
449 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
450 p_LAST_UPDATE_DATE => SYSDATE,
451 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
452 p_LOGICAL_OPERATOR =>csc_core_utils_pvt.get_g_miss_char(l_CHK_RULES_rec.LOGICAL_OPERATOR,l_old_CHK_RULES_rec.LOGICAL_OPERATOR),
453 p_LEFT_PAREN => csc_core_utils_pvt.get_g_miss_char(l_CHK_RULES_rec.LEFT_PAREN,l_old_CHK_RULES_rec.LEFT_PAREN),
454 p_BLOCK_ID => csc_core_utils_pvt.get_g_miss_num(l_CHK_RULES_rec.BLOCK_ID,l_old_CHK_RULES_rec.BLOCK_ID),
455 p_COMPARISON_OPERATOR =>csc_core_utils_pvt.get_g_miss_char(l_CHK_RULES_rec.COMPARISON_OPERATOR,l_old_CHK_RULES_rec.COMPARISON_OPERATOR),
456 p_EXPRESSION => csc_core_utils_pvt.get_g_miss_char(l_CHK_RULES_rec.EXPRESSION,l_old_CHK_RULES_rec.EXPRESSION),
457 p_EXPR_TO_BLOCK_ID => csc_core_utils_pvt.get_g_miss_num(l_CHK_RULES_rec.EXPR_TO_BLOCK_ID,l_old_CHK_RULES_rec.EXPR_TO_BLOCK_ID),
458 p_RIGHT_PAREN => csc_core_utils_pvt.get_g_miss_char(l_CHK_RULES_rec.RIGHT_PAREN,l_old_CHK_RULES_rec.RIGHT_PAREN),
459 p_SEEDED_FLAG => csc_core_utils_pvt.get_g_miss_char(l_CHK_RULES_rec.SEEDED_FLAG,l_old_CHK_RULES_rec.SEEDED_FLAG),
460 px_OBJECT_VERSION_NUMBER => px_OBJECT_VERSION_NUMBER );
461
462 --
463 -- End of API body.
464 --
465
466 -- Standard check for p_commit
467 IF FND_API.to_Boolean( p_commit )
468 THEN
469 COMMIT WORK;
470 END IF;
471
472
473 -- Standard call to get message count and if count is 1, get message info.
474 FND_MSG_PUB.Count_And_Get
475 ( p_count => x_msg_count,
476 p_data => x_msg_data
477 );
478
479 EXCEPTION
480 WHEN FND_API.G_EXC_ERROR THEN
481 ROLLBACK TO Update_profile_check_rules_PVT;
482 x_return_status := FND_API.G_RET_STS_ERROR;
483 FND_MSG_PUB.Count_And_Get(
484 p_count => x_msg_count,
485 p_data => x_msg_data );
486 APP_EXCEPTION.RAISE_EXCEPTION;
487 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
488 ROLLBACK TO Update_profile_check_rules_PVT;
489 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
490 FND_MSG_PUB.Count_And_Get(
491 p_count => x_msg_count,
492 p_data => x_msg_data );
493 APP_EXCEPTION.RAISE_EXCEPTION;
494 WHEN OTHERS THEN
495 ROLLBACK TO Update_profile_check_rules_PVT;
496 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
497 FND_MSG_PUB.Count_And_Get(
498 p_count => x_msg_count,
499 p_data => x_msg_data );
500 FND_MSG_PUB.Build_Exc_Msg;
501 APP_EXCEPTION.RAISE_EXCEPTION;
502 End Update_profile_check_rules;
503
504
508 P_Commit IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
505 PROCEDURE Delete_profile_check_rules(
506 P_Api_Version_Number IN NUMBER,
507 P_Init_Msg_List IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
509 p_validation_level IN NUMBER := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
510 P_CHECK_ID IN NUMBER,
511 p_SEQUENCE IN NUMBER,
512 p_OBJECT_VERSION_NUMBER IN NUMBER,
513 X_Return_Status OUT NOCOPY VARCHAR2,
514 X_Msg_Count OUT NOCOPY NUMBER,
515 X_Msg_Data OUT NOCOPY VARCHAR2
516 )
517
518 IS
519 l_api_name CONSTANT VARCHAR2(30) := 'Delete_profile_check_rules';
520 l_api_version_number CONSTANT NUMBER := 1.0;
521 BEGIN
522 -- Standard Start of API savepoint
523 SAVEPOINT DELETE_PROFILE_CHECK_RULES_PVT;
524
525 -- Standard call to check for call compatibility.
526 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
527 p_api_version_number,
528 l_api_name,
529 G_PKG_NAME)
530 THEN
531 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
532 END IF;
533
534
535 -- Initialize message list if p_init_msg_list is set to TRUE.
536 IF FND_API.to_Boolean( p_init_msg_list )
537 THEN
538 FND_MSG_PUB.initialize;
539 END IF;
540
541 -- Initialize API return status to SUCCESS
542 x_return_status := FND_API.G_RET_STS_SUCCESS;
543
544 --
545 -- Api body
546 --
547
548 -- Invoke table handler(CSC_PROF_CHECK_RULES_PKG.Delete_Row)
549
550 CSC_PROFILE_CHECK_RULES_PKG.Delete_Row(p_CHECK_ID => p_CHECK_ID,
551 p_SEQUENCE => p_SEQUENCE,
552 p_OBJECT_VERSION_NUMBER => p_OBJECT_VERSION_NUMBER );
553
554 --
555 -- End of API body
556 --
557
558 -- Standard check for p_commit
559 IF FND_API.to_Boolean( p_commit )
560 THEN
561 COMMIT WORK;
562 END IF;
563
564
565 -- Standard call to get message count and if count is 1, get message info.
566 FND_MSG_PUB.Count_And_Get
567 ( p_count => x_msg_count,
568 p_data => x_msg_data
569 );
570
571 EXCEPTION
572 WHEN FND_API.G_EXC_ERROR THEN
573 ROLLBACK TO Delete_profile_check_rules_PVT;
574 x_return_status := FND_API.G_RET_STS_ERROR;
575 FND_MSG_PUB.Count_And_Get(
576 p_count => x_msg_count,
577 p_data => x_msg_data );
578 APP_EXCEPTION.RAISE_EXCEPTION;
579 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
580 ROLLBACK TO Delete_profile_check_rules_PVT;
581 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
582 FND_MSG_PUB.Count_And_Get(
583 p_count => x_msg_count,
584 p_data => x_msg_data );
585 APP_EXCEPTION.RAISE_EXCEPTION;
586 WHEN OTHERS THEN
587 ROLLBACK TO Delete_profile_check_rules_PVT;
588 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
589 FND_MSG_PUB.Count_And_Get(
590 p_count => x_msg_count,
591 p_data => x_msg_data );
592 FND_MSG_PUB.Build_Exc_Msg;
593 APP_EXCEPTION.RAISE_EXCEPTION;
594 End Delete_profile_check_rules;
595
596
597 -- Item-level validation procedures
598 PROCEDURE Validate_CHECK_ID (
599 P_Api_Name IN VARCHAR2,
600 P_Init_Msg_List IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
601 P_Validation_mode IN VARCHAR2,
602 P_CHECK_ID IN NUMBER,
603 X_Return_Status OUT NOCOPY VARCHAR2,
604 X_Msg_Count OUT NOCOPY NUMBER,
605 X_Msg_Data OUT NOCOPY VARCHAR2
606 )
607 IS
608 Cursor C1 IS
609 Select NULL
610 From csc_prof_checks_b
611 where check_id = p_check_id;
612 l_dummy NUMBER;
613 BEGIN
614
615 -- Initialize message list if p_init_msg_list is set to TRUE.
616 IF FND_API.to_Boolean( p_init_msg_list )
617 THEN
618 FND_MSG_PUB.initialize;
619 END IF;
620
621
622 -- Initialize API return status to SUCCESS
623 x_return_status := FND_API.G_RET_STS_SUCCESS;
624
625 -- validate NOT NULL column
626 IF(p_CHECK_ID is NULL)
627 THEN
628 x_return_status := FND_API.G_RET_STS_ERROR;
629 CSC_CORE_UTILS_PVT.mandatory_arg_error(
630 p_Api_name => p_Api_Name,
631 p_Argument => 'p_CHECK_ID',
632 p_Argument_Value => p_CHECK_ID);
633
634 END IF;
635
636 -- Correction for 1231208 --> The check id should be a valid
637 -- check id in csc_prof_checks_b - so %FOUND shoudl not raise
638 -- any error
639 IF(p_validation_mode = CSC_CORE_UTILS_PVT.G_CREATE)
640 THEN
641 -- Hint: Validate data
642 -- IF p_CHECK_ID is not NULL and p_CHECK_ID <> G_MISS_CHAR
643 -- verify if data is valid
647 Open C1;
644 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
645 IF p_CHECK_ID is not NULL and p_CHECK_ID <> CSC_CORE_UTILS_PVT.G_MISS_NUM
646 THEN
648 Fetch C1 INTO l_dummy;
649 --IF C1%FOUND THEN
650 IF C1%NOTFOUND THEN
651 --Changed as % found is valid and %notfound
652 -- is error in this case
653 x_return_status := FND_API.G_RET_STS_ERROR;
654 CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg (
655 p_Api_Name => p_Api_Name,
656 p_Argument => 'p_CHECK_ID',
657 p_Argument_Value => to_char(p_CHECK_ID));
658 END IF;
659 Close C1;
660 END IF;
661 ELSIF(p_validation_mode = CSC_CORE_UTILS_PVT.G_UPDATE)
662 THEN
663 -- Hint: Validate data
664 -- IF p_CHECK_ID <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
665 -- verify if data is valid
666 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
667 IF p_CHECK_ID <> CSC_CORE_UTILS_PVT.G_MISS_NUM
668 THEN
669 --** update not allowed
670 NULL;
671 END IF;
672 END IF;
673
674 -- Standard call to get message count and if count is 1, get message info.
675 FND_MSG_PUB.Count_And_Get
676 ( p_count => x_msg_count,
677 p_data => x_msg_data
678 );
679
680 END Validate_CHECK_ID;
681
682
683 PROCEDURE Validate_SEQUENCE (
684 P_Api_Name IN VARCHAR2,
685 P_Init_Msg_List IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
686 P_Validation_mode IN VARCHAR2,
687 P_SEQUENCE IN NUMBER,
688 p_check_id IN NUMBER,
689 X_Return_Status OUT NOCOPY VARCHAR2,
690 X_Msg_Count OUT NOCOPY NUMBER,
691 X_Msg_Data OUT NOCOPY VARCHAR2
692 )
693 IS
694 Cursor C1 is
695 Select NULL
696 From csc_prof_check_rules_b
697 Where check_id = p_Check_id
698 And sequence = p_sequence;
699 l_dummy varchar2(30);
700 BEGIN
701
702 -- Initialize message list if p_init_msg_list is set to TRUE.
703 IF FND_API.to_Boolean( p_init_msg_list )
704 THEN
705 FND_MSG_PUB.initialize;
706 END IF;
707
708
709 -- Initialize API return status to SUCCESS
710 x_return_status := FND_API.G_RET_STS_SUCCESS;
711
712 -- validate NOT NULL column
713 IF(p_SEQUENCE is NULL)
714 THEN
715 x_return_status := FND_API.G_RET_STS_ERROR;
716 CSC_CORE_UTILS_PVT.mandatory_arg_error(
717 p_Api_name => p_Api_Name,
718 p_Argument => 'p_SEQUENCE',
719 p_Argument_Value => p_SEQUENCE);
720
721 END IF;
722
723 IF(p_validation_mode = CSC_CORE_UTILS_PVT.G_CREATE)
724 THEN
725 -- Hint: Validate data
726 -- IF p_SEQUENCE is not NULL and p_SEQUENCE <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
727 -- verify if data is valid
728 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
729
730 IF p_SEQUENCE <> CSC_CORE_UTILS_PVT.G_MISS_NUM
731 THEN
732 Open C1;
733 Fetch C1 into l_dummy;
734 IF C1%FOUND THEN
735 x_return_status := FND_API.G_RET_STS_ERROR;
736 CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg (
737 p_Api_Name => p_Api_Name,
738 p_Argument => 'p_CHECK_ID',
739 p_Argument_Value => to_char(p_CHECK_ID));
740 END IF;
741 Close C1;
742 END IF;
743 ELSIF(p_validation_mode = CSC_CORE_UTILS_PVT.G_UPDATE)
744 THEN
745 -- Hint: Validate data
746 -- IF p_SEQUENCE <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
747 -- verify if data is valid
748 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
749 IF p_SEQUENCE <> CSC_CORE_UTILS_PVT.G_MISS_NUM
750 THEN
751 --**cannot update sequence as part of pk
752 NULL;
753 END IF;
754 END IF;
755
756 END Validate_SEQUENCE;
757
758
759 PROCEDURE Validate_EXPR_TO_BLOCK_ID (
760 P_Api_Name IN VARCHAR2,
761 P_Init_Msg_List IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
762 P_Validation_mode IN VARCHAR2,
763 P_EXPR_TO_BLOCK_ID IN NUMBER,
764 X_Return_Status OUT NOCOPY VARCHAR2,
765 X_Msg_Count OUT NOCOPY NUMBER,
766 X_Msg_Data OUT NOCOPY VARCHAR2
767 )
768 IS
769 Cursor C1 is
770 Select NULL
771 From csc_prof_blocks_b
772 Where block_id = p_expr_to_block_id;
773 l_dummy varchar2(30);
774 BEGIN
775
776
777 -- Initialize message list if p_init_msg_list is set to TRUE.
778 IF FND_API.to_Boolean( p_init_msg_list )
779 THEN
780 FND_MSG_PUB.initialize;
781 END IF;
782
783
784 -- Initialize API return status to SUCCESS
785 x_return_status := FND_API.G_RET_STS_SUCCESS;
786
787 IF(p_validation_mode = CSC_CORE_UTILS_PVT.G_CREATE)
788 THEN
792 Fetch C1 into l_dummy;
789 IF p_EXPR_TO_BLOCK_ID is not NULL and p_EXPR_TO_BLOCK_ID <> CSC_CORE_UTILS_PVT.G_MISS_NUM
790 THEN
791 Open C1;
793 IF C1%NOTFOUND THEN
794 x_return_status := FND_API.G_RET_STS_ERROR;
795 CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg (
796 p_Api_Name => p_Api_Name,
797 p_Argument => 'p_Expr_to_BLOCK_ID',
798 p_Argument_Value => to_char(p_Expr_to_BLOCK_ID));
799 END IF;
800 Close C1;
801 END IF;
802
803 ELSIF(p_validation_mode = CSC_CORE_UTILS_PVT.G_UPDATE)
804 THEN
805 -- Hint: Validate data
806 -- IF p_BLOCK_ID <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
807 -- verify if data is valid
808 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
809 IF p_EXPR_TO_BLOCK_ID <> CSC_CORE_UTILS_PVT.G_MISS_NUM THEN
810 Open C1;
811 Fetch C1 into l_dummy;
812 IF C1%NOTFOUND THEN
813 x_return_status := FND_API.G_RET_STS_ERROR;
814 CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg (
815 p_Api_Name => p_Api_Name,
816 p_Argument => 'p_EXPR_To_BLOCK_ID',
817 p_Argument_Value => to_char(p_EXPR_TO_BLOCK_ID));
818 END IF;
819 Close C1;
820 END IF;
821 NULL;
822 END IF;
823
824 END Validate_Expr_to_Block_Id;
825
826
827
828 PROCEDURE Validate_BLOCK_ID (
829 P_Api_Name IN VARCHAR2,
830 P_Init_Msg_List IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
831 P_Validation_mode IN VARCHAR2,
832 P_BLOCK_ID IN NUMBER,
833 X_Return_Status OUT NOCOPY VARCHAR2,
834 X_Msg_Count OUT NOCOPY NUMBER,
835 X_Msg_Data OUT NOCOPY VARCHAR2
836 )
837 IS
838 Cursor C1 is
839 Select NULL
840 From csc_prof_blocks_b
841 Where block_id = p_block_id;
842 l_dummy varchar2(30);
843 BEGIN
844
845 -- Initialize message list if p_init_msg_list is set to TRUE.
846 IF FND_API.to_Boolean( p_init_msg_list )
847 THEN
848 FND_MSG_PUB.initialize;
849 END IF;
850
851
852 -- Initialize API return status to SUCCESS
853 x_return_status := FND_API.G_RET_STS_SUCCESS;
854
855 -- validate NOT NULL column
856 IF(p_BLOCK_ID is NULL)
857 THEN
858 --mandatory arg error
859 x_return_status := FND_API.G_RET_STS_ERROR;
860 CSC_CORE_UTILS_PVT.mandatory_arg_error(
861 p_Api_name => p_Api_Name,
862 p_Argument => 'p_BLOCK_ID',
863 p_Argument_Value => p_BLOCK_ID);
864
865 END IF;
866
867 IF(p_validation_mode = CSC_CORE_UTILS_PVT.G_CREATE)
868 THEN
869 -- Hint: Validate data
870 -- IF p_BLOCK_ID is not NULL and p_BLOCK_ID <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
871 -- verify if data is valid
872 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
873 IF p_BLOCK_ID is not NULL and p_BLOCK_ID <> CSC_CORE_UTILS_PVT.G_MISS_NUM
874 THEN
875 Open C1;
876 Fetch C1 into l_dummy;
877 IF C1%NOTFOUND THEN
878 x_return_status := FND_API.G_RET_STS_ERROR;
879 CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg (
880 p_Api_Name => p_Api_Name,
881 p_Argument => 'p_BLOCK_ID',
882 p_Argument_Value => to_char(p_BLOCK_ID));
883 END IF;
884 Close C1;
885 ELSE
886 x_return_status := FND_API.G_RET_STS_ERROR;
887 CSC_CORE_UTILS_PVT.mandatory_arg_error(
888 p_Api_name => p_Api_Name,
889 p_Argument => 'p_BLOCK_ID',
890 p_Argument_Value => p_BLOCK_ID);
891 END IF;
892
893 ELSIF(p_validation_mode = CSC_CORE_UTILS_PVT.G_UPDATE)
894 THEN
895 -- Hint: Validate data
896 -- IF p_BLOCK_ID <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
897 -- verify if data is valid
898 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
899 IF p_BLOCK_ID <> CSC_CORE_UTILS_PVT.G_MISS_NUM THEN
900 Open C1;
901 Fetch C1 into l_dummy;
902 IF C1%NOTFOUND THEN
903 x_return_status := FND_API.G_RET_STS_ERROR;
904 CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg (
905 p_Api_Name => p_Api_Name,
906 p_Argument => 'p_BLOCK_ID',
907 p_Argument_Value => to_char(p_BLOCK_ID));
908 END IF;
909 Close C1;
910 END IF;
911 END IF;
912
913 -- Standard call to get message count and if count is 1, get message info.
914 FND_MSG_PUB.Count_And_Get
915 ( p_count => x_msg_count,
916 p_data => x_msg_data
917 );
918
919 END Validate_BLOCK_ID;
920
921 /*
922 PROCEDURE build_rule(
923 p_CHK_RULES_Tbl IN CHK_RULES_Tbl_Type,
924 rule OUT NOCOPY VARCHAR2
925 )
926 IS
927 BEGIN
928
929 rule := 'SELECT 1 FROM dual WHERE';
930 FOR i IN 1..p_Chk_Rules_Tbl.Count LOOP
931
935 p_Chk_Rules_Tbl(i).block_id || ' AND customer_id = :customer_id' ||
932 rule := rule || ' ' || p_Chk_Rules_Tbl(i).logical_operator || ' ' ||
933 p_Chk_Rules_Tbl(i).left_paren ||
934 'EXISTS (SELECT 1 FROM csc_prof_block_results_b WHERE block_id = ' ||
936 ' AND value ' || p_Chk_Rules_Tbl(i).comparison_operator;
937 IF (p_Chk_Rules_Tbl(i).comparison_operator NOT IN ('IS NULL', 'IS NOT NULL')) THEN
938 rule := rule || ' ' || p_Chk_Rules_Tbl(i).expression1;
939 IF (p_Chk_Rules_Tbl(i).comparison_operator IN ('BETWEEN', 'NOT BETWEEN')) THEN
940 rule := ' AND ' || p_Chk_Rules_Tbl(i).EXPR_TO_BLOCK_ID;
941 END IF;
942 END IF;
943 rule := rule || ')' || p_Chk_Rules_Tbl(i).right_paren;
944
945 END LOOP;
946
947 END build_Rule;
948 */
949
950 PROCEDURE validate_rule(
951 p_Sql_Stmnt IN VARCHAR2,
952 X_return_Status OUT NOCOPY VARCHAR2
953 )
954 IS
955 cursor_id NUMBER;
956 BEGIN
957 -- Initialize API return status to SUCCESS
958 x_return_status := FND_API.G_RET_STS_SUCCESS;
959
960 cursor_id := dbms_sql.open_cursor;
961 dbms_sql.parse(cursor_id,p_Sql_Stmnt,dbms_Sql.native);
962 dbms_sql.close_cursor(cursor_id);
963 EXCEPTION
964 WHEN OTHERS THEN
965 IF (dbms_sql.is_open(cursor_id)) THEN
966 dbms_sql.close_cursor(cursor_id);
967 END IF;
968 x_return_status := FND_API.G_RET_STS_SUCCESS;
969 END;
970
971
972 /*
973 PROCEDURE Validate_CONDITION(
974 P_Api_Name IN VARCHAR2,
975 P_Init_Msg_List IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
976 P_Validation_mode IN VARCHAR2,
977 p_Chk_Rules_Tbl IN CHK_RULES_Tbl_Type,
978 X_Return_Status OUT NOCOPY VARCHAR2,
979 X_Msg_Count OUT NOCOPY NUMBER,
980 X_Msg_Data OUT NOCOPY VARCHAR2
981 )
982 IS
983 l_condition VARCHAR2(2000);
984 BEGIN
985
986 -- Initialize message list if p_init_msg_list is set to TRUE.
987 IF FND_API.to_Boolean( p_init_msg_list )
988 THEN
989 FND_MSG_PUB.initialize;
990 END IF;
991
992 -- Initialize API return status to SUCCESS
993 x_return_status := FND_API.G_RET_STS_SUCCESS;
994
995 -- build the rule using the table.
996 build_rule(p_Chk_Rules_Tbl,l_condition);
997
998 -- validate rule
999 validate_rule(l_condition,x_Return_status);
1000
1001 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1002 raise FND_API.G_EXC_ERROR;
1003 END IF;
1004
1005 -- Standard call to get message count and if count is 1, get message info.
1006 FND_MSG_PUB.Count_And_Get
1007 ( p_count => x_msg_count,
1008 p_data => x_msg_data
1009 );
1010
1011 END;
1012 */
1013
1014 PROCEDURE Validate_profile_check_rules(
1015 P_Api_Name IN VARCHAR2,
1016 P_Init_Msg_List IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
1017 P_Validation_level IN NUMBER := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
1018 P_Validation_mode IN VARCHAR2,
1019 P_CHK_RULES_Rec IN CHK_RULES_Rec_Type,
1020 X_Return_Status OUT NOCOPY VARCHAR2,
1021 X_Msg_Count OUT NOCOPY NUMBER,
1022 X_Msg_Data OUT NOCOPY VARCHAR2
1023 )
1024 IS
1025 l_api_name CONSTANT VARCHAR2(30) := 'Validate_profile_check_rules';
1026 l_Sequence varchar2(10);
1027 BEGIN
1028
1029
1030 -- Initialize API return status to SUCCESS
1031 x_return_status := FND_API.G_RET_STS_SUCCESS;
1032
1033
1034 Validate_CHECK_ID(
1035 p_api_name => p_api_name,
1036 p_init_msg_list => CSC_CORE_UTILS_PVT.G_FALSE,
1037 p_validation_mode => p_validation_mode,
1038 p_CHECK_ID => p_chk_rules_rec.CHECK_ID,
1039 x_return_status => x_return_status,
1040 x_msg_count => x_msg_count,
1041 x_msg_data => x_msg_data);
1042 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1043 raise FND_API.G_EXC_ERROR;
1044 END IF;
1045
1046 Validate_SEQUENCE(
1047 p_api_name => p_api_name,
1048 p_init_msg_list => CSC_CORE_UTILS_PVT.G_FALSE,
1049 p_validation_mode => p_validation_mode,
1050 p_SEQUENCE => P_CHK_RULES_Rec.SEQUENCE,
1051 p_CHECK_ID => p_CHK_RULES_Rec.Check_Id,
1052 x_return_status => x_return_status,
1053 x_msg_count => x_msg_count,
1054 x_msg_data => x_msg_data);
1055 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1056 raise FND_API.G_EXC_ERROR;
1057 END IF;
1058
1059
1060 Validate_BLOCK_ID(
1061 p_api_name => p_api_name,
1062 p_init_msg_list => CSC_CORE_UTILS_PVT.G_FALSE,
1063 p_validation_mode => p_validation_mode,
1064 p_BLOCK_ID => p_Chk_rules_rec.BLOCK_ID,
1065 x_return_status => x_return_status,
1066 x_msg_count => x_msg_count,
1067 x_msg_data => x_msg_data);
1068 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1069 raise FND_API.G_EXC_ERROR;
1070 END IF;
1071
1072
1073
1074 Validate_EXPR_TO_BLOCK_ID(
1075 p_api_name => p_api_name,
1076 p_init_msg_list => CSC_CORE_UTILS_PVT.G_FALSE,
1077 p_validation_mode => p_validation_mode,
1078 p_EXPR_TO_BLOCK_ID => p_Chk_rules_rec.Expr_TO_BLOCK_ID,
1079 x_return_status => x_return_status,
1080 x_msg_count => x_msg_count,
1081 x_msg_data => x_msg_data);
1082 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1083 raise FND_API.G_EXC_ERROR;
1084 END IF;
1085
1086 --Validate seeded flag
1087
1088 CSC_CORE_UTILS_PVT.Validate_Seeded_Flag(
1089 p_api_name =>'CSC_PROF_CHECK_RULES_PVT.VALIDATE_SEEDED_FLAG',
1090 p_seeded_flag => p_Chk_rules_rec.seeded_flag,
1091 x_return_status => x_return_status );
1092
1096
1093 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1094 RAISE FND_API.G_EXC_ERROR;
1095 END IF;
1097 /*
1098 Validate_CONDITION(
1099 p_api_name => p_api_name,
1100 p_init_msg_list => CSC_CORE_UTILS_PVT.G_FALSE,
1101 p_validation_mode => p_validation_mode,
1102 p_CHK_RULES_Tbl => P_CHK_RULES_Tbl,
1103 x_return_status => x_return_status,
1104 x_msg_count => x_msg_count,
1105 x_msg_data => x_msg_data);
1106 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1107 raise FND_API.G_EXC_ERROR;
1108 END IF;
1109 */
1110
1111 END Validate_profile_check_rules;
1112
1113 End CSC_PROFILE_CHECK_RULES_PVT;