DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSC_PROFILE_CHECK_PVT

Source


1 PACKAGE BODY CSC_PROFILE_CHECK_PVT as
2 /* $Header: cscvpckb.pls 120.1 2005/12/14 03:30:21 adhanara noship $ */
3 -- Start of Comments
4 -- Package name     : CSC_PROFILE_CHECK_PVT
5 -- Purpose          :
6 -- History          : Sudhakar 08/17/00 modified validate_check_name,
7 --                     validate_check_code and validate_select_block_id
8 --                  : 11/25/02 JAmose for the G_MISS* and NOCOPY changes
9 --                  : for performance reason
10 -- NOTE             :
11 -- End of Comments
12 
13 
14 G_PKG_NAME CONSTANT VARCHAR2(30):= 'CSC_PROFILE_CHECK_PVT';
15 G_FILE_NAME CONSTANT VARCHAR2(12) := 'cscvpckb.pls';
16 
17 G_UPDATE   CONSTANT VARCHAR2(30) := 'UPDATE';
18 G_CREATE   CONSTANT VARCHAR2(30) := 'CREATE';
19 
20 PROCEDURE Convert_Columns_to_Rec(
21    p_CHECK_ID			    IN   NUMBER DEFAULT NULL,
22    p_CHECK_NAME          IN   VARCHAR2,
23    p_CHECK_NAME_CODE     IN   VARCHAR2,
24    p_DESCRIPTION         IN   VARCHAR2 ,
25    p_START_DATE_ACTIVE   IN   DATE,
26    p_END_DATE_ACTIVE     IN   DATE,
27    p_SEEDED_FLAG         IN   VARCHAR2,
28    p_SELECT_TYPE         IN   VARCHAR2,
29    p_SELECT_BLOCK_ID     IN   NUMBER ,
30    p_DATA_TYPE           IN   VARCHAR2,
31    p_FORMAT_MASK             IN   VARCHAR2,
32    p_THRESHOLD_GRADE         IN   VARCHAR2,
33    p_THRESHOLD_RATING_CODE   IN   VARCHAR2,
34    p_CHECK_UPPER_LOWER_FLAG  IN   VARCHAR2,
35    p_THRESHOLD_COLOR_CODE    IN   VARCHAR2,
36    p_CHECK_LEVEL             IN   VARCHAR2,
37    p_CREATED_BY              IN   NUMBER ,
38    p_CREATION_DATE           IN   DATE   ,
39    p_LAST_UPDATED_BY         IN   NUMBER ,
40    p_LAST_UPDATE_DATE        IN   DATE   ,
41    p_LAST_UPDATE_LOGIN       IN   NUMBER ,
42    p_OBJECT_VERSION_NUMBER   IN   NUMBER DEFAULT NULL,
43    p_APPLICATION_ID          IN   NUMBER ,
44    X_Check_Rec     		     OUT NOCOPY  Check_Rec_Type
45    )
46 IS
47 BEGIN
48     X_Check_Rec.CHECK_ID    := p_CHECK_ID;
49     X_Check_Rec.CHECK_NAME  := p_CHECK_NAME;
50     X_Check_Rec.CHECK_NAME_CODE := p_CHECK_NAME_CODE;
51     X_Check_Rec.DESCRIPTION := p_DESCRIPTION;
52     X_Check_Rec.START_DATE_ACTIVE := p_START_DATE_ACTIVE;
53     X_Check_Rec.END_DATE_ACTIVE := p_END_DATE_ACTIVE;
54     X_Check_Rec.SEEDED_FLAG  := p_SEEDED_FLAG;
55     X_Check_Rec.SELECT_TYPE  := p_SELECT_TYPE;
56     X_Check_Rec.SELECT_BLOCK_ID  := p_SELECT_BLOCK_ID;
57     X_Check_Rec.DATA_TYPE  := p_DATA_TYPE;
58     X_Check_Rec.FORMAT_MASK := p_FORMAT_MASK;
59     X_Check_Rec.THRESHOLD_GRADE := p_THRESHOLD_GRADE;
60     X_Check_Rec.THRESHOLD_RATING_CODE := p_THRESHOLD_RATING_CODE;
61     X_Check_Rec.CHECK_UPPER_LOWER_FLAG := p_CHECK_UPPER_LOWER_FLAG;
62     X_Check_Rec.THRESHOLD_COLOR_CODE := p_THRESHOLD_COLOR_CODE;
63     X_Check_Rec.CHECK_LEVEL := p_CHECK_LEVEL;
64     X_Check_Rec.CREATED_BY := p_CREATED_BY;
65     X_Check_Rec.CREATION_DATE := p_CREATION_DATE;
66     X_Check_Rec.LAST_UPDATED_BY := p_LAST_UPDATED_BY;
67     X_Check_Rec.LAST_UPDATE_DATE := p_LAST_UPDATE_DATE;
68     X_Check_Rec.LAST_UPDATE_LOGIN :=  p_LAST_UPDATE_LOGIN;
69     X_Check_Rec.OBJECT_VERSION_NUMBER := p_OBJECT_VERSION_NUMBER;
70     X_Check_Rec.APPLICATION_ID := p_APPLICATION_ID;
71 END Convert_Columns_to_Rec;
72 
73 
74 PROCEDURE Create_Profile_Check(
75     P_Api_Version_Number         IN   NUMBER,
76     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
77     P_Commit                     IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
78     p_validation_level           IN   NUMBER       := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
79     p_CHECK_NAME                 IN   VARCHAR2 DEFAULT NULL,
80     p_CHECK_NAME_CODE            IN   VARCHAR2 DEFAULT NULL,
81     p_DESCRIPTION                IN   VARCHAR2 DEFAULT NULL,
82     p_START_DATE_ACTIVE          IN   DATE DEFAULT NULL,
83     p_END_DATE_ACTIVE            IN   DATE DEFAULT NULL,
84     p_SEEDED_FLAG                IN   VARCHAR2 DEFAULT NULL,
85     p_SELECT_TYPE                IN   VARCHAR2 DEFAULT NULL,
86     p_SELECT_BLOCK_ID            IN   NUMBER DEFAULT NULL,
87     p_DATA_TYPE                  IN   VARCHAR2 DEFAULT NULL,
88     p_FORMAT_MASK                IN   VARCHAR2 DEFAULT NULL,
89     p_THRESHOLD_GRADE            IN   VARCHAR2 DEFAULT NULL,
90     p_THRESHOLD_RATING_CODE      IN   VARCHAR2 DEFAULT NULL,
91     p_CHECK_UPPER_LOWER_FLAG     IN   VARCHAR2 DEFAULT NULL,
92     p_THRESHOLD_COLOR_CODE       IN   VARCHAR2 DEFAULT NULL,
93     p_CHECK_LEVEL                IN   VARCHAR2 DEFAULT NULL,
94     p_CREATED_BY                 IN   NUMBER DEFAULT NULL,
95     p_CREATION_DATE              IN   DATE DEFAULT NULL,
96     p_LAST_UPDATED_BY            IN   NUMBER DEFAULT NULL,
97     p_LAST_UPDATE_DATE           IN   DATE DEFAULT NULL,
98     p_LAST_UPDATE_LOGIN          IN   NUMBER DEFAULT NULL,
99     X_CHECK_ID     		   OUT NOCOPY NUMBER,
100     X_Object_Version_Number OUT NOCOPY  NUMBER,
101     p_APPLICATION_ID             IN   NUMBER  DEFAULT NULL,
102     X_Return_Status              OUT  NOCOPY VARCHAR2,
103     X_Msg_Count                  OUT  NOCOPY NUMBER,
104     X_Msg_Data                   OUT  NOCOPY VARCHAR2
105     )
106 IS
107  l_Check_Rec     Check_Rec_Type;
108 BEGIN
109 
110    Convert_Columns_to_Rec(
111     p_CHECK_NAME              => p_CHECK_NAME,
112     p_CHECK_NAME_CODE         => p_CHECK_NAME_CODE,
113     p_DESCRIPTION             => p_DESCRIPTION,
114     p_START_DATE_ACTIVE       => p_START_DATE_ACTIVE,
115     p_END_DATE_ACTIVE         => p_END_DATE_ACTIVE,
116     p_SEEDED_FLAG             => p_SEEDED_FLAG,
117     p_SELECT_TYPE             => p_SELECT_TYPE,
118     p_SELECT_BLOCK_ID         => p_SELECT_BLOCK_ID,
119     p_DATA_TYPE               => p_DATA_TYPE,
120     p_FORMAT_MASK             => p_FORMAT_MASK,
121     p_THRESHOLD_GRADE         => p_THRESHOLD_GRADE,
122     p_THRESHOLD_RATING_CODE   => p_THRESHOLD_RATING_CODE,
123     p_CHECK_UPPER_LOWER_FLAG  => p_CHECK_UPPER_LOWER_FLAG,
124     p_THRESHOLD_COLOR_CODE    => p_THRESHOLD_COLOR_CODE,
125     p_CHECK_LEVEL             => p_CHECK_LEVEL,
126     p_CREATED_BY              => p_CREATED_BY,
127     p_CREATION_DATE           => p_CREATION_DATE,
128     p_LAST_UPDATED_BY        => p_LAST_UPDATED_BY,
129     p_LAST_UPDATE_DATE       => p_LAST_UPDATE_DATE,
130     p_LAST_UPDATE_LOGIN      => p_LAST_UPDATE_LOGIN,
131     p_APPLICATION_ID         => p_APPLICATION_ID,
132     X_Check_Rec		     => l_Check_rec
133     );
134 
135 
136    Create_Profile_Check(
137     P_Api_Version_Number         => P_Api_Version_Number,
138     P_Init_Msg_List              => P_Init_Msg_List,
139     P_Commit                     => P_Commit,
140     p_validation_level           => p_validation_level,
141     P_Check_Rec     		 => l_Check_Rec,
142     X_CHECK_ID     		 => X_CHECK_ID,
143     X_OBJECT_VERSION_NUMBER      => X_OBJECT_VERSION_NUMBER,
144     X_Return_Status              => X_Return_Status,
145     X_Msg_Count                  => X_Msg_Count,
146     X_Msg_Data                   => X_Msg_Data
147     );
148 
149 END Create_Profile_Check;
150 
151 PROCEDURE Create_Profile_Check(
152     P_Api_Version_Number         IN   NUMBER,
153     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
154     P_Commit                     IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
155     p_validation_level           IN   NUMBER       := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
156     P_Check_Rec     		 IN   Check_Rec_Type := G_MISS_CHECK_REC,
157     X_CHECK_ID     		 OUT  NOCOPY NUMBER,
158     X_OBJECT_VERSION_NUMBER      OUT NOCOPY  NUMBER,
159     X_Return_Status              OUT NOCOPY VARCHAR2,
160     X_Msg_Count                  OUT NOCOPY NUMBER,
161     X_Msg_Data                   OUT NOCOPY VARCHAR2
162     )
163 
164 IS
165    l_api_name                CONSTANT VARCHAR2(30) := 'Create_Profile_Check';
166    l_api_version_number      CONSTANT NUMBER   := 1.0;
167    l_api_name_full VARCHAR2(61) := G_PKG_NAME || '.' || l_api_name ;
168 BEGIN
169 
170       -- Standard Start of API savepoint
171       SAVEPOINT CREATE_PROFILE_CHECK_PVT;
172 
173       -- Standard call to check for call compatibility.
174       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
175                          	             p_api_version_number,
176                                            l_api_name,
177                                            G_PKG_NAME)
178       THEN
179           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
180       END IF;
181 
182 
183       -- Initialize message list if p_init_msg_list is set to TRUE.
184       IF FND_API.to_Boolean( p_init_msg_list )
185       THEN
186           FND_MSG_PUB.initialize;
187       END IF;
188 
189 
190       -- Initialize API return status to SUCCESS
191       x_return_status := FND_API.G_RET_STS_SUCCESS;
192 
193 
194       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
195       THEN
196 
197           -- Invoke validation procedures
198           Validate_check(
199               p_init_msg_list    => FND_API.G_FALSE,
200               p_Validation_Level => p_Validation_Level,
201               p_Validation_Mode  => CSC_CORE_UTILS_PVT.G_CREATE,
202               p_CHECK_REC        => p_CHECK_REC,
203               x_return_status    => x_return_status,
204               x_msg_count        => x_msg_count,
205               x_msg_data         => x_msg_data);
206       END IF;
207       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
208           RAISE FND_API.G_EXC_ERROR;
209       END IF;
210 
211 
212       -- Invoke table handler(CSC_PROF_CHECKS_PKG.Insert_Row)
213       CSC_PROF_CHECKS_PKG.Insert_Row(
214           px_CHECK_ID             => x_CHECK_ID,
215           p_CHECK_NAME            => p_Check_rec.CHECK_NAME,
216           p_CHECK_NAME_CODE       => p_Check_rec.CHECK_NAME_CODE,
217           p_DESCRIPTION           => p_Check_rec.DESCRIPTION,
218           p_START_DATE_ACTIVE     => p_Check_rec.START_DATE_ACTIVE,
219           p_END_DATE_ACTIVE       => p_Check_rec.END_DATE_ACTIVE,
220           p_SEEDED_FLAG           => p_Check_rec.SEEDED_FLAG,
221           p_SELECT_TYPE           => p_Check_rec.SELECT_TYPE,
222           p_SELECT_BLOCK_ID       => p_Check_rec.SELECT_BLOCK_ID,
223           p_DATA_TYPE             => p_Check_rec.DATA_TYPE,
224           p_FORMAT_MASK           => p_Check_rec.FORMAT_MASK,
225           p_THRESHOLD_GRADE       => p_Check_rec.THRESHOLD_GRADE,
226           p_THRESHOLD_RATING_CODE => p_Check_rec.THRESHOLD_RATING_CODE,
227           p_CHECK_UPPER_LOWER_FLAG => p_Check_rec.CHECK_UPPER_LOWER_FLAG,
228           p_THRESHOLD_COLOR_CODE  => p_Check_rec.THRESHOLD_COLOR_CODE,
229           p_CHECK_LEVEL           => p_Check_rec.CHECK_LEVEL,
230           p_CREATED_BY            => FND_GLOBAL.USER_ID,
231           p_CREATION_DATE         => SYSDATE,
232           p_LAST_UPDATED_BY       => FND_GLOBAL.USER_ID,
233           p_LAST_UPDATE_DATE      => SYSDATE,
234           p_LAST_UPDATE_LOGIN     => p_Check_rec.LAST_UPDATE_LOGIN,
235 	  x_OBJECT_VERSION_NUMBER => X_OBJECT_VERSION_NUMBER,
236           p_APPLICATION_ID        => p_Check_rec.APPLICATION_ID);
237 
238       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
239           RAISE FND_API.G_EXC_ERROR;
240       END IF;
241 
242 
243       -- Standard check for p_commit
244       IF FND_API.to_Boolean( p_commit )
245       THEN
246           COMMIT WORK;
247       END IF;
248 
249 
250       -- Standard call to get message count and if count is 1, get message info.
251       FND_MSG_PUB.Count_And_Get
252       (  p_count          =>   x_msg_count,
253          p_data           =>   x_msg_data
254       );
255 
256    EXCEPTION
257   	WHEN FND_API.G_EXC_ERROR THEN
258     		ROLLBACK TO Create_Profile_Check_PVT;
259     		x_return_status := FND_API.G_RET_STS_ERROR;
260     		FND_MSG_PUB.Count_And_Get
261       			( p_count => x_msg_count,
262         		  p_data  => x_msg_data
263       			);
264                 APP_EXCEPTION.RAISE_EXCEPTION;
265   	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
266     		ROLLBACK TO Create_Profile_Check_PVT;
267     		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
268     		FND_MSG_PUB.Count_And_Get
269       			( p_count => x_msg_count,
270         		  p_data  => x_msg_data
271       			);
272                 APP_EXCEPTION.RAISE_EXCEPTION;
273   	WHEN OTHERS THEN
274     		ROLLBACK TO Create_Profile_Check_PVT;
275     		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
276       	FND_MSG_PUB.Build_Exc_Msg(G_PKG_NAME, l_api_name);
277     		FND_MSG_PUB.Count_And_Get
278       			( p_count => x_msg_count,
279         		  p_data  => x_msg_data
280       			);
281                 APP_EXCEPTION.RAISE_EXCEPTION;
282 End Create_Profile_Check;
283 
284 
285 PROCEDURE Update_Profile_Check(
286     P_Api_Version_Number         IN   NUMBER,
287     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
288     P_Commit                     IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
289     p_validation_level           IN   NUMBER       := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
290     p_CHECK_ID     		         IN   NUMBER  DEFAULT NULL,
291     p_CHECK_NAME                 IN   VARCHAR2 DEFAULT NULL,
292     p_CHECK_NAME_CODE            IN   VARCHAR2 DEFAULT NULL,
293     p_DESCRIPTION                IN   VARCHAR2 DEFAULT NULL,
294     p_START_DATE_ACTIVE          IN   DATE DEFAULT NULL,
295     p_END_DATE_ACTIVE            IN   DATE DEFAULT NULL,
296     p_SEEDED_FLAG                IN   VARCHAR2 DEFAULT NULL,
297     p_SELECT_TYPE                IN   VARCHAR2 DEFAULT NULL,
298     p_SELECT_BLOCK_ID            IN   NUMBER DEFAULT NULL,
299     p_DATA_TYPE                  IN   VARCHAR2 DEFAULT NULL,
300     p_FORMAT_MASK                IN   VARCHAR2 DEFAULT NULL,
301     p_THRESHOLD_GRADE            IN   VARCHAR2 DEFAULT NULL,
302     p_THRESHOLD_RATING_CODE      IN   VARCHAR2 DEFAULT NULL,
303     p_CHECK_UPPER_LOWER_FLAG     IN   VARCHAR2 DEFAULT NULL,
304     p_THRESHOLD_COLOR_CODE       IN   VARCHAR2 DEFAULT NULL,
305     p_CHECK_LEVEL                IN   VARCHAR2 DEFAULT NULL,
306     p_CREATED_BY                 IN   NUMBER DEFAULT NULL,
307     p_CREATION_DATE              IN   DATE DEFAULT NULL,
308     p_LAST_UPDATED_BY            IN   NUMBER DEFAULT NULL,
309     p_LAST_UPDATE_DATE           IN   DATE DEFAULT NULL,
310     p_LAST_UPDATE_LOGIN          IN   NUMBER DEFAULT NULL,
311     px_OBJECT_VERSION_NUMBER     IN OUT NOCOPY   NUMBER,
312     p_APPLICATION_ID             IN NUMBER DEFAULT NULL,
313     X_Return_Status              OUT NOCOPY VARCHAR2,
314     X_Msg_Count                  OUT NOCOPY NUMBER,
315     X_Msg_Data                   OUT NOCOPY VARCHAR2
316     )
317 IS
318  l_Check_Rec   Check_Rec_Type;
319 BEGIN
320 
321    Convert_Columns_to_Rec(
322     p_CHECK_ID			=> p_CHECK_ID,
323     p_CHECK_NAME              => p_CHECK_NAME,
324     p_CHECK_NAME_CODE         => p_CHECK_NAME_CODE,
325     p_DESCRIPTION             => p_DESCRIPTION,
326     p_START_DATE_ACTIVE       => p_START_DATE_ACTIVE,
327     p_END_DATE_ACTIVE         => p_END_DATE_ACTIVE,
328     p_SEEDED_FLAG             => p_SEEDED_FLAG,
329     p_SELECT_TYPE             => p_SELECT_TYPE,
330     p_SELECT_BLOCK_ID         => p_SELECT_BLOCK_ID,
331     p_DATA_TYPE               => p_DATA_TYPE,
332     p_FORMAT_MASK             => p_FORMAT_MASK,
333     p_THRESHOLD_GRADE         => p_THRESHOLD_GRADE,
334     p_THRESHOLD_RATING_CODE   => p_THRESHOLD_RATING_CODE,
335     p_CHECK_UPPER_LOWER_FLAG  => p_CHECK_UPPER_LOWER_FLAG,
336     p_THRESHOLD_COLOR_CODE    => p_THRESHOLD_COLOR_CODE,
337     p_CHECK_LEVEL             => p_CHECK_LEVEL,
338     p_CREATED_BY              => p_CREATED_BY,
339     p_CREATION_DATE          => p_CREATION_DATE,
340     p_LAST_UPDATED_BY        => p_LAST_UPDATED_BY,
341     p_LAST_UPDATE_DATE       => p_LAST_UPDATE_DATE,
342     p_LAST_UPDATE_LOGIN      => p_LAST_UPDATE_LOGIN,
343     p_APPLICATION_ID         => p_APPLICATION_ID,
344     X_Check_Rec		     => l_Check_rec
345     );
346 
347 
348    Update_Profile_check(
349     P_Api_Version_Number => P_Api_Version_Number,
350     P_Init_Msg_List    => P_Init_Msg_List,
351     P_Commit           => P_Commit,
352     p_validation_level => p_validation_level,
356     X_Msg_Count        => X_Msg_Count,
353     P_CHECK_REC        => l_CHECK_REC,
354     PX_OBJECT_VERSION_NUMBER => px_OBJECT_VERSION_NUMBER,
355     X_Return_Status    => X_Return_Status,
357     X_Msg_Data         => X_Msg_Data
358     );
359 
360 END;
361 
362 
363 PROCEDURE Update_Profile_check(
364     P_Api_Version_Number         IN   NUMBER,
365     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
366     P_Commit                     IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
367     p_validation_level           IN   NUMBER       := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
368     P_Check_Rec     		   IN   Check_Rec_Type,
369     PX_Object_Version_Number     IN OUT NOCOPY NUMBER,
370     X_Return_Status              OUT NOCOPY VARCHAR2,
371     X_Msg_Count                  OUT NOCOPY NUMBER,
372     X_Msg_Data                   OUT NOCOPY VARCHAR2
373     )
374 
375  IS
376 Cursor C_Get_check(c_CHECK_ID Number,c_object_version_number NUMBER) IS
377     Select rowid,
378            CHECK_ID,
379            CHECK_NAME,
380            CHECK_NAME_CODE,
381            DESCRIPTION,
382            START_DATE_ACTIVE,
383            END_DATE_ACTIVE,
384            SEEDED_FLAG,
385            SELECT_TYPE,
386            SELECT_BLOCK_ID,
387            DATA_TYPE,
388            FORMAT_MASK,
389            THRESHOLD_GRADE,
390            THRESHOLD_RATING_CODE,
391            CHECK_UPPER_LOWER_FLAG,
392            THRESHOLD_COLOR_CODE,
393            CHECK_LEVEL,
394            CREATED_BY,
395            CREATION_DATE,
396            LAST_UPDATED_BY,
397            LAST_UPDATE_DATE,
398            LAST_UPDATE_LOGIN,
399 	   OBJECT_VERSION_NUMBER,
400            APPLICATION_ID
401     From  CSC_PROF_CHECKS_VL
402     where check_id = c_check_id
403     and object_version_number = c_object_version_number
404     For Update NOWAIT;
405 l_api_name                CONSTANT VARCHAR2(30) := 'Update_Profile_check';
406 l_api_version_number      CONSTANT NUMBER   := 1.0;
407 -- Local Variables
408 l_ref_Check_rec  CSC_Profile_check_PVT.Check_Rec_Type;
409 l_rowid  ROWID;
410  BEGIN
411       -- Standard Start of API savepoint
412       SAVEPOINT UPDATE_PROFILE_CHECK_PVT;
413 
414       -- Standard call to check for call compatibility.
415       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
416                          	             p_api_version_number,
417                                            l_api_name,
418                                            G_PKG_NAME)
419       THEN
420           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
421       END IF;
422 
423       -- Initialize message list if p_init_msg_list is set to TRUE.
424       IF FND_API.to_Boolean( p_init_msg_list )
425       THEN
426           FND_MSG_PUB.initialize;
427       END IF;
428 
429       -- Initialize API return status to SUCCESS
430       x_return_status := FND_API.G_RET_STS_SUCCESS;
431 
432       --
433       -- Api body
434       --
435 
436       Open C_Get_check( p_Check_rec.CHECK_ID, px_object_version_number);
437 
438       Fetch C_Get_check into
439                l_rowid,
440                l_ref_Check_rec.CHECK_ID,
441                l_ref_Check_rec.CHECK_NAME,
442                l_ref_Check_rec.CHECK_NAME_CODE,
443                l_ref_Check_rec.DESCRIPTION,
444                l_ref_Check_rec.START_DATE_ACTIVE,
445                l_ref_Check_rec.END_DATE_ACTIVE,
446                l_ref_Check_rec.SEEDED_FLAG,
447                l_ref_Check_rec.SELECT_TYPE,
448                l_ref_Check_rec.SELECT_BLOCK_ID,
449                l_ref_Check_rec.DATA_TYPE,
450                l_ref_Check_rec.FORMAT_MASK,
451                l_ref_Check_rec.THRESHOLD_GRADE,
452                l_ref_Check_rec.THRESHOLD_RATING_CODE,
453                l_ref_Check_rec.CHECK_UPPER_LOWER_FLAG,
454                l_ref_Check_rec.THRESHOLD_COLOR_CODE,
455                l_ref_Check_rec.CHECK_LEVEL,
456                l_ref_Check_rec.CREATED_BY,
457                l_ref_Check_rec.CREATION_DATE,
458                l_ref_Check_rec.LAST_UPDATED_BY,
459                l_ref_Check_rec.LAST_UPDATE_DATE,
460                l_ref_Check_rec.LAST_UPDATE_LOGIN,
461 	       l_ref_Check_rec.OBJECT_VERSION_NUMBER,
462                l_ref_Check_rec.APPLICATION_ID;
463 
464        If ( C_Get_check%NOTFOUND) Then
465            close C_Get_Check;
466            IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
467            THEN
468                CSC_CORE_UTILS_PVT.RECORD_IS_LOCKED_MSG(p_Api_Name => l_api_name);
469                --FND_MESSAGE.Set_Name('CSC', 'API_MISSING_UPDATE_TARGET');
470                --FND_MESSAGE.Set_Token ('INFO', 'CHECK', FALSE);
471                --FND_MSG_PUB.Add;
472            END IF;
473            raise FND_API.G_EXC_ERROR;
474        END IF;
475        IF C_Get_Check%ISOPEN THEN
476         CLOSE C_Get_Check;
477        END IF;
478 
479       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
480       THEN
481 
482           -- Invoke validation procedures
483           Validate_check(
484               p_init_msg_list    => FND_API.G_FALSE,
485               p_validation_level => p_validation_level,
489               x_msg_count        => x_msg_count,
486               p_validation_mode  => CSC_CORE_UTILS_PVT.G_UPDATE,
487               P_Check_Rec  =>  P_Check_Rec,
488               x_return_status    => x_return_status,
490               x_msg_data         => x_msg_data);
491       END IF;
492 
493       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
494           RAISE FND_API.G_EXC_ERROR;
495       END IF;
496 
497 
498       -- Invoke table handler(CS_PROF_CHECKS_PKG.Update_Row)
499       CSC_PROF_CHECKS_PKG.Update_Row(
500           p_CHECK_ID  => csc_core_utils_pvt.get_g_miss_num(p_Check_rec.CHECK_ID,l_ref_Check_rec.CHECK_ID),
501           p_CHECK_NAME  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.CHECK_NAME,l_ref_Check_rec.CHECK_NAME),
502           p_CHECK_NAME_CODE  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.CHECK_NAME_CODE,l_ref_Check_rec.CHECK_NAME_CODE),
503           p_DESCRIPTION  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.DESCRIPTION,l_ref_Check_rec.DESCRIPTION),
504           p_START_DATE_ACTIVE  => csc_core_utils_pvt.get_g_miss_date(p_Check_rec.START_DATE_ACTIVE,l_ref_Check_rec.START_DATE_ACTIVE),
505           p_END_DATE_ACTIVE  => csc_core_utils_pvt.get_g_miss_date(p_Check_rec.END_DATE_ACTIVE,l_ref_Check_rec.END_DATE_ACTIVE),
506           p_SEEDED_FLAG  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.SEEDED_FLAG,l_ref_Check_rec.SEEDED_FLAG),
507           p_SELECT_TYPE  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.SELECT_TYPE,l_ref_Check_rec.SELECT_TYPE),
508           p_SELECT_BLOCK_ID  => csc_core_utils_pvt.get_g_miss_num(p_Check_rec.SELECT_BLOCK_ID,l_ref_Check_rec.SELECT_BLOCK_ID),
509           p_DATA_TYPE  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.DATA_TYPE,l_ref_Check_rec.DATA_TYPE),
510           p_FORMAT_MASK  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.FORMAT_MASK,l_ref_Check_rec.FORMAT_MASK),
511           p_THRESHOLD_GRADE  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.THRESHOLD_GRADE,l_ref_Check_rec.THRESHOLD_GRADE),
512           p_THRESHOLD_RATING_CODE  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.THRESHOLD_RATING_CODE,l_ref_Check_rec.THRESHOLD_RATING_CODE),
513           p_CHECK_UPPER_LOWER_FLAG  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.CHECK_UPPER_LOWER_FLAG,l_ref_Check_rec.CHECK_UPPER_LOWER_FLAG),
514           p_THRESHOLD_COLOR_CODE  => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.THRESHOLD_COLOR_CODE,l_ref_Check_rec.THRESHOLD_COLOR_CODE),
515           p_CHECK_LEVEL           => csc_core_utils_pvt.get_g_miss_char(p_Check_rec.CHECK_LEVEL,l_ref_Check_rec.CHECK_LEVEL),
516           p_LAST_UPDATED_BY  => FND_GLOBAL.USER_ID,
517           p_LAST_UPDATE_DATE  => SYSDATE,
518           p_LAST_UPDATE_LOGIN  => p_Check_rec.LAST_UPDATE_LOGIN,
519 	       px_OBJECT_VERSION_NUMBER => px_OBJECT_VERSION_NUMBER,
520           p_APPLICATION_ID   => csc_core_utils_pvt.get_g_miss_num(p_Check_rec.APPLICATION_ID,l_ref_Check_rec.APPLICATION_ID));
521 
522       --
523       -- End of API body.
524       --
525 
526       -- Standard check for p_commit
527       IF FND_API.to_Boolean( p_commit )
528       THEN
529           COMMIT WORK;
530       END IF;
531 
532 
533       -- Standard call to get message count and if count is 1, get message info.
534       FND_MSG_PUB.Count_And_Get
535       (  p_count          =>   x_msg_count,
536          p_data           =>   x_msg_data
537       );
538 
539    EXCEPTION
540   	WHEN FND_API.G_EXC_ERROR THEN
541     		ROLLBACK TO Update_Profile_check_PVT;
542     		x_return_status := FND_API.G_RET_STS_ERROR;
543     		FND_MSG_PUB.Count_And_Get
544       			( p_encoded => FND_API.G_FALSE,p_count => x_msg_count,
545         		  	  p_data  => x_msg_data
546       			);
547           APP_EXCEPTION.RAISE_EXCEPTION;
548   	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
549     		ROLLBACK TO Update_Profile_check_PVT;
550     		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
551     		FND_MSG_PUB.Count_And_Get
552       			( p_count => x_msg_count,
553         		  	  p_data  => x_msg_data
554       			);
555          APP_EXCEPTION.RAISE_EXCEPTION;
556   	WHEN OTHERS THEN
557     		ROLLBACK TO Update_Profile_check_PVT;
558     		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
559       	FND_MSG_PUB.Build_Exc_Msg(G_PKG_NAME, l_api_name);
560     		FND_MSG_PUB.Count_And_Get
561       			( p_count => x_msg_count,
562         		  	  p_data  => x_msg_data
563       			);
564           APP_EXCEPTION.RAISE_EXCEPTION;
565 End Update_Profile_check;
566 
567 PROCEDURE Delete_profile_check(
568     P_Api_Version_Number         IN   NUMBER,
569     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
570     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
571     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
572     p_Check_Id			   IN   NUMBER,
573     p_OBJECT_VERSION_NUMBER      IN   NUMBER,
574     X_Return_Status              OUT NOCOPY VARCHAR2,
575     X_Msg_Count                  OUT NOCOPY NUMBER,
576     X_Msg_Data                   OUT NOCOPY VARCHAR2
577     )
578 
579  IS
580 l_api_name                CONSTANT VARCHAR2(30) := 'Delete_profile_check';
581 l_api_version_number      CONSTANT NUMBER   := 1.0;
582  BEGIN
583       -- Standard Start of API savepoint
584       SAVEPOINT DELETE_Profile_Checks_PVT;
585 
586       -- Standard call to check for call compatibility.
587       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
591       THEN
588                          	             p_api_version_number,
589                                            l_api_name,
590                                            G_PKG_NAME)
592           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
593       END IF;
594 
595 
596       -- Initialize message list if p_init_msg_list is set to TRUE.
597       IF FND_API.to_Boolean( p_init_msg_list )
598       THEN
599           FND_MSG_PUB.initialize;
600       END IF;
601 
602 
603 
604       -- Initialize API return status to SUCCESS
605       x_return_status := FND_API.G_RET_STS_SUCCESS;
606 
607       --
608       -- Api body
609       --
610       -- Invoke table handler(CSC_PROF_CHECKS_B_PKG.Delete_Row)
611       CSC_PROF_CHECKS_PKG.Delete_Row(
612           p_CHECK_ID  => p_CHECK_ID,
613           p_OBJECT_VERSION_NUMBER => p_OBJECT_VERSION_NUMBER );
614       --
615       -- End of API body
616       --
617 
618       -- Standard check for p_commit
619       IF FND_API.to_Boolean( p_commit )
620       THEN
621           COMMIT WORK;
622       END IF;
623 
624 
625       -- Standard call to get message count and if count is 1, get message info.
626       FND_MSG_PUB.Count_And_Get
627       (  p_count          =>   x_msg_count,
628          p_data           =>   x_msg_data
629       );
630 
631       EXCEPTION
632   	WHEN FND_API.G_EXC_ERROR THEN
633     		ROLLBACK TO DELETE_Profile_Checks_PVT;
634     		x_return_status := FND_API.G_RET_STS_ERROR;
635     		FND_MSG_PUB.Count_And_Get( p_encoded => FND_API.G_FALSE,p_count => x_msg_count,
636         		  	  p_data  => x_msg_data
637       			);
638           APP_EXCEPTION.RAISE_EXCEPTION;
639   	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
640     		ROLLBACK TO DELETE_Profile_Checks_PVT;
641     		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
642     		FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
643         		  	  p_data  => x_msg_data
644       			);
645          APP_EXCEPTION.RAISE_EXCEPTION;
646   	WHEN OTHERS THEN
647     		ROLLBACK TO DELETE_Profile_Checks_PVT;
648     		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
649       	FND_MSG_PUB.Build_Exc_Msg(G_PKG_NAME, l_api_name);
650     		FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
651         		  	  p_data  => x_msg_data
652       			);
653             APP_EXCEPTION.RAISE_EXCEPTION;
654 End Delete_profile_check;
655 
656 
657 
658 PROCEDURE Validate_CHECK_NAME (
659     p_Api_Name		IN	VARCHAR2,
660     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
661     P_Validation_mode            IN   VARCHAR2,
662     P_CHECK_NAME                 IN   VARCHAR2,
663     P_check_id			   IN   NUMBER,
664     X_Return_Status              OUT  NOCOPY VARCHAR2
665     )
666 IS
667 Cursor C2  is
668  Select check_id
669  from csc_prof_checks_tl
670  where check_name = p_check_name
671  and language = userenv('LANG');
672 --local variables
673 l_dummy NUMBER;
674 BEGIN
675 
676       -- Initialize API return status to SUCCESS
677       x_return_status := FND_API.G_RET_STS_SUCCESS;
678 
679       -- Initialize message list if p_init_msg_list is set to TRUE.
680       IF FND_API.to_Boolean( p_init_msg_list )
681       THEN
682           FND_MSG_PUB.initialize;
683       END IF;
684 
685       -- validate NOT NULL column
686       IF (p_CHECK_NAME is NULL)
687       THEN
688 	    --Mandatory argument error..
689           x_return_status := FND_API.G_RET_STS_ERROR;
690 	    CSC_CORE_UTILS_PVT.mandatory_arg_error(
691 			p_api_name => p_api_name,
692 			p_argument => 'p_check_name',
693 			p_argument_value => p_check_name);
694       END IF;
695 
696       IF(p_validation_mode = G_CREATE)
697       THEN
698           -- IF p_CHECK_NAME is not NULL and p_CHECK_NAME <> G_MISS_CHAR
699           -- verify if data is valid
700           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
701 	    IF (p_check_name is not NULL and p_CHECK_NAME <> CSC_CORE_UTILS_PVT.G_MISS_CHAR)
702 	    THEN
703 		Open C2;
704 		Fetch C2 into l_dummy;
705 		  IF C2%FOUND THEN
706           	x_return_status := FND_API.G_RET_STS_ERROR;
707 			CSC_CORE_UTILS_PVT.Add_Duplicate_Value_Msg(
708 		    		p_api_name	=> p_api_name,
709 		     	p_argument	=> 'p_check_name' ,
710   		     	p_argument_value => p_check_name);
711 		  END IF;
712 		Close C2;
713 	    ELSE
714           		x_return_status := FND_API.G_RET_STS_ERROR;
715 	    		CSC_CORE_UTILS_PVT.mandatory_arg_error(
716 				p_api_name => p_api_name,
717 				p_argument => 'p_check_name',
718 				p_argument_value => p_check_name);
719 
720 	    END IF;
721       ELSIF(p_validation_mode = G_UPDATE)
722       THEN
723          -- if the check name is passed in and as NULL then
724          -- its a mandatory argument error.
725          if ( p_check_name IS NULL ) then
726 	       x_return_status := FND_API.G_RET_STS_ERROR;
727 	       CSC_CORE_UTILS_PVT.mandatory_arg_error(
728 		                                   p_api_name => p_api_name,
729 									p_argument => 'p_check_name',
730 									p_argument_value => p_check_name);
734 	    ELSIF p_CHECK_NAME <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
731           -- IF p_CHECK_NAME <> G_MISS_CHAR
732           -- verify if data is valid
733           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
735 	    THEN
736 		Open C2;
737 		Loop
738 		  Fetch C2 into l_dummy;
739 		  IF (l_dummy <> p_Check_id) THEN
740           	x_return_status := FND_API.G_RET_STS_ERROR;
741 	    		CSC_CORE_UTILS_PVT.mandatory_arg_error(
742 				p_api_name => p_api_name,
743 				p_argument => 'p_check_name',
744 				p_argument_value => p_check_name);
745 				exit;
746 			else
747 			  exit;
748 		  END IF;
749 		End Loop;
750 		Close C2;
751         END IF;
752       END IF;
753 
754 END Validate_CHECK_NAME;
755 
756 
757 PROCEDURE Validate_CHECK_NAME_CODE (
758     P_Api_Name			   IN	  VARCHAR2,
759     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
760     P_Validation_mode            IN   VARCHAR2,
761     P_CHECK_NAME_CODE            IN   VARCHAR2,
762     P_check_id			   IN   NUMBER,
763     X_Return_Status              OUT  NOCOPY VARCHAR2,
764     X_Msg_Count                  OUT  NOCOPY NUMBER,
765     X_Msg_Data                   OUT  NOCOPY VARCHAR2
766     )
767 IS
768 Cursor C2  is
769  Select check_id
770  from csc_prof_checks_b
771  where check_name_code = p_check_name_code;
772 --local variables
773 l_dummy NUMBER;
774 BEGIN
775 
776       -- Initialize message list if p_init_msg_list is set to TRUE.
777       IF FND_API.to_Boolean( p_init_msg_list )
778       THEN
779           FND_MSG_PUB.initialize;
780       END IF;
781 
782 
783       -- Initialize API return status to SUCCESS
784       x_return_status := FND_API.G_RET_STS_SUCCESS;
785 
786 
787       -- validate NOT NULL column
788       IF (p_CHECK_NAME_CODE is NULL)
789       THEN
790 	    --Mandatory argument error..
791           x_return_status := FND_API.G_RET_STS_ERROR;
792 	    CSC_CORE_UTILS_PVT.mandatory_arg_error(
793 			p_api_name => p_api_name,
794 			p_argument => 'p_check_name_code',
795 			p_argument_value => p_check_name_code);
796       END IF;
797 
798       IF(p_validation_mode = G_CREATE)
799       THEN
800           -- Hint: Validate data
801           -- IF p_CHECK_NAME_CODE is not NULL and p_CHECK_NAME_CODE <> G_MISS_CHAR
802           -- verify if data is valid
803           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
804 	    IF (p_CHECK_NAME_CODE is not NULL and p_CHECK_NAME_CODE <> CSC_CORE_UTILS_PVT.G_MISS_CHAR)
805 	    THEN
806 		Open C2;
807 		Fetch C2 into l_dummy;
808 		  IF C2%FOUND THEN
809           		x_return_status := FND_API.G_RET_STS_ERROR;
810 			CSC_CORE_UTILS_PVT.Add_Duplicate_Value_Msg(
811 		    		p_api_name	=> p_api_name,
812 		     		p_argument	=> 'p_check_name_code' ,
813   		     		p_argument_value => p_check_name_code);
814 		  END IF;
815 		Close C2;
816 	    ELSE
817           		x_return_status := FND_API.G_RET_STS_ERROR;
818 	    		CSC_CORE_UTILS_PVT.mandatory_arg_error(
819 				p_api_name => p_api_name,
820 				p_argument => 'p_check_name_code',
821 				p_argument_value => p_check_name_code);
822 
823 	    END IF;
824       ELSIF(p_validation_mode = G_UPDATE)
825       THEN
826          -- if the check name code is passed in and as NULL then
827          -- its a mandatory argument error.
828          if ( p_check_name_code IS NULL ) then
829 	       x_return_status := FND_API.G_RET_STS_ERROR;
830 	       CSC_CORE_UTILS_PVT.mandatory_arg_error(
831 		                              p_api_name => p_api_name,
832 								p_argument => 'p_check_name_code',
833 								p_argument_value => p_check_name_code);
834           -- Hint: Validate data
835           -- IF p_CHECK_NAME_CODE <> G_MISS_CHAR
836           -- verify if data is valid
837           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
838 	    ELSIF p_CHECK_NAME_CODE <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
839 	    THEN
840 		Open C2;
841 		Loop
842 		  Fetch C2 into l_dummy;
843 		  IF (l_dummy <> p_Check_id) THEN
844           	x_return_status := FND_API.G_RET_STS_ERROR;
845 	    		CSC_CORE_UTILS_PVT.mandatory_arg_error(
846 				p_api_name => p_api_name,
847 				p_argument => 'p_check_name_code',
848 				p_argument_value => p_check_name_code);
849 				exit;
850 			else
851 				exit;
852 		  END IF;
853 		End Loop;
854 		Close C2;
855          END IF;
856       END IF;
857 
858 END Validate_CHECK_NAME_CODE;
859 
860 
861 PROCEDURE Validate_START_END_DATE(
862     P_Api_Name			   IN	  VARCHAR2,
863     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
864     P_Validation_mode            IN   VARCHAR2,
865     P_START_DATE_ACTIVE          IN   DATE,
866     P_END_DATE			   IN	  DATE,
867     X_Return_Status              OUT NOCOPY  VARCHAR2,
868     X_Msg_Count                  OUT NOCOPY NUMBER,
869     X_Msg_Data                   OUT NOCOPY VARCHAR2
870     )
871 IS
872 BEGIN
873 
874       -- Initialize message list if p_init_msg_list is set to TRUE.
875       IF FND_API.to_Boolean( p_init_msg_list )
876       THEN
880 
877           FND_MSG_PUB.initialize;
878       END IF;
879 
881       -- Initialize API return status to SUCCESS
882       x_return_status := FND_API.G_RET_STS_SUCCESS;
883 
884   	CSC_CORE_UTILS_PVT.Validate_Start_End_Dt
885    		( p_api_name 		=> p_Api_name,
886      		  p_start_date		=> p_start_date_active,
887      		  p_end_date		=> p_end_date,
888      		  x_return_status	=> x_return_status );
889   	IF (x_return_status  <> FND_API.G_RET_STS_SUCCESS) THEN
890        	x_return_status := FND_API.G_RET_STS_ERROR;
891   	END IF;
892 
893       -- Standard call to get message count and if count is 1, get message info.
894       FND_MSG_PUB.Count_And_Get
895       (  p_count          =>   x_msg_count,
896          p_data           =>   x_msg_data
897       );
898 
899 END Validate_START_END_DATE;
900 
901 
902 PROCEDURE Validate_SEEDED_FLAG (
903     P_Api_Name			 IN   VARCHAR2,
904     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
905     P_Validation_mode            IN   VARCHAR2,
906     P_SEEDED_FLAG                IN   VARCHAR2,
907     X_Return_Status              OUT NOCOPY VARCHAR2,
908     X_Msg_Count                  OUT NOCOPY NUMBER,
909     X_Msg_Data                   OUT NOCOPY VARCHAR2
910     )
911 IS
912 BEGIN
913 
914       -- Initialize message list if p_init_msg_list is set to TRUE.
915       IF FND_API.to_Boolean( p_init_msg_list )
916       THEN
917           FND_MSG_PUB.initialize;
918       END IF;
919 
920 
921       -- Initialize API return status to SUCCESS
922       x_return_status := FND_API.G_RET_STS_SUCCESS;
923 
924 
925 
926 	-- Check if the seeded flag is passed in and is not null, if passed in
927   	-- check if the lookup code exists in fnd lookups for this date, if not
928   	-- its an invalid argument.
929   	IF (( p_seeded_flag <> CSC_CORE_UTILS_PVT.G_MISS_CHAR ) AND ( p_seeded_flag IS NOT NULL ))
930 	THEN
931     		IF CSC_CORE_UTILS_PVT.lookup_code_not_exists(
932  			p_effective_date  => trunc(sysdate),
933   			p_lookup_type     => 'YES_NO',
934   			p_lookup_code     => p_seeded_flag ) <> FND_API.G_RET_STS_SUCCESS
935       	THEN
936         		x_return_status := FND_API.G_RET_STS_ERROR;
937         		CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
938 					p_api_name => p_api_name,
939 			            p_argument_value  => p_seeded_flag,
940 			            p_argument  => 'p_seeded_flag');
941      		END IF;
942   	END IF;
943 
944       -- Standard call to get message count and if count is 1, get message info.
945       FND_MSG_PUB.Count_And_Get
946       (  p_count          =>   x_msg_count,
947          p_data           =>   x_msg_data
948       );
949 
950 END Validate_SEEDED_FLAG;
951 
952 PROCEDURE Validate_check_level
953 ( p_api_name        IN  VARCHAR2,
954   p_parameter_name  IN  VARCHAR2,
955   p_check_level     IN  VARCHAR2,
956   x_return_status   OUT NOCOPY VARCHAR2
957 ) IS
958   --
959  BEGIN
960   --
961   x_return_status := FND_API.G_RET_STS_SUCCESS;
962 
963   -- check if the check_level is passed in and is not
964   -- null
965 
966   IF (( p_check_level <> CSC_CORE_UTILS_PVT.G_MISS_CHAR ) AND
967         ( p_check_level IS NOT NULL )) THEN
968     IF (p_check_level <> 'PARTY' AND p_check_level <> 'ACCOUNT'AND p_check_level <> 'CONTACT' AND p_check_level <> 'EMPLOYEE')
969     THEN
970         x_return_status := FND_API.G_RET_STS_ERROR;
971         CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(p_api_name => p_api_name,
972                                           p_argument_value  => p_check_level,
973                                              p_argument  => p_parameter_name);
974  END IF;
975   END IF;
976 END Validate_check_Level;
977 
978 
979 
980 PROCEDURE Validate_SELECT_TYPE (
981     p_Api_Name			 IN   VARCHAR2,
982     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
983     P_Validation_mode            IN   VARCHAR2,
984     P_SELECT_TYPE                IN   VARCHAR2,
985     X_Return_Status              OUT NOCOPY VARCHAR2,
986     X_Msg_Count                  OUT NOCOPY NUMBER,
987     X_Msg_Data                   OUT NOCOPY VARCHAR2
988     )
989 IS
990 BEGIN
991 
992       -- Initialize message list if p_init_msg_list is set to TRUE.
993       IF FND_API.to_Boolean( p_init_msg_list )
994       THEN
995           FND_MSG_PUB.initialize;
996       END IF;
997 
998 
999       -- Initialize API return status to SUCCESS
1000       x_return_status := FND_API.G_RET_STS_SUCCESS;
1001 
1002 
1003       IF NOT p_select_type in ('B','T') THEN
1004 		x_return_status := FND_API.G_RET_STS_ERROR;
1005          	CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
1006 			      p_api_name => p_api_name,
1007                      p_argument => 'P_SELECT_TYPE',
1008 	                p_argument_value  => p_select_type);
1009       END IF;
1010 
1011 
1012       -- Standard call to get message count and if count is 1, get message info.
1013       FND_MSG_PUB.Count_And_Get
1014       (  p_count          =>   x_msg_count,
1015          p_data           =>   x_msg_data
1016       );
1017 
1018 END Validate_SELECT_TYPE;
1019 
1020 
1021 PROCEDURE Validate_SELECT_BLOCK_ID (
1022     P_Api_Name			   IN   VARCHAR2,
1026     P_SELECT_TYPE                IN   VARCHAR2,
1023     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1024     P_Validation_mode            IN   VARCHAR2,
1025     P_SELECT_BLOCK_ID            IN   NUMBER,
1027     X_Return_Status              OUT NOCOPY VARCHAR2,
1028     X_Msg_Count                  OUT NOCOPY NUMBER,
1029     X_Msg_Data                   OUT NOCOPY VARCHAR2
1030     )
1031 IS
1032 Cursor C2 is
1033  Select NULL
1034  from csc_prof_blocks_b
1035  where block_id = p_select_block_id;
1036 
1037 l_dummy number;
1038 BEGIN
1039 
1040       -- Initialize message list if p_init_msg_list is set to TRUE.
1041       IF FND_API.to_Boolean( p_init_msg_list )
1042       THEN
1043           FND_MSG_PUB.initialize;
1044       END IF;
1045 
1046 
1047       -- Initialize API return status to SUCCESS
1048       x_return_status := FND_API.G_RET_STS_SUCCESS;
1049 
1050       IF p_SELECT_TYPE = 'B' THEN
1051         -- validate NOT NULL column
1052         IF(p_SELECT_BLOCK_ID is NULL)
1053         THEN
1054 	  -- Mandatory argument error..
1055           x_return_status := FND_API.G_RET_STS_ERROR;
1056 	    CSC_CORE_UTILS_PVT.mandatory_arg_error(
1057 			    p_api_name => p_api_name,
1058 			    p_argument => 'p_select_block_id',
1059 			    p_argument_value => p_select_block_id);
1060         END IF;
1061       ELSE
1062         IF (p_SELECT_BLOCK_ID IS NOT NULL) AND  (p_SELECT_BLOCK_ID <> CSC_CORE_UTILS_PVT.G_MISS_NUM)
1063         THEN
1064                x_return_status := FND_API.G_RET_STS_ERROR;
1065           	CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
1066 		    	    p_api_name => p_api_name,
1067 		    	    p_argument_value  => p_select_block_id,
1068 		            p_argument  => 'p_select_block_id');
1069         END IF;
1070       END IF;
1071 
1072       IF(p_validation_mode = G_CREATE)
1073       THEN
1074           -- Hint: Validate data
1075           -- IF p_SELECT_BLOCK_ID is not NULL and p_SELECT_BLOCK_ID <> G_MISS_CHAR
1076           -- verify if data is valid
1077           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1078           IF p_SELECT_TYPE = 'B' THEN
1079 	     IF (p_SELECT_BLOCK_ID <> CSC_CORE_UTILS_PVT.G_MISS_NUM)
1080 	     THEN
1081 		Open C2;
1082 		Fetch C2 into l_dummy;
1083 		  IF C2%NOTFOUND THEN
1084           		x_return_status := FND_API.G_RET_STS_ERROR;
1085 
1086           		CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
1087 			    p_api_name => p_api_name,
1088 		            p_argument_value  => p_select_block_id,
1089 		            p_argument  => 'p_select_block_id');
1090 
1091 		  END IF;
1092 		Close C2;
1093 	      ELSE
1094           		x_return_status := FND_API.G_RET_STS_ERROR;
1095 	    		CSC_CORE_UTILS_PVT.mandatory_arg_error(
1096 				p_api_name => p_api_name,
1097 				p_argument => 'p_select_block_id',
1098 				p_argument_value => p_select_block_id);
1099 
1100 	    END IF;
1101           END IF;
1102       ELSIF(p_validation_mode = G_UPDATE)
1103       THEN
1104          -- if the select block id is passed in and as NULL then
1105          -- its a mandatory argument error.
1106 	    -- added the outer if condition to fix the bug 1563264
1107 	  IF(p_SELECT_TYPE = 'B') THEN
1108          if ( p_select_block_id IS NULL ) then
1109 	       x_return_status := FND_API.G_RET_STS_ERROR;
1110 	       CSC_CORE_UTILS_PVT.mandatory_arg_error(
1111 		                              p_api_name => p_api_name,
1112 								p_argument => 'p_select_block_id',
1113 								p_argument_value => p_select_block_id);
1114           -- Hint: Validate data
1115           -- IF p_SELECT_BLOCK_ID <> G_MISS_NUM
1116           -- verify if data is valid
1117           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1118 	    ELSIF p_SELECT_BLOCK_ID <> CSC_CORE_UTILS_PVT.G_MISS_NUM
1119 	    THEN
1120 		Open C2;
1121 		Loop
1122 		  Fetch C2 into l_dummy;
1123 		    IF C2%NOTFOUND THEN
1124           		x_return_status := FND_API.G_RET_STS_ERROR;
1125           		CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
1126 				p_api_name => p_api_name,
1127 		            p_argument_value  => p_select_block_id,
1128 		            p_argument  => 'p_select_block_id');
1129 				  exit;
1130 			  else
1131 				  exit;
1132 		  END IF;
1133 		End Loop;
1134 		Close C2;
1135         END IF;
1136        END IF;
1137       END IF;
1138 
1139       -- Standard call to get message count and if count is 1, get message info.
1140       FND_MSG_PUB.Count_And_Get
1141       (  p_count          =>   x_msg_count,
1142          p_data           =>   x_msg_data
1143       );
1144 
1145 END Validate_SELECT_BLOCK_ID;
1146 
1147 
1148 PROCEDURE Validate_DATA_TYPE (
1149     p_Api_Name			IN	VARCHAR2,
1150     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1151     P_Validation_mode            IN   VARCHAR2,
1152     P_DATA_TYPE                IN   VARCHAR2,
1153     X_Return_Status              OUT NOCOPY VARCHAR2,
1154     X_Msg_Count                  OUT NOCOPY NUMBER,
1155     X_Msg_Data                   OUT NOCOPY VARCHAR2
1156     )
1157 IS
1158 BEGIN
1159 
1160       -- Initialize message list if p_init_msg_list is set to TRUE.
1161       IF FND_API.to_Boolean( p_init_msg_list )
1162       THEN
1163           FND_MSG_PUB.initialize;
1167       -- Initialize API return status to SUCCESS
1164       END IF;
1165 
1166 
1168       x_return_status := FND_API.G_RET_STS_SUCCESS;
1169 
1170 
1171 	IF p_DATA_TYPE is not NULL and p_DATA_TYPE <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
1172 	THEN
1173      -- Added 'BOOLEAN' in the IN CLAUSE . Bug #1231208
1174           IF NOT p_DATA_TYPE IN ('NUMBER','VARCHAR2','DATE', 'BOOLEAN') THEN
1175                 x_return_status := FND_API.G_RET_STS_ERROR;
1176                 CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
1177 			    p_api_name        => p_api_name,
1178 		            p_argument_value  => p_data_type,
1179 		            p_argument        => 'P_DATA_TYPE');
1180 
1181           END IF;
1182 
1183 	END IF;
1184 
1185       -- Standard call to get message count and if count is 1, get message info.
1186       FND_MSG_PUB.Count_And_Get
1187       (  p_count          =>   x_msg_count,
1188          p_data           =>   x_msg_data
1189       );
1190 
1191 END Validate_DATA_TYPE;
1192 
1193 PROCEDURE Validate_THRESHOLD_GRADE (
1194     p_Api_Name			IN	VARCHAR2,
1195     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1196     P_Validation_mode            IN   VARCHAR2,
1197     P_THRESHOLD_GRADE            IN   VARCHAR2,
1198     X_Return_Status              OUT NOCOPY VARCHAR2,
1199     X_Msg_Count                  OUT NOCOPY NUMBER,
1200     X_Msg_Data                   OUT NOCOPY VARCHAR2
1201     )
1202 IS
1203 BEGIN
1204 
1205       -- Initialize message list if p_init_msg_list is set to TRUE.
1206       IF FND_API.to_Boolean( p_init_msg_list )
1207       THEN
1208           FND_MSG_PUB.initialize;
1209       END IF;
1210 
1211 
1212       -- Initialize API return status to SUCCESS
1213       x_return_status := FND_API.G_RET_STS_SUCCESS;
1214 
1215           -- IF p_THRESHOLD_GRADE is not NULL and p_THRESHOLD_GRADE <> G_MISS_CHAR
1216           -- verify if data is valid
1217           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1218 
1219 
1220       IF(p_validation_mode = CSC_CORE_UTILS_PVT.G_CREATE)
1221       THEN
1222           -- Hint: Validate data
1223           -- IF p_THRESHOLD_GRADE is not NULL and p_THRESHOLD_GRADE <> G_MISS_CHAR
1224           -- verify if data is valid
1225           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1226           NULL;
1227       ELSIF(p_validation_mode = CSC_CORE_UTILS_PVT.G_UPDATE)
1228       THEN
1229           -- Hint: Validate data
1230           -- IF p_THRESHOLD_GRADE <> G_MISS_CHAR
1231           -- verify if data is valid
1232           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1233           NULL;
1234       END IF;
1235 
1236       -- Standard call to get message count and if count is 1, get message info.
1237       FND_MSG_PUB.Count_And_Get
1238       (  p_count          =>   x_msg_count,
1239          p_data           =>   x_msg_data
1240       );
1241 
1242 END Validate_THRESHOLD_GRADE;
1243 
1244 
1245 PROCEDURE Validate_THRESHOLD_RATING_CODE (
1246     p_Api_Name			IN	VARCHAR2,
1247     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1248     P_Validation_mode            IN   VARCHAR2,
1249     P_THRESHOLD_RATING_CODE                IN   VARCHAR2,
1250     X_Return_Status              OUT NOCOPY VARCHAR2,
1251     X_Msg_Count                  OUT NOCOPY NUMBER,
1252     X_Msg_Data                   OUT NOCOPY VARCHAR2
1253     )
1254 IS
1255 BEGIN
1256 
1257       -- Initialize message list if p_init_msg_list is set to TRUE.
1258       IF FND_API.to_Boolean( p_init_msg_list )
1259       THEN
1260           FND_MSG_PUB.initialize;
1261       END IF;
1262 
1263        -- Initialize API return status to SUCCESS
1264       x_return_status := FND_API.G_RET_STS_SUCCESS;
1265 
1266       -- Hint: Validate data
1267       -- IF p_THRESHOLD_RATING_CODE is not NULL and p_THRESHOLD_RATING_CODE <> G_MISS_CHAR
1268       -- verify if data is valid
1269       -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1270       IF (p_THRESHOLD_RATING_CODE is NOT NULL) AND (p_THRESHOLD_RATING_CODE <> CSC_CORE_UTILS_PVT.G_MISS_CHAR)
1271       THEN
1272           IF CSC_CORE_UTILS_PVT.csc_lookup_code_not_exists(
1273                  p_effective_date => trunc(sysdate),
1274                  p_lookup_type    => 'CSC_PROF_RATINGS',
1275                  p_lookup_Code    => p_threshold_rating_code ) <> FND_API.G_RET_STS_SUCCESS
1276           THEN
1277              x_return_status := FND_API.G_RET_STS_ERROR;
1278              CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
1279 						p_api_name=> p_api_name,
1280                                     p_argument_value => p_threshold_rating_code,
1281 						p_argument=>'P_RATING_CODE' );
1282 	    END IF;
1283       END IF;
1284 
1285       -- Standard call to get message count and if count is 1, get message info.
1286       FND_MSG_PUB.Count_And_Get
1287       (  p_count          =>   x_msg_count,
1288          p_data           =>   x_msg_data
1289       );
1290 
1291 END Validate_THRESHOLD_RATING_CODE;
1292 
1293 
1294 PROCEDURE Validate_UPPER_LOWER_FLAG (
1295     p_Api_Name			IN   VARCHAR2,
1296     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1297     P_Validation_mode            IN   VARCHAR2,
1298     P_CHECK_UPPER_LOWER_FLAG                IN   VARCHAR2,
1302     )
1299     X_Return_Status              OUT NOCOPY  VARCHAR2,
1300     X_Msg_Count                  OUT NOCOPY NUMBER,
1301     X_Msg_Data                   OUT NOCOPY VARCHAR2
1303 IS
1304 BEGIN
1305 
1306       -- Initialize message list if p_init_msg_list is set to TRUE.
1307       IF FND_API.to_Boolean( p_init_msg_list )
1308       THEN
1309           FND_MSG_PUB.initialize;
1310       END IF;
1311 
1312 
1313       -- Initialize API return status to SUCCESS
1314       x_return_status := FND_API.G_RET_STS_SUCCESS;
1315 
1316 	IF p_CHECK_UPPER_LOWER_FLAG NOT IN ('U','L') THEN
1317 		   x_return_status := FND_API.G_RET_STS_ERROR;
1318              CSC_CORE_UTILS_PVT.Add_Invalid_Argument_Msg(
1319 			    p_api_name => p_api_name,
1320 		            p_argument_value  => p_check_upper_lower_flag,
1321 		            p_argument  => 'P_CHECK_UPPER_LOWER_FLAG');
1322 	END IF;
1323       -- Standard call to get message count and if count is 1, get message info.
1324       FND_MSG_PUB.Count_And_Get
1325       (  p_count          =>   x_msg_count,
1326          p_data           =>   x_msg_data
1327       );
1328 
1329 END Validate_UPPER_LOWER_FLAG;
1330 
1331 
1332 PROCEDURE Validate_THRESHOLD_COLOR_CODE (
1333     p_Api_Name			IN  VARCHAR2,
1334     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1335     P_Validation_mode            IN   VARCHAR2,
1336     P_THRESHOLD_COLOR_CODE                IN   VARCHAR2,
1337     X_Return_Status              OUT NOCOPY VARCHAR2,
1338     X_Msg_Count                  OUT NOCOPY NUMBER,
1339     X_Msg_Data                   OUT NOCOPY VARCHAR2
1340     )
1341 IS
1342 BEGIN
1343 
1344       -- Initialize message list if p_init_msg_list is set to TRUE.
1345       IF FND_API.to_Boolean( p_init_msg_list )
1346       THEN
1347           FND_MSG_PUB.initialize;
1348       END IF;
1349 
1350 
1351       -- Initialize API return status to SUCCESS
1352       x_return_status := FND_API.G_RET_STS_SUCCESS;
1353 
1354 	NULL;
1355 
1356       -- Standard call to get message count and if count is 1, get message info.
1357       FND_MSG_PUB.Count_And_Get
1358       (  p_count          =>   x_msg_count,
1359          p_data           =>   x_msg_data
1360       );
1361 
1362 END Validate_THRESHOLD_COLOR_CODE;
1363 
1364 /*
1365 PROCEDURE Validate_CATEGORY_CODE (
1366     p_Api_Name			IN VARCHAR2,
1367     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1368     P_Validation_mode            IN   VARCHAR2,
1369     P_CATEGORY_CODE                IN   VARCHAR2,
1370     X_Return_Status              OUT  VARCHAR2,
1371     X_Msg_Count                  OUT  NUMBER,
1372     X_Msg_Data                   OUT  VARCHAR2
1373     )
1374 IS
1375 BEGIN
1376 
1377       -- Initialize message list if p_init_msg_list is set to TRUE.
1378       IF FND_API.to_Boolean( p_init_msg_list )
1379       THEN
1380           FND_MSG_PUB.initialize;
1381       END IF;
1382 
1383 
1384       -- Initialize API return status to SUCCESS
1385       x_return_status := FND_API.G_RET_STS_SUCCESS;
1386 
1387 	NULL;
1388 
1389       -- Standard call to get message count and if count is 1, get message info.
1390       FND_MSG_PUB.Count_And_Get
1391       (  p_count          =>   x_msg_count,
1392          p_data           =>   x_msg_data
1393       );
1394 
1395 END Validate_CATEGORY_CODE;
1396 */
1397 
1398 
1399 PROCEDURE Validate_check(
1400     P_Init_Msg_List              IN   VARCHAR2     := CSC_CORE_UTILS_PVT.G_FALSE,
1401     P_Validation_level           IN   NUMBER := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
1402     P_Validation_mode            IN   VARCHAR2,
1403     P_Check_Rec     IN    Check_Rec_Type,
1404     X_Return_Status              OUT NOCOPY VARCHAR2,
1405     X_Msg_Count                  OUT NOCOPY NUMBER,
1406     X_Msg_Data                   OUT NOCOPY VARCHAR2
1407     )
1408 IS
1409 p_api_name   CONSTANT VARCHAR2(30) := 'Validate_check';
1410  BEGIN
1411 
1412 
1413       -- Initialize API return status to SUCCESS
1414       x_return_status := FND_API.G_RET_STS_SUCCESS;
1415 
1416 
1417           Validate_CHECK_NAME(
1418 	      p_Api_Name	=> p_Api_Name,
1419               p_init_msg_list          => FND_API.G_FALSE,
1420               p_validation_mode        => p_validation_mode,
1421               p_CHECK_NAME   => P_Check_Rec.CHECK_NAME,
1422               p_CHECK_ID     => P_CHECK_REC.CHECK_ID,
1423               x_return_status          => x_return_status );
1424           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1425               raise FND_API.G_EXC_ERROR;
1426           END IF;
1427 
1428           Validate_CHECK_NAME_CODE(
1429               p_Api_Name	=> p_Api_Name,
1430               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1431               p_validation_mode        => p_validation_mode,
1432               p_CHECK_NAME_CODE   => P_Check_Rec.CHECK_NAME_CODE,
1433               p_CHECK_ID	=> p_CHECK_Rec.CHECK_ID,
1434               x_return_status          => x_return_status,
1435               x_msg_count              => x_msg_count,
1436               x_msg_data               => x_msg_data);
1437           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1438               raise FND_API.G_EXC_ERROR;
1439           END IF;
1440 	    -- validate start and end date
1444              p_end_date		=> p_check_rec.end_date_active,
1441 	    CSC_CORE_UTILS_PVT.Validate_Start_End_Dt(
1442 	       p_api_name 		=> p_Api_name,
1443              p_start_date		=> p_check_rec.start_date_active,
1445              x_return_status	=> x_return_status );
1446 
1447   	    IF (x_return_status  <> FND_API.G_RET_STS_SUCCESS) THEN
1448              RAISE FND_API.G_EXC_ERROR;
1449   	    END IF;
1450 
1451           Validate_SEEDED_FLAG(
1452               p_APi_Name	=> p_Api_Name,
1453               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1454               p_validation_mode        => p_validation_mode,
1455               p_SEEDED_FLAG   => P_Check_Rec.SEEDED_FLAG,
1456               x_return_status          => x_return_status,
1457               x_msg_count              => x_msg_count,
1458               x_msg_data               => x_msg_data);
1459           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1460               raise FND_API.G_EXC_ERROR;
1461           END IF;
1462 
1463           Validate_SELECT_TYPE(
1464 	      p_Api_Name	=> p_Api_Name,
1465               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1466               p_validation_mode        => p_validation_mode,
1467               p_SELECT_TYPE   => P_Check_Rec.SELECT_TYPE,
1468               x_return_status          => x_return_status,
1469               x_msg_count              => x_msg_count,
1470               x_msg_data               => x_msg_data);
1471           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1472               raise FND_API.G_EXC_ERROR;
1473           END IF;
1474 
1475 
1476           Validate_SELECT_BLOCK_ID(
1477 	     p_Api_Name		=> p_Api_Name,
1478               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1479               p_validation_mode        => p_validation_mode,
1480               p_SELECT_BLOCK_ID   => P_Check_Rec.SELECT_BLOCK_ID,
1481               p_SELECT_TYPE       => P_Check_Rec.SELECT_TYPE,
1482               x_return_status          => x_return_status,
1483               x_msg_count              => x_msg_count,
1484               x_msg_data               => x_msg_data);
1485           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1486               raise FND_API.G_EXC_ERROR;
1487           END IF;
1488 
1489 
1490           Validate_DATA_TYPE(
1491 	      p_Api_Name	=> p_Api_Name,
1492               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1493               p_validation_mode        => p_validation_mode,
1494               p_DATA_TYPE   => P_Check_Rec.DATA_TYPE,
1495               x_return_status          => x_return_status,
1496               x_msg_count              => x_msg_count,
1497               x_msg_data               => x_msg_data);
1498           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1499               raise FND_API.G_EXC_ERROR;
1500           END IF;
1501 
1502 
1503           Validate_THRESHOLD_GRADE(
1504 	     p_Api_Name		=> p_Api_Name,
1505               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1506               p_validation_mode        => p_validation_mode,
1507               p_THRESHOLD_GRADE   => P_Check_Rec.THRESHOLD_GRADE,
1508               x_return_status          => x_return_status,
1509               x_msg_count              => x_msg_count,
1510               x_msg_data               => x_msg_data);
1511           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1512               raise FND_API.G_EXC_ERROR;
1513           END IF;
1514 
1515           Validate_THRESHOLD_RATING_CODE(
1516 	      p_Api_Name	=> p_Api_Name,
1517               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1518               p_validation_mode        => p_validation_mode,
1519               p_THRESHOLD_RATING_CODE   => P_Check_Rec.THRESHOLD_RATING_CODE,
1520               x_return_status          => x_return_status,
1521               x_msg_count              => x_msg_count,
1522               x_msg_data               => x_msg_data);
1523           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1524               raise FND_API.G_EXC_ERROR;
1525           END IF;
1526 
1527           Validate_UPPER_LOWER_FLAG(
1528 	      p_Api_Name	=> p_Api_Name,
1529               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1530               p_validation_mode        => p_validation_mode,
1531               p_CHECK_UPPER_LOWER_FLAG   => P_Check_Rec.CHECK_UPPER_LOWER_FLAG,
1532               x_return_status          => x_return_status,
1533               x_msg_count              => x_msg_count,
1534               x_msg_data               => x_msg_data);
1535           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1536               raise FND_API.G_EXC_ERROR;
1537           END IF;
1538 
1539           Validate_THRESHOLD_COLOR_CODE(
1540 	     p_Api_Name		=> p_Api_Name,
1541               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1542               p_validation_mode        => p_validation_mode,
1543               p_THRESHOLD_COLOR_CODE   => P_Check_Rec.THRESHOLD_COLOR_CODE,
1544               x_return_status          => x_return_status,
1545               x_msg_count              => x_msg_count,
1546               x_msg_data               => x_msg_data);
1547           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1548               raise FND_API.G_EXC_ERROR;
1549           END IF;
1550 
1551          CSC_CORE_UTILS_PVT.Validate_APPLICATION_ID (
1552            P_Init_Msg_List              => CSC_CORE_UTILS_PVT.G_FALSE,
1553            P_Application_ID             => P_Check_Rec.application_id,
1554            p_effective_date             => SYSDATE,
1555            X_Return_Status              => x_return_status,
1556            X_Msg_Count                  => x_msg_count,
1557            X_Msg_Data                   => x_msg_data );
1558 
1559         IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1560                 RAISE FND_API.G_EXC_ERROR;
1561         END IF;
1562 
1563          --Validate Check_level
1564         Validate_Check_Level(
1565            p_api_name         => p_api_name,
1566            p_parameter_name   => 'p_Check_Level',
1567            p_check_level      => P_Check_Rec.check_level,
1568            x_return_status    => x_return_status );
1569 
1570         IF (x_return_status  <> FND_API.G_RET_STS_SUCCESS) THEN
1571          RAISE FND_API.G_EXC_ERROR;
1572         END IF;
1573 
1574 /*
1575           Validate_CATEGORY_CODE(
1576 	     p_Api_Name		=> p_Api_Name,
1577               p_init_msg_list          => CSC_CORE_UTILS_PVT.G_FALSE,
1578               p_validation_mode        => p_validation_mode,
1579               p_CATEGORY_CODE   => P_Check_Rec.CATEGORY_CODE,
1580               x_return_status          => x_return_status,
1581               x_msg_count              => x_msg_count,
1582               x_msg_data               => x_msg_data);
1583           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1584               raise FND_API.G_EXC_ERROR;
1585           END IF;
1586  */
1587 END Validate_check;
1588 
1589 End CSC_PROFILE_CHECK_PVT;