DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSP_USAGE_HISTORIES_PKG

Source


1 PACKAGE BODY CSP_USAGE_HISTORIES_PKG as
2 /* $Header: csptpusb.pls 115.4 2002/11/26 06:36:14 hhaugeru ship $ */
3 -- Start of Comments
4 -- Package name     : CSP_USAGE_HISTORIES_PKG
5 -- Purpose          :
6 -- History          :
7 -- NOTE             :
8 -- End of Comments
9 
10 
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'CSP_USAGE_HISTORIES_PKG';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'csptpusb.pls';
13 
14 PROCEDURE Insert_Row(
15           px_USAGE_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_INVENTORY_ITEM_ID    NUMBER,
22           p_ORGANIZATION_ID    NUMBER,
23           p_HIERARCHY_NODE_ID    NUMBER,
24           p_PARTS_LOOP_ID    NUMBER,
25           p_PERIOD_TYPE    VARCHAR2,
26           p_PERIOD_START_DATE    DATE,
27           p_QUANTITY    NUMBER,
28 		p_HISTORY_DATA_TYPE NUMBER ,
29 		p_USAGE_HEADER_ID NUMBER ,
30           p_ATTRIBUTE_CATEGORY    VARCHAR2,
31           p_ATTRIBUTE1    VARCHAR2,
32           p_ATTRIBUTE2    VARCHAR2,
33           p_ATTRIBUTE3    VARCHAR2,
34           p_ATTRIBUTE4    VARCHAR2,
35           p_ATTRIBUTE5    VARCHAR2,
36           p_ATTRIBUTE6    VARCHAR2,
37           p_ATTRIBUTE7    VARCHAR2,
38           p_ATTRIBUTE8    VARCHAR2,
39           p_ATTRIBUTE9    VARCHAR2,
40           p_ATTRIBUTE10    VARCHAR2,
41           p_ATTRIBUTE11    VARCHAR2,
42           p_ATTRIBUTE12    VARCHAR2,
43           p_ATTRIBUTE13    VARCHAR2,
44           p_ATTRIBUTE14    VARCHAR2,
45           p_ATTRIBUTE15    VARCHAR2,
46           p_REQUEST_ID    NUMBER,
47           p_PROGRAM_APPLICATION_ID    NUMBER,
48           p_PROGRAM_ID    NUMBER,
49           p_PROGRAM_UPDATE_DATE    DATE,
50           p_SUBINVENTORY_CODE    VARCHAR2,
51           p_TRANSACTION_TYPE_ID    NUMBER)
52 
53  IS
54    CURSOR C2 IS SELECT CSP_USAGE_HISTORIES_S1.nextval FROM sys.dual;
55 BEGIN
56    If (px_USAGE_ID IS NULL) OR (px_USAGE_ID = FND_API.G_MISS_NUM) then
57        OPEN C2;
58        FETCH C2 INTO px_USAGE_ID;
59        CLOSE C2;
60    End If;
61    INSERT INTO CSP_USAGE_HISTORIES(
62            USAGE_ID,
63            CREATED_BY,
64            CREATION_DATE,
65            LAST_UPDATED_BY,
66            LAST_UPDATE_DATE,
67            LAST_UPDATE_LOGIN,
68            INVENTORY_ITEM_ID,
69            ORGANIZATION_ID,
70            HIERARCHY_NODE_ID,
71            PARTS_LOOP_ID,
72            PERIOD_TYPE,
73            PERIOD_START_DATE,
74            QUANTITY,
75 		 HISTORY_DATA_TYPE,
76 		 USAGE_HEADER_ID,
77            ATTRIBUTE_CATEGORY,
78            ATTRIBUTE1,
79            ATTRIBUTE2,
80            ATTRIBUTE3,
81            ATTRIBUTE4,
82            ATTRIBUTE5,
83            ATTRIBUTE6,
84            ATTRIBUTE7,
85            ATTRIBUTE8,
86            ATTRIBUTE9,
87            ATTRIBUTE10,
88            ATTRIBUTE11,
89            ATTRIBUTE12,
90            ATTRIBUTE13,
91            ATTRIBUTE14,
92            ATTRIBUTE15,
93            REQUEST_ID,
94            PROGRAM_APPLICATION_ID,
95            PROGRAM_ID,
96            PROGRAM_UPDATE_DATE,
97            SUBINVENTORY_CODE,
98            TRANSACTION_TYPE_ID
99           ) VALUES (
100            px_USAGE_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_INVENTORY_ITEM_ID, FND_API.G_MISS_NUM, NULL, p_INVENTORY_ITEM_ID),
107            decode( p_ORGANIZATION_ID, FND_API.G_MISS_NUM, NULL, p_ORGANIZATION_ID),
108            decode( p_HIERARCHY_NODE_ID, FND_API.G_MISS_NUM, NULL, p_HIERARCHY_NODE_ID),
109            decode( p_PARTS_LOOP_ID, FND_API.G_MISS_NUM, NULL, p_PARTS_LOOP_ID),
110            decode( p_PERIOD_TYPE, FND_API.G_MISS_CHAR, NULL, p_PERIOD_TYPE),
111            decode( p_PERIOD_START_DATE, FND_API.G_MISS_DATE, to_date(null), p_PERIOD_START_DATE),
112            decode( p_QUANTITY, FND_API.G_MISS_NUM, NULL, p_QUANTITY),
113            decode( p_HISTORY_DATA_TYPE, FND_API.G_MISS_NUM, NULL,p_HISTORY_DATA_TYPE),
114            decode( p_USAGE_HEADER_ID, FND_API.G_MISS_NUM, NULL, p_USAGE_HEADER_ID),
115            decode( p_ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE_CATEGORY),
116            decode( p_ATTRIBUTE1, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE1),
117            decode( p_ATTRIBUTE2, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE2),
118            decode( p_ATTRIBUTE3, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE3),
119            decode( p_ATTRIBUTE4, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE4),
120            decode( p_ATTRIBUTE5, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE5),
121            decode( p_ATTRIBUTE6, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE6),
122            decode( p_ATTRIBUTE7, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE7),
123            decode( p_ATTRIBUTE8, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE8),
124            decode( p_ATTRIBUTE9, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE9),
125            decode( p_ATTRIBUTE10, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE10),
126            decode( p_ATTRIBUTE11, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE11),
127            decode( p_ATTRIBUTE12, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE12),
128            decode( p_ATTRIBUTE13, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE13),
129            decode( p_ATTRIBUTE14, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE14),
130            decode( p_ATTRIBUTE15, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE15),
131            decode( p_REQUEST_ID, FND_API.G_MISS_NUM, NULL, p_REQUEST_ID),
132            decode( p_PROGRAM_APPLICATION_ID, FND_API.G_MISS_NUM, NULL, p_PROGRAM_APPLICATION_ID),
133            decode( p_PROGRAM_ID, FND_API.G_MISS_NUM, NULL, p_PROGRAM_ID),
134            decode( p_PROGRAM_UPDATE_DATE, FND_API.G_MISS_DATE, to_date(null), p_PROGRAM_UPDATE_DATE),
135            decode( p_SUBINVENTORY_CODE, FND_API.G_MISS_CHAR, NULL, p_SUBINVENTORY_CODE),
136            decode( p_TRANSACTION_TYPE_ID, FND_API.G_MISS_NUM, NULL, p_TRANSACTION_TYPE_ID));
137 End Insert_Row;
138 
139 PROCEDURE Update_Row(
140           p_USAGE_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_INVENTORY_ITEM_ID    NUMBER,
147           p_ORGANIZATION_ID    NUMBER,
148           p_HIERARCHY_NODE_ID    NUMBER,
149           p_PARTS_LOOP_ID    NUMBER,
150           p_PERIOD_TYPE    VARCHAR2,
151           p_PERIOD_START_DATE    DATE,
152           p_QUANTITY    NUMBER,
153 		p_HISTORY_DATA_TYPE NUMBER ,
154 		p_USAGE_HEADER_ID NUMBER ,
155           p_ATTRIBUTE_CATEGORY    VARCHAR2,
156           p_ATTRIBUTE1    VARCHAR2,
157           p_ATTRIBUTE2    VARCHAR2,
158           p_ATTRIBUTE3    VARCHAR2,
159           p_ATTRIBUTE4    VARCHAR2,
160           p_ATTRIBUTE5    VARCHAR2,
161           p_ATTRIBUTE6    VARCHAR2,
162           p_ATTRIBUTE7    VARCHAR2,
163           p_ATTRIBUTE8    VARCHAR2,
164           p_ATTRIBUTE9    VARCHAR2,
165           p_ATTRIBUTE10    VARCHAR2,
166           p_ATTRIBUTE11    VARCHAR2,
167           p_ATTRIBUTE12    VARCHAR2,
168           p_ATTRIBUTE13    VARCHAR2,
169           p_ATTRIBUTE14    VARCHAR2,
170           p_ATTRIBUTE15    VARCHAR2,
171           p_REQUEST_ID    NUMBER,
172           p_PROGRAM_APPLICATION_ID    NUMBER,
173           p_PROGRAM_ID    NUMBER,
174           p_PROGRAM_UPDATE_DATE    DATE,
175           p_SUBINVENTORY_CODE    VARCHAR2,
176           p_TRANSACTION_TYPE_ID    NUMBER)
177 
178  IS
179  BEGIN
180     Update CSP_USAGE_HISTORIES
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               INVENTORY_ITEM_ID = decode( p_INVENTORY_ITEM_ID, FND_API.G_MISS_NUM, INVENTORY_ITEM_ID, p_INVENTORY_ITEM_ID),
188               ORGANIZATION_ID = decode( p_ORGANIZATION_ID, FND_API.G_MISS_NUM, ORGANIZATION_ID, p_ORGANIZATION_ID),
189               HIERARCHY_NODE_ID = decode( p_HIERARCHY_NODE_ID, FND_API.G_MISS_NUM, HIERARCHY_NODE_ID, p_HIERARCHY_NODE_ID),
190               PARTS_LOOP_ID = decode( p_PARTS_LOOP_ID, FND_API.G_MISS_NUM, PARTS_LOOP_ID, p_PARTS_LOOP_ID),
191               PERIOD_TYPE = decode( p_PERIOD_TYPE, FND_API.G_MISS_CHAR, PERIOD_TYPE, p_PERIOD_TYPE),
192               PERIOD_START_DATE = decode( p_PERIOD_START_DATE, FND_API.G_MISS_DATE, PERIOD_START_DATE, p_PERIOD_START_DATE),
193               QUANTITY = decode( p_QUANTITY, FND_API.G_MISS_NUM, QUANTITY, p_QUANTITY),
194               HISTORY_DATA_TYPE = decode( p_HISTORY_DATA_TYPE, FND_API.G_MISS_NUM, NULL,p_HISTORY_DATA_TYPE),
195               USAGE_HEADER_ID = decode( p_USAGE_HEADER_ID, FND_API.G_MISS_NUM, NULL, p_USAGE_HEADER_ID),
196               ATTRIBUTE_CATEGORY = decode( p_ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, ATTRIBUTE_CATEGORY, p_ATTRIBUTE_CATEGORY),
197               ATTRIBUTE1 = decode( p_ATTRIBUTE1, FND_API.G_MISS_CHAR, ATTRIBUTE1, p_ATTRIBUTE1),
198               ATTRIBUTE2 = decode( p_ATTRIBUTE2, FND_API.G_MISS_CHAR, ATTRIBUTE2, p_ATTRIBUTE2),
199               ATTRIBUTE3 = decode( p_ATTRIBUTE3, FND_API.G_MISS_CHAR, ATTRIBUTE3, p_ATTRIBUTE3),
200               ATTRIBUTE4 = decode( p_ATTRIBUTE4, FND_API.G_MISS_CHAR, ATTRIBUTE4, p_ATTRIBUTE4),
201               ATTRIBUTE5 = decode( p_ATTRIBUTE5, FND_API.G_MISS_CHAR, ATTRIBUTE5, p_ATTRIBUTE5),
202               ATTRIBUTE6 = decode( p_ATTRIBUTE6, FND_API.G_MISS_CHAR, ATTRIBUTE6, p_ATTRIBUTE6),
203               ATTRIBUTE7 = decode( p_ATTRIBUTE7, FND_API.G_MISS_CHAR, ATTRIBUTE7, p_ATTRIBUTE7),
204               ATTRIBUTE8 = decode( p_ATTRIBUTE8, FND_API.G_MISS_CHAR, ATTRIBUTE8, p_ATTRIBUTE8),
205               ATTRIBUTE9 = decode( p_ATTRIBUTE9, FND_API.G_MISS_CHAR, ATTRIBUTE9, p_ATTRIBUTE9),
206               ATTRIBUTE10 = decode( p_ATTRIBUTE10, FND_API.G_MISS_CHAR, ATTRIBUTE10, p_ATTRIBUTE10),
207               ATTRIBUTE11 = decode( p_ATTRIBUTE11, FND_API.G_MISS_CHAR, ATTRIBUTE11, p_ATTRIBUTE11),
208               ATTRIBUTE12 = decode( p_ATTRIBUTE12, FND_API.G_MISS_CHAR, ATTRIBUTE12, p_ATTRIBUTE12),
209               ATTRIBUTE13 = decode( p_ATTRIBUTE13, FND_API.G_MISS_CHAR, ATTRIBUTE13, p_ATTRIBUTE13),
210               ATTRIBUTE14 = decode( p_ATTRIBUTE14, FND_API.G_MISS_CHAR, ATTRIBUTE14, p_ATTRIBUTE14),
211               ATTRIBUTE15 = decode( p_ATTRIBUTE15, FND_API.G_MISS_CHAR, ATTRIBUTE15, p_ATTRIBUTE15),
212               REQUEST_ID = decode( p_REQUEST_ID, FND_API.G_MISS_NUM, REQUEST_ID, p_REQUEST_ID),
213               PROGRAM_APPLICATION_ID = decode( p_PROGRAM_APPLICATION_ID, FND_API.G_MISS_NUM, PROGRAM_APPLICATION_ID, p_PROGRAM_APPLICATION_ID),
214               PROGRAM_ID = decode( p_PROGRAM_ID, FND_API.G_MISS_NUM, PROGRAM_ID, p_PROGRAM_ID),
215               PROGRAM_UPDATE_DATE = decode( p_PROGRAM_UPDATE_DATE, FND_API.G_MISS_DATE, PROGRAM_UPDATE_DATE, p_PROGRAM_UPDATE_DATE),
216               SUBINVENTORY_CODE = decode( p_SUBINVENTORY_CODE, FND_API.G_MISS_CHAR, SUBINVENTORY_CODE, p_SUBINVENTORY_CODE),
217               TRANSACTION_TYPE_ID = decode( p_TRANSACTION_TYPE_ID, FND_API.G_MISS_NUM, TRANSACTION_TYPE_ID, p_TRANSACTION_TYPE_ID)
218     where USAGE_ID = p_USAGE_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_USAGE_ID  NUMBER)
227  IS
228  BEGIN
229    DELETE FROM CSP_USAGE_HISTORIES
230     WHERE USAGE_ID = p_USAGE_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_USAGE_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_INVENTORY_ITEM_ID    NUMBER,
244           p_ORGANIZATION_ID    NUMBER,
245           p_HIERARCHY_NODE_ID    NUMBER,
246           p_PARTS_LOOP_ID    NUMBER,
247           p_PERIOD_TYPE    VARCHAR2,
248           p_PERIOD_START_DATE    DATE,
249           p_QUANTITY    NUMBER,
250 		p_HISTORY_DATA_TYPE NUMBER ,
251 		p_USAGE_HEADER_ID NUMBER ,
252           p_ATTRIBUTE_CATEGORY    VARCHAR2,
253           p_ATTRIBUTE1    VARCHAR2,
254           p_ATTRIBUTE2    VARCHAR2,
255           p_ATTRIBUTE3    VARCHAR2,
256           p_ATTRIBUTE4    VARCHAR2,
257           p_ATTRIBUTE5    VARCHAR2,
258           p_ATTRIBUTE6    VARCHAR2,
259           p_ATTRIBUTE7    VARCHAR2,
260           p_ATTRIBUTE8    VARCHAR2,
261           p_ATTRIBUTE9    VARCHAR2,
262           p_ATTRIBUTE10    VARCHAR2,
263           p_ATTRIBUTE11    VARCHAR2,
264           p_ATTRIBUTE12    VARCHAR2,
265           p_ATTRIBUTE13    VARCHAR2,
266           p_ATTRIBUTE14    VARCHAR2,
267           p_ATTRIBUTE15    VARCHAR2,
268           p_REQUEST_ID    NUMBER,
269           p_PROGRAM_APPLICATION_ID    NUMBER,
270           p_PROGRAM_ID    NUMBER,
271           p_PROGRAM_UPDATE_DATE    DATE,
272           p_SUBINVENTORY_CODE    VARCHAR2,
273           p_TRANSACTION_TYPE_ID    NUMBER)
274 
275  IS
276    CURSOR C IS
277         SELECT *
281    Recinfo C%ROWTYPE;
278          FROM CSP_USAGE_HISTORIES
279         WHERE USAGE_ID =  p_USAGE_ID
280         FOR UPDATE of USAGE_ID NOWAIT;
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.USAGE_ID = p_USAGE_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 )
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 )
307                 AND (  p_LAST_UPDATE_LOGIN IS NULL )))
308        AND (    ( Recinfo.INVENTORY_ITEM_ID = p_INVENTORY_ITEM_ID)
309             OR (    ( Recinfo.INVENTORY_ITEM_ID IS NULL )
310                 AND (  p_INVENTORY_ITEM_ID IS NULL )))
311        AND (    ( Recinfo.ORGANIZATION_ID = p_ORGANIZATION_ID)
312             OR (    ( Recinfo.ORGANIZATION_ID IS NULL )
313                 AND (  p_ORGANIZATION_ID IS NULL )))
314        AND (    ( Recinfo.HIERARCHY_NODE_ID = p_HIERARCHY_NODE_ID)
315             OR (    ( Recinfo.HIERARCHY_NODE_ID IS NULL )
316                 AND (  p_HIERARCHY_NODE_ID IS NULL )))
317        AND (    ( Recinfo.PARTS_LOOP_ID = p_PARTS_LOOP_ID)
318             OR (    ( Recinfo.PARTS_LOOP_ID IS NULL )
319                 AND (  p_PARTS_LOOP_ID IS NULL )))
320        AND (    ( Recinfo.PERIOD_TYPE = p_PERIOD_TYPE)
321             OR (    ( Recinfo.PERIOD_TYPE IS NULL )
322                 AND (  p_PERIOD_TYPE IS NULL )))
323        AND (    ( Recinfo.HISTORY_DATA_TYPE = p_HISTORY_DATA_TYPE)
324             OR (    ( Recinfo.HISTORY_DATA_TYPE IS NULL )
325                 AND (  p_HISTORY_DATA_TYPE IS NULL )))
326        AND (    ( Recinfo.USAGE_HEADER_ID = p_USAGE_HEADER_ID)
327             OR (    ( Recinfo.USAGE_HEADER_ID IS NULL )
328                 AND (  p_USAGE_HEADER_ID IS NULL )))
329        AND (    ( Recinfo.PERIOD_START_DATE = p_PERIOD_START_DATE)
330             OR (    ( Recinfo.PERIOD_START_DATE IS NULL )
331                 AND (  p_PERIOD_START_DATE IS NULL )))
332        AND (    ( Recinfo.QUANTITY = p_QUANTITY)
333             OR (    ( Recinfo.QUANTITY IS NULL )
334                 AND (  p_QUANTITY IS NULL )))
335        AND (    ( Recinfo.ATTRIBUTE_CATEGORY = p_ATTRIBUTE_CATEGORY)
336             OR (    ( Recinfo.ATTRIBUTE_CATEGORY IS NULL )
337                 AND (  p_ATTRIBUTE_CATEGORY IS NULL )))
338        AND (    ( Recinfo.ATTRIBUTE1 = p_ATTRIBUTE1)
339             OR (    ( Recinfo.ATTRIBUTE1 IS NULL )
340                 AND (  p_ATTRIBUTE1 IS NULL )))
341        AND (    ( Recinfo.ATTRIBUTE2 = p_ATTRIBUTE2)
342             OR (    ( Recinfo.ATTRIBUTE2 IS NULL )
343                 AND (  p_ATTRIBUTE2 IS NULL )))
344        AND (    ( Recinfo.ATTRIBUTE3 = p_ATTRIBUTE3)
345             OR (    ( Recinfo.ATTRIBUTE3 IS NULL )
346                 AND (  p_ATTRIBUTE3 IS NULL )))
347        AND (    ( Recinfo.ATTRIBUTE4 = p_ATTRIBUTE4)
348             OR (    ( Recinfo.ATTRIBUTE4 IS NULL )
349                 AND (  p_ATTRIBUTE4 IS NULL )))
350        AND (    ( Recinfo.ATTRIBUTE5 = p_ATTRIBUTE5)
351             OR (    ( Recinfo.ATTRIBUTE5 IS NULL )
352                 AND (  p_ATTRIBUTE5 IS NULL )))
353        AND (    ( Recinfo.ATTRIBUTE6 = p_ATTRIBUTE6)
354             OR (    ( Recinfo.ATTRIBUTE6 IS NULL )
355                 AND (  p_ATTRIBUTE6 IS NULL )))
356        AND (    ( Recinfo.ATTRIBUTE7 = p_ATTRIBUTE7)
357             OR (    ( Recinfo.ATTRIBUTE7 IS NULL )
358                 AND (  p_ATTRIBUTE7 IS NULL )))
359        AND (    ( Recinfo.ATTRIBUTE8 = p_ATTRIBUTE8)
360             OR (    ( Recinfo.ATTRIBUTE8 IS NULL )
361                 AND (  p_ATTRIBUTE8 IS NULL )))
362        AND (    ( Recinfo.ATTRIBUTE9 = p_ATTRIBUTE9)
363             OR (    ( Recinfo.ATTRIBUTE9 IS NULL )
364                 AND (  p_ATTRIBUTE9 IS NULL )))
365        AND (    ( Recinfo.ATTRIBUTE10 = p_ATTRIBUTE10)
366             OR (    ( Recinfo.ATTRIBUTE10 IS NULL )
367                 AND (  p_ATTRIBUTE10 IS NULL )))
368        AND (    ( Recinfo.ATTRIBUTE11 = p_ATTRIBUTE11)
369             OR (    ( Recinfo.ATTRIBUTE11 IS NULL )
370                 AND (  p_ATTRIBUTE11 IS NULL )))
371        AND (    ( Recinfo.ATTRIBUTE12 = p_ATTRIBUTE12)
372             OR (    ( Recinfo.ATTRIBUTE12 IS NULL )
373                 AND (  p_ATTRIBUTE12 IS NULL )))
374        AND (    ( Recinfo.ATTRIBUTE13 = p_ATTRIBUTE13)
375             OR (    ( Recinfo.ATTRIBUTE13 IS NULL )
376                 AND (  p_ATTRIBUTE13 IS NULL )))
377        AND (    ( Recinfo.ATTRIBUTE14 = p_ATTRIBUTE14)
378             OR (    ( Recinfo.ATTRIBUTE14 IS NULL )
379                 AND (  p_ATTRIBUTE14 IS NULL )))
380        AND (    ( Recinfo.ATTRIBUTE15 = p_ATTRIBUTE15)
381             OR (    ( Recinfo.ATTRIBUTE15 IS NULL )
382                 AND (  p_ATTRIBUTE15 IS NULL )))
383        AND (    ( Recinfo.REQUEST_ID = p_REQUEST_ID)
384             OR (    ( Recinfo.REQUEST_ID IS NULL )
385                 AND (  p_REQUEST_ID IS NULL )))
386        AND (    ( Recinfo.PROGRAM_APPLICATION_ID = p_PROGRAM_APPLICATION_ID)
387             OR (    ( Recinfo.PROGRAM_APPLICATION_ID IS NULL )
388                 AND (  p_PROGRAM_APPLICATION_ID IS NULL )))
392        AND (    ( Recinfo.PROGRAM_UPDATE_DATE = p_PROGRAM_UPDATE_DATE)
389        AND (    ( Recinfo.PROGRAM_ID = p_PROGRAM_ID)
390             OR (    ( Recinfo.PROGRAM_ID IS NULL )
391                 AND (  p_PROGRAM_ID IS NULL )))
393             OR (    ( Recinfo.PROGRAM_UPDATE_DATE IS NULL )
394                 AND (  p_PROGRAM_UPDATE_DATE IS NULL )))
395        AND (    ( Recinfo.SUBINVENTORY_CODE = p_SUBINVENTORY_CODE)
396             OR (    ( Recinfo.SUBINVENTORY_CODE IS NULL )
397                 AND (  p_SUBINVENTORY_CODE IS NULL )))
398        AND (    ( Recinfo.TRANSACTION_TYPE_ID = p_TRANSACTION_TYPE_ID)
399             OR (    ( Recinfo.TRANSACTION_TYPE_ID IS NULL )
400                 AND (  p_TRANSACTION_TYPE_ID 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_USAGE_HISTORIES_PKG;