[Home] [Help]
PACKAGE BODY: APPS.PV_PROCESS_RULES_PKG
Source
1 PACKAGE BODY PV_PROCESS_RULES_PKG as
2 /* $Header: pvrtprub.pls 120.2 2006/06/01 21:42:11 solin noship $ */
3 -- Start of Comments
4 -- Package name : PV_PROCESS_RULES_PKG
5 -- Purpose :
6 -- History :
7 -- 01/08/2002 SOLIN Created.
8 -- NOTE :
9 -- End of Comments
10
11
12 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PV_PROCESS_RULES_PKG';
13 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvrtprub.pls';
14
15 AS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
16 AS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
17 AS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
18
19 PROCEDURE Insert_Row(
20 px_PROCESS_RULE_ID IN OUT NOCOPY NUMBER
21 ,p_PARENT_RULE_ID IN NUMBER
22 ,p_LAST_UPDATE_DATE DATE
23 ,p_LAST_UPDATED_BY NUMBER
24 ,p_CREATION_DATE DATE
25 ,p_CREATED_BY NUMBER
26 ,p_LAST_UPDATE_LOGIN NUMBER
27 ,p_OBJECT_VERSION_NUMBER NUMBER
28 ,p_REQUEST_ID NUMBER
29 ,p_PROGRAM_APPLICATION_ID NUMBER
30 ,p_PROGRAM_ID NUMBER
31 ,p_PROGRAM_UPDATE_DATE DATE
32 ,p_PROCESS_TYPE VARCHAR2
33 ,p_RANK NUMBER
34 ,p_STATUS_CODE VARCHAR2
35 ,p_START_DATE DATE
36 ,p_END_DATE DATE
37 ,p_ACTION VARCHAR2
38 ,p_ACTION_VALUE VARCHAR2
39 ,p_OWNER_RESOURCE_ID NUMBER
40 ,p_CURRENCY_CODE VARCHAR2
41 ,p_PROCESS_RULE_NAME VARCHAR2
42 ,p_DESCRIPTION VARCHAR2
43 ,p_ATTRIBUTE_CATEGORY VARCHAR2
44 ,p_ATTRIBUTE1 VARCHAR2
45 ,p_ATTRIBUTE2 VARCHAR2
46 ,p_ATTRIBUTE3 VARCHAR2
47 ,p_ATTRIBUTE4 VARCHAR2
48 ,p_ATTRIBUTE5 VARCHAR2
49 ,p_ATTRIBUTE6 VARCHAR2
50 ,p_ATTRIBUTE7 VARCHAR2
51 ,p_ATTRIBUTE8 VARCHAR2
52 ,p_ATTRIBUTE9 VARCHAR2
53 ,p_ATTRIBUTE10 VARCHAR2
54 ,p_ATTRIBUTE11 VARCHAR2
55 ,p_ATTRIBUTE12 VARCHAR2
56 ,p_ATTRIBUTE13 VARCHAR2
57 ,p_ATTRIBUTE14 VARCHAR2
58 ,p_ATTRIBUTE15 VARCHAR2
59 )
60 IS
61 CURSOR C2 IS SELECT PV_PROCESS_RULES_B_S.nextval FROM sys.dual;
62 BEGIN
63 If (px_PROCESS_RULE_ID IS NULL) OR (px_PROCESS_RULE_ID = FND_API.G_MISS_NUM) then
64 OPEN C2;
65 FETCH C2 INTO px_PROCESS_RULE_ID;
66 CLOSE C2;
67 End If;
68 INSERT INTO PV_PROCESS_RULES_B(
69 PROCESS_RULE_ID
70 ,PARENT_RULE_ID
71 ,LAST_UPDATE_DATE
72 ,LAST_UPDATED_BY
73 ,CREATION_DATE
74 ,CREATED_BY
75 ,LAST_UPDATE_LOGIN
76 ,OBJECT_VERSION_NUMBER
77 ,REQUEST_ID
78 ,PROGRAM_APPLICATION_ID
79 ,PROGRAM_ID
80 ,PROGRAM_UPDATE_DATE
81 ,PROCESS_TYPE
82 ,RANK
83 ,STATUS_CODE
84 ,START_DATE
85 ,END_DATE
86 ,ACTION
87 ,ACTION_VALUE
88 ,OWNER_RESOURCE_ID
89 ,CURRENCY_CODE
90 ,ATTRIBUTE_CATEGORY
91 ,ATTRIBUTE1
92 ,ATTRIBUTE2
93 ,ATTRIBUTE3
94 ,ATTRIBUTE4
95 ,ATTRIBUTE5
96 ,ATTRIBUTE6
97 ,ATTRIBUTE7
98 ,ATTRIBUTE8
99 ,ATTRIBUTE9
100 ,ATTRIBUTE10
101 ,ATTRIBUTE11
102 ,ATTRIBUTE12
103 ,ATTRIBUTE13
104 ,ATTRIBUTE14
105 ,ATTRIBUTE15
106 ) VALUES (
107 px_PROCESS_RULE_ID
108 ,decode( p_PARENT_RULE_ID, FND_API.G_MISS_NUM, NULL, p_PARENT_RULE_ID)
109 ,decode( p_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_LAST_UPDATE_DATE)
110 ,decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATED_BY)
111 ,decode( p_CREATION_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_CREATION_DATE)
112 ,decode( p_CREATED_BY, FND_API.G_MISS_NUM, NULL, p_CREATED_BY)
113 ,decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATE_LOGIN)
114 ,1
115 ,decode( p_REQUEST_ID, FND_API.G_MISS_NUM, NULL, p_REQUEST_ID)
116 ,decode( p_PROGRAM_APPLICATION_ID, FND_API.G_MISS_NUM, NULL, p_PROGRAM_APPLICATION_ID)
117 ,decode( p_PROGRAM_ID, FND_API.G_MISS_NUM, NULL, p_PROGRAM_ID)
118 ,decode( p_PROGRAM_UPDATE_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_PROGRAM_UPDATE_DATE)
119 ,decode( p_PROCESS_TYPE, FND_API.G_MISS_CHAR, NULL, p_PROCESS_TYPE)
120 ,decode( p_RANK, FND_API.G_MISS_NUM, NULL, p_RANK)
121 ,decode( p_STATUS_CODE, FND_API.G_MISS_CHAR, NULL, p_STATUS_CODE)
122 ,decode( p_START_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_START_DATE)
123 ,decode( p_END_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_END_DATE)
124 ,decode( p_ACTION, FND_API.G_MISS_CHAR, NULL, p_ACTION)
125 ,decode( p_ACTION_VALUE, FND_API.G_MISS_CHAR, NULL, p_ACTION_VALUE)
126 ,decode( p_OWNER_RESOURCE_ID, FND_API.G_MISS_NUM, NULL, p_OWNER_RESOURCE_ID)
127 ,decode( p_CURRENCY_CODE, FND_API.G_MISS_CHAR, NULL, p_CURRENCY_CODE)
128 ,decode( p_ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE_CATEGORY)
129 ,decode( p_ATTRIBUTE1, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE1)
130 ,decode( p_ATTRIBUTE2, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE2)
131 ,decode( p_ATTRIBUTE3, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE3)
132 ,decode( p_ATTRIBUTE4, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE4)
133 ,decode( p_ATTRIBUTE5, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE5)
134 ,decode( p_ATTRIBUTE6, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE6)
135 ,decode( p_ATTRIBUTE7, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE7)
136 ,decode( p_ATTRIBUTE8, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE8)
137 ,decode( p_ATTRIBUTE9, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE9)
138 ,decode( p_ATTRIBUTE10, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE10)
139 ,decode( p_ATTRIBUTE11, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE11)
140 ,decode( p_ATTRIBUTE12, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE12)
141 ,decode( p_ATTRIBUTE13, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE13)
142 ,decode( p_ATTRIBUTE14, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE14)
143 ,decode( p_ATTRIBUTE15, FND_API.G_MISS_CHAR, NULL, p_ATTRIBUTE15)
144 );
145
146 INSERT INTO PV_PROCESS_RULES_TL (
147 PROCESS_RULE_ID,
148 LAST_UPDATE_DATE,
149 LAST_UPDATED_BY,
150 CREATION_DATE,
151 CREATED_BY,
152 LAST_UPDATE_LOGIN,
153 PROCESS_RULE_NAME,
154 DESCRIPTION,
155 LANGUAGE,
156 SOURCE_LANG
157 ) SELECT
158 px_PROCESS_RULE_ID
159 ,decode( p_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_LAST_UPDATE_DATE)
160 ,decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATED_BY)
161 ,decode( p_CREATION_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_CREATION_DATE)
162 ,decode( p_CREATED_BY, FND_API.G_MISS_NUM, NULL, p_CREATED_BY)
163 ,decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATE_LOGIN)
164 ,decode( p_PROCESS_RULE_NAME, FND_API.G_MISS_CHAR, NULL, p_PROCESS_RULE_NAME)
165 ,decode( p_DESCRIPTION, FND_API.G_MISS_CHAR, NULL, p_DESCRIPTION)
166 ,l.LANGUAGE_CODE
167 ,USERENV('LANG')
168 FROM FND_LANGUAGES L
169 WHERE L.INSTALLED_FLAG IN ('I', 'B')
170 AND NOT EXISTS
171 (SELECT NULL
172 FROM PV_PROCESS_RULES_TL T
173 WHERE T.PROCESS_RULE_ID = PX_PROCESS_RULE_ID
174 AND T.LANGUAGE = L.LANGUAGE_CODE);
175 End Insert_Row;
176
177 PROCEDURE Update_Row(
178 p_PROCESS_RULE_ID NUMBER
179 ,p_LAST_UPDATE_DATE DATE
180 ,p_LAST_UPDATED_BY NUMBER
181 ,p_CREATION_DATE DATE
182 ,p_CREATED_BY NUMBER
183 ,p_LAST_UPDATE_LOGIN NUMBER
184 ,p_OBJECT_VERSION_NUMBER NUMBER
185 ,p_REQUEST_ID NUMBER
186 ,p_PROGRAM_APPLICATION_ID NUMBER
187 ,p_PROGRAM_ID NUMBER
188 ,p_PROGRAM_UPDATE_DATE DATE
189 ,p_PROCESS_TYPE VARCHAR2
190 ,p_RANK NUMBER
191 ,p_STATUS_CODE VARCHAR2
192 ,p_START_DATE DATE
193 ,p_END_DATE DATE
194 ,p_ACTION VARCHAR2
195 ,p_ACTION_VALUE VARCHAR2
196 ,p_OWNER_RESOURCE_ID NUMBER
197 ,p_CURRENCY_CODE VARCHAR2
198 ,p_PROCESS_RULE_NAME VARCHAR2
199 ,p_DESCRIPTION VARCHAR2
200 ,p_ATTRIBUTE_CATEGORY VARCHAR2
201 ,p_ATTRIBUTE1 VARCHAR2
202 ,p_ATTRIBUTE2 VARCHAR2
203 ,p_ATTRIBUTE3 VARCHAR2
204 ,p_ATTRIBUTE4 VARCHAR2
205 ,p_ATTRIBUTE5 VARCHAR2
206 ,p_ATTRIBUTE6 VARCHAR2
207 ,p_ATTRIBUTE7 VARCHAR2
208 ,p_ATTRIBUTE8 VARCHAR2
209 ,p_ATTRIBUTE9 VARCHAR2
210 ,p_ATTRIBUTE10 VARCHAR2
211 ,p_ATTRIBUTE11 VARCHAR2
212 ,p_ATTRIBUTE12 VARCHAR2
213 ,p_ATTRIBUTE13 VARCHAR2
214 ,p_ATTRIBUTE14 VARCHAR2
215 ,p_ATTRIBUTE15 VARCHAR2
216 )
217 IS
218 BEGIN
219 Update PV_PROCESS_RULES_B
220 SET
221 LAST_UPDATE_DATE = decode( p_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, LAST_UPDATE_DATE, p_LAST_UPDATE_DATE)
222 ,LAST_UPDATED_BY = decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, LAST_UPDATED_BY, p_LAST_UPDATED_BY)
223 ,CREATION_DATE = decode( p_CREATION_DATE, FND_API.G_MISS_DATE, CREATION_DATE, p_CREATION_DATE)
224 ,CREATED_BY = decode( p_CREATED_BY, FND_API.G_MISS_NUM, CREATED_BY, p_CREATED_BY)
225 ,LAST_UPDATE_LOGIN = decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, LAST_UPDATE_LOGIN, p_LAST_UPDATE_LOGIN)
226 ,OBJECT_VERSION_NUMBER = decode( p_OBJECT_VERSION_NUMBER, FND_API.G_MISS_NUM, OBJECT_VERSION_NUMBER, p_OBJECT_VERSION_NUMBER+1)
227 ,REQUEST_ID = decode( p_REQUEST_ID, FND_API.G_MISS_NUM, REQUEST_ID, p_REQUEST_ID)
228 ,PROGRAM_APPLICATION_ID = decode( p_PROGRAM_APPLICATION_ID, FND_API.G_MISS_NUM, PROGRAM_APPLICATION_ID, p_PROGRAM_APPLICATION_ID)
229 ,PROGRAM_ID = decode( p_PROGRAM_ID, FND_API.G_MISS_NUM, PROGRAM_ID, p_PROGRAM_ID)
230 ,PROGRAM_UPDATE_DATE = decode( p_PROGRAM_UPDATE_DATE, FND_API.G_MISS_DATE, PROGRAM_UPDATE_DATE, p_PROGRAM_UPDATE_DATE)
231 ,PROCESS_TYPE = decode( p_PROCESS_TYPE, FND_API.G_MISS_CHAR, PROCESS_TYPE, p_PROCESS_TYPE)
232 ,RANK = decode( p_RANK, FND_API.G_MISS_NUM, RANK, p_RANK)
233 ,STATUS_CODE = decode( p_STATUS_CODE, FND_API.G_MISS_CHAR, STATUS_CODE, p_STATUS_CODE)
234 ,START_DATE = decode( p_START_DATE, FND_API.G_MISS_DATE, START_DATE, p_START_DATE)
235 ,END_DATE = decode( p_END_DATE, FND_API.G_MISS_DATE, END_DATE, p_END_DATE)
236 ,ACTION = decode( p_ACTION, FND_API.G_MISS_CHAR, ACTION, p_ACTION)
237 ,ACTION_VALUE = decode( p_ACTION_VALUE, FND_API.G_MISS_CHAR, ACTION_VALUE, p_ACTION_VALUE)
238 ,OWNER_RESOURCE_ID = decode( p_OWNER_RESOURCE_ID, FND_API.G_MISS_NUM, OWNER_RESOURCE_ID, p_OWNER_RESOURCE_ID)
239 ,CURRENCY_CODE = decode( p_CURRENCY_CODE, FND_API.G_MISS_CHAR, CURRENCY_CODE, p_CURRENCY_CODE)
240 ,ATTRIBUTE_CATEGORY = decode( p_ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, ATTRIBUTE_CATEGORY, p_ATTRIBUTE_CATEGORY)
241 ,ATTRIBUTE1 = decode( p_ATTRIBUTE1, FND_API.G_MISS_CHAR, ATTRIBUTE1, p_ATTRIBUTE1)
242 ,ATTRIBUTE2 = decode( p_ATTRIBUTE2, FND_API.G_MISS_CHAR, ATTRIBUTE2, p_ATTRIBUTE2)
243 ,ATTRIBUTE3 = decode( p_ATTRIBUTE3, FND_API.G_MISS_CHAR, ATTRIBUTE3, p_ATTRIBUTE3)
244 ,ATTRIBUTE4 = decode( p_ATTRIBUTE4, FND_API.G_MISS_CHAR, ATTRIBUTE4, p_ATTRIBUTE4)
245 ,ATTRIBUTE5 = decode( p_ATTRIBUTE5, FND_API.G_MISS_CHAR, ATTRIBUTE5, p_ATTRIBUTE5)
246 ,ATTRIBUTE6 = decode( p_ATTRIBUTE6, FND_API.G_MISS_CHAR, ATTRIBUTE6, p_ATTRIBUTE6)
247 ,ATTRIBUTE7 = decode( p_ATTRIBUTE7, FND_API.G_MISS_CHAR, ATTRIBUTE7, p_ATTRIBUTE7)
248 ,ATTRIBUTE8 = decode( p_ATTRIBUTE8, FND_API.G_MISS_CHAR, ATTRIBUTE8, p_ATTRIBUTE8)
249 ,ATTRIBUTE9 = decode( p_ATTRIBUTE9, FND_API.G_MISS_CHAR, ATTRIBUTE9, p_ATTRIBUTE9)
250 ,ATTRIBUTE10 = decode( p_ATTRIBUTE10, FND_API.G_MISS_CHAR, ATTRIBUTE10, p_ATTRIBUTE10)
251 ,ATTRIBUTE11 = decode( p_ATTRIBUTE11, FND_API.G_MISS_CHAR, ATTRIBUTE11, p_ATTRIBUTE11)
252 ,ATTRIBUTE12 = decode( p_ATTRIBUTE12, FND_API.G_MISS_CHAR, ATTRIBUTE12, p_ATTRIBUTE12)
253 ,ATTRIBUTE13 = decode( p_ATTRIBUTE13, FND_API.G_MISS_CHAR, ATTRIBUTE13, p_ATTRIBUTE13)
254 ,ATTRIBUTE14 = decode( p_ATTRIBUTE14, FND_API.G_MISS_CHAR, ATTRIBUTE14, p_ATTRIBUTE14)
255 ,ATTRIBUTE15 = decode( p_ATTRIBUTE15, FND_API.G_MISS_CHAR, ATTRIBUTE15, p_ATTRIBUTE15)
256 where PROCESS_RULE_ID = p_PROCESS_RULE_ID;
257
258 If (SQL%NOTFOUND) then
259 RAISE NO_DATA_FOUND;
260 End If;
261
262 Update PV_PROCESS_RULES_TL
263 SET
264 PROCESS_RULE_NAME = decode( p_PROCESS_RULE_NAME, FND_API.G_MISS_CHAR, PROCESS_RULE_NAME, p_PROCESS_RULE_NAME)
265 ,DESCRIPTION = decode( p_DESCRIPTION, FND_API.G_MISS_CHAR, DESCRIPTION, p_DESCRIPTION)
266 ,LAST_UPDATE_DATE = decode( p_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, LAST_UPDATE_DATE, p_LAST_UPDATE_DATE)
267 ,LAST_UPDATED_BY = decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, LAST_UPDATED_BY, p_LAST_UPDATED_BY)
268 ,CREATION_DATE = decode( p_CREATION_DATE, FND_API.G_MISS_DATE, CREATION_DATE, p_CREATION_DATE)
269 ,CREATED_BY = decode( p_CREATED_BY, FND_API.G_MISS_NUM, CREATED_BY, p_CREATED_BY)
270 ,LAST_UPDATE_LOGIN = decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, LAST_UPDATE_LOGIN, p_LAST_UPDATE_LOGIN)
271 WHERE PROCESS_RULE_ID = P_PROCESS_RULE_ID
272 AND USERENV('LANG') IN (LANGUAGE, SOURCE_LANG);
273
274 If (SQL%NOTFOUND) then
275 RAISE NO_DATA_FOUND;
276 End If;
277
278 END Update_Row;
279
280 PROCEDURE Delete_Row(
281 p_PROCESS_RULE_ID NUMBER)
282 IS
283 BEGIN
284 DELETE FROM PV_PROCESS_RULES_B
285 WHERE PROCESS_RULE_ID = p_PROCESS_RULE_ID;
286 If (SQL%NOTFOUND) then
287 RAISE NO_DATA_FOUND;
288 End If;
289
290 DELETE FROM PV_PROCESS_RULES_TL
291 WHERE PROCESS_RULE_ID = p_PROCESS_RULE_ID;
292 If (SQL%NOTFOUND) then
293 RAISE NO_DATA_FOUND;
294 End If;
295 END Delete_Row;
296
297 PROCEDURE Lock_Row(
298 p_PROCESS_RULE_ID NUMBER
299 ,p_LAST_UPDATE_DATE DATE
300 ,p_LAST_UPDATED_BY NUMBER
301 ,p_CREATION_DATE DATE
302 ,p_CREATED_BY NUMBER
303 ,p_LAST_UPDATE_LOGIN NUMBER
304 ,p_OBJECT_VERSION_NUMBER NUMBER
305 ,p_REQUEST_ID NUMBER
306 ,p_PROGRAM_APPLICATION_ID NUMBER
307 ,p_PROGRAM_ID NUMBER
308 ,p_PROGRAM_UPDATE_DATE DATE
309 ,p_PROCESS_TYPE VARCHAR2
310 ,p_RANK NUMBER
311 ,p_STATUS_CODE VARCHAR2
312 ,p_START_DATE DATE
313 ,p_END_DATE DATE
314 ,p_ACTION VARCHAR2
315 ,p_ACTION_VALUE VARCHAR2
316 ,p_OWNER_RESOURCE_ID NUMBER
317 ,p_CURRENCY_CODE VARCHAR2
318 ,p_PROCESS_RULE_NAME VARCHAR2
319 ,p_DESCRIPTION VARCHAR2
320 ,p_ATTRIBUTE_CATEGORY VARCHAR2
321 ,p_ATTRIBUTE1 VARCHAR2
322 ,p_ATTRIBUTE2 VARCHAR2
323 ,p_ATTRIBUTE3 VARCHAR2
324 ,p_ATTRIBUTE4 VARCHAR2
325 ,p_ATTRIBUTE5 VARCHAR2
326 ,p_ATTRIBUTE6 VARCHAR2
327 ,p_ATTRIBUTE7 VARCHAR2
328 ,p_ATTRIBUTE8 VARCHAR2
329 ,p_ATTRIBUTE9 VARCHAR2
330 ,p_ATTRIBUTE10 VARCHAR2
331 ,p_ATTRIBUTE11 VARCHAR2
332 ,p_ATTRIBUTE12 VARCHAR2
333 ,p_ATTRIBUTE13 VARCHAR2
334 ,p_ATTRIBUTE14 VARCHAR2
335 ,p_ATTRIBUTE15 VARCHAR2
336 )
337 IS
338 CURSOR C IS
339 SELECT *
340 FROM PV_PROCESS_RULES_B
341 WHERE PROCESS_RULE_ID = p_PROCESS_RULE_ID
342 FOR UPDATE of PROCESS_RULE_ID NOWAIT;
343 Recinfo C%ROWTYPE;
347 DESCRIPTION,
344
345 CURSOR c1 IS
346 SELECT PROCESS_RULE_NAME,
348 DECODE(LANGUAGE, USERENV('LANG'), 'Y', 'N') BASELANG
349 FROM PV_PROCESS_RULES_TL
350 WHERE PROCESS_RULE_ID = P_PROCESS_RULE_ID
351 AND USERENV('LANG') IN (LANGUAGE, SOURCE_LANG)
352 FOR UPDATE OF PROCESS_RULE_ID NOWAIT;
353 BEGIN
354 OPEN C;
355 FETCH C INTO Recinfo;
356 If (C%NOTFOUND) then
357 CLOSE C;
358 FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
359 APP_EXCEPTION.RAISE_EXCEPTION;
360 End If;
361 CLOSE C;
362 if (
363 ( Recinfo.PROCESS_RULE_ID = p_PROCESS_RULE_ID)
364 AND ( ( Recinfo.LAST_UPDATE_DATE = p_LAST_UPDATE_DATE)
365 OR ( ( Recinfo.LAST_UPDATE_DATE IS NULL )
366 AND ( p_LAST_UPDATE_DATE IS NULL )))
367 AND ( ( Recinfo.LAST_UPDATED_BY = p_LAST_UPDATED_BY)
368 OR ( ( Recinfo.LAST_UPDATED_BY IS NULL )
369 AND ( p_LAST_UPDATED_BY IS NULL )))
370 AND ( ( Recinfo.CREATION_DATE = p_CREATION_DATE)
371 OR ( ( Recinfo.CREATION_DATE IS NULL )
372 AND ( p_CREATION_DATE IS NULL )))
373 AND ( ( Recinfo.CREATED_BY = p_CREATED_BY)
374 OR ( ( Recinfo.CREATED_BY IS NULL )
375 AND ( p_CREATED_BY IS NULL )))
376 AND ( ( Recinfo.LAST_UPDATE_LOGIN = p_LAST_UPDATE_LOGIN)
377 OR ( ( Recinfo.LAST_UPDATE_LOGIN IS NULL )
378 AND ( p_LAST_UPDATE_LOGIN IS NULL )))
379 AND ( ( Recinfo.OBJECT_VERSION_NUMBER = p_OBJECT_VERSION_NUMBER)
380 OR ( ( Recinfo.OBJECT_VERSION_NUMBER IS NULL )
381 AND ( p_OBJECT_VERSION_NUMBER IS NULL )))
382 AND ( ( Recinfo.REQUEST_ID = p_REQUEST_ID)
383 OR ( ( Recinfo.REQUEST_ID IS NULL )
384 AND ( p_REQUEST_ID IS NULL )))
385 AND ( ( Recinfo.PROGRAM_APPLICATION_ID = p_PROGRAM_APPLICATION_ID)
386 OR ( ( Recinfo.PROGRAM_APPLICATION_ID IS NULL )
387 AND ( p_PROGRAM_APPLICATION_ID IS NULL )))
388 AND ( ( Recinfo.PROGRAM_ID = p_PROGRAM_ID)
389 OR ( ( Recinfo.PROGRAM_ID IS NULL )
390 AND ( p_PROGRAM_ID IS NULL )))
391 AND ( ( Recinfo.PROGRAM_UPDATE_DATE = p_PROGRAM_UPDATE_DATE)
392 OR ( ( Recinfo.PROGRAM_UPDATE_DATE IS NULL )
393 AND ( p_PROGRAM_UPDATE_DATE IS NULL )))
394 AND ( ( Recinfo.PROCESS_TYPE = p_PROCESS_TYPE)
395 OR ( ( Recinfo.PROCESS_TYPE IS NULL )
396 AND ( p_PROCESS_TYPE IS NULL )))
397 AND ( ( Recinfo.RANK = p_RANK)
398 OR ( ( Recinfo.RANK IS NULL )
399 AND ( p_RANK IS NULL )))
400 AND ( ( Recinfo.STATUS_CODE = p_STATUS_CODE)
401 OR ( ( Recinfo.STATUS_CODE IS NULL )
402 AND ( p_STATUS_CODE IS NULL )))
403 AND ( ( Recinfo.START_DATE = p_START_DATE)
404 OR ( ( Recinfo.START_DATE IS NULL )
405 AND ( p_START_DATE IS NULL )))
406 AND ( ( Recinfo.END_DATE = p_END_DATE)
407 OR ( ( Recinfo.END_DATE IS NULL )
408 AND ( p_END_DATE IS NULL )))
409 AND ( ( Recinfo.ACTION = p_ACTION)
410 OR ( ( Recinfo.ACTION IS NULL )
411 AND ( p_ACTION IS NULL )))
412 AND ( ( Recinfo.ACTION_VALUE = p_ACTION_VALUE)
413 OR ( ( Recinfo.ACTION_VALUE IS NULL )
414 AND ( p_ACTION_VALUE IS NULL )))
415 AND ( ( Recinfo.OWNER_RESOURCE_ID = p_OWNER_RESOURCE_ID)
416 OR ( ( Recinfo.OWNER_RESOURCE_ID IS NULL )
417 AND ( p_OWNER_RESOURCE_ID IS NULL )))
418 AND ( ( Recinfo.CURRENCY_CODE = p_CURRENCY_CODE)
419 OR ( ( Recinfo.CURRENCY_CODE IS NULL )
420 AND ( p_CURRENCY_CODE IS NULL )))
421 AND ( ( Recinfo.ATTRIBUTE_CATEGORY = p_ATTRIBUTE_CATEGORY)
422 OR ( ( Recinfo.ATTRIBUTE_CATEGORY IS NULL )
423 AND ( p_ATTRIBUTE_CATEGORY IS NULL )))
424 AND ( ( Recinfo.ATTRIBUTE1 = p_ATTRIBUTE1)
425 OR ( ( Recinfo.ATTRIBUTE1 IS NULL )
426 AND ( p_ATTRIBUTE1 IS NULL )))
427 AND ( ( Recinfo.ATTRIBUTE2 = p_ATTRIBUTE2)
428 OR ( ( Recinfo.ATTRIBUTE2 IS NULL )
429 AND ( p_ATTRIBUTE2 IS NULL )))
430 AND ( ( Recinfo.ATTRIBUTE3 = p_ATTRIBUTE3)
431 OR ( ( Recinfo.ATTRIBUTE3 IS NULL )
432 AND ( p_ATTRIBUTE3 IS NULL )))
433 AND ( ( Recinfo.ATTRIBUTE4 = p_ATTRIBUTE4)
434 OR ( ( Recinfo.ATTRIBUTE4 IS NULL )
435 AND ( p_ATTRIBUTE4 IS NULL )))
436 AND ( ( Recinfo.ATTRIBUTE5 = p_ATTRIBUTE5)
437 OR ( ( Recinfo.ATTRIBUTE5 IS NULL )
438 AND ( p_ATTRIBUTE5 IS NULL )))
439 AND ( ( Recinfo.ATTRIBUTE6 = p_ATTRIBUTE6)
440 OR ( ( Recinfo.ATTRIBUTE6 IS NULL )
441 AND ( p_ATTRIBUTE6 IS NULL )))
442 AND ( ( Recinfo.ATTRIBUTE7 = p_ATTRIBUTE7)
443 OR ( ( Recinfo.ATTRIBUTE7 IS NULL )
444 AND ( p_ATTRIBUTE7 IS NULL )))
445 AND ( ( Recinfo.ATTRIBUTE8 = p_ATTRIBUTE8)
446 OR ( ( Recinfo.ATTRIBUTE8 IS NULL )
447 AND ( p_ATTRIBUTE8 IS NULL )))
448 AND ( ( Recinfo.ATTRIBUTE9 = p_ATTRIBUTE9)
449 OR ( ( Recinfo.ATTRIBUTE9 IS NULL )
453 AND ( p_ATTRIBUTE10 IS NULL )))
450 AND ( p_ATTRIBUTE9 IS NULL )))
451 AND ( ( Recinfo.ATTRIBUTE10 = p_ATTRIBUTE10)
452 OR ( ( Recinfo.ATTRIBUTE10 IS NULL )
454 AND ( ( Recinfo.ATTRIBUTE11 = p_ATTRIBUTE11)
455 OR ( ( Recinfo.ATTRIBUTE11 IS NULL )
456 AND ( p_ATTRIBUTE11 IS NULL )))
457 AND ( ( Recinfo.ATTRIBUTE12 = p_ATTRIBUTE12)
458 OR ( ( Recinfo.ATTRIBUTE12 IS NULL )
459 AND ( p_ATTRIBUTE12 IS NULL )))
460 AND ( ( Recinfo.ATTRIBUTE13 = p_ATTRIBUTE13)
461 OR ( ( Recinfo.ATTRIBUTE13 IS NULL )
462 AND ( p_ATTRIBUTE13 IS NULL )))
463 AND ( ( Recinfo.ATTRIBUTE14 = p_ATTRIBUTE14)
464 OR ( ( Recinfo.ATTRIBUTE14 IS NULL )
465 AND ( p_ATTRIBUTE14 IS NULL )))
466 AND ( ( Recinfo.ATTRIBUTE15 = p_ATTRIBUTE15)
467 OR ( ( Recinfo.ATTRIBUTE15 IS NULL )
468 AND ( p_ATTRIBUTE15 IS NULL )))
469 ) then
470 return;
471 else
472 FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_CHANGED');
473 APP_EXCEPTION.RAISE_EXCEPTION;
474 End If;
475
476 FOR tlinfo IN c1 LOOP
477 IF (tlinfo.BASELANG = 'Y') THEN
478 IF ( (tlinfo.PROCESS_RULE_NAME = P_PROCESS_RULE_NAME)
479 AND (tlinfo.DESCRIPTION = P_DESCRIPTION) )
480 THEN
481 NULL;
482 ELSE
483 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
484 app_exception.raise_exception;
485 END IF;
486 END IF;
487 END LOOP;
488 END Lock_Row;
489
490
491 PROCEDURE Add_Language
492 IS
493 BEGIN
494 DELETE FROM PV_PROCESS_RULES_TL T
495 WHERE NOT EXISTS
496 (SELECT NULL
497 FROM PV_PROCESS_RULES_B B
498 WHERE B.PROCESS_RULE_ID = T.PROCESS_RULE_ID
499 );
500
501 UPDATE PV_PROCESS_RULES_TL T SET (
502 PROCESS_RULE_NAME,
503 DESCRIPTION
504 ) = (SELECT
505 B.PROCESS_RULE_NAME
506 ,B.DESCRIPTION
507 FROM PV_PROCESS_RULES_TL B
508 WHERE B.PROCESS_RULE_ID = T.PROCESS_RULE_ID
509 AND B.LANGUAGE = T.SOURCE_LANG)
510 WHERE (
511 T.PROCESS_RULE_ID
512 ,T.LANGUAGE
513 ) IN (SELECT
514 SUBT.PROCESS_RULE_ID
515 ,SUBT.LANGUAGE
516 FROM PV_PROCESS_RULES_TL SUBB, PV_PROCESS_RULES_TL SUBT
517 WHERE SUBB.PROCESS_RULE_ID = SUBT.PROCESS_RULE_ID
518 AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
519 AND (SUBB.PROCESS_RULE_NAME <> SUBT.PROCESS_RULE_NAME
520 OR SUBB.DESCRIPTION <> SUBT.DESCRIPTION
521 OR (SUBB.PROCESS_RULE_NAME IS NULL AND SUBT.PROCESS_RULE_NAME IS NOT NULL)
522 OR (SUBB.DESCRIPTION IS NOT NULL AND SUBT.DESCRIPTION IS NULL)
523 )
524 );
525
526 INSERT INTO PV_PROCESS_RULES_TL (
527 PROCESS_RULE_ID
528 ,LAST_UPDATE_DATE
529 ,LAST_UPDATED_BY
530 ,CREATION_DATE
531 ,CREATED_BY
532 ,LAST_UPDATE_LOGIN
533 ,LANGUAGE
534 ,SOURCE_LANG
535 ,PROCESS_RULE_NAME
536 ,DESCRIPTION
537 ) SELECT
538 B.PROCESS_RULE_ID
539 ,B.LAST_UPDATE_DATE
540 ,B.LAST_UPDATED_BY
541 ,B.CREATION_DATE
542 ,B.CREATED_BY
543 ,B.LAST_UPDATE_LOGIN
544 ,L.LANGUAGE_CODE
545 ,B.SOURCE_LANG
546 ,B.PROCESS_RULE_NAME
547 ,B.DESCRIPTION
548 FROM PV_PROCESS_RULES_TL B, FND_LANGUAGES L
549 WHERE L.INSTALLED_FLAG IN ('I', 'B')
550 AND B.LANGUAGE = USERENV('LANG')
551 AND NOT EXISTS
552 (SELECT NULL
553 FROM PV_PROCESS_RULES_TL T
554 WHERE T.PROCESS_RULE_ID = B.PROCESS_RULE_ID
555 AND T.LANGUAGE = L.LANGUAGE_CODE);
556
557 END Add_Language;
558
559
560 PROCEDURE Load_Row (
561 px_PROCESS_RULE_ID IN OUT NOCOPY NUMBER,
562 p_PARENT_RULE_ID IN NUMBER,
563 p_PROCESS_TYPE IN VARCHAR2,
564 p_RANK IN NUMBER,
565 p_STATUS_CODE IN VARCHAR2,
566 p_START_DATE IN DATE,
567 p_END_DATE IN DATE,
568 p_ACTION IN VARCHAR2,
569 p_ACTION_VALUE IN VARCHAR2,
570 p_OWNER_RESOURCE_ID IN NUMBER,
571 p_CURRENCY_CODE IN VARCHAR2,
572 p_PROCESS_RULE_NAME IN VARCHAR2,
573 p_DESCRIPTION IN VARCHAR2,
574 p_OWNER IN VARCHAR2)
575 IS
576 l_user_id NUMBER := 0;
577 l_row_id VARCHAR2(100);
578
579 CURSOR c_get_last_updated (c_PROCESS_RULE_ID NUMBER) IS
580 SELECT last_updated_by, OBJECT_VERSION_NUMBER
581 FROM PV_PROCESS_RULES_B
582 WHERE PROCESS_RULE_ID = c_PROCESS_RULE_ID;
583 l_last_updated_by NUMBER;
584 l_object_version_number NUMBER;
585
586 BEGIN
587 OPEN c_get_last_updated (px_PROCESS_RULE_ID);
588 FETCH c_get_last_updated INTO l_last_updated_by, l_object_version_number;
589 CLOSE c_get_last_updated;
590
591 IF nvl(l_last_updated_by, 1) = 1
592 THEN
593
594 Update_Row(
595 p_PROCESS_RULE_ID => px_PROCESS_RULE_ID
596 ,p_LAST_UPDATE_DATE => SYSDATE
597 ,p_LAST_UPDATED_BY => fnd_load_util.owner_id(P_OWNER)
598 ,p_CREATION_DATE => FND_API.G_MISS_DATE
599 ,p_CREATED_BY => FND_API.G_MISS_NUM
600 ,p_LAST_UPDATE_LOGIN => fnd_load_util.owner_id(P_OWNER)
601 ,p_OBJECT_VERSION_NUMBER => l_object_version_number
602 ,p_REQUEST_ID => FND_API.G_MISS_NUM
603 ,p_PROGRAM_APPLICATION_ID => FND_API.G_MISS_NUM
604 ,p_PROGRAM_ID => FND_API.G_MISS_NUM
605 ,p_PROGRAM_UPDATE_DATE => FND_API.G_MISS_DATE
606 ,p_PROCESS_TYPE => p_PROCESS_TYPE
607 ,p_RANK => p_RANK
608 ,p_STATUS_CODE => p_STATUS_CODE
609 ,p_START_DATE => p_START_DATE
610 ,p_END_DATE => p_END_DATE
611 ,p_ACTION => p_ACTION
612 ,p_ACTION_VALUE => p_ACTION_VALUE
613 ,p_OWNER_RESOURCE_ID => p_OWNER_RESOURCE_ID
614 ,p_CURRENCY_CODE => p_CURRENCY_CODE
615 ,p_PROCESS_RULE_NAME => p_PROCESS_RULE_NAME
616 ,p_DESCRIPTION => p_DESCRIPTION
617 ,p_ATTRIBUTE_CATEGORY => FND_API.G_MISS_CHAR
618 ,p_ATTRIBUTE1 => FND_API.G_MISS_CHAR
619 ,p_ATTRIBUTE2 => FND_API.G_MISS_CHAR
620 ,p_ATTRIBUTE3 => FND_API.G_MISS_CHAR
621 ,p_ATTRIBUTE4 => FND_API.G_MISS_CHAR
622 ,p_ATTRIBUTE5 => FND_API.G_MISS_CHAR
623 ,p_ATTRIBUTE6 => FND_API.G_MISS_CHAR
624 ,p_ATTRIBUTE7 => FND_API.G_MISS_CHAR
625 ,p_ATTRIBUTE8 => FND_API.G_MISS_CHAR
626 ,p_ATTRIBUTE9 => FND_API.G_MISS_CHAR
627 ,p_ATTRIBUTE10 => FND_API.G_MISS_CHAR
628 ,p_ATTRIBUTE11 => FND_API.G_MISS_CHAR
629 ,p_ATTRIBUTE12 => FND_API.G_MISS_CHAR
630 ,p_ATTRIBUTE13 => FND_API.G_MISS_CHAR
631 ,p_ATTRIBUTE14 => FND_API.G_MISS_CHAR
632 ,p_ATTRIBUTE15 => FND_API.G_MISS_CHAR);
633
634 END IF;
635
636 EXCEPTION
637 when no_data_found then
638
639 Insert_Row(
640 px_PROCESS_RULE_ID => px_PROCESS_RULE_ID
641 ,p_PARENT_RULE_ID => p_PARENT_RULE_ID
642 ,p_LAST_UPDATE_DATE => SYSDATE
643 ,p_LAST_UPDATED_BY => fnd_load_util.owner_id(P_OWNER)
644 ,p_CREATION_DATE => SYSDATE
645 ,p_CREATED_BY => fnd_load_util.owner_id(P_OWNER)
646 ,p_LAST_UPDATE_LOGIN => fnd_load_util.owner_id(P_OWNER)
647 ,p_OBJECT_VERSION_NUMBER => l_object_version_number
648 ,p_REQUEST_ID => FND_API.G_MISS_NUM
649 ,p_PROGRAM_APPLICATION_ID => FND_API.G_MISS_NUM
650 ,p_PROGRAM_ID => FND_API.G_MISS_NUM
651 ,p_PROGRAM_UPDATE_DATE => FND_API.G_MISS_DATE
652 ,p_PROCESS_TYPE => p_PROCESS_TYPE
653 ,p_RANK => p_RANK
654 ,p_STATUS_CODE => p_STATUS_CODE
655 ,p_START_DATE => p_START_DATE
656 ,p_END_DATE => p_END_DATE
657 ,p_ACTION => p_ACTION
658 ,p_ACTION_VALUE => p_ACTION_VALUE
659 ,p_OWNER_RESOURCE_ID => p_OWNER_RESOURCE_ID
660 ,p_CURRENCY_CODE => p_CURRENCY_CODE
661 ,p_PROCESS_RULE_NAME => p_PROCESS_RULE_NAME
662 ,p_DESCRIPTION => p_DESCRIPTION
663 ,p_ATTRIBUTE_CATEGORY => FND_API.G_MISS_CHAR
664 ,p_ATTRIBUTE1 => FND_API.G_MISS_CHAR
665 ,p_ATTRIBUTE2 => FND_API.G_MISS_CHAR
666 ,p_ATTRIBUTE3 => FND_API.G_MISS_CHAR
667 ,p_ATTRIBUTE4 => FND_API.G_MISS_CHAR
668 ,p_ATTRIBUTE5 => FND_API.G_MISS_CHAR
669 ,p_ATTRIBUTE6 => FND_API.G_MISS_CHAR
670 ,p_ATTRIBUTE7 => FND_API.G_MISS_CHAR
671 ,p_ATTRIBUTE8 => FND_API.G_MISS_CHAR
672 ,p_ATTRIBUTE9 => FND_API.G_MISS_CHAR
673 ,p_ATTRIBUTE10 => FND_API.G_MISS_CHAR
674 ,p_ATTRIBUTE11 => FND_API.G_MISS_CHAR
675 ,p_ATTRIBUTE12 => FND_API.G_MISS_CHAR
676 ,p_ATTRIBUTE13 => FND_API.G_MISS_CHAR
677 ,p_ATTRIBUTE14 => FND_API.G_MISS_CHAR
678 ,p_ATTRIBUTE15 => FND_API.G_MISS_CHAR);
679
680 END LOAD_ROW;
681
682
683 PROCEDURE Translate_Row(
684 px_PROCESS_RULE_ID IN NUMBER
685 ,p_PROCESS_RULE_NAME IN VARCHAR2
686 ,p_DESCRIPTION IN VARCHAR2
687 ,p_OWNER_RESOURCE_ID IN VARCHAR2
688 )
689
690 IS
691
692 BEGIN
693 UPDATE PV_PROCESS_RULES_TL SET
694 PROCESS_RULE_NAME = NVL(p_PROCESS_RULE_NAME, PROCESS_RULE_NAME)
695 ,DESCRIPTION = NVL(p_DESCRIPTION, DESCRIPTION)
696 ,SOURCE_LANG = USERENV('LANG')
697 ,LAST_UPDATE_DATE = SYSDATE
698 ,LAST_UPDATED_BY = DECODE(p_OWNER_RESOURCE_ID, 'SEED', 1, 0)
699 ,LAST_UPDATE_LOGIN = 0
700 WHERE PROCESS_RULE_ID = px_PROCESS_RULE_ID
701 AND USERENV('LANG') IN (language, source_lang);
702
703 END TRANSLATE_ROW;
704
705
706 End PV_PROCESS_RULES_PKG;