DBA Data[Home] [Help]

PACKAGE BODY: APPS.AML_MONITOR_CONDITIONS_PVT

Source


1 PACKAGE BODY AML_MONITOR_CONDITIONS_PVT as
2 /* $Header: amlvlmcb.pls 115.6 2003/01/23 03:41:23 swkhanna noship $ */
3 -- Start of Comments
4 -- Package name     : AML_MONITOR_CONDITIONS_PVT
5 -- Purpose          :
6 -- History          :
7 -- NOTE             :
8 -- End of Comments
9 
10 
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AML_MONITOR_CONDITIONS_PVT';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amlvlmcb.pls';
13 AS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
14 
15 -- ********************************************************
16 -- PROCEDURE : Create_Monitor_Condition
17 --
18 -- ********************************************************
19 PROCEDURE Create_monitor_condition(
20     P_Api_Version_Number         IN   NUMBER,
21     P_Init_Msg_List              IN   VARCHAR2   := FND_API.G_FALSE,
22     P_Commit                     IN   VARCHAR2   := FND_API.G_FALSE,
23     p_validation_level           IN   NUMBER     := FND_API.G_VALID_LEVEL_FULL,
24     P_Identity_Resource_Id       IN   NUMBER,
25     P_CONDITION_Rec              IN   AML_MONITOR_CONDITIONS_PUB.CONDITION_Rec_Type,
26     X_MONITOR_CONDITION_ID       OUT  NOCOPY NUMBER,
27     X_Return_Status              OUT  NOCOPY VARCHAR2,
28     X_Msg_Count                  OUT  NOCOPY NUMBER,
29     X_Msg_Data                   OUT  NOCOPY VARCHAR2
30     )
31 
32  IS
33 l_api_name                CONSTANT VARCHAR2(30) := 'Create_monitor_condition';
34 l_api_version_number      CONSTANT NUMBER   := 2.0;
35 l_return_status_full        VARCHAR2(1);
36 l_identity_sales_member_rec AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
37 l_access_flag               VARCHAR2(1);
38 BEGIN
39       -- Standard Start of API savepoint
40       SAVEPOINT CREATE_MONITOR_CONDITION_PVT;
41 
42       -- Standard call to check for call compatibility.
43       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
44                                            p_api_version_number,
45                                            l_api_name,
46                                            G_PKG_NAME)
47       THEN
48           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
49       END IF;
50 
51 
52       -- Initialize message list if p_init_msg_list is set to TRUE.
53       IF FND_API.to_Boolean( p_init_msg_list )
54       THEN
55           FND_MSG_PUB.initialize;
56       END IF;
57 
58       -- Debug Message
59       IF (AS_DEBUG_LOW_ON) THEN
60         AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
61       END IF;
62 
63 
64       -- Initialize API return status to SUCCESS
65       x_return_status := FND_API.G_RET_STS_SUCCESS;
66 
67       --
68       -- API body
69       --
70       -- ******************************************************************
71       -- Validate Environment
72       -- ******************************************************************
73       IF FND_GLOBAL.User_Id IS NULL
74       THEN
75           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
76           THEN
77               FND_MESSAGE.Set_Name('AMS', 'UT_CANNOT_GET_PROFILE_VALUE');
78               FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
79               FND_MSG_PUB.ADD;
80           END IF;
81           RAISE FND_API.G_EXC_ERROR;
82       END IF;
83 
84       -- Debug message
85       IF (AS_DEBUG_LOW_ON) THEN
86         AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Validate_monitor_condition');
87       END IF;
88 
89       -- Invoke validation procedures
90       Validate_monitor_condition(
91           p_init_msg_list    => FND_API.G_FALSE,
92           p_validation_level => p_validation_level,
93           p_validation_mode  => AS_UTILITY_PVT.G_CREATE,
94           P_CONDITION_Rec  =>  P_CONDITION_Rec,
95           x_return_status    => x_return_status,
96           x_msg_count        => x_msg_count,
97           x_msg_data         => x_msg_data);
98 
99       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
100           RAISE FND_API.G_EXC_ERROR;
101       END IF;
102 
103 
104 
105       -- Debug Message
106       IF (AS_DEBUG_LOW_ON) THEN
107         AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling create table handler');
108       END IF;
109 
110 
111       -- Invoke table handler(AML_MONITOR_CONDITIONS_PKG.Insert_Row)
112       AML_MONITOR_CONDITIONS_PKG.Insert_Row(
113           px_MONITOR_CONDITION_ID  => x_MONITOR_CONDITION_ID
114          ,p_LAST_UPDATE_DATE  => SYSDATE
115          ,p_LAST_UPDATED_BY  => FND_GLOBAL.USER_ID
116          ,p_CREATION_DATE  => SYSDATE
117          ,p_CREATED_BY  => FND_GLOBAL.USER_ID
118          ,p_LAST_UPDATE_LOGIN  => FND_GLOBAL.CONC_LOGIN_ID
119          ,p_OBJECT_VERSION_NUMBER  => p_CONDITION_rec.OBJECT_VERSION_NUMBER
120          ,p_REQUEST_ID  => p_CONDITION_rec.REQUEST_ID
121          ,p_PROGRAM_APPLICATION_ID  => p_CONDITION_rec.PROGRAM_APPLICATION_ID
122          ,p_PROGRAM_ID  => p_CONDITION_rec.PROGRAM_ID
123          ,p_PROGRAM_UPDATE_DATE  => p_CONDITION_rec.PROGRAM_UPDATE_DATE
124          ,p_PROCESS_RULE_ID  => p_CONDITION_rec.PROCESS_RULE_ID
125          ,p_MONITOR_TYPE_CODE  => p_CONDITION_rec.MONITOR_TYPE_CODE
126          ,p_TIME_LAG_NUM  => p_CONDITION_rec.TIME_LAG_NUM
127          ,p_TIME_LAG_UOM_CODE  => p_CONDITION_rec.TIME_LAG_UOM_CODE
128          ,p_TIME_LAG_FROM_STAGE  => p_CONDITION_rec.TIME_LAG_FROM_STAGE
129          ,p_TIME_LAG_TO_STAGE  => p_CONDITION_rec.TIME_LAG_TO_STAGE
130          ,p_Expiration_Relative     => p_CONDITION_rec.Expiration_Relative
131          ,p_Reminder_Defined        => p_CONDITION_rec.Reminder_Defined
132          ,p_Total_Reminders         => p_CONDITION_rec.Total_Reminders
133          ,p_Reminder_Frequency      => p_CONDITION_rec.Reminder_Frequency
134          ,p_Reminder_Freq_uom_code  => p_CONDITION_rec.Reminder_Freq_uom_code
135          ,p_Timeout_Defined         => p_CONDITION_rec.Timeout_Defined
136          ,p_Timeout_Duration        => p_CONDITION_rec.Timeout_Duration
137          ,p_Timeout_uom_code        => p_CONDITION_rec.Timeout_uom_code
138          ,p_Notify_Owner        => p_CONDITION_rec.Notify_Owner
139          ,p_Notify_Owner_Manager    => p_CONDITION_rec.Notify_Owner_Manager
140          ,p_ATTRIBUTE_CATEGORY  => p_CONDITION_rec.ATTRIBUTE_CATEGORY
141          ,p_ATTRIBUTE1  => p_CONDITION_rec.ATTRIBUTE1
142          ,p_ATTRIBUTE2  => p_CONDITION_rec.ATTRIBUTE2
143          ,p_ATTRIBUTE3  => p_CONDITION_rec.ATTRIBUTE3
144          ,p_ATTRIBUTE4  => p_CONDITION_rec.ATTRIBUTE4
145          ,p_ATTRIBUTE5  => p_CONDITION_rec.ATTRIBUTE5
146          ,p_ATTRIBUTE6  => p_CONDITION_rec.ATTRIBUTE6
147          ,p_ATTRIBUTE7  => p_CONDITION_rec.ATTRIBUTE7
148          ,p_ATTRIBUTE8  => p_CONDITION_rec.ATTRIBUTE8
149          ,p_ATTRIBUTE9  => p_CONDITION_rec.ATTRIBUTE9
150          ,p_ATTRIBUTE10  => p_CONDITION_rec.ATTRIBUTE10
151          ,p_ATTRIBUTE11  => p_CONDITION_rec.ATTRIBUTE11
152          ,p_ATTRIBUTE12  => p_CONDITION_rec.ATTRIBUTE12
153          ,p_ATTRIBUTE13  => p_CONDITION_rec.ATTRIBUTE13
154          ,p_ATTRIBUTE14  => p_CONDITION_rec.ATTRIBUTE14
155          ,p_ATTRIBUTE15  => p_CONDITION_rec.ATTRIBUTE15
156 );      -- Hint: Primary key should be returned.
157       -- x_MONITOR_CONDITION_ID := px_MONITOR_CONDITION_ID;
158 
159           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
160               RAISE FND_API.G_EXC_ERROR;
161           END IF;
162 
163       --
164       -- End of API body
165       --
166 
167       -- Standard check for p_commit
168       IF FND_API.to_Boolean( p_commit )
169       THEN
170           COMMIT WORK;
171       END IF;
172 
173 
174       -- Debug Message
175       IF (AS_DEBUG_LOW_ON) THEN
176         AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
177       END IF;
178 
179 
180       -- Standard call to get message count and if count is 1, get message info.
181       FND_MSG_PUB.Count_And_Get
182       (  p_count          =>   x_msg_count,
183          p_data           =>   x_msg_data
184       );
185 
186       EXCEPTION
187           WHEN FND_API.G_EXC_ERROR THEN
188               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
189                    P_API_NAME => L_API_NAME
190                   ,P_PKG_NAME => G_PKG_NAME
191                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
192                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
193                   ,X_MSG_COUNT => X_MSG_COUNT
194                   ,X_MSG_DATA => X_MSG_DATA
195                   ,X_RETURN_STATUS => X_RETURN_STATUS);
196 
197           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
198               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
199                    P_API_NAME => L_API_NAME
200                   ,P_PKG_NAME => G_PKG_NAME
201                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
202                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
203                   ,X_MSG_COUNT => X_MSG_COUNT
204                   ,X_MSG_DATA => X_MSG_DATA
205                   ,X_RETURN_STATUS => X_RETURN_STATUS);
206 
207           WHEN OTHERS THEN
208               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
209                    P_API_NAME => L_API_NAME
210                   ,P_PKG_NAME => G_PKG_NAME
211                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
212                   ,P_SQLCODE => SQLCODE
213                   ,P_SQLERRM => SQLERRM
214                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
215                   ,X_MSG_COUNT => X_MSG_COUNT
216                   ,X_MSG_DATA => X_MSG_DATA
217                   ,X_RETURN_STATUS => X_RETURN_STATUS);
218 End Create_monitor_condition;
219 -- *******************************************************************
220 -- PROCEDURE : Update_monitor_condition
221 --
222 -- *******************************************************************
223 
224 PROCEDURE Update_monitor_condition(
225     P_Api_Version_Number         IN   NUMBER,
226     P_Init_Msg_List              IN   VARCHAR2   := FND_API.G_FALSE,
227     P_Commit                     IN   VARCHAR2   := FND_API.G_FALSE,
228     p_validation_level           IN   NUMBER     := FND_API.G_VALID_LEVEL_FULL,
229     p_identity_salesforce_id     IN   NUMBER,
230     P_CONDITION_Rec              IN   AML_MONITOR_CONDITIONS_PUB.CONDITION_Rec_Type,
231     X_Return_Status              OUT  NOCOPY VARCHAR2,
232     X_Msg_Count                  OUT  NOCOPY NUMBER,
233     X_Msg_Data                   OUT  NOCOPY VARCHAR2
234     )
235  IS
236 
237 Cursor C_Get_monitor_condition(C_MONITOR_CONDITION_ID Number) IS
238     Select rowid,
239            MONITOR_CONDITION_ID,
240            LAST_UPDATE_DATE,
241            LAST_UPDATED_BY,
242            CREATION_DATE,
243            CREATED_BY,
244            LAST_UPDATE_LOGIN,
245            OBJECT_VERSION_NUMBER,
246            REQUEST_ID,
247            PROGRAM_APPLICATION_ID,
248            PROGRAM_ID,
249            PROGRAM_UPDATE_DATE,
250            PROCESS_RULE_ID,
251            MONITOR_TYPE_CODE,
252            TIME_LAG_NUM,
253            TIME_LAG_UOM_CODE,
254            TIME_LAG_FROM_STAGE,
255            TIME_LAG_TO_STAGE,
256            Expiration_Relative,
257            Reminder_Defined,
258            Total_Reminders,
259            Reminder_Frequency,
260            Reminder_Freq_uom_code,
261            Timeout_Defined,
262            Timeout_Duration,
263            Timeout_uom_code,
264            Notify_Owner,
265            Notify_Owner_Manager,
266            ATTRIBUTE_CATEGORY,
267            ATTRIBUTE1,
268            ATTRIBUTE2,
269            ATTRIBUTE3,
270            ATTRIBUTE4,
271            ATTRIBUTE5,
272            ATTRIBUTE6,
273            ATTRIBUTE7,
274            ATTRIBUTE8,
275            ATTRIBUTE9,
276            ATTRIBUTE10,
277            ATTRIBUTE11,
278            ATTRIBUTE12,
279            ATTRIBUTE13,
280            ATTRIBUTE14,
281            ATTRIBUTE15
282     From  AML_MONITOR_CONDITIONS
283     where monitor_condition_id = c_monitor_condition_id
284     For Update NOWAIT;
285 
286 l_api_name                CONSTANT VARCHAR2(30) := 'Update_monitor_condition';
287 l_api_version_number      CONSTANT NUMBER   := 2.0;
288 -- Local Variables
289 l_ref_CONDITION_rec  AML_MONITOR_CONDITIONS_PUB.CONDITION_Rec_Type;
290 l_tar_CONDITION_rec  AML_MONITOR_CONDITIONS_PUB.CONDITION_Rec_Type := P_CONDITION_Rec;
291 l_rowid  ROWID;
292 BEGIN
293       -- Standard Start of API savepoint
294       SAVEPOINT UPDATE_MONITOR_CONDITION_PVT;
295 
296       -- Standard call to check for call compatibility.
297       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
298                                            p_api_version_number,
299                                            l_api_name,
300                                            G_PKG_NAME)
301       THEN
302           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
303       END IF;
304 
305 
306       -- Initialize message list if p_init_msg_list is set to TRUE.
307       IF FND_API.to_Boolean( p_init_msg_list )
308       THEN
309           FND_MSG_PUB.initialize;
310       END IF;
311 
312 
313       -- Debug Message
314       IF (AS_DEBUG_LOW_ON) THEN
315         AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
316       END IF;
317 
318       -- Initialize API return status to SUCCESS
319       x_return_status := FND_API.G_RET_STS_SUCCESS;
320 
321       --
322       -- Api body
323       --
324 
325 
326       -- Debug Message
327       IF (AS_DEBUG_LOW_ON) THEN
328         AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: - Open Cursor to Select');
329       END IF;
330 
331       Open C_Get_monitor_condition( l_tar_CONDITION_rec.MONITOR_CONDITION_ID);
332 
333       Fetch C_Get_monitor_condition into
334                l_rowid,
335                l_ref_CONDITION_rec.MONITOR_CONDITION_ID,
336                l_ref_CONDITION_rec.LAST_UPDATE_DATE,
337                l_ref_CONDITION_rec.LAST_UPDATED_BY,
338                l_ref_CONDITION_rec.CREATION_DATE,
339                l_ref_CONDITION_rec.CREATED_BY,
340                l_ref_CONDITION_rec.LAST_UPDATE_LOGIN,
341                l_ref_CONDITION_rec.OBJECT_VERSION_NUMBER,
342                l_ref_CONDITION_rec.REQUEST_ID,
343                l_ref_CONDITION_rec.PROGRAM_APPLICATION_ID,
344                l_ref_CONDITION_rec.PROGRAM_ID,
345                l_ref_CONDITION_rec.PROGRAM_UPDATE_DATE,
346                l_ref_CONDITION_rec.PROCESS_RULE_ID,
347                l_ref_CONDITION_rec.MONITOR_TYPE_CODE,
348                l_ref_CONDITION_rec.TIME_LAG_NUM,
349                l_ref_CONDITION_rec.TIME_LAG_UOM_CODE,
350                l_ref_CONDITION_rec.TIME_LAG_FROM_STAGE,
351                l_ref_CONDITION_rec.TIME_LAG_TO_STAGE,
352                l_ref_CONDITION_rec.Expiration_Relative,
353                l_ref_CONDITION_rec.Reminder_Defined,
354                l_ref_CONDITION_rec.Total_Reminders,
355                l_ref_CONDITION_rec.Reminder_Frequency,
356                l_ref_CONDITION_rec.Reminder_Freq_uom_code,
357                l_ref_CONDITION_rec.Timeout_Defined,
358                l_ref_CONDITION_rec.Timeout_Duration,
359                l_ref_CONDITION_rec.Timeout_uom_code,
360                l_ref_CONDITION_rec.Notify_Owner,
361                l_ref_CONDITION_rec.Notify_Owner_Manager,
362                l_ref_CONDITION_rec.ATTRIBUTE_CATEGORY,
363                l_ref_CONDITION_rec.ATTRIBUTE1,
364                l_ref_CONDITION_rec.ATTRIBUTE2,
365                l_ref_CONDITION_rec.ATTRIBUTE3,
366                l_ref_CONDITION_rec.ATTRIBUTE4,
367                l_ref_CONDITION_rec.ATTRIBUTE5,
368                l_ref_CONDITION_rec.ATTRIBUTE6,
369                l_ref_CONDITION_rec.ATTRIBUTE7,
370                l_ref_CONDITION_rec.ATTRIBUTE8,
371                l_ref_CONDITION_rec.ATTRIBUTE9,
372                l_ref_CONDITION_rec.ATTRIBUTE10,
373                l_ref_CONDITION_rec.ATTRIBUTE11,
374                l_ref_CONDITION_rec.ATTRIBUTE12,
375                l_ref_CONDITION_rec.ATTRIBUTE13,
376                l_ref_CONDITION_rec.ATTRIBUTE14,
377                l_ref_CONDITION_rec.ATTRIBUTE15;
378 
379        If ( C_Get_monitor_condition%NOTFOUND) Then
380            IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
381            THEN
382                FND_MESSAGE.Set_Name('AMS', 'API_MISSING_UPDATE_TARGET');
383                FND_MESSAGE.Set_Token ('INFO', 'monitor_condition', FALSE);
384                FND_MSG_PUB.Add;
385            END IF;
386            Close C_Get_monitor_condition;
387            raise FND_API.G_EXC_ERROR;
388        END IF;
389 
390       -- Debug Message
391       IF (AS_DEBUG_LOW_ON) THEN
392         AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: - Close Cursor');
393       END IF;
394 
395       Close     C_Get_monitor_condition;
396 
397 
398 
399       If (l_tar_CONDITION_rec.last_update_date is NULL or
400           l_tar_CONDITION_rec.last_update_date = FND_API.G_MISS_Date ) Then
401           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
402           THEN
403               FND_MESSAGE.Set_Name('AMS', 'API_MISSING_ID');
404               FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
405               FND_MSG_PUB.ADD;
406           END IF;
407           raise FND_API.G_EXC_ERROR;
408       End if;
409       -- Check Whether record has been changed by someone else
410       If (l_tar_CONDITION_rec.last_update_date <> l_ref_CONDITION_rec.last_update_date) Then
411           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
412           THEN
413               FND_MESSAGE.Set_Name('AMS', 'API_RECORD_CHANGED');
414               FND_MESSAGE.Set_Token('INFO', 'monitor_condition', FALSE);
415               FND_MSG_PUB.ADD;
416           END IF;
417           raise FND_API.G_EXC_ERROR;
418       End if;
419 
420       -- Debug message
421       IF (AS_DEBUG_LOW_ON) THEN
422         AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Validate_monitor_condition');
423       END IF;
424 
425       -- Invoke validation procedures
426       Validate_monitor_condition(
427           p_init_msg_list    => FND_API.G_FALSE,
428           p_validation_level => p_validation_level,
429           p_validation_mode  => AS_UTILITY_PVT.G_UPDATE,
430           P_CONDITION_Rec  =>  P_CONDITION_Rec,
431           x_return_status    => x_return_status,
432           x_msg_count        => x_msg_count,
433           x_msg_data         => x_msg_data);
434 
435       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
436           RAISE FND_API.G_EXC_ERROR;
437       END IF;
438 
439 
440 
441       -- Hint: Add corresponding Master-Detail business logic here if necessary.
442 
443       -- Debug Message
444       IF (AS_DEBUG_LOW_ON) THEN
445         AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');
446       END IF;
447 
448       -- Invoke table handler(aml_MONITOR_CONDITIONS_PKG.Update_Row)
449       AML_MONITOR_CONDITIONS_PKG.Update_Row(
450           p_MONITOR_CONDITION_ID  => p_CONDITION_rec.MONITOR_CONDITION_ID
451          ,p_LAST_UPDATE_DATE  => SYSDATE
452          ,p_LAST_UPDATED_BY  => FND_GLOBAL.USER_ID
453          ,p_CREATION_DATE  => FND_API.G_MISS_DATE
454          ,p_CREATED_BY     => FND_API.G_MISS_NUM
455          ,p_LAST_UPDATE_LOGIN  => FND_GLOBAL.CONC_LOGIN_ID
456          ,p_OBJECT_VERSION_NUMBER  => p_CONDITION_rec.OBJECT_VERSION_NUMBER
457          ,p_REQUEST_ID  => p_CONDITION_rec.REQUEST_ID
458          ,p_PROGRAM_APPLICATION_ID  => p_CONDITION_rec.PROGRAM_APPLICATION_ID
459          ,p_PROGRAM_ID  => p_CONDITION_rec.PROGRAM_ID
460          ,p_PROGRAM_UPDATE_DATE  => p_CONDITION_rec.PROGRAM_UPDATE_DATE
461          ,p_PROCESS_RULE_ID  => p_CONDITION_rec.PROCESS_RULE_ID
462          ,p_MONITOR_TYPE_CODE  => p_CONDITION_rec.MONITOR_TYPE_CODE
463          ,p_TIME_LAG_NUM  => p_CONDITION_rec.TIME_LAG_NUM
464          ,p_TIME_LAG_UOM_CODE  => p_CONDITION_rec.TIME_LAG_UOM_CODE
465          ,p_TIME_LAG_FROM_STAGE  => p_CONDITION_rec.TIME_LAG_FROM_STAGE
466          ,p_TIME_LAG_TO_STAGE  => p_CONDITION_rec.TIME_LAG_TO_STAGE
467          ,p_Expiration_Relative          => p_CONDITION_rec.Expiration_Relative
468          ,p_Reminder_Defined             => p_CONDITION_rec.Reminder_Defined
469          ,p_Total_Reminders              => p_CONDITION_rec.Total_Reminders
470          ,p_Reminder_Frequency           => p_CONDITION_rec.Reminder_Frequency
471          ,p_Reminder_Freq_uom_code       => p_CONDITION_rec.Reminder_Freq_uom_code
472          ,p_Timeout_Defined              => p_CONDITION_rec.Timeout_Defined
473          ,p_Timeout_Duration             => p_CONDITION_rec.Timeout_Duration
474          ,p_Timeout_uom_code             => p_CONDITION_rec.Timeout_uom_code
475          ,p_Notify_Owner             => p_CONDITION_rec.Notify_Owner
476          ,p_Notify_Owner_Manager     => p_CONDITION_rec.Notify_Owner_Manager
477          ,p_ATTRIBUTE_CATEGORY  => p_CONDITION_rec.ATTRIBUTE_CATEGORY
478          ,p_ATTRIBUTE1  => p_CONDITION_rec.ATTRIBUTE1
479          ,p_ATTRIBUTE2  => p_CONDITION_rec.ATTRIBUTE2
480          ,p_ATTRIBUTE3  => p_CONDITION_rec.ATTRIBUTE3
481          ,p_ATTRIBUTE4  => p_CONDITION_rec.ATTRIBUTE4
482          ,p_ATTRIBUTE5  => p_CONDITION_rec.ATTRIBUTE5
483          ,p_ATTRIBUTE6  => p_CONDITION_rec.ATTRIBUTE6
484          ,p_ATTRIBUTE7  => p_CONDITION_rec.ATTRIBUTE7
485          ,p_ATTRIBUTE8  => p_CONDITION_rec.ATTRIBUTE8
486          ,p_ATTRIBUTE9  => p_CONDITION_rec.ATTRIBUTE9
487          ,p_ATTRIBUTE10  => p_CONDITION_rec.ATTRIBUTE10
488          ,p_ATTRIBUTE11  => p_CONDITION_rec.ATTRIBUTE11
489          ,p_ATTRIBUTE12  => p_CONDITION_rec.ATTRIBUTE12
490          ,p_ATTRIBUTE13  => p_CONDITION_rec.ATTRIBUTE13
491          ,p_ATTRIBUTE14  => p_CONDITION_rec.ATTRIBUTE14
492          ,p_ATTRIBUTE15  => p_CONDITION_rec.ATTRIBUTE15
493 );      --
494       -- End of API body.
495       --
496 
497       -- Standard check for p_commit
498       IF FND_API.to_Boolean( p_commit )
499       THEN
500           COMMIT WORK;
501       END IF;
502 
503 
504       -- Debug Message
505       IF (AS_DEBUG_LOW_ON) THEN
506         AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
507       END IF;
508 
509 
510       -- Standard call to get message count and if count is 1, get message info.
511       FND_MSG_PUB.Count_And_Get
512       (  p_count          =>   x_msg_count,
513          p_data           =>   x_msg_data
514       );
515 
516       EXCEPTION
517           WHEN FND_API.G_EXC_ERROR THEN
518               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
519                    P_API_NAME => L_API_NAME
520                   ,P_PKG_NAME => G_PKG_NAME
521                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
522                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
523                   ,X_MSG_COUNT => X_MSG_COUNT
524                   ,X_MSG_DATA => X_MSG_DATA
525                   ,X_RETURN_STATUS => X_RETURN_STATUS);
526 
527           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
528               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
529                    P_API_NAME => L_API_NAME
530                   ,P_PKG_NAME => G_PKG_NAME
531                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
532                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
533                   ,X_MSG_COUNT => X_MSG_COUNT
534                   ,X_MSG_DATA => X_MSG_DATA
535                   ,X_RETURN_STATUS => X_RETURN_STATUS);
536 
537           WHEN OTHERS THEN
538               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
539                    P_API_NAME => L_API_NAME
540                   ,P_PKG_NAME => G_PKG_NAME
541                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
542                   ,P_SQLCODE => SQLCODE
543                   ,P_SQLERRM => SQLERRM
544                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
545                   ,X_MSG_COUNT => X_MSG_COUNT
546                   ,X_MSG_DATA => X_MSG_DATA
547                   ,X_RETURN_STATUS => X_RETURN_STATUS);
548 End Update_monitor_condition;
549 
550 
551 --********************************************************************
552 PROCEDURE Delete_monitor_condition(
553     P_Api_Version_Number         IN   NUMBER,
554     P_Init_Msg_List              IN   VARCHAR2   := FND_API.G_FALSE,
555     P_Commit                     IN   VARCHAR2   := FND_API.G_FALSE,
556     p_validation_level           IN   NUMBER     := FND_API.G_VALID_LEVEL_FULL,
557     p_identity_salesforce_id     IN   NUMBER,
558     P_CONDITION_Rec              IN   AML_MONITOR_CONDITIONS_PUB.CONDITION_Rec_Type,
559     X_Return_Status              OUT  NOCOPY VARCHAR2,
560     X_Msg_Count                  OUT  NOCOPY NUMBER,
561     X_Msg_Data                   OUT  NOCOPY VARCHAR2
562     )
563 
564 
565  IS
566 l_api_name                CONSTANT VARCHAR2(30) := 'Delete_monitor_condition';
567 l_api_version_number      CONSTANT NUMBER   := 2.0;
568 l_identity_sales_member_rec  AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
569 BEGIN
570       -- Standard Start of API savepoint
571       SAVEPOINT DELETE_MONITOR_CONDITION_PVT;
572 
573       -- Standard call to check for call compatibility.
574       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
575                                            p_api_version_number,
576                                            l_api_name,
577                                            G_PKG_NAME)
578       THEN
579           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
580       END IF;
581 
582 
583       -- Initialize message list if p_init_msg_list is set to TRUE.
584       IF FND_API.to_Boolean( p_init_msg_list )
585       THEN
586           FND_MSG_PUB.initialize;
587       END IF;
588 
589 
590       -- Debug Message
591       IF (AS_DEBUG_LOW_ON) THEN
592         AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
593       END IF;
594 
595 
596       -- Initialize API return status to SUCCESS
597       x_return_status := FND_API.G_RET_STS_SUCCESS;
598 
599       --
600       -- Api body
601       --
602 
603       -- Debug Message
604       IF (AS_DEBUG_LOW_ON) THEN
605         AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling delete table handler');
606       END IF;
607 
608       -- Invoke table handler(aml_MONITOR_CONDITIONS_PKG.Delete_Row)
609       AML_MONITOR_CONDITIONS_PKG.Delete_Row(
610           p_process_rule_id  => p_CONDITION_rec.PROCESS_RULE_ID);
611       --
612       -- End of API body
613       --
614 
615       -- Standard check for p_commit
616       IF FND_API.to_Boolean( p_commit )
617       THEN
618           COMMIT WORK;
619       END IF;
620 
621 
622       -- Debug Message
623       IF (AS_DEBUG_LOW_ON) THEN
624         AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
625       END IF;
626 
627       -- Standard call to get message count and if count is 1, get message info.
628       FND_MSG_PUB.Count_And_Get
629       (  p_count          =>   x_msg_count,
630          p_data           =>   x_msg_data
631       );
632 
633       EXCEPTION
634           WHEN FND_API.G_EXC_ERROR THEN
635               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
636                    P_API_NAME => L_API_NAME
637                   ,P_PKG_NAME => G_PKG_NAME
638                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
639                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
640                   ,X_MSG_COUNT => X_MSG_COUNT
641                   ,X_MSG_DATA => X_MSG_DATA
642                   ,X_RETURN_STATUS => X_RETURN_STATUS);
643 
644           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
645               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
646                    P_API_NAME => L_API_NAME
647                   ,P_PKG_NAME => G_PKG_NAME
648                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
649                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
650                   ,X_MSG_COUNT => X_MSG_COUNT
651                   ,X_MSG_DATA => X_MSG_DATA
652                   ,X_RETURN_STATUS => X_RETURN_STATUS);
653 
654           WHEN OTHERS THEN
655               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
656                    P_API_NAME => L_API_NAME
657                   ,P_PKG_NAME => G_PKG_NAME
658                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
659                   ,P_SQLCODE => SQLCODE
660                   ,P_SQLERRM => SQLERRM
661                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
662                   ,X_MSG_COUNT => X_MSG_COUNT
663                   ,X_MSG_DATA => X_MSG_DATA
664                   ,X_RETURN_STATUS => X_RETURN_STATUS);
665 End Delete_monitor_condition;
666 
667 -- *******************************************************************
668 PROCEDURE Validate_MONITOR_CONDITION_ID (
669     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
670     P_Validation_mode            IN   VARCHAR2,
671     P_MONITOR_CONDITION_ID       IN   NUMBER,
672     X_Return_Status              OUT  NOCOPY VARCHAR2,
673     X_Msg_Count                  OUT  NOCOPY NUMBER,
674     X_Msg_Data                   OUT  NOCOPY VARCHAR2
675     )
676 IS
677   CURSOR C_condition_Id_Exists (C_MONITOR_CONDITION_ID NUMBER) IS
678       SELECT 'X'
679       FROM  aml_monitor_conditions
680       WHERE MONITOR_CONDITION_ID = C_MONITOR_CONDITION_ID;
681 
682   l_val   VARCHAR2(1);
683 BEGIN
684 
685       -- Initialize message list if p_init_msg_list is set to TRUE.
686       IF FND_API.to_Boolean( p_init_msg_list )
687       THEN
688           FND_MSG_PUB.initialize;
689       END IF;
690 
691 
692       -- Initialize API return status to SUCCESS
693       x_return_status := FND_API.G_RET_STS_SUCCESS;
694 
695       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
696       THEN
697           IF (p_monitor_condition_id IS NOT NULL) AND
698              (p_monitor_condition_id <> FND_API.G_MISS_NUM)
699           THEN
700               OPEN  C_condition_Id_Exists (p_monitor_condition_id);
701               FETCH C_condition_Id_Exists into l_val;
702 
703               IF C_condition_Id_Exists%NOTFOUND
704               THEN
705                   AS_UTILITY_PVT.Set_Message(
706                       p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
707                       p_msg_name => 'API_INVALID_ID',
708                       p_token1 => 'COLUMN',
709                       p_token1_value => 'MONITOR_CONDITION_ID',
710                       p_token2 => 'VALUE',
711                       p_token2_value => p_monitor_condition_id);
712 
713                   x_return_status := FND_API.G_RET_STS_ERROR;
714               END IF;
715               CLOSE C_condition_Id_Exists ;
716           END IF;
717 
718       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
719       THEN
720           -- validate NOT NULL column
721           IF (p_monitor_condition_id IS NULL) OR
722              (p_monitor_condition_id = FND_API.G_MISS_NUM)
723           THEN
724               AS_UTILITY_PVT.Set_Message(
725                   p_msg_level     => FND_MSG_PUB.G_MSG_LVL_ERROR,
726                   p_msg_name      => 'API_MISSING_ID',
727                   p_token1        => 'COLUMN',
728                   p_token1_value  => 'MONITOR_CONDITION_ID');
729 
730               x_return_status := FND_API.G_RET_STS_ERROR;
731           ELSE
732               OPEN  C_condition_Id_Exists (p_monitor_condition_id);
733               FETCH C_condition_Id_Exists into l_val;
734 
735               IF C_condition_Id_Exists%NOTFOUND
736               THEN
737                   AS_UTILITY_PVT.Set_Message(
738                       p_msg_level => FND_MSG_PUB.G_MSG_LVL_ERROR,
739                       p_msg_name => 'API_INVALID_ID',
740                       p_token1 => 'COLUMN',
741                       p_token1_value => 'MONITOR_CONDITION_ID',
742                       p_token2 => 'VALUE',
743                       p_token2_value => p_monitor_condition_id);
744 
745                   x_return_status := FND_API.G_RET_STS_ERROR;
746               END IF;
747 
748               CLOSE C_condition_Id_Exists;
749           END IF;
750       END IF;
751 
752       -- Standard call to get message count and if count is 1, get message info.
753       FND_MSG_PUB.Count_And_Get
754       (  p_count          =>   x_msg_count,
755          p_data           =>   x_msg_data
756       );
757 
758 END Validate_MONITOR_CONDITION_ID;
759 
760 -- *****************************************************************
761 PROCEDURE Validate_monitor_condition(
762     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
763     P_Validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
764     P_Validation_mode            IN   VARCHAR2,
765     P_CONDITION_Rec              IN   AML_MONITOR_CONDITIONS_PUB.CONDITION_Rec_Type,
766     X_Return_Status              OUT  NOCOPY VARCHAR2,
767     X_Msg_Count                  OUT  NOCOPY NUMBER,
768     X_Msg_Data                   OUT  NOCOPY VARCHAR2
769     )
770 IS
771 l_api_name   CONSTANT VARCHAR2(30) := 'Validate_monitor_condition';
772     l_val  VARCHAR2(1);
773 
774   CURSOR C_time_lag_to_stage_exists (c_time_lag_to_stage VARCHAR2) IS
775    SELECT 'X'
776    FROM (
777       SELECT status_code time_lag_to_stage
778       FROM  as_statuses_b
779       WHERE lead_flag = 'Y' and enabled_flag = 'Y'
780         UNION ALL
781       SELECT  lookup_code time_lag_to_stage
782       FROM  fnd_lookup_values
783       WHERE lookup_type = 'TIME_LAG_TO_STAGE'
784       AND enabled_flag = 'Y'
785       AND (start_date_active IS NULL OR start_date_active < SYSDATE)
786       AND (end_date_active IS NULL OR end_date_active > SYSDATE))
787    WHERE time_lag_to_stage = c_time_lag_to_stage;
788 
789 BEGIN
790 
791       -- Debug Message
792       IF (AS_DEBUG_LOW_ON) THEN
793         AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
794       END IF;
795 
796       -- Initialize API return status to SUCCESS
797       x_return_status := FND_API.G_RET_STS_SUCCESS;
798 
799 
800       IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_ITEM) THEN
801          -- validate monitor_condition_id
802           Validate_MONITOR_CONDITION_ID(
803               p_init_msg_list          => FND_API.G_FALSE,
804               p_validation_mode        => p_validation_mode,
805               p_MONITOR_CONDITION_ID   => P_CONDITION_Rec.MONITOR_CONDITION_ID,
806               x_return_status          => x_return_status,
807               x_msg_count              => x_msg_count,
808               x_msg_data               => x_msg_data);
809           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
810               raise FND_API.G_EXC_ERROR;
811           END IF;
812 
813         -- validate OBJECT_VERSION_NUMBER
814           PV_COMMON_CHECKS_PVT.Validate_OBJECT_VERSION_NUMBER(
815               p_init_msg_list          => FND_API.G_FALSE,
816               p_validation_mode        => p_validation_mode,
817               p_OBJECT_VERSION_NUMBER   => P_CONDITION_Rec.OBJECT_VERSION_NUMBER,
818               x_return_status          => x_return_status,
819               x_msg_count              => x_msg_count,
820               x_msg_data               => x_msg_data);
821           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
822               raise FND_API.G_EXC_ERROR;
823           END IF;
824 
825 
826         -- validate PROCESS_RULE_ID
827           pv_common_checks_pvt.Validate_PROCESS_RULE_ID(
828               p_init_msg_list          => FND_API.G_FALSE,
829               p_validation_mode        => p_validation_mode,
830               p_PROCESS_RULE_ID        => P_CONDITION_Rec.PROCESS_RULE_ID,
831               x_return_status          => x_return_status,
832               x_msg_count              => x_msg_count,
833               x_msg_data               => x_msg_data);
834 
835           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
836               raise FND_API.G_EXC_ERROR;
837           END IF;
838 
839         -- validate MONITOR_TYPE_CODE
840          if P_CONDITION_Rec.MONITOR_TYPE_CODE is NOT NULL and
841              P_CONDITION_Rec.MONITOR_TYPE_CODE <> FND_API.G_MISS_CHAR then
842 
843              pv_common_checks_pvt.Validate_Lookup(
844                  p_init_msg_list          => FND_API.G_FALSE,
845                  p_validation_mode        => p_validation_mode,
846                  p_TABLE_NAME             => 'AML_MONITOR_CONDITIONS',
847                  p_COLUMN_NAME            => 'MONITOR_TYPE_CODE',
848                  p_lookup_type            => 'MONITOR_TYPE',
849                  p_lookup_code            => P_CONDITION_Rec.MONITOR_TYPE_CODE,
850                  x_return_status          => x_return_status,
851                  x_msg_count              => x_msg_count,
852                  x_msg_data               => x_msg_data);
853 
854              IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
855               raise FND_API.G_EXC_ERROR;
856              END IF;
857 
858           END IF;
859 
860 
861 -- Validate_TIME_LAG_UOM_CODE
862         if P_CONDITION_Rec.TIME_LAG_UOM_CODE is NOT NULL and
863              P_CONDITION_Rec.TIME_LAG_UOM_CODE <> FND_API.G_MISS_CHAR then
864 
865              pv_common_checks_pvt.Validate_Lookup(
866                  p_init_msg_list          => FND_API.G_FALSE,
867                  p_validation_mode        => p_validation_mode,
868                  p_TABLE_NAME             => 'AML_MONITOR_CONDITIONS',
869                  p_COLUMN_NAME            => 'TIME_LAG_UOM_CODE',
870                  p_lookup_type            => 'PV_TIMEOUT_UOM',
871                  p_lookup_code            => P_CONDITION_Rec.TIME_LAG_UOM_CODE,
872                  x_return_status          => x_return_status,
873                  x_msg_count              => x_msg_count,
874                  x_msg_data               => x_msg_data);
875 
876              IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
877               raise FND_API.G_EXC_ERROR;
878              END IF;
879 
880           END IF;
881 
882 
883 -- Time_lag_from_stage = assigned date ,Creation date
884 
885 
886 -- validate TIME_LAG_FROM_STAGE
887          if P_CONDITION_Rec.TIME_LAG_FROM_STAGE is NOT NULL and
888              P_CONDITION_Rec.TIME_LAG_FROM_STAGE <> FND_API.G_MISS_CHAR then
889 
890              pv_common_checks_pvt.Validate_Lookup(
891                  p_init_msg_list          => FND_API.G_FALSE,
892                  p_validation_mode        => p_validation_mode,
893                  p_TABLE_NAME             => 'AML_MONITOR_CONDITIONS',
894                  p_COLUMN_NAME            => 'TIME_LAG_FROM_STAGE',
895                  p_lookup_type            => 'TIME_LAG_FROM_STAGE',
896                  p_lookup_code            => P_CONDITION_Rec.TIME_LAG_FROM_STAGE,
897                  x_return_status          => x_return_status,
898                  x_msg_count              => x_msg_count,
899                  x_msg_data               => x_msg_data);
900 
901              IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
902               raise FND_API.G_EXC_ERROR;
903              END IF;
904 
905           END IF;
906 
907 
908 -- validate TIME_LAG_TO_STAGE
909          if P_CONDITION_Rec.TIME_LAG_TO_STAGE is NOT NULL and
910              P_CONDITION_Rec.TIME_LAG_TO_STAGE <> FND_API.G_MISS_CHAR then
911 
912               OPEN C_time_lag_to_stage_exists(P_CONDITION_Rec.TIME_LAG_TO_STAGE);
913               FETCH C_time_lag_to_stage_exists INTO  l_val;
914               IF C_time_lag_to_stage_exists%NOTFOUND THEN
915                 AS_UTILITY_PVT.Set_Message(
916                 p_msg_level     => FND_MSG_PUB.G_MSG_LVL_ERROR,
917                 p_msg_name      => 'API_INVALID_ID',
918                 p_token1        => 'COLUMN',
919                 p_token1_value  => 'TIME_LAG_TO_STAGE',
920                 p_token2        => 'VALUE',
921                 p_token2_value  =>  P_CONDITION_Rec.TIME_LAG_TO_STAGE );
922                  raise FND_API.G_EXC_ERROR;
923               END IF;
924 
925           END IF;
926 
927 --
928 
929           -- Validate_Reminder_Freq_uom_code
930         if P_CONDITION_Rec.REMINDER_FREQ_UOM_CODE is NOT NULL and
931              P_CONDITION_Rec.REMINDER_FREQ_UOM_CODE <> FND_API.G_MISS_CHAR then
932 
933              pv_common_checks_pvt.Validate_Lookup(
934                  p_init_msg_list          => FND_API.G_FALSE,
935                  p_validation_mode        => p_validation_mode,
936                  p_TABLE_NAME             => 'AML_MONITOR_CONDITIONS',
937                  p_COLUMN_NAME            => 'REMINDER_FREQ_UOM_CODE',
938                  p_lookup_type            => 'PV_TIMEOUT_UOM',
939                  p_lookup_code            => P_CONDITION_Rec.REMINDER_FREQ_UOM_CODE,
940                  x_return_status          => x_return_status,
941                  x_msg_count              => x_msg_count,
942                  x_msg_data               => x_msg_data);
943 
944              IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
945               raise FND_API.G_EXC_ERROR;
946              END IF;
947 
948           END IF;
949 
950 
951     -- Validate_Timeout_uom_code
952         if P_CONDITION_Rec.TIMEOUT_UOM_CODE is NOT NULL and
953              P_CONDITION_Rec.TIMEOUT_UOM_CODE <> FND_API.G_MISS_CHAR then
954 
955              pv_common_checks_pvt.Validate_Lookup(
956                  p_init_msg_list          => FND_API.G_FALSE,
957                  p_validation_mode        => p_validation_mode,
958                  p_TABLE_NAME             => 'AML_MONITOR_CONDITIONS',
959                  p_COLUMN_NAME            => 'TIMEOUT_UOM_CODE',
960                  p_lookup_type            => 'PV_TIMEOUT_UOM',
961                  p_lookup_code            => P_CONDITION_Rec.TIMEOUT_UOM_CODE,
962                  x_return_status          => x_return_status,
963                  x_msg_count              => x_msg_count,
964                  x_msg_data               => x_msg_data);
965 
966              IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
967               raise FND_API.G_EXC_ERROR;
968              END IF;
969 
970           END IF;
971 
972       END IF;
973 
974 
975       -- Added validation by Ajoy
976       IF ((P_CONDITION_Rec.Reminder_Defined = 'Y') AND
977           (P_CONDITION_Rec.Total_Reminders IS NULL OR P_CONDITION_Rec.Reminder_Frequency IS NULL)) THEN
978 
979             IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
980             THEN
981        		 FND_MESSAGE.Set_Name('AS', 'AS_LEAD_MNTR_REMIND_REQD');
982         	 FND_MSG_PUB.Add;
983             END IF;
984 
985               x_return_status := FND_API.G_RET_STS_ERROR;
986            --   raise FND_API.G_EXC_ERROR;
987       END IF;
988 
989 
990       IF ((P_CONDITION_Rec.Reminder_Defined = 'N') AND
991           (P_CONDITION_Rec.Total_Reminders IS NOT NULL OR P_CONDITION_Rec.Reminder_Frequency IS NOT NULL)) THEN
992 
993            AS_UTILITY_PVT.Set_Message(
994               p_msg_level    => FND_MSG_PUB.G_MSG_LVL_ERROR,
995               p_msg_name     => 'AS_LEAD_MNTR_REMIND_CLR');
996 
997               x_return_status := FND_API.G_RET_STS_ERROR;
998              -- raise FND_API.G_EXC_ERROR;
999       END IF;
1000 
1001       IF (P_CONDITION_Rec.Timeout_Defined = 'Y' AND P_CONDITION_Rec.Timeout_Duration IS NULL)
1002        OR (P_CONDITION_Rec.Timeout_Defined = 'Y' AND P_CONDITION_Rec.Timeout_Duration < 0)  THEN
1003 
1004             IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1005             THEN
1006        		 FND_MESSAGE.Set_Name('AS', 'AS_LEAD_MNTR_TMOUT_REQD');
1007         	 FND_MSG_PUB.Add;
1008             END IF;
1009 
1010               x_return_status := FND_API.G_RET_STS_ERROR;
1011               --raise FND_API.G_EXC_ERROR;
1012       END IF;
1013 
1014       IF (P_CONDITION_Rec.Timeout_Defined = 'N' AND P_CONDITION_Rec.Timeout_Duration IS NOT NULL) THEN
1015 
1016            AS_UTILITY_PVT.Set_Message(
1017               p_msg_level    => FND_MSG_PUB.G_MSG_LVL_ERROR,
1018               p_msg_name     => 'AS_LEAD_MNTR_TMOUT_CLR');
1019 
1020               x_return_status := FND_API.G_RET_STS_ERROR;
1021               --raise FND_API.G_EXC_ERROR;
1022       END IF;
1023 
1024       IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_RECORD) THEN
1025           -- Hint: Inter-field level validation can be added here
1026           -- invoke record level validation procedures
1027             NULL;
1028       END IF;
1029 
1030       IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_INTER_RECORD) THEN
1031           -- invoke inter-record level validation procedures
1032           NULL;
1033       END IF;
1034 
1035       IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_INTER_ENTITY) THEN
1036           -- invoke inter-entity level validation procedures
1037           NULL;
1038       END IF;
1039 
1040 
1041       -- Debug Message
1042       IF (AS_DEBUG_LOW_ON) THEN
1043         AS_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
1044       END IF;
1045 
1046 END Validate_monitor_condition;
1047 
1048 
1049 End AML_MONITOR_CONDITIONS_PVT;