DBA Data[Home] [Help]

PACKAGE BODY: APPS.IBC_ASSOCIATION_TYPES_PKG

Source


1 PACKAGE BODY Ibc_Association_Types_Pkg  AS
2 /* $Header: ibctatyb.pls 120.3 2006/06/22 09:21:46 sharma ship $*/
3 
4 -- Purpose: Table Handler for IBC_ASSOCIATION_TYPES table.
5 
6 -- MODIFICATION HISTORY
7 -- Person            Date        Comments
8 -- ---------         ------      ------------------------------------------
9 -- Sri Rangarajan    01/06/2002      Created Package
10 -- shitij.vatsa      11/04/2002      Updated for FND_API.G_MISS_XXX
11 -- Siva Devaki       12/01/2003      Added Overloaded procedures for OA UI
12 -- Siva Devaki       06/24/2005      NOCOPY changes made to fix#4399469
13 -- SHARMA 	     07/04/2005	     Modified LOAD_ROW, TRANSLATE_ROW and created
14 -- 			             LOAD_SEED_ROW for R12 LCT standards bug 4411674
15 
16 PROCEDURE insert_row (
17  p_association_type_code           IN VARCHAR2
18 ,p_search_page                     IN VARCHAR2
19 ,p_object_version_number           IN NUMBER
20 ,p_call_back_pkg                   IN VARCHAR2
21 ,p_association_type_name           IN VARCHAR2
22 ,p_description                     IN VARCHAR2
23 ,p_creation_date                   IN DATE          --DEFAULT NULL
24 ,p_created_by                      IN NUMBER        --DEFAULT NULL
25 ,p_last_update_date                IN DATE          --DEFAULT NULL
26 ,p_last_updated_by                 IN NUMBER        --DEFAULT NULL
27 ,p_last_update_login               IN NUMBER        --DEFAULT NULL
28 ,x_rowid                           OUT NOCOPY VARCHAR2
29 ) IS
30   CURSOR c IS SELECT ROWID FROM ibc_association_types_b
31     WHERE association_type_code = p_association_type_code
32     ;
33 BEGIN
34   INSERT INTO ibc_association_types_b (
35      association_type_code
36     ,search_page
37     ,object_version_number
38     ,call_back_pkg
39     ,creation_date
40     ,created_by
41     ,last_update_date
42     ,last_updated_by
43     ,last_update_login
44     ) VALUES (
45      p_association_type_code
46     ,DECODE(p_search_page,FND_API.G_MISS_CHAR,NULL,p_search_page)
47     ,DECODE(p_object_version_number,FND_API.G_MISS_NUM,1,NULL,1,p_object_version_number)
48     ,DECODE(p_call_back_pkg,FND_API.G_MISS_CHAR,NULL,p_call_back_pkg)
49     ,DECODE(p_creation_date,FND_API.G_MISS_DATE,SYSDATE,NULL,SYSDATE,p_creation_date)
50     ,DECODE(p_created_by,FND_API.G_MISS_NUM,FND_GLOBAL.user_id,NULL,FND_GLOBAL.user_id,p_created_by)
51     ,DECODE(p_last_update_date,FND_API.G_MISS_DATE,SYSDATE,NULL,SYSDATE,p_last_update_date)
52     ,DECODE(p_last_updated_by,FND_API.G_MISS_NUM,FND_GLOBAL.user_id,NULL,FND_GLOBAL.user_id,p_last_updated_by)
53     ,DECODE(p_last_update_login,FND_API.G_MISS_NUM,FND_GLOBAL.login_id,NULL,FND_GLOBAL.user_id,p_last_update_login)
54   );
55 
56   INSERT INTO ibc_association_types_tl (
57      association_type_code
58     ,association_type_name
59     ,description
60     ,creation_date
61     ,created_by
62     ,last_update_date
63     ,last_updated_by
64     ,last_update_login
65     ,language
66     ,source_lang
67   ) SELECT
68      p_association_type_code
69     ,DECODE(p_association_type_name,FND_API.G_MISS_CHAR,NULL,p_association_type_name)
70     ,DECODE(p_description,FND_API.G_MISS_CHAR,NULL,p_description)
71     ,DECODE(p_creation_date,FND_API.G_MISS_DATE,SYSDATE,NULL,SYSDATE,p_creation_date)
72     ,DECODE(p_created_by,FND_API.G_MISS_NUM,FND_GLOBAL.user_id,NULL,FND_GLOBAL.user_id,p_created_by)
73     ,DECODE(p_last_update_date,FND_API.G_MISS_DATE,SYSDATE,NULL,SYSDATE,p_last_update_date)
74     ,DECODE(p_last_updated_by,FND_API.G_MISS_NUM,FND_GLOBAL.user_id,NULL,FND_GLOBAL.user_id,p_last_updated_by)
75     ,DECODE(p_last_update_login,FND_API.G_MISS_NUM,FND_GLOBAL.login_id,NULL,FND_GLOBAL.user_id,p_last_update_login)
76     ,l.language_code
77     ,USERENV('lang')
78   FROM fnd_languages l
79   WHERE l.installed_flag IN ('I', 'B')
80   AND NOT EXISTS
81     (SELECT NULL
82     FROM ibc_association_types_tl t
83     WHERE t.association_type_code = p_association_type_code
84     AND t.LANGUAGE = l.language_code);
85 
86   OPEN c;
87   FETCH c INTO x_rowid;
88   IF (c%NOTFOUND) THEN
89     CLOSE c;
90     RAISE NO_DATA_FOUND;
91   END IF;
92   CLOSE c;
93 
94 END insert_row;
95 
96 PROCEDURE lock_row (
97   p_association_type_code IN VARCHAR2,
98   p_search_page IN VARCHAR2,
99   p_object_version_number IN NUMBER,
100   p_association_type_name IN VARCHAR2,
101   p_description IN VARCHAR2
102 ) IS
103   CURSOR c IS SELECT
104       search_page,
105       object_version_number
106      FROM ibc_association_types_b
107     WHERE association_type_code = p_association_type_code
108     FOR UPDATE OF association_type_code NOWAIT;
109   recinfo c%ROWTYPE;
110 
111   CURSOR c1 IS SELECT
112       association_type_name,
113       description,
114       DECODE(LANGUAGE, USERENV('LANG'), 'Y', 'N') baselang
115     FROM ibc_association_types_tl
116     WHERE association_type_code = p_association_type_code
117     AND USERENV('lang') IN (LANGUAGE, source_lang)
118     FOR UPDATE OF association_type_code NOWAIT;
119 BEGIN
120   OPEN c;
121   FETCH c INTO recinfo;
122   IF (c%NOTFOUND) THEN
123     CLOSE c;
124     fnd_message.set_name('fnd', 'form_record_deleted');
125     app_exception.raise_exception;
126   END IF;
127   CLOSE c;
128   IF (    (recinfo.search_page = p_search_page)
129       AND (recinfo.object_version_number = p_object_version_number)
130 
131   ) THEN
132     NULL;
133   ELSE
134     fnd_message.set_name('fnd', 'form_record_changed');
135     app_exception.raise_exception;
136   END IF;
137 
138   FOR tlinfo IN c1 LOOP
139     IF (tlinfo.baselang = 'Y') THEN
140       IF (    (tlinfo.association_type_name = p_association_type_name)
141           AND ((tlinfo.description = p_description)
142                OR ((tlinfo.description IS NULL) AND (p_description IS NULL)))
143       ) THEN
144         NULL;
145       ELSE
146         fnd_message.set_name('fnd', 'form_record_changed');
147         app_exception.raise_exception;
148       END IF;
149     END IF;
150   END LOOP;
151   RETURN;
152 END lock_row;
153 
154 PROCEDURE update_row (
155  p_association_type_code           IN VARCHAR2
156 ,p_association_type_name           IN VARCHAR2      --DEFAULT NULL
157 ,p_call_back_pkg                   IN VARCHAR2
158 ,p_description                     IN VARCHAR2      --DEFAULT NULL
159 ,p_last_updated_by                 IN NUMBER        --DEFAULT NULL
160 ,p_last_update_date                IN DATE          --DEFAULT NULL
161 ,p_last_update_login               IN NUMBER        --DEFAULT NULL
162 ,p_object_version_number           IN NUMBER        --DEFAULT NULL
163 ,p_search_page                     IN VARCHAR2      --DEFAULT NULL
164 )
165 IS
166 BEGIN
167   UPDATE ibc_association_types_b SET
168       search_page               = DECODE(p_search_page,FND_API.G_MISS_CHAR,NULL,NULL,search_page,p_search_page)
169      ,object_version_number     = NVL(object_version_number,0) + 1
170      ,call_back_pkg             = DECODE(p_call_back_pkg,FND_API.G_MISS_CHAR,NULL,NULL,call_back_pkg,p_call_back_pkg)
171      ,last_update_date          = DECODE(p_last_update_date,FND_API.G_MISS_DATE,SYSDATE,NULL,SYSDATE,p_last_update_date)
172      ,last_updated_by           = DECODE(p_last_updated_by,FND_API.G_MISS_NUM,FND_GLOBAL.user_id,NULL,FND_GLOBAL.user_id,p_last_updated_by)
173      ,last_update_login         = DECODE(p_last_update_login,FND_API.G_MISS_NUM,FND_GLOBAL.login_id,NULL,FND_GLOBAL.user_id,p_last_update_login)
174   WHERE association_type_code = p_association_type_code
175   AND object_version_number = DECODE(p_object_version_number,
176                                        FND_API.g_miss_num,
177                                        object_version_number,
178                                        NULL,
179                                        object_version_number,
180                                        p_object_version_number);
181 
182   IF (SQL%NOTFOUND) THEN
183     RAISE NO_DATA_FOUND;
184   END IF;
185 
186   UPDATE ibc_association_types_tl SET
187      association_type_name     = DECODE(p_association_type_name,FND_API.G_MISS_CHAR,NULL,NULL,association_type_name,p_association_type_name)
188     ,description               = DECODE(p_description,FND_API.G_MISS_CHAR,NULL,NULL,description,p_description)
189     ,last_update_date          = DECODE(p_last_update_date,FND_API.G_MISS_DATE,SYSDATE,NULL,SYSDATE,p_last_update_date)
190     ,last_updated_by           = DECODE(p_last_updated_by,FND_API.G_MISS_NUM,FND_GLOBAL.user_id,NULL,FND_GLOBAL.user_id,p_last_updated_by)
191     ,last_update_login         = DECODE(p_last_update_login,FND_API.G_MISS_NUM,FND_GLOBAL.login_id,NULL,FND_GLOBAL.user_id,p_last_update_login)
192     ,source_lang               = USERENV('LANG')
193   WHERE association_type_code = p_association_type_code
194   AND USERENV('LANG') IN (LANGUAGE, source_lang);
195 
196   IF (SQL%NOTFOUND) THEN
197     RAISE NO_DATA_FOUND;
198   END IF;
199 END update_row;
200 
201 PROCEDURE delete_row (
202   p_association_type_code IN VARCHAR2
203 ) IS
204 BEGIN
205   DELETE FROM ibc_association_types_tl
206   WHERE association_type_code = p_association_type_code;
207 
208   IF (SQL%NOTFOUND) THEN
209     RAISE NO_DATA_FOUND;
210   END IF;
211 
212   DELETE FROM ibc_association_types_b
213   WHERE association_type_code = p_association_type_code;
214 
215   IF (SQL%NOTFOUND) THEN
216     RAISE NO_DATA_FOUND;
217   END IF;
218 END delete_row;
219 
220 PROCEDURE add_language
221 IS
222 BEGIN
223   DELETE FROM ibc_association_types_tl t
224   WHERE NOT EXISTS
225     (SELECT NULL
226     FROM ibc_association_types_b b
227     WHERE b.association_type_code = t.association_type_code
228     );
229 
230   UPDATE ibc_association_types_tl t SET (
231       association_type_name,
232       description
233     ) = (SELECT
234       b.association_type_name,
235       b.description
236     FROM ibc_association_types_tl b
237     WHERE b.association_type_code = t.association_type_code
238     AND b.LANGUAGE = t.source_lang)
239   WHERE (
240       t.association_type_code,
241       t.LANGUAGE
242   ) IN (SELECT
243       subt.association_type_code,
244       subt.LANGUAGE
245     FROM ibc_association_types_tl subb, ibc_association_types_tl subt
246     WHERE subb.association_type_code = subt.association_type_code
247     AND subb.LANGUAGE = subt.source_lang
248     AND (subb.association_type_name <> subt.association_type_name
249       OR subb.description <> subt.description
250       OR (subb.description IS NULL AND subt.description IS NOT NULL)
251       OR (subb.description IS NOT NULL AND subt.description IS NULL)
252   ));
253 
254   INSERT INTO ibc_association_types_tl (
255     association_type_code,
256     association_type_name,
257     description,
258     created_by,
259     creation_date,
260     last_updated_by,
261     last_update_date,
262     last_update_login,
263     LANGUAGE,
264     source_lang
265   ) SELECT /*+ ordered */
266     b.association_type_code,
267     b.association_type_name,
268     b.description,
269     b.created_by,
270     b.creation_date,
271     b.last_updated_by,
272     b.last_update_date,
273     b.last_update_login,
274     l.language_code,
275     b.source_lang
276   FROM ibc_association_types_tl b, fnd_languages l
277   WHERE l.installed_flag IN ('I', 'B')
278   AND b.LANGUAGE = USERENV('LANG')
279   AND NOT EXISTS
280     (SELECT NULL
281     FROM ibc_association_types_tl t
282     WHERE t.association_type_code = b.association_type_code
283     AND t.LANGUAGE = l.language_code);
284 END add_language;
285 
286 PROCEDURE LOAD_SEED_ROW (
287  p_upload_mode			IN VARCHAR2
288 ,p_association_type_code           IN VARCHAR2
289 ,p_association_type_name           IN VARCHAR2
290 ,p_call_back_pkg                   IN VARCHAR2
291 ,p_description                     IN VARCHAR2
292 ,p_search_page                     IN VARCHAR2
293 ,p_owner                           IN VARCHAR2
294 ,p_last_update_date		IN VARCHAR2
295 ) IS
296 BEGIN
297 	IF ( p_UPLOAD_MODE = 'NLS') THEN
298 		IBC_ASSOCIATION_TYPES_PKG.TRANSLATE_ROW (
299 			p_upload_mode => p_upload_mode,
300 			p_association_type_code	=> p_association_type_code,
301 			p_association_type_name	=> p_association_type_name,
302 			p_description	=>	p_description,
303 			p_owner	 => p_owner,
304 			p_last_update_date => p_last_update_date);
305 	ELSE
306 		IBC_ASSOCIATION_TYPES_PKG.LOAD_ROW(
307 			p_upload_mode	=> p_upload_mode,
308 			p_association_type_code  => p_association_type_code,
309 			p_association_type_name => p_association_type_name,
310 			p_call_back_pkg => p_call_back_pkg,
311 			p_description => p_description,
312 			p_search_page => p_search_page,
313 			p_owner => p_owner,
314 			p_last_update_date => p_last_update_date );
315 	END IF;
316 END;
317 
318 PROCEDURE LOAD_ROW (
319   p_UPLOAD_MODE IN VARCHAR2,
320   p_ASSOCIATION_TYPE_CODE IN VARCHAR2,
321   p_ASSOCIATION_TYPE_NAME IN VARCHAR2,
322   p_CALL_BACK_PKG   IN VARCHAR2,
323   p_DESCRIPTION    IN VARCHAR2,
324   p_SEARCH_PAGE    IN VARCHAR2,
325   p_OWNER      IN VARCHAR2,
326   p_LAST_UPDATE_DATE IN VARCHAR2) IS
327 BEGIN
328   DECLARE
329     l_user_id    NUMBER := 0;
330     l_row_id     VARCHAR2(64);
331     l_last_update_date DATE;
332 
333     db_user_id    NUMBER := 0;
334     db_last_update_date DATE;
335 
336   BEGIN
337 	--get last updated by user id
338 	l_user_id := FND_LOAD_UTIL.OWNER_ID(p_OWNER);
339 
340 	--translate data type VARCHAR2 to DATE for last_update_date
341 	l_last_update_date := nvl(TO_DATE(p_last_update_date, 'YYYY/MM/DD'),SYSDATE);
342 
343 	-- get updatedby  and update_date values if existing in db
344 	SELECT LAST_UPDATED_BY, LAST_UPDATE_DATE INTO db_user_id, db_last_update_date
345 	FROM ibc_association_types_b
346 	WHERE association_type_code = p_association_type_code;
347 
348 	IF (FND_LOAD_UTIL.UPLOAD_TEST(l_user_id, l_last_update_date,
349 		db_user_id, db_last_update_date, p_upload_mode )) THEN
350 
351 		Ibc_Association_Types_Pkg.UPDATE_ROW (
352 			p_association_type_code        => NVL(p_association_type_code,FND_API.G_MISS_CHAR)
353 		       ,p_association_type_name        => NVL(p_association_type_name,FND_API.G_MISS_CHAR)
354 		       ,p_call_back_pkg                => NVL(p_call_back_pkg,FND_API.G_MISS_CHAR)
355 		       ,p_description                  => NVL(p_description,FND_API.G_MISS_CHAR)
356 		       ,p_search_page                  => NVL(p_search_page,FND_API.G_MISS_CHAR)
357 		       ,p_last_updated_by              => l_user_id
358 		       ,p_last_update_date             => l_last_update_date
359 		       ,p_last_update_login            => 0
360 		       ,p_object_version_number        => NULL
361 		       );
362 	END IF;
363   EXCEPTION
364     WHEN NO_DATA_FOUND THEN
365  DECLARE
366  lx_rowid VARCHAR2(240);
367  BEGIN
368        Ibc_Association_Types_Pkg.INSERT_ROW (
369        x_rowid     => lx_rowid,
370           p_ASSOCIATION_TYPE_CODE => p_ASSOCIATION_TYPE_CODE,
371           p_ASSOCIATION_TYPE_NAME => p_ASSOCIATION_TYPE_NAME,
372           p_CALL_BACK_PKG   => p_CALL_BACK_PKG,
373           p_DESCRIPTION    => p_DESCRIPTION,
374           p_SEARCH_PAGE    => p_SEARCH_PAGE,
375           p_CREATION_DATE       => l_last_update_date,
376           p_CREATED_BY        => l_user_id,
377           p_LAST_UPDATE_DATE      => l_last_update_date,
378           p_LAST_UPDATED_BY      => l_user_id,
379           p_LAST_UPDATE_LOGIN      => 0,
380     p_OBJECT_VERSION_NUMBER   => 1);
381   END;
382 
383    END;
384 END LOAD_ROW;
385 
386 PROCEDURE TRANSLATE_ROW (
387   p_UPLOAD_MODE IN VARCHAR2,
388   p_ASSOCIATION_TYPE_CODE IN VARCHAR2,
389   p_ASSOCIATION_TYPE_NAME IN VARCHAR2,
390   p_DESCRIPTION    IN VARCHAR2,
391   p_OWNER      IN  VARCHAR2,
392   p_LAST_UPDATE_DATE IN VARCHAR2) IS
393 
394     l_user_id    NUMBER := 0;
395     l_row_id     VARCHAR2(64);
396     l_last_update_date DATE;
397 
398     db_user_id    NUMBER := 0;
399     db_last_update_date DATE;
400 
401 
402 BEGIN
403 	--get last updated by user id
404 	l_user_id := FND_LOAD_UTIL.OWNER_ID(p_OWNER);
405 
406 	--translate data type VARCHAR2 to DATE for last_update_date
407 	l_last_update_date := nvl(TO_DATE(p_last_update_date, 'YYYY/MM/DD'),SYSDATE);
408 
409 	-- get updatedby  and update_date values if existing in db
410 	SELECT LAST_UPDATED_BY, LAST_UPDATE_DATE INTO db_user_id, db_last_update_date
411 	FROM ibc_association_types_tl
412 	WHERE association_type_code = p_association_type_code
413 	AND USERENV('LANG') IN (LANGUAGE, source_lang);
414 
415 	IF (FND_LOAD_UTIL.UPLOAD_TEST(l_user_id, l_last_update_date,
416 		db_user_id, db_last_update_date, p_upload_mode )) THEN
417 
418 		  -- Only update rows which have not been altered by user
419 		  UPDATE ibc_association_types_tl t SET
420 		    association_type_name = p_association_type_name,
421 		    description     = p_description,
422 		    source_lang     = USERENV('LANG'),
423 		    last_update_date    = l_last_update_date,
424 		    last_updated_by    = l_user_id,
425 		    last_update_login    = 0
426 		  WHERE Association_type_code    = p_association_type_code
427 		  AND USERENV('LANG') IN (LANGUAGE, source_lang);
428 
429 	END IF;
430 END TRANSLATE_ROW;
431 
432 
433 procedure INSERT_ROW (
434   X_ROWID in out NOCOPY VARCHAR2,
435   X_ASSOCIATION_TYPE_CODE in VARCHAR2,
436   X_CALL_BACK_PKG in VARCHAR2,
437   X_SEARCH_PAGE in VARCHAR2,
438   X_OBJECT_VERSION_NUMBER in NUMBER,
439   X_ASSOCIATION_TYPE_NAME in VARCHAR2,
440   X_DESCRIPTION in VARCHAR2,
441   X_CREATION_DATE in DATE,
442   X_CREATED_BY in NUMBER,
443   X_LAST_UPDATE_DATE in DATE,
444   X_LAST_UPDATED_BY in NUMBER,
445   X_LAST_UPDATE_LOGIN in NUMBER,
446   X_SECURITY_GROUP_ID in NUMBER
447 ) IS
448   cursor C is select ROWID from IBC_ASSOCIATION_TYPES_B
449     where ASSOCIATION_TYPE_CODE = X_ASSOCIATION_TYPE_CODE
450     ;
451 begin
452   insert into IBC_ASSOCIATION_TYPES_B (
453     ASSOCIATION_TYPE_CODE,
454     CALL_BACK_PKG,
455     SEARCH_PAGE,
456     OBJECT_VERSION_NUMBER,
457     CREATION_DATE,
458     CREATED_BY,
459     LAST_UPDATE_DATE,
460     LAST_UPDATED_BY,
461     LAST_UPDATE_LOGIN,
462     SECURITY_GROUP_ID
463   ) values (
464     X_ASSOCIATION_TYPE_CODE,
465     X_CALL_BACK_PKG,
466     X_SEARCH_PAGE,
467     X_OBJECT_VERSION_NUMBER,
468     X_CREATION_DATE,
469     X_CREATED_BY,
470     X_LAST_UPDATE_DATE,
471     X_LAST_UPDATED_BY,
472     X_LAST_UPDATE_LOGIN,
473     X_SECURITY_GROUP_ID
474   );
475 
476   insert into IBC_ASSOCIATION_TYPES_TL (
477     ASSOCIATION_TYPE_CODE,
478     ASSOCIATION_TYPE_NAME,
479     DESCRIPTION,
480     CREATED_BY,
481     CREATION_DATE,
482     LAST_UPDATED_BY,
483     LAST_UPDATE_DATE,
484     LAST_UPDATE_LOGIN,
485     LANGUAGE,
486     SOURCE_LANG,
487     SECURITY_GROUP_ID
488   ) select
489     X_ASSOCIATION_TYPE_CODE,
490     X_ASSOCIATION_TYPE_NAME,
491     X_DESCRIPTION,
492     X_CREATED_BY,
493     X_CREATION_DATE,
494     X_LAST_UPDATED_BY,
495     X_LAST_UPDATE_DATE,
496     X_LAST_UPDATE_LOGIN,
497     L.LANGUAGE_CODE,
498     userenv('LANG'),
499     X_SECURITY_GROUP_ID
500   from FND_LANGUAGES L
501   where L.INSTALLED_FLAG in ('I', 'B')
502   and not exists
503     (select NULL
504     from IBC_ASSOCIATION_TYPES_TL T
505     where T.ASSOCIATION_TYPE_CODE = X_ASSOCIATION_TYPE_CODE
506     and T.LANGUAGE = L.LANGUAGE_CODE);
507 
508   open c;
509   fetch c into X_ROWID;
510   if (c%notfound) then
511     close c;
512     raise no_data_found;
513   end if;
514   close c;
515 
516 end INSERT_ROW;
517 
518 procedure LOCK_ROW (
519   X_ASSOCIATION_TYPE_CODE in VARCHAR2,
520   X_CALL_BACK_PKG in VARCHAR2,
521   X_SEARCH_PAGE in VARCHAR2,
522   X_OBJECT_VERSION_NUMBER in NUMBER,
523   X_ASSOCIATION_TYPE_NAME in VARCHAR2,
524   X_DESCRIPTION in VARCHAR2,
525   X_SECURITY_GROUP_ID in NUMBER
526 ) is
527   cursor c is select
528       CALL_BACK_PKG,
529       SEARCH_PAGE,
530       OBJECT_VERSION_NUMBER
531     from IBC_ASSOCIATION_TYPES_B
532     where ASSOCIATION_TYPE_CODE = X_ASSOCIATION_TYPE_CODE
533     for update of ASSOCIATION_TYPE_CODE nowait;
534   recinfo c%rowtype;
535 
536   cursor c1 is select
537       ASSOCIATION_TYPE_NAME,
538       DESCRIPTION,
539       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
540     from IBC_ASSOCIATION_TYPES_TL
541     where ASSOCIATION_TYPE_CODE = X_ASSOCIATION_TYPE_CODE
542     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
543     for update of ASSOCIATION_TYPE_CODE nowait;
544 begin
545   open c;
546   fetch c into recinfo;
547   if (c%notfound) then
548     close c;
549     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
550     app_exception.raise_exception;
551   end if;
552   close c;
553   if (    ((recinfo.CALL_BACK_PKG = X_CALL_BACK_PKG)
554            OR ((recinfo.CALL_BACK_PKG is null) AND (X_CALL_BACK_PKG is null)))
555       AND ((recinfo.SEARCH_PAGE = X_SEARCH_PAGE)
556            OR ((recinfo.SEARCH_PAGE is null) AND (X_SEARCH_PAGE is null)))
557       AND (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
558   ) then
559     null;
560   else
561     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
562     app_exception.raise_exception;
563   end if;
564 
565   for tlinfo in c1 loop
566     if (tlinfo.BASELANG = 'Y') then
567       if (    (tlinfo.ASSOCIATION_TYPE_NAME = X_ASSOCIATION_TYPE_NAME)
568           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
569                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
570       ) then
571         null;
572       else
573         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
574         app_exception.raise_exception;
575       end if;
576     end if;
577   end loop;
578   return;
579 end LOCK_ROW;
580 
581 procedure UPDATE_ROW (
582   X_ASSOCIATION_TYPE_CODE in VARCHAR2,
583   X_CALL_BACK_PKG in VARCHAR2,
584   X_SEARCH_PAGE in VARCHAR2,
585   X_OBJECT_VERSION_NUMBER in NUMBER,
586   X_ASSOCIATION_TYPE_NAME in VARCHAR2,
587   X_DESCRIPTION in VARCHAR2,
588   X_LAST_UPDATE_DATE in DATE,
589   X_LAST_UPDATED_BY in NUMBER,
590   X_LAST_UPDATE_LOGIN in NUMBER,
591   X_SECURITY_GROUP_ID in NUMBER
592 ) is
593 begin
594   update IBC_ASSOCIATION_TYPES_B set
595     CALL_BACK_PKG = X_CALL_BACK_PKG,
596     SEARCH_PAGE = X_SEARCH_PAGE,
597     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
598     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
599     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
600     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
601     SECURITY_GROUP_ID = X_SECURITY_GROUP_ID
602   where ASSOCIATION_TYPE_CODE = X_ASSOCIATION_TYPE_CODE;
603 
604   if (sql%notfound) then
605     raise no_data_found;
606   end if;
607 
608   update IBC_ASSOCIATION_TYPES_TL set
609     ASSOCIATION_TYPE_NAME = X_ASSOCIATION_TYPE_NAME,
610     DESCRIPTION = X_DESCRIPTION,
611     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
612     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
613     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
614     SOURCE_LANG = userenv('LANG'),
615     SECURITY_GROUP_ID = X_SECURITY_GROUP_ID
616   where ASSOCIATION_TYPE_CODE = X_ASSOCIATION_TYPE_CODE
617   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
618 
619   if (sql%notfound) then
620     raise no_data_found;
621   end if;
622 end UPDATE_ROW;
623 
624 procedure DELETE_ROW (
625   X_ASSOCIATION_TYPE_CODE in VARCHAR2
626 ) is
627 begin
628   delete from IBC_ASSOCIATION_TYPES_TL
629   where ASSOCIATION_TYPE_CODE = X_ASSOCIATION_TYPE_CODE;
630 
631   if (sql%notfound) then
632     raise no_data_found;
633   end if;
634 
635   delete from IBC_ASSOCIATION_TYPES_B
636   where ASSOCIATION_TYPE_CODE = X_ASSOCIATION_TYPE_CODE;
637 
638   if (sql%notfound) then
639     raise no_data_found;
640   end if;
641 end DELETE_ROW;
642 
643 
644 
645 END Ibc_Association_Types_Pkg;