DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_MERGE_DICTIONARY_PKG

Source


1 PACKAGE BODY HZ_MERGE_DICTIONARY_PKG as
2 /* $Header: ARHMDTBB.pls 120.10 2006/04/26 09:37:26 vsegu noship $ */
3 -- Start of Comments
4 -- Package name     : HZ_MERGE_DICTIONARY_PKG
5 -- Purpose          :
6 -- History          :
7 -- NOTE             :
8 -- End of Comments
9 
10 G_PKG_NAME CONSTANT VARCHAR2(30):= 'HZ_MERGE_DICTIONARY_PKG';
11 G_FILE_NAME CONSTANT VARCHAR2(12) := 'arhtdtbb.pls';
12 ----------------------------------
13 --Declaration of private procedures and functions
14 ----------------------------------
15 PROCEDURE Validate_Parent_Entity(
16            p_parent_entity IN VARCHAR2,
17            p_owner IN VARCHAR2,
18            p_error_text OUT NOCOPY VARCHAR2,
19            p_return_status OUT NOCOPY VARCHAR2)
20 IS
21   l_owner1 VARCHAR2(255);
22   l_temp VARCHAR2(255);
23   l_bool BOOLEAN;
24 
25 CURSOR c_table IS
26   SELECT 'Exists'
27   FROM sys.ALL_OBJECTS
28   WHERE OBJECT_NAME = p_parent_entity
29 --  AND OWNER = l_owner1
30   AND (OBJECT_TYPE = 'TABLE' OR OBJECT_TYPE = 'VIEW')
31   and rownum = 1;
32 
33 CURSOR c_bulk IS
34   SELECT BULK_FLAG, PK_COLUMN_NAME
35   FROM HZ_MERGE_DICTIONARY
36   WHERE ENTITY_NAME = p_parent_entity;
37 
38 l_exist VARCHAR2(10);
39 
40   l_bulk_flag VARCHAR2(1);
41   l_par_pkcol VARCHAR2(255);
42   l_status VARCHAR2(255);
43 
44 BEGIN
45   l_bool := fnd_installation.GET_APP_INFO(p_owner,l_status,l_temp,l_owner1);
46   IF p_parent_entity IS NULL  THEN
47     p_return_status := 'N';
48     p_error_text := 'HZ_INVALID_PARENTITY_NAME';
49     RETURN ;
50   END IF;
51 
52   OPEN c_bulk;
53   FETCH c_bulk INTO l_bulk_flag, l_par_pkcol;
54   IF c_bulk%NOTFOUND OR (l_bulk_flag IS NOT NULL AND l_bulk_flag = 'Y')
55      OR (upper(l_par_pkcol) = 'ROWID') THEN
56     CLOSE c_bulk;
57     p_error_text := 'HZ_INVALID_PARENTITY';
58     p_return_status := 'N';
59     RETURN  ;
60   END IF;
61   CLOSE c_bulk;
62 
63 
64   IF  FND_PROFILE.VALUE('USER_ID') = '1' THEN
65     RETURN;
66   END IF;
67 
68 
69   OPEN c_table;
70   FETCH c_table INTO l_exist;
71   IF c_table%NOTFOUND THEN
72      p_error_text := 'HZ_INVALID_PARENTITY_NAME';
73      p_return_status := 'N';
74     RETURN ;
75   end if;
76 
77 
78 /*  Successful */
79    p_return_status := 'Y';
80 
81 end Validate_Parent_Entity;
82 
83 PROCEDURE Validate_Primary_Key(
84           p_primary_key IN VARCHAR2,
85           p_owner IN VARCHAR2,
86           p_entity_name IN VARCHAR2,
87           p_error_message OUT NOCOPY VARCHAR2,
88           p_return_status OUT NOCOPY VARCHAR2) IS
89 l_exist VARCHAR2(10);
90 l_status VARCHAR2(255);
91 l_owner1 VARCHAR2(255);
92 l_temp VARCHAR2(255);
93 l_bool BOOLEAN;
94 
95 CURSOR c_table_col IS
96   SELECT 'Exists'
97   FROM sys.ALL_TAB_COLUMNS
98   WHERE TABLE_NAME = p_entity_name
99   AND COLUMN_NAME = p_primary_key
100   --and owner = l_owner1;
101   and rownum = 1;
102 
103 
104 BEGIN
105   l_bool := fnd_installation.GET_APP_INFO(p_owner,l_status,l_temp,l_owner1);
106   IF p_primary_key IS NULL OR FND_PROFILE.VALUE('USER_ID') = '1'
107      OR p_primary_key = 'ROWID' THEN
108     p_error_message := 'HZ_INVALID_PK_COLUMN';
109     p_return_status := 'N';
110     RETURN;
111   END IF;
112 /*
113   IF p_primary_key IS NULL THEN
114      p_error_message := 'HZ_INVALID_PK_COLUMN';
115      p_return_status := 'N';
116      RETURN;
117   end if;
118 */
119 
120   OPEN c_table_col;
121   FETCH c_table_col INTO l_exist;
122   IF c_table_col%NOTFOUND THEN
123      p_error_message := 'HZ_INVALID_PK_COLUMN';
124      p_return_status := 'N';
125      RETURN;
126   end if;
127   CLOSE c_table_col;
128 
129 /*  Successful */
130    p_return_status := 'Y';
131 
132 end Validate_Primary_Key;
133 
134 PROCEDURE Validate_Foreign_Key(
135           p_foreign_key IN VARCHAR2,
136           p_owner IN VARCHAR2,
137           p_entity_name IN VARCHAR2,
138           p_error_message OUT NOCOPY VARCHAR2,
139           p_return_status OUT NOCOPY VARCHAR2) IS
140 l_exist VARCHAR2(10);
141 l_status VARCHAR2(255);
142 l_owner1 VARCHAR2(255);
143 l_temp VARCHAR2(255);
144 l_bool BOOLEAN;
145 CURSOR c_table_col IS
146   SELECT 'Exists'
147   FROM sys.ALL_TAB_COLUMNS
148   WHERE TABLE_NAME = p_entity_name
149   AND COLUMN_NAME = p_foreign_key
150   --and owner = l_owner1;
151   and rownum = 1;
152 
153 BEGIN
154 /*
155   IF p_foreign_key IS NULL OR FND_PROFILE.VALUE('USER_ID') = '1' THEN
156     RETURN;
157   END IF;
158 */
159   l_bool := fnd_installation.GET_APP_INFO(p_owner,l_status,l_temp,l_owner1);
160   IF p_entity_name IS NULL THEN
161     p_error_message := 'HZ_INVALID_ENTITY_NAME';
162     p_return_status := 'N';
163     RETURN;
164   end if;
165 
166   OPEN c_table_col;
167   FETCH c_table_col INTO l_exist;
168   IF c_table_col%NOTFOUND THEN
169     p_error_message := 'HZ_INVALID_FK_COLUMN';
170     p_return_status := 'N';
171     RETURN;
172   end if;
173   CLOSE c_table_col;
174 
175 /*  Successful */
176    p_return_status := 'Y';
177 
178 end Validate_Foreign_Key;
179 
180 PROCEDURE Validate_Entity(
181   p_entity_name IN VARCHAR2,
182   p_owner IN VARCHAR2,
183   p_error_message OUT NOCOPY VARCHAR2,
184   p_return_status OUT NOCOPY VARCHAR2) IS
185 l_exist VARCHAR2(10);
186 l_status VARCHAR2(255);
187 l_owner1 VARCHAR2(255);
188 l_temp VARCHAR2(255);
189 l_bool BOOLEAN;
190 CURSOR c_table IS
191   SELECT 'Exists'
192   FROM sys.ALL_OBJECTS
193   WHERE OBJECT_NAME = p_entity_name
194   AND (OBJECT_TYPE = 'TABLE' OR OBJECT_TYPE = 'VIEW')
195   and rownum = 1;
196   --and owner = l_owner1;
197 
198 BEGIN
199 /*
200   IF p_entity_name IS NULL OR FND_PROFILE.VALUE('USER_ID') = '1' THEN
201     RETURN;
202   END IF;
203 */
204 l_bool := fnd_installation.GET_APP_INFO(p_owner,l_status,l_temp,l_owner1);
205   OPEN c_table;
206   FETCH c_table INTO l_exist;
207   IF c_table%NOTFOUND THEN
208     p_error_message := 'HZ_INVALID_ENTITY_NAME';
209     p_return_status := 'N';
210     RETURN;
211   end if;
212 /*  Successful */
213    p_return_status := 'Y';
214 
215 end Validate_Entity;
216 
217 PROCEDURE Insert_Row(
218           px_MERGE_DICT_ID   IN OUT NOCOPY NUMBER,
219           p_RULE_SET_NAME    VARCHAR2,
220           p_ENTITY_NAME    VARCHAR2,
221           p_PARENT_ENTITY_NAME    VARCHAR2,
222           p_PK_COLUMN_NAME    VARCHAR2,
223           p_FK_COLUMN_NAME    VARCHAR2,
224           p_DESC_COLUMN_NAME    VARCHAR2,
225           p_PROCEDURE_TYPE    VARCHAR2,
226           p_PROCEDURE_NAME    VARCHAR2,
227           p_JOIN_CLAUSE    VARCHAR2,
228           p_DICT_APPLICATION_ID    NUMBER,
229           p_DESCRIPTION    VARCHAR2,
230           px_SEQUENCE_NO    IN OUT NOCOPY NUMBER,
231           p_BULK_FLAG    VARCHAR2,
232 	  p_BATCH_MERGE_FLAG VARCHAR2, --4634891
233 	  p_VALIDATE_PURGE_FLAG VARCHAR2, --5125968
234           p_CREATED_BY    NUMBER,
235           p_CREATION_DATE    DATE,
236           p_LAST_UPDATE_LOGIN    NUMBER,
237           p_LAST_UPDATE_DATE    DATE,
238           p_LAST_UPDATED_BY    NUMBER)
239 
240  IS
241    CURSOR C1(cp_md_id NUMBER) IS
242       SELECT MERGE_DICT_ID FROM HZ_MERGE_DICTIONARY WHERE MERGE_DICT_ID=cp_md_id;
243 
244    CURSOR C2 IS SELECT HZ_MERGE_DICTIONARY_S.nextval FROM sys.dual;
245 
246    CURSOR C3 IS SELECT 10*(1+trunc(nvl(max(SEQUENCE_NO), 0)/10))
247                 FROM HZ_MERGE_DICTIONARY
248                 WHERE PARENT_ENTITY_NAME = p_PARENT_ENTITY_NAME;
249 
250    l_temp NUMBER;
251 BEGIN
252    If (px_MERGE_DICT_ID IS NULL) OR (px_MERGE_DICT_ID = FND_API.G_MISS_NUM) then
253 
254 
255        LOOP
256          OPEN C2;
257          FETCH C2 INTO px_MERGE_DICT_ID;
258          CLOSE C2;
259 
260          OPEN C1(px_MERGE_DICT_ID);
261          FETCH C1 INTO l_temp;
262          EXIT WHEN C1%NOTFOUND;
263          CLOSE C1;
264        END LOOP;
265        CLOSE C1;
266 
267    End If;
268 
269    If (px_SEQUENCE_NO IS NULL) OR (px_SEQUENCE_NO = FND_API.G_MISS_NUM) then
270       if p_PARENT_ENTITY_NAME IS NOT NULL then
271         OPEN C3;
272         FETCH C3 INTO px_SEQUENCE_NO;
273         CLOSE C3;
274 
275       else
276         px_SEQUENCE_NO := 1;
277       End if;
278    End If;
279    INSERT INTO HZ_MERGE_DICTIONARY(
280            MERGE_DICT_ID,
281            RULE_SET_NAME,
282            ENTITY_NAME,
283            PARENT_ENTITY_NAME,
284            PK_COLUMN_NAME,
285            FK_COLUMN_NAME,
286            DESC_COLUMN_NAME,
287            PROCEDURE_TYPE,
288            PROCEDURE_NAME,
289            JOIN_CLAUSE,
290            DICT_APPLICATION_ID,
291            DESCRIPTION,
292            SEQUENCE_NO,
293            BULK_FLAG,
294 	   BATCH_MERGE_FLAG, --4634891
295 	   VALIDATE_PURGE_FLAG, --5125968
296            CREATED_BY,
297            CREATION_DATE,
298            LAST_UPDATE_LOGIN,
299            LAST_UPDATE_DATE,
300            LAST_UPDATED_BY
301           ) VALUES (
302            px_MERGE_DICT_ID,
303            decode( p_RULE_SET_NAME, FND_API.G_MISS_CHAR, NULL, p_RULE_SET_NAME),
304            decode( p_ENTITY_NAME, FND_API.G_MISS_CHAR, NULL, p_ENTITY_NAME),
305            decode( p_PARENT_ENTITY_NAME, FND_API.G_MISS_CHAR, NULL, p_PARENT_ENTITY_NAME),
306            decode( p_PK_COLUMN_NAME, FND_API.G_MISS_CHAR, NULL, p_PK_COLUMN_NAME),
307            decode( p_FK_COLUMN_NAME, FND_API.G_MISS_CHAR, NULL, p_FK_COLUMN_NAME),
308            decode( p_DESC_COLUMN_NAME, FND_API.G_MISS_CHAR, NULL, p_DESC_COLUMN_NAME),
309            decode( p_PROCEDURE_TYPE, FND_API.G_MISS_CHAR, NULL, p_PROCEDURE_TYPE),
310            decode( p_PROCEDURE_NAME, FND_API.G_MISS_CHAR, NULL, p_PROCEDURE_NAME),
311            decode( p_JOIN_CLAUSE, FND_API.G_MISS_CHAR, NULL, p_JOIN_CLAUSE),
312            decode( p_DICT_APPLICATION_ID, FND_API.G_MISS_NUM, NULL, p_DICT_APPLICATION_ID),
313            decode( p_DESCRIPTION, FND_API.G_MISS_CHAR, NULL, p_DESCRIPTION),
314            px_SEQUENCE_NO,
315            decode( p_BULK_FLAG, FND_API.G_MISS_CHAR, NULL, p_BULK_FLAG),
316 	   decode( p_BATCH_MERGE_FLAG, FND_API.G_MISS_CHAR, NULL, p_BATCH_MERGE_FLAG), --4634891
317 	   decode( p_VALIDATE_PURGE_FLAG, FND_API.G_MISS_CHAR, NULL, p_VALIDATE_PURGE_FLAG), --5125968
318            decode( p_CREATED_BY, FND_API.G_MISS_NUM, NULL, p_CREATED_BY),
319            decode( p_CREATION_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_CREATION_DATE),
320            decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATE_LOGIN),
321            decode( p_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, TO_DATE(NULL), p_LAST_UPDATE_DATE),
322            decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, NULL, p_LAST_UPDATED_BY));
323 End Insert_Row;
324 
325 PROCEDURE Update_Row(
326           p_MERGE_DICT_ID    NUMBER,
327           p_RULE_SET_NAME    VARCHAR2,
328           p_ENTITY_NAME    VARCHAR2,
329           p_PARENT_ENTITY_NAME    VARCHAR2,
330           p_PK_COLUMN_NAME    VARCHAR2,
331           p_FK_COLUMN_NAME    VARCHAR2,
332           p_DESC_COLUMN_NAME    VARCHAR2,
333           p_PROCEDURE_TYPE    VARCHAR2,
334           p_PROCEDURE_NAME    VARCHAR2,
335           p_JOIN_CLAUSE    VARCHAR2,
336           p_DICT_APPLICATION_ID    NUMBER,
337           p_DESCRIPTION    VARCHAR2,
338           px_SEQUENCE_NO    IN OUT NOCOPY NUMBER,
339           p_BULK_FLAG    IN VARCHAR2,
340 	  p_BATCH_MERGE_FLAG IN VARCHAR2, --4634891
341 	  p_VALIDATE_PURGE_FLAG IN VARCHAR2, --5125968
342           p_CREATED_BY    NUMBER,
343           p_CREATION_DATE    DATE,
344           p_LAST_UPDATE_LOGIN    NUMBER,
345           p_LAST_UPDATE_DATE    DATE,
346           p_LAST_UPDATED_BY    NUMBER)
347 
348  IS
349    CURSOR C1 IS
350      SELECT nvl(PARENT_ENTITY_NAME, 'NONAME')
351      FROM HZ_MERGE_DICTIONARY
352      WHERE MERGE_DICT_ID = p_MERGE_DICT_ID;
353 
354    CURSOR C3 IS SELECT 10*(1+trunc(nvl(max(SEQUENCE_NO), 0)/10))
355                 FROM HZ_MERGE_DICTIONARY
356                 WHERE PARENT_ENTITY_NAME = p_PARENT_ENTITY_NAME;
357 
358    l_old_parent_ent_name HZ_MERGE_DICTIONARY.PARENT_ENTITY_NAME%TYPE;
359  BEGIN
360     OPEN C1;
361     FETCH C1 INTO l_old_parent_ent_name;
362     CLOSE C1;
363 
364     IF l_old_parent_ent_name<> nvl(p_PARENT_ENTITY_NAME, 'NONAME') THEN
365       OPEN C3;
366       FETCH C3 INTO px_sequence_no;
367       CLOSE C3;
368     END IF;
369 
370     Update HZ_MERGE_DICTIONARY
371     SET
372               RULE_SET_NAME = decode( p_RULE_SET_NAME, FND_API.G_MISS_CHAR, RULE_SET_NAME, p_RULE_SET_NAME),
373               ENTITY_NAME = decode( p_ENTITY_NAME, FND_API.G_MISS_CHAR, ENTITY_NAME, p_ENTITY_NAME),
374               PARENT_ENTITY_NAME = decode( p_PARENT_ENTITY_NAME, FND_API.G_MISS_CHAR, PARENT_ENTITY_NAME, p_PARENT_ENTITY_NAME),
375               PK_COLUMN_NAME = decode( p_PK_COLUMN_NAME, FND_API.G_MISS_CHAR, PK_COLUMN_NAME, p_PK_COLUMN_NAME),
376               FK_COLUMN_NAME = decode( p_FK_COLUMN_NAME, FND_API.G_MISS_CHAR, FK_COLUMN_NAME, p_FK_COLUMN_NAME),
377               DESC_COLUMN_NAME = decode( p_DESC_COLUMN_NAME, FND_API.G_MISS_CHAR, DESC_COLUMN_NAME, p_DESC_COLUMN_NAME),
378               PROCEDURE_TYPE = decode( p_PROCEDURE_TYPE, FND_API.G_MISS_CHAR, PROCEDURE_TYPE, p_PROCEDURE_TYPE),
382               DESCRIPTION = decode( p_DESCRIPTION, FND_API.G_MISS_CHAR, DESCRIPTION, p_DESCRIPTION),
379               PROCEDURE_NAME = decode( p_PROCEDURE_NAME, FND_API.G_MISS_CHAR, PROCEDURE_NAME, p_PROCEDURE_NAME),
380               JOIN_CLAUSE = decode( p_JOIN_CLAUSE, FND_API.G_MISS_CHAR, JOIN_CLAUSE, p_JOIN_CLAUSE),
381               DICT_APPLICATION_ID = decode( p_DICT_APPLICATION_ID, FND_API.G_MISS_NUM, DICT_APPLICATION_ID, p_DICT_APPLICATION_ID),
383               SEQUENCE_NO = decode( px_SEQUENCE_NO, FND_API.G_MISS_NUM, SEQUENCE_NO, px_SEQUENCE_NO),
384               BULK_FLAG = decode( p_BULK_FLAG, FND_API.G_MISS_CHAR, BULK_FLAG, p_BULK_FLAG),
385 	      BATCH_MERGE_FLAG = decode( p_BATCH_MERGE_FLAG, FND_API.G_MISS_CHAR, BATCH_MERGE_FLAG, p_BATCH_MERGE_FLAG), -- 4634891
386 	      VALIDATE_PURGE_FLAG = decode( p_VALIDATE_PURGE_FLAG,  FND_API.G_MISS_CHAR, VALIDATE_PURGE_FLAG, p_VALIDATE_PURGE_FLAG), --5125968
387               -- Bug 3032780
388               /*
389               CREATED_BY = decode( p_CREATED_BY, FND_API.G_MISS_NUM, CREATED_BY, p_CREATED_BY),
390               CREATION_DATE = decode( p_CREATION_DATE, FND_API.G_MISS_DATE, CREATION_DATE, p_CREATION_DATE),
391               */
392               LAST_UPDATE_LOGIN = decode( p_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, LAST_UPDATE_LOGIN, p_LAST_UPDATE_LOGIN),
393               LAST_UPDATE_DATE = decode( p_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, LAST_UPDATE_DATE, p_LAST_UPDATE_DATE),
394               LAST_UPDATED_BY = decode( p_LAST_UPDATED_BY, FND_API.G_MISS_NUM, LAST_UPDATED_BY, p_LAST_UPDATED_BY)
395     where MERGE_DICT_ID = p_MERGE_DICT_ID;
396 
397     If (SQL%NOTFOUND) then
398         RAISE NO_DATA_FOUND;
399     End If;
400 END Update_Row;
401 
402 PROCEDURE Delete_Row(
403     p_MERGE_DICT_ID  NUMBER)
404  IS
405  BEGIN
406 
407 BEGIN
408   DELETE FROM HZ_MERGE_DICTIONARY hmd
409   where parent_entity_name in ( select entity_name
410                                 from HZ_MERGE_DICTIONARY hmd1
411                                 where hmd1.merge_dict_id=p_MERGE_DICT_ID);
412 EXCEPTION
413 WHEN NO_DATA_FOUND THEN
414      NULL;
415 END;
416 
417 DELETE FROM HZ_MERGE_DICTIONARY
418     WHERE MERGE_DICT_ID = p_MERGE_DICT_ID;
419 
420 
421    If (SQL%NOTFOUND) then
422        RAISE NO_DATA_FOUND;
423    End If;
424  END Delete_Row;
425 
426 PROCEDURE Lock_Row(
427           p_MERGE_DICT_ID    NUMBER,
428           p_RULE_SET_NAME    VARCHAR2,
429           p_ENTITY_NAME    VARCHAR2,
430           p_PARENT_ENTITY_NAME    VARCHAR2,
431           p_PK_COLUMN_NAME    VARCHAR2,
432           p_FK_COLUMN_NAME    VARCHAR2,
433           p_DESC_COLUMN_NAME    VARCHAR2,
434           p_PROCEDURE_TYPE    VARCHAR2,
435           p_PROCEDURE_NAME    VARCHAR2,
436           p_JOIN_CLAUSE    VARCHAR2,
437           p_DICT_APPLICATION_ID    NUMBER,
438           p_DESCRIPTION    VARCHAR2,
439           p_SEQUENCE_NO    NUMBER,
440           p_BULK_FLAG    VARCHAR2,
441 	  p_BATCH_MERGE_FLAG VARCHAR2, --4634891
442 	  p_VALIDATE_PURGE_FLAG VARCHAR2, --5125968
443           p_CREATED_BY    NUMBER,
444           p_CREATION_DATE    DATE,
445           p_LAST_UPDATE_LOGIN    NUMBER,
446           p_LAST_UPDATE_DATE    DATE,
447           p_LAST_UPDATED_BY    NUMBER)
448 
449  IS
450    CURSOR C IS
451         SELECT *
452          FROM HZ_MERGE_DICTIONARY
453         WHERE MERGE_DICT_ID =  p_MERGE_DICT_ID
454         FOR UPDATE of MERGE_DICT_ID NOWAIT;
455    Recinfo C%ROWTYPE;
456  BEGIN
457     OPEN C;
458     FETCH C INTO Recinfo;
459     If (C%NOTFOUND) then
460         CLOSE C;
461         FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
462         APP_EXCEPTION.RAISE_EXCEPTION;
463     End If;
464     CLOSE C;
465     if (
466            (      Recinfo.MERGE_DICT_ID = p_MERGE_DICT_ID)
467        AND (    ( Recinfo.RULE_SET_NAME = p_RULE_SET_NAME)
468             OR (    ( Recinfo.RULE_SET_NAME IS NULL )
469                 AND (  p_RULE_SET_NAME IS NULL )))
470        AND (    ( Recinfo.ENTITY_NAME = p_ENTITY_NAME)
471             OR (    ( Recinfo.ENTITY_NAME IS NULL )
472                 AND (  p_ENTITY_NAME IS NULL )))
473        AND (    ( Recinfo.PARENT_ENTITY_NAME = p_PARENT_ENTITY_NAME)
474             OR (    ( Recinfo.PARENT_ENTITY_NAME IS NULL )
475                 AND (  p_PARENT_ENTITY_NAME IS NULL )))
476        AND (    ( Recinfo.PK_COLUMN_NAME = p_PK_COLUMN_NAME)
477             OR (    ( Recinfo.PK_COLUMN_NAME IS NULL )
478                 AND (  p_PK_COLUMN_NAME IS NULL )))
479        AND (    ( Recinfo.FK_COLUMN_NAME = p_FK_COLUMN_NAME)
480             OR (    ( Recinfo.FK_COLUMN_NAME IS NULL )
481                 AND (  p_FK_COLUMN_NAME IS NULL )))
482        AND (    ( Recinfo.DESC_COLUMN_NAME = p_DESC_COLUMN_NAME)
483             OR (    ( Recinfo.DESC_COLUMN_NAME IS NULL )
484                 AND (  p_DESC_COLUMN_NAME IS NULL )))
485        AND (    ( Recinfo.PROCEDURE_TYPE = p_PROCEDURE_TYPE)
486             OR (    ( Recinfo.PROCEDURE_TYPE IS NULL )
487                 AND (  p_PROCEDURE_TYPE IS NULL )))
488        AND (    ( Recinfo.PROCEDURE_NAME = p_PROCEDURE_NAME)
489             OR (    ( Recinfo.PROCEDURE_NAME IS NULL )
490                 AND (  p_PROCEDURE_NAME IS NULL )))
491        AND (    ( Recinfo.JOIN_CLAUSE = p_JOIN_CLAUSE)
492             OR (    ( Recinfo.JOIN_CLAUSE IS NULL )
493                 AND (  p_JOIN_CLAUSE IS NULL )))
494        AND (    ( Recinfo.DICT_APPLICATION_ID = p_DICT_APPLICATION_ID)
495             OR (    ( Recinfo.DICT_APPLICATION_ID IS NULL )
496                 AND (  p_DICT_APPLICATION_ID IS NULL )))
497        AND (    ( Recinfo.DESCRIPTION = p_DESCRIPTION)
498             OR (    ( Recinfo.DESCRIPTION IS NULL )
499                 AND (  p_DESCRIPTION IS NULL )))
500        AND (    ( Recinfo.SEQUENCE_NO = p_SEQUENCE_NO)
501             OR (    ( Recinfo.SEQUENCE_NO IS NULL )
505                 AND (  p_BULK_FLAG IS NULL )))
502                 AND (  p_SEQUENCE_NO IS NULL )))
503        AND (    ( Recinfo.BULK_FLAG = p_BULK_FLAG)
504             OR (    ( Recinfo.BULK_FLAG IS NULL )
506        AND (    ( Recinfo.BATCH_MERGE_FLAG = p_BATCH_MERGE_FLAG) --4634891
507             OR (    ( Recinfo.BATCH_MERGE_FLAG IS NULL )
508                 AND (  p_BATCH_MERGE_FLAG IS NULL )))
509        AND (    ( Recinfo.VALIDATE_PURGE_FLAG = p_VALIDATE_PURGE_FLAG) --5125968
510             OR (    ( Recinfo.VALIDATE_PURGE_FLAG IS NULL )
511                 AND (  p_VALIDATE_PURGE_FLAG IS NULL )))
512        AND (    ( Recinfo.CREATED_BY = p_CREATED_BY)
513             OR (    ( Recinfo.CREATED_BY IS NULL )
514                 AND (  p_CREATED_BY IS NULL )))
515        AND (    ( Recinfo.CREATION_DATE = p_CREATION_DATE)
516             OR (    ( Recinfo.CREATION_DATE IS NULL )
517                 AND (  p_CREATION_DATE IS NULL )))
518        AND (    ( Recinfo.LAST_UPDATE_LOGIN = p_LAST_UPDATE_LOGIN)
519             OR (    ( Recinfo.LAST_UPDATE_LOGIN IS NULL )
520                 AND (  p_LAST_UPDATE_LOGIN IS NULL )))
521        AND (    ( Recinfo.LAST_UPDATE_DATE = p_LAST_UPDATE_DATE)
522             OR (    ( Recinfo.LAST_UPDATE_DATE IS NULL )
523                 AND (  p_LAST_UPDATE_DATE IS NULL )))
524        AND (    ( Recinfo.LAST_UPDATED_BY = p_LAST_UPDATED_BY)
525             OR (    ( Recinfo.LAST_UPDATED_BY IS NULL )
526                 AND (  p_LAST_UPDATED_BY IS NULL )))
527        ) then
528        return;
529    else
530        FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_CHANGED');
531        APP_EXCEPTION.RAISE_EXCEPTION;
532    End If;
533 END Lock_Row;
534 
535 End HZ_MERGE_DICTIONARY_PKG;