DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSP_NOTIFICATIONS_PKG

Source


1 PACKAGE BODY CSP_NOTIFICATIONS_PKG as
2 /* $Header: csptpnob.pls 115.9 2002/11/26 07:37:49 hhaugeru ship $ */
3 -- Start of Comments
4 -- Package name     : CSP_NOTIFICATIONS_PKG
5 -- Purpose          :
6 -- History          :
7 -- NOTE             :
8 -- End of Comments
9 
10 
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'CSP_NOTIFICATIONS_PKG';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'csptpnob.pls';
13 
14 PROCEDURE Insert_Row(
15           px_NOTIFICATION_ID   IN OUT NOCOPY NUMBER,
16           p_CREATED_BY    NUMBER,
17           p_CREATION_DATE    DATE,
18           p_LAST_UPDATED_BY    NUMBER,
19           p_LAST_UPDATE_DATE    DATE,
20           p_LAST_UPDATE_LOGIN    NUMBER,
21           p_PLANNER_CODE    VARCHAR2,
22           p_PARTS_LOOP_ID    NUMBER,
23           p_ORGANIZATION_ID    NUMBER,
24           p_INVENTORY_ITEM_ID    NUMBER,
25           p_NOTIFICATION_DATE    DATE,
26           p_REASON    VARCHAR2,
27           p_STATUS    VARCHAR2,
28           p_QUANTITY    NUMBER,
29           p_ATTRIBUTE_CATEGORY    VARCHAR2,
30           p_ATTRIBUTE1    VARCHAR2,
31           p_ATTRIBUTE2    VARCHAR2,
32           p_ATTRIBUTE3    VARCHAR2,
33           p_ATTRIBUTE4    VARCHAR2,
34           p_ATTRIBUTE5    VARCHAR2,
35           p_ATTRIBUTE6    VARCHAR2,
36           p_ATTRIBUTE7    VARCHAR2,
37           p_ATTRIBUTE8    VARCHAR2,
38           p_ATTRIBUTE9    VARCHAR2,
39           p_ATTRIBUTE10    VARCHAR2,
40           p_ATTRIBUTE11    VARCHAR2,
41           p_ATTRIBUTE12    VARCHAR2,
42           p_ATTRIBUTE13    VARCHAR2,
43           p_ATTRIBUTE14    VARCHAR2,
44           p_ATTRIBUTE15    VARCHAR2,
45           p_REQUEST_ID    NUMBER ,
46           p_PROGRAM_APPLICATION_ID    NUMBER ,
47           p_PROGRAM_ID    NUMBER ,
48           p_PROGRAM_UPDATE_DATE    DATE ,
49           p_NEED_DATE    DATE ,
50           p_SUPPRESS_END_DATE    DATE ,
51           p_NOTIFICATION_TYPE    VARCHAR2 )
52 
53  IS
54    CURSOR C2 IS SELECT CSP_NOTIFICATIONS_S1.nextval FROM sys.dual;
55 BEGIN
56    If (px_NOTIFICATION_ID IS NULL) OR (px_NOTIFICATION_ID = FND_API.G_MISS_NUM) then
57        OPEN C2;
58        FETCH C2 INTO px_NOTIFICATION_ID;
59        CLOSE C2;
60    End If;
61    INSERT INTO CSP_NOTIFICATIONS(
62            NOTIFICATION_ID,
63            CREATED_BY,
64            CREATION_DATE,
65            LAST_UPDATED_BY,
66            LAST_UPDATE_DATE,
67            LAST_UPDATE_LOGIN,
68            PLANNER_CODE,
69            PARTS_LOOP_ID,
70            ORGANIZATION_ID,
71            INVENTORY_ITEM_ID,
72            NOTIFICATION_DATE,
73            REASON,
74            STATUS,
75            QUANTITY,
76            ATTRIBUTE_CATEGORY,
77            ATTRIBUTE1,
78            ATTRIBUTE2,
79            ATTRIBUTE3,
80            ATTRIBUTE4,
81            ATTRIBUTE5,
82            ATTRIBUTE6,
83            ATTRIBUTE7,
84            ATTRIBUTE8,
85            ATTRIBUTE9,
86            ATTRIBUTE10,
87            ATTRIBUTE11,
88            ATTRIBUTE12,
89            ATTRIBUTE13,
90            ATTRIBUTE14,
91            ATTRIBUTE15,
92            REQUEST_ID,
93            PROGRAM_APPLICATION_ID,
94            PROGRAM_ID,
95            PROGRAM_UPDATE_DATE,
96            NEED_DATE,
97            SUPPRESS_END_DATE,
98            NOTIFICATION_TYPE
99           ) VALUES (
100            px_NOTIFICATION_ID,
101            decode( p_CREATED_BY, FND_API.G_MISS_NUM, NULL, p_CREATED_BY),
102            decode(p_CREATION_DATE, fnd_api.g_miss_date,to_date(null),p_creation_date),
103            decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATED_BY),
104            decode(p_LAST_UPDATE_DATE, fnd_api.g_miss_date,to_date(null),p_last_update_date),
105            decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATE_LOGIN),
106            decode( p_PLANNER_CODE, FND_API.G_MISS_CHAR, NULL, p_PLANNER_CODE),
107            decode( p_PARTS_LOOP_ID, FND_API.G_MISS_NUM, NULL, p_PARTS_LOOP_ID),
108            decode( p_ORGANIZATION_ID, FND_API.G_MISS_NUM, NULL, p_ORGANIZATION_ID),
109            decode( p_INVENTORY_ITEM_ID, FND_API.G_MISS_NUM, NULL, p_INVENTORY_ITEM_ID),
110            decode( p_NOTIFICATION_DATE, FND_API.G_MISS_DATE, to_date(NULL), p_NOTIFICATION_DATE),
111            decode( p_REASON, FND_API.G_MISS_CHAR, NULL, p_REASON),
112            decode( p_STATUS, FND_API.G_MISS_CHAR, NULL, p_STATUS),
113            decode( p_QUANTITY, FND_API.G_MISS_NUM, NULL, p_QUANTITY),
114            decode( p_ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE_CATEGORY),
115            decode( p_ATTRIBUTE1, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE1),
116            decode( p_ATTRIBUTE2, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE2),
117            decode( p_ATTRIBUTE3, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE3),
118            decode( p_ATTRIBUTE4, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE4),
119            decode( p_ATTRIBUTE5, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE5),
120            decode( p_ATTRIBUTE6, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE6),
121            decode( p_ATTRIBUTE7, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE7),
122            decode( p_ATTRIBUTE8, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE8),
123            decode( p_ATTRIBUTE9, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE9),
124            decode( p_ATTRIBUTE10, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE10),
125            decode( p_ATTRIBUTE11, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE11),
126            decode( p_ATTRIBUTE12, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE12),
127            decode( p_ATTRIBUTE13, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE13),
128            decode( p_ATTRIBUTE14, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE14),
129            decode( p_ATTRIBUTE15, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE15),
130            decode( p_REQUEST_ID, FND_API.G_MISS_NUM, NULL, p_REQUEST_ID),
131            decode( p_PROGRAM_APPLICATION_ID, FND_API.G_MISS_NUM, NULL, p_PROGRAM_APPLICATION_ID),
132            decode( p_PROGRAM_ID, FND_API.G_MISS_NUM, NULL, p_PROGRAM_ID),
133            decode( p_PROGRAM_UPDATE_DATE, FND_API.G_MISS_DATE, to_date(null), p_PROGRAM_UPDATE_DATE),
134            decode( p_NEED_DATE, FND_API.G_MISS_DATE, to_date(null), p_NEED_DATE),
135            decode( p_SUPPRESS_END_DATE, FND_API.G_MISS_DATE, to_date(null), p_SUPPRESS_END_DATE),
136            decode( p_NOTIFICATION_TYPE, FND_API.G_MISS_CHAR, NULL, p_NOTIFICATION_TYPE));
137 End Insert_Row;
138 
139 PROCEDURE Update_Row(
140           p_NOTIFICATION_ID    NUMBER,
141           p_CREATED_BY    NUMBER,
142           p_CREATION_DATE    DATE,
143           p_LAST_UPDATED_BY    NUMBER,
144           p_LAST_UPDATE_DATE    DATE,
145           p_LAST_UPDATE_LOGIN    NUMBER,
146           p_PLANNER_CODE    VARCHAR2,
147           p_PARTS_LOOP_ID    NUMBER,
148           p_ORGANIZATION_ID    NUMBER,
149           p_INVENTORY_ITEM_ID    NUMBER,
150           p_NOTIFICATION_DATE    DATE,
151           p_REASON    VARCHAR2,
152           p_STATUS    VARCHAR2,
153           p_QUANTITY    NUMBER,
154           p_ATTRIBUTE_CATEGORY    VARCHAR2,
155           p_ATTRIBUTE1    VARCHAR2,
156           p_ATTRIBUTE2    VARCHAR2,
157           p_ATTRIBUTE3    VARCHAR2,
158           p_ATTRIBUTE4    VARCHAR2,
159           p_ATTRIBUTE5    VARCHAR2,
160           p_ATTRIBUTE6    VARCHAR2,
161           p_ATTRIBUTE7    VARCHAR2,
162           p_ATTRIBUTE8    VARCHAR2,
163           p_ATTRIBUTE9    VARCHAR2,
164           p_ATTRIBUTE10    VARCHAR2,
165           p_ATTRIBUTE11    VARCHAR2,
166           p_ATTRIBUTE12    VARCHAR2,
167           p_ATTRIBUTE13    VARCHAR2,
168           p_ATTRIBUTE14    VARCHAR2,
169           p_ATTRIBUTE15    VARCHAR2,
170           p_REQUEST_ID    NUMBER ,
171           p_PROGRAM_APPLICATION_ID    NUMBER ,
172           p_PROGRAM_ID    NUMBER ,
173           p_PROGRAM_UPDATE_DATE    DATE ,
174           p_NEED_DATE    DATE ,
175           p_SUPPRESS_END_DATE    DATE ,
176           p_NOTIFICATION_TYPE    VARCHAR2 )
177 
178  IS
179  BEGIN
180     Update CSP_NOTIFICATIONS
181     SET
182               CREATED_BY = decode( p_CREATED_BY, FND_API.G_MISS_NUM, CREATED_BY, p_CREATED_BY),
183               CREATION_DATE = decode(p_CREATION_DATE, fnd_api.g_miss_date,creation_date,p_creation_date),
184               LAST_UPDATED_BY = decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, LAST_UPDATED_BY, p_LAST_UPDATED_BY),
185               LAST_UPDATE_DATE = decode(p_LAST_UPDATE_DATE,fnd_api.g_miss_date,last_update_date,p_last_update_date),
186               LAST_UPDATE_LOGIN = decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, LAST_UPDATE_LOGIN, p_LAST_UPDATE_LOGIN),
187               PLANNER_CODE = decode( p_PLANNER_CODE, FND_API.G_MISS_CHAR, PLANNER_CODE, p_PLANNER_CODE),
188               PARTS_LOOP_ID = decode( p_PARTS_LOOP_ID, FND_API.G_MISS_NUM, PARTS_LOOP_ID, p_PARTS_LOOP_ID),
189               ORGANIZATION_ID = decode( p_ORGANIZATION_ID, FND_API.G_MISS_NUM, ORGANIZATION_ID, p_ORGANIZATION_ID),
190               INVENTORY_ITEM_ID = decode( p_INVENTORY_ITEM_ID, FND_API.G_MISS_NUM, INVENTORY_ITEM_ID, p_INVENTORY_ITEM_ID),
191               NOTIFICATION_DATE = decode( p_NOTIFICATION_DATE, FND_API.G_MISS_DATE, NOTIFICATION_DATE, p_NOTIFICATION_DATE),
192               REASON = decode( p_REASON, FND_API.G_MISS_CHAR, REASON, p_REASON),
193               STATUS = decode( p_STATUS, FND_API.G_MISS_CHAR, STATUS, p_STATUS),
194               QUANTITY = decode( p_QUANTITY, FND_API.G_MISS_NUM, QUANTITY, p_QUANTITY),
195               ATTRIBUTE_CATEGORY = decode( p_ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, ATTRIBUTE_CATEGORY, p_ATTRIBUTE_CATEGORY),
196               ATTRIBUTE1 = decode( p_ATTRIBUTE1, FND_API.G_MISS_CHAR, ATTRIBUTE1, p_ATTRIBUTE1),
197               ATTRIBUTE2 = decode( p_ATTRIBUTE2, FND_API.G_MISS_CHAR, ATTRIBUTE2, p_ATTRIBUTE2),
198               ATTRIBUTE3 = decode( p_ATTRIBUTE3, FND_API.G_MISS_CHAR, ATTRIBUTE3, p_ATTRIBUTE3),
199               ATTRIBUTE4 = decode( p_ATTRIBUTE4, FND_API.G_MISS_CHAR, ATTRIBUTE4, p_ATTRIBUTE4),
200               ATTRIBUTE5 = decode( p_ATTRIBUTE5, FND_API.G_MISS_CHAR, ATTRIBUTE5, p_ATTRIBUTE5),
201               ATTRIBUTE6 = decode( p_ATTRIBUTE6, FND_API.G_MISS_CHAR, ATTRIBUTE6, p_ATTRIBUTE6),
202               ATTRIBUTE7 = decode( p_ATTRIBUTE7, FND_API.G_MISS_CHAR, ATTRIBUTE7, p_ATTRIBUTE7),
203               ATTRIBUTE8 = decode( p_ATTRIBUTE8, FND_API.G_MISS_CHAR, ATTRIBUTE8, p_ATTRIBUTE8),
204               ATTRIBUTE9 = decode( p_ATTRIBUTE9, FND_API.G_MISS_CHAR, ATTRIBUTE9, p_ATTRIBUTE9),
205               ATTRIBUTE10 = decode( p_ATTRIBUTE10, FND_API.G_MISS_CHAR, ATTRIBUTE10, p_ATTRIBUTE10),
206               ATTRIBUTE11 = decode( p_ATTRIBUTE11, FND_API.G_MISS_CHAR, ATTRIBUTE11, p_ATTRIBUTE11),
207               ATTRIBUTE12 = decode( p_ATTRIBUTE12, FND_API.G_MISS_CHAR, ATTRIBUTE12, p_ATTRIBUTE12),
208               ATTRIBUTE13 = decode( p_ATTRIBUTE13, FND_API.G_MISS_CHAR, ATTRIBUTE13, p_ATTRIBUTE13),
209               ATTRIBUTE14 = decode( p_ATTRIBUTE14, FND_API.G_MISS_CHAR, ATTRIBUTE14, p_ATTRIBUTE14),
210               ATTRIBUTE15 = decode( p_ATTRIBUTE15, FND_API.G_MISS_CHAR, ATTRIBUTE15, p_ATTRIBUTE15),
211               REQUEST_ID = decode( p_REQUEST_ID, FND_API.G_MISS_NUM, REQUEST_ID, p_REQUEST_ID),
212               PROGRAM_APPLICATION_ID = decode( p_PROGRAM_APPLICATION_ID, FND_API.G_MISS_NUM, PROGRAM_APPLICATION_ID, p_PROGRAM_APPLICATION_ID),
213               PROGRAM_ID = decode( p_PROGRAM_ID, FND_API.G_MISS_NUM, PROGRAM_ID, p_PROGRAM_ID),
214               PROGRAM_UPDATE_DATE = decode( p_PROGRAM_UPDATE_DATE, FND_API.G_MISS_DATE, PROGRAM_UPDATE_DATE, p_PROGRAM_UPDATE_DATE),
215               NEED_DATE = decode( p_NEED_DATE, FND_API.G_MISS_DATE, NEED_DATE, p_NEED_DATE),
216               SUPPRESS_END_DATE = decode( p_SUPPRESS_END_DATE, FND_API.G_MISS_DATE, SUPPRESS_END_DATE, p_SUPPRESS_END_DATE),
217               NOTIFICATION_TYPE = decode( p_NOTIFICATION_TYPE, FND_API.G_MISS_CHAR, NOTIFICATION_TYPE, p_NOTIFICATION_TYPE)
218     where NOTIFICATION_ID = p_NOTIFICATION_ID;
219 
220     If (SQL%NOTFOUND) then
221         RAISE NO_DATA_FOUND;
222     End If;
223 END Update_Row;
224 
225 PROCEDURE Delete_Row(
226     p_NOTIFICATION_ID  NUMBER)
227  IS
228  BEGIN
229    DELETE FROM CSP_NOTIFICATIONS
230     WHERE NOTIFICATION_ID = p_NOTIFICATION_ID;
231    If (SQL%NOTFOUND) then
232        RAISE NO_DATA_FOUND;
233    End If;
234  END Delete_Row;
235 
236 PROCEDURE Lock_Row(
237           p_NOTIFICATION_ID    NUMBER,
238           p_CREATED_BY    NUMBER,
239           p_CREATION_DATE    DATE,
240           p_LAST_UPDATED_BY    NUMBER,
241           p_LAST_UPDATE_DATE    DATE,
242           p_LAST_UPDATE_LOGIN    NUMBER,
243           p_PLANNER_CODE    VARCHAR2,
244           p_PARTS_LOOP_ID    NUMBER,
245           p_ORGANIZATION_ID    NUMBER,
246           p_INVENTORY_ITEM_ID    NUMBER,
247           p_NOTIFICATION_DATE    DATE,
248           p_REASON    VARCHAR2,
249           p_STATUS    VARCHAR2,
250           p_QUANTITY    NUMBER,
251           p_ATTRIBUTE_CATEGORY    VARCHAR2,
252           p_ATTRIBUTE1    VARCHAR2,
253           p_ATTRIBUTE2    VARCHAR2,
254           p_ATTRIBUTE3    VARCHAR2,
255           p_ATTRIBUTE4    VARCHAR2,
256           p_ATTRIBUTE5    VARCHAR2,
257           p_ATTRIBUTE6    VARCHAR2,
258           p_ATTRIBUTE7    VARCHAR2,
259           p_ATTRIBUTE8    VARCHAR2,
260           p_ATTRIBUTE9    VARCHAR2,
261           p_ATTRIBUTE10    VARCHAR2,
262           p_ATTRIBUTE11    VARCHAR2,
263           p_ATTRIBUTE12    VARCHAR2,
264           p_ATTRIBUTE13    VARCHAR2,
265           p_ATTRIBUTE14    VARCHAR2,
266           p_ATTRIBUTE15    VARCHAR2,
267           p_REQUEST_ID    NUMBER ,
268           p_PROGRAM_APPLICATION_ID    NUMBER ,
269           p_PROGRAM_ID    NUMBER ,
270           p_PROGRAM_UPDATE_DATE    DATE ,
271           p_NEED_DATE    DATE ,
272           p_SUPPRESS_END_DATE    DATE ,
273           p_NOTIFICATION_TYPE    VARCHAR2  )
274 
275  IS
276    CURSOR C IS
277         SELECT *
278          FROM CSP_NOTIFICATIONS
279         WHERE NOTIFICATION_ID =  p_NOTIFICATION_ID
280         FOR UPDATE of NOTIFICATION_ID NOWAIT;
281    Recinfo C%ROWTYPE;
282  BEGIN
283     OPEN C;
284     FETCH C INTO Recinfo;
285     If (C%NOTFOUND) then
286         CLOSE C;
287         FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
288         APP_EXCEPTION.RAISE_EXCEPTION;
289     End If;
290     CLOSE C;
291     if (
292            (      Recinfo.NOTIFICATION_ID = p_NOTIFICATION_ID)
293        AND (    ( Recinfo.CREATED_BY = p_CREATED_BY)
294             OR (    ( Recinfo.CREATED_BY IS NULL )
295                 AND (  p_CREATED_BY IS NULL )))
296        AND (    ( Recinfo.CREATION_DATE = p_CREATION_DATE)
297             OR (    ( Recinfo.CREATION_DATE IS NULL )
298                 AND (  p_CREATION_DATE IS NULL )))
299        AND (    ( Recinfo.LAST_UPDATED_BY = p_LAST_UPDATED_BY)
300             OR (    ( Recinfo.LAST_UPDATED_BY IS NULL )
301                 AND (  p_LAST_UPDATED_BY IS NULL )))
302        AND (    ( Recinfo.LAST_UPDATE_DATE = p_LAST_UPDATE_DATE)
303             OR (    ( Recinfo.LAST_UPDATE_DATE IS NULL )
307                 AND (  p_LAST_UPDATE_LOGIN IS NULL )))
304                 AND (  p_LAST_UPDATE_DATE IS NULL )))
305        AND (    ( Recinfo.LAST_UPDATE_LOGIN = p_LAST_UPDATE_LOGIN)
306             OR (    ( Recinfo.LAST_UPDATE_LOGIN IS NULL )
308        AND (    ( Recinfo.PLANNER_CODE = p_PLANNER_CODE)
309             OR (    ( Recinfo.PLANNER_CODE IS NULL )
310                 AND (  p_PLANNER_CODE IS NULL )))
311        AND (    ( Recinfo.PARTS_LOOP_ID = p_PARTS_LOOP_ID)
312             OR (    ( Recinfo.PARTS_LOOP_ID IS NULL )
313                 AND (  p_PARTS_LOOP_ID IS NULL )))
314        AND (    ( Recinfo.ORGANIZATION_ID = p_ORGANIZATION_ID)
315             OR (    ( Recinfo.ORGANIZATION_ID IS NULL )
316                 AND (  p_ORGANIZATION_ID IS NULL )))
317        AND (    ( Recinfo.INVENTORY_ITEM_ID = p_INVENTORY_ITEM_ID)
318             OR (    ( Recinfo.INVENTORY_ITEM_ID IS NULL )
319                 AND (  p_INVENTORY_ITEM_ID IS NULL )))
320        AND (    ( Recinfo.NOTIFICATION_DATE = p_NOTIFICATION_DATE)
321             OR (    ( Recinfo.NOTIFICATION_DATE IS NULL )
322                 AND (  p_NOTIFICATION_DATE IS NULL )))
323        AND (    ( Recinfo.REASON = p_REASON)
324             OR (    ( Recinfo.REASON IS NULL )
325                 AND (  p_REASON IS NULL )))
326        AND (    ( Recinfo.STATUS = p_STATUS)
327             OR (    ( Recinfo.STATUS IS NULL )
328                 AND (  p_STATUS IS NULL )))
329        AND (    ( Recinfo.QUANTITY = p_QUANTITY)
330             OR (    ( Recinfo.QUANTITY IS NULL )
331                 AND (  p_QUANTITY IS NULL )))
332        AND (    ( Recinfo.ATTRIBUTE_CATEGORY = p_ATTRIBUTE_CATEGORY)
333             OR (    ( Recinfo.ATTRIBUTE_CATEGORY IS NULL )
334                 AND (  p_ATTRIBUTE_CATEGORY IS NULL )))
335        AND (    ( Recinfo.ATTRIBUTE1 = p_ATTRIBUTE1)
336             OR (    ( Recinfo.ATTRIBUTE1 IS NULL )
337                 AND (  p_ATTRIBUTE1 IS NULL )))
338        AND (    ( Recinfo.ATTRIBUTE2 = p_ATTRIBUTE2)
339             OR (    ( Recinfo.ATTRIBUTE2 IS NULL )
340                 AND (  p_ATTRIBUTE2 IS NULL )))
341        AND (    ( Recinfo.ATTRIBUTE3 = p_ATTRIBUTE3)
342             OR (    ( Recinfo.ATTRIBUTE3 IS NULL )
343                 AND (  p_ATTRIBUTE3 IS NULL )))
344        AND (    ( Recinfo.ATTRIBUTE4 = p_ATTRIBUTE4)
345             OR (    ( Recinfo.ATTRIBUTE4 IS NULL )
346                 AND (  p_ATTRIBUTE4 IS NULL )))
347        AND (    ( Recinfo.ATTRIBUTE5 = p_ATTRIBUTE5)
348             OR (    ( Recinfo.ATTRIBUTE5 IS NULL )
349                 AND (  p_ATTRIBUTE5 IS NULL )))
350        AND (    ( Recinfo.ATTRIBUTE6 = p_ATTRIBUTE6)
351             OR (    ( Recinfo.ATTRIBUTE6 IS NULL )
352                 AND (  p_ATTRIBUTE6 IS NULL )))
353        AND (    ( Recinfo.ATTRIBUTE7 = p_ATTRIBUTE7)
354             OR (    ( Recinfo.ATTRIBUTE7 IS NULL )
355                 AND (  p_ATTRIBUTE7 IS NULL )))
356        AND (    ( Recinfo.ATTRIBUTE8 = p_ATTRIBUTE8)
357             OR (    ( Recinfo.ATTRIBUTE8 IS NULL )
358                 AND (  p_ATTRIBUTE8 IS NULL )))
359        AND (    ( Recinfo.ATTRIBUTE9 = p_ATTRIBUTE9)
360             OR (    ( Recinfo.ATTRIBUTE9 IS NULL )
361                 AND (  p_ATTRIBUTE9 IS NULL )))
362        AND (    ( Recinfo.ATTRIBUTE10 = p_ATTRIBUTE10)
363             OR (    ( Recinfo.ATTRIBUTE10 IS NULL )
364                 AND (  p_ATTRIBUTE10 IS NULL )))
365        AND (    ( Recinfo.ATTRIBUTE11 = p_ATTRIBUTE11)
366             OR (    ( Recinfo.ATTRIBUTE11 IS NULL )
367                 AND (  p_ATTRIBUTE11 IS NULL )))
368        AND (    ( Recinfo.ATTRIBUTE12 = p_ATTRIBUTE12)
369             OR (    ( Recinfo.ATTRIBUTE12 IS NULL )
370                 AND (  p_ATTRIBUTE12 IS NULL )))
371        AND (    ( Recinfo.ATTRIBUTE13 = p_ATTRIBUTE13)
372             OR (    ( Recinfo.ATTRIBUTE13 IS NULL )
373                 AND (  p_ATTRIBUTE13 IS NULL )))
374        AND (    ( Recinfo.ATTRIBUTE14 = p_ATTRIBUTE14)
375             OR (    ( Recinfo.ATTRIBUTE14 IS NULL )
376                 AND (  p_ATTRIBUTE14 IS NULL )))
377        AND (    ( Recinfo.ATTRIBUTE15 = p_ATTRIBUTE15)
378             OR (    ( Recinfo.ATTRIBUTE15 IS NULL )
379                 AND (  p_ATTRIBUTE15 IS NULL )))
380        AND (    ( Recinfo.REQUEST_ID = p_REQUEST_ID)
381             OR (    ( Recinfo.REQUEST_ID IS NULL )
382                 AND (  p_REQUEST_ID IS NULL )))
383        AND (    ( Recinfo.PROGRAM_APPLICATION_ID = p_PROGRAM_APPLICATION_ID)
384             OR (    ( Recinfo.PROGRAM_APPLICATION_ID IS NULL )
385                 AND (  p_PROGRAM_APPLICATION_ID IS NULL )))
386        AND (    ( Recinfo.PROGRAM_ID = p_PROGRAM_ID)
387             OR (    ( Recinfo.PROGRAM_ID IS NULL )
388                 AND (  p_PROGRAM_ID IS NULL )))
389        AND (    ( Recinfo.PROGRAM_UPDATE_DATE = p_PROGRAM_UPDATE_DATE)
390             OR (    ( Recinfo.PROGRAM_UPDATE_DATE IS NULL )
391                 AND (  p_PROGRAM_UPDATE_DATE IS NULL )))
392        AND (    ( Recinfo.NEED_DATE = p_NEED_DATE)
393             OR (    ( Recinfo.NEED_DATE IS NULL )
394                 AND (  p_NEED_DATE IS NULL )))
395        AND (    ( Recinfo.SUPPRESS_END_DATE = p_SUPPRESS_END_DATE)
396             OR (    ( Recinfo.SUPPRESS_END_DATE IS NULL )
397                 AND (  p_SUPPRESS_END_DATE IS NULL )))
398        AND (    ( Recinfo.NOTIFICATION_TYPE = p_NOTIFICATION_TYPE)
399             OR (    ( Recinfo.NOTIFICATION_TYPE IS NULL )
400                 AND (  p_NOTIFICATION_TYPE IS NULL )))
401        ) then
402        return;
403    else
404        FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_CHANGED');
405        APP_EXCEPTION.RAISE_EXCEPTION;
406    End If;
407 END Lock_Row;
408 
409 End CSP_NOTIFICATIONS_PKG;