DBA Data[Home] [Help]

PACKAGE BODY: APPS.AK_ATTRIBUTES2_PKG

Source


1 package body AK_ATTRIBUTES2_PKG as
2 /* $Header: AKDATR2B.pls 120.2 2005/09/29 13:59:31 tshort ship $ */
3 --*****************************************************************************
4 procedure CHANGE_LOVS (
5   X_DATABASE_OBJECT_NAME in VARCHAR2,
6   X_ATTRIBUTE_APPLICATION_ID in NUMBER,
7   X_ATTRIBUTE_CODE in VARCHAR2,
8   X_OLD_LOV_REGION_CODE in VARCHAR2,
9   X_OLD_LOV_REGION_APPL_ID in NUMBER,
10   X_NEW_LOV_REGION_CODE in VARCHAR2,
11   X_NEW_LOV_REGION_APPL_ID in NUMBER,
12   X_LOV_FOREIGN_KEY_NAME IN OUT NOCOPY VARCHAR2,
13   X_CREATION_DATE in DATE,
14   X_CREATED_BY in NUMBER,
15   X_LAST_UPDATE_DATE in DATE,
16   X_LAST_UPDATED_BY in NUMBER,
17   X_LAST_UPDATE_LOGIN in NUMBER)
18 IS
19 /* local variables */
20   L_UNIQUE_KEY_NAME varchar2(30);
21   row_id varchar2(30);
22 /* cursor definition */
23 cursor cz is
24   select foreign_key_name
25   from   ak_foreign_key_mapping_v
26   where  database_object_name = x_database_object_name
27   and    foreign_application_id = x_attribute_application_id
28   and    foreign_attribute_code = x_attribute_code
29   and    unique_key_name = L_UNIQUE_KEY_NAME;
30 begin
31 
32   if X_OLD_LOV_REGION_CODE is null
33    and X_NEW_LOV_REGION_CODE is null then
34 	return;
35   end if;
36 
37   if X_NEW_LOV_REGION_CODE = 'CZ_ATTRIBUTE_LISTS_REGION' then
38     L_UNIQUE_KEY_NAME := 'LIST_NAME';
39   elsif X_NEW_LOV_REGION_CODE = 'CZ_ATTRIBUTE_LISTS_NBR_REGION' then
40     L_UNIQUE_KEY_NAME := 'NUMBER_LIST_NAME';
41   end if;
42 
43 /*
44   if X_OLD_LOV_REGION_CODE is null then
45 	AK_ATTRIBUTES2_PKG.NEW_FOREIGN_KEY (
46 	  X_FOREIGN_KEY_NAME => X_LOV_FOREIGN_KEY_NAME,
47 	  X_DATABASE_OBJECT_NAME => X_DATABASE_OBJECT_NAME,
48 	  X_UNIQUE_KEY_NAME => L_UNIQUE_KEY_NAME,
49 	  X_APPLICATION_ID => 702,
50 	  X_ATTRIBUTE_APPLICATION_ID => 702,
51 	  X_ATTRIBUTE_CODE => X_ATTRIBUTE_CODE,
52 	  X_FROM_TO_NAME => 'CONFIGURATOR',
53 	  X_CREATION_DATE => x_creation_date,
54 	  X_CREATED_BY => x_created_by,
55 	  X_LAST_UPDATE_DATE => x_last_update_date,
56 	  X_LAST_UPDATED_BY => x_last_updated_by,
57 	  X_LAST_UPDATE_LOGIN => x_last_update_login);
58   elsif X_NEW_LOV_REGION_CODE is null then
59     open cz;
60     fetch cz into X_LOV_FOREIGN_KEY_NAME;
61     if (sql%notfound) then
62 	X_LOV_FOREIGN_KEY_NAME := null;
63     end if;
64     close cz;
65     if X_LOV_FOREIGN_KEY_NAME is not null then
66 	AK_FOREIGN_KEYS_PKG.DELETE_AFKC_ROW(
67 	  X_FOREIGN_KEY_NAME => X_LOV_FOREIGN_KEY_NAME,
68 	  X_ATTRIBUTE_APPLICATION_ID => 702,
69 	  X_ATTRIBUTE_CODE => X_ATTRIBUTE_CODE,
70 	  X_FOREIGN_KEY_SEQUENCE => 1);
71 	AK_FOREIGN_KEYS_PKG.DELETE_ROW(
72 	  X_FOREIGN_KEY_NAME => X_LOV_FOREIGN_KEY_NAME);
73 	X_LOV_FOREIGN_KEY_NAME := NULL;
74     end if;
75   else
76     open cz;
77     fetch cz into X_LOV_FOREIGN_KEY_NAME;
78     if (sql%notfound) then
79 	X_LOV_FOREIGN_KEY_NAME := null;
80     end if;
81     close cz;
82     if X_LOV_FOREIGN_KEY_NAME is null then
83 	AK_ATTRIBUTES2_PKG.NEW_FOREIGN_KEY (
84 	  X_FOREIGN_KEY_NAME => X_LOV_FOREIGN_KEY_NAME,
85 	  X_DATABASE_OBJECT_NAME => X_DATABASE_OBJECT_NAME,
86 	  X_UNIQUE_KEY_NAME => L_UNIQUE_KEY_NAME,
87 	  X_APPLICATION_ID => 702,
88 	  X_ATTRIBUTE_APPLICATION_ID => 702,
89 	  X_ATTRIBUTE_CODE => X_ATTRIBUTE_CODE,
90 	  X_FROM_TO_NAME => 'CONFIGURATOR',
91 	  X_CREATION_DATE => x_creation_date,
92 	  X_CREATED_BY => x_created_by,
93 	  X_LAST_UPDATE_DATE => x_last_update_date,
94 	  X_LAST_UPDATED_BY => x_last_updated_by,
95 	  X_LAST_UPDATE_LOGIN => x_last_update_login);
96     else
97 	AK_FOREIGN_KEYS_PKG.UPDATE_ROW(
98 	  X_FOREIGN_KEY_NAME => X_LOV_FOREIGN_KEY_NAME,
99 	  X_DATABASE_OBJECT_NAME => X_DATABASE_OBJECT_NAME,
100 	  X_UNIQUE_KEY_NAME => L_UNIQUE_KEY_NAME,
101 	  X_APPLICATION_ID => 702,
102 	  X_FROM_TO_NAME => 'CONFIGURATOR',
103 	  X_FROM_TO_DESCRIPTION => null,
104 	  X_TO_FROM_NAME => null,
105 	  X_TO_FROM_DESCRIPTION => null,
106 	  X_LAST_UPDATE_DATE => x_last_update_date,
107 	  X_LAST_UPDATED_BY => x_last_updated_by,
108 	  X_LAST_UPDATE_LOGIN => x_last_update_login,
109 	  X_ATTRIBUTE_CATEGORY => NULL,
110 	  X_ATTRIBUTE1 => NULL,
111 	  X_ATTRIBUTE2 => NULL,
112 	  X_ATTRIBUTE3 => NULL,
113 	  X_ATTRIBUTE4 => NULL,
114 	  X_ATTRIBUTE5 => NULL,
115 	  X_ATTRIBUTE6 => NULL,
116 	  X_ATTRIBUTE7 => NULL,
117 	  X_ATTRIBUTE8 => NULL,
118 	  X_ATTRIBUTE9 => NULL,
119 	  X_ATTRIBUTE10 => NULL,
120 	  X_ATTRIBUTE11 => NULL,
121 	  X_ATTRIBUTE12 => NULL,
122 	  X_ATTRIBUTE13 => NULL,
123 	  X_ATTRIBUTE14 => NULL,
124 	  X_ATTRIBUTE15 => NULL);
125     end if;
126   end if;
127 */
128 end ;
129 --*****************************************************************************
130 /*
131 procedure NEW_FOREIGN_KEY (
132   X_FOREIGN_KEY_NAME in out NOCOPY VARCHAR2,
133   X_DATABASE_OBJECT_NAME in VARCHAR2,
134   X_UNIQUE_KEY_NAME in VARCHAR2,
135   X_APPLICATION_ID in NUMBER,
136   X_ATTRIBUTE_APPLICATION_ID in NUMBER,
137   X_ATTRIBUTE_CODE in VARCHAR2,
138   X_FROM_TO_NAME in VARCHAR2,
139   X_CREATION_DATE in DATE,
140   X_CREATED_BY in NUMBER,
141   X_LAST_UPDATE_DATE in DATE,
142   X_LAST_UPDATED_BY in NUMBER,
143   X_LAST_UPDATE_LOGIN in NUMBER)
144 IS
145   row_id varchar2(30);
146   L_sequence integer;
147 begin
148   select CZ_AUTOSELECTION_RANGES_S.NEXTVAL into L_sequence from dual;
149   X_FOREIGN_KEY_NAME := 'CZ_'||to_char(L_sequence);
150   AK_FOREIGN_KEYS_PKG.INSERT_ROW(
151 	  X_ROWID => row_id,
152 	  X_FOREIGN_KEY_NAME => X_FOREIGN_KEY_NAME,
153 	  X_DATABASE_OBJECT_NAME => X_DATABASE_OBJECT_NAME,
154 	  X_UNIQUE_KEY_NAME => X_UNIQUE_KEY_NAME,
155 	  X_APPLICATION_ID => 702,
156 	  X_FROM_TO_NAME => 'CONFIGURATOR',
157 	  X_FROM_TO_DESCRIPTION => null,
158 	  X_TO_FROM_NAME => null,
159 	  X_TO_FROM_DESCRIPTION => null,
160 	  X_CREATION_DATE => x_creation_date,
161 	  X_CREATED_BY => x_created_by,
162 	  X_LAST_UPDATE_DATE => x_last_update_date,
163 	  X_LAST_UPDATED_BY => x_last_updated_by,
164 	  X_LAST_UPDATE_LOGIN => x_last_update_login,
165 	  X_ATTRIBUTE_CATEGORY => NULL,
166 	  X_ATTRIBUTE1 => NULL,
167 	  X_ATTRIBUTE2 => NULL,
168 	  X_ATTRIBUTE3 => NULL,
169 	  X_ATTRIBUTE4 => NULL,
170 	  X_ATTRIBUTE5 => NULL,
171 	  X_ATTRIBUTE6 => NULL,
172 	  X_ATTRIBUTE7 => NULL,
173 	  X_ATTRIBUTE8 => NULL,
174 	  X_ATTRIBUTE9 => NULL,
175 	  X_ATTRIBUTE10 => NULL,
176 	  X_ATTRIBUTE11 => NULL,
177 	  X_ATTRIBUTE12 => NULL,
178 	  X_ATTRIBUTE13 => NULL,
179 	  X_ATTRIBUTE14 => NULL,
180 	  X_ATTRIBUTE15 => NULL);
181 
182   AK_FOREIGN_KEYS_PKG.INSERT_AFKC_ROW(
183 	  X_ROWID => row_id,
184 
185 	  X_FOREIGN_KEY_NAME => X_FOREIGN_KEY_NAME,
186 	  X_ATTRIBUTE_APPLICATION_ID => X_ATTRIBUTE_APPLICATION_ID,
187 	  X_ATTRIBUTE_CODE => X_ATTRIBUTE_CODE,
188 	  X_FOREIGN_KEY_SEQUENCE => 1,
189 	  X_CREATION_DATE => x_creation_date,
190 	  X_CREATED_BY => x_created_by,
191 	  X_LAST_UPDATE_DATE => x_last_update_date,
192 	  X_LAST_UPDATED_BY => x_last_updated_by,
193 	  X_LAST_UPDATE_LOGIN => x_last_update_login,
194 	  X_ATTRIBUTE_CATEGORY => NULL,
195 	  X_ATTRIBUTE1 => NULL,
196 	  X_ATTRIBUTE2 => NULL,
197 	  X_ATTRIBUTE3 => NULL,
198 	  X_ATTRIBUTE4 => NULL,
199 	  X_ATTRIBUTE5 => NULL,
200 	  X_ATTRIBUTE6 => NULL,
201 	  X_ATTRIBUTE7 => NULL,
202 	  X_ATTRIBUTE8 => NULL,
203 	  X_ATTRIBUTE9 => NULL,
204 	  X_ATTRIBUTE10 => NULL,
205 	  X_ATTRIBUTE11 => NULL,
206 	  X_ATTRIBUTE12 => NULL,
207 	  X_ATTRIBUTE13 => NULL,
208 	  X_ATTRIBUTE14 => NULL,
209 	  X_ATTRIBUTE15 => NULL);
210 
211 end NEW_FOREIGN_KEY;
212 */
213 
214 
215 procedure ASSIGN_ATTRIBUTE (
216   X_MODE in VARCHAR2,
217   X_DATABASE_OBJECT_NAME in VARCHAR2,
218   X_ATTRIBUTE_APPLICATION_ID in NUMBER,
219   X_ATTRIBUTE_CODE in VARCHAR2,
220   X_ATTRIBUTE_LABEL_LENGTH in NUMBER,
221   X_BOLD in VARCHAR2,
222   X_ITALIC in VARCHAR2,
223   X_VERTICAL_ALIGNMENT in VARCHAR2,
224   X_HORIZONTAL_ALIGNMENT in VARCHAR2,
225   X_DEFAULT_VALUE_VARCHAR2 in VARCHAR2,
226   X_DEFAULT_VALUE_NUMBER in NUMBER,
227   X_DEFAULT_VALUE_DATE in DATE,
228   X_LOV_REGION_CODE in VARCHAR2,
229   X_LOV_REGION_APPLICATION_ID in NUMBER,
230   X_ATTRIBUTE_LABEL_LONG in VARCHAR2,
231   X_CREATION_DATE in DATE,
232   X_CREATED_BY in NUMBER,
233   X_LAST_UPDATE_DATE in DATE,
234   X_LAST_UPDATED_BY in NUMBER,
235   X_LAST_UPDATE_LOGIN in NUMBER,
236   X_REGION_APPLICATION_ID in NUMBER,
237   X_REGION_CODE in VARCHAR2,
238   X_DISPLAY_VALUE_LENGTH in NUMBER,
239   X_TABLE_NAME in VARCHAR2,
240   X_OBJ_ATTR_SUCCESS in out NOCOPY VARCHAR2,
241   x_data_source_type in VARCHAR2,
242   x_data_storage_type in VARCHAR2
243 ) IS
244 -- * local variables * --
245   L_LOV_REGION_CODE varchar2(30)		:= null;
246   L_LOV_REGION_APPLICATION_ID number	:= null;
247   L_LOV_FOREIGN_KEY_NAME varchar2(30)	:= null;
248   L_LOV_ATTRIBUTE_APPLICATION_ID number	:= null;
249   L_LOV_ATTRIBUTE_CODE varchar2(30)		:= null;
250   L_LOV_DEFAULT_FLAG VARCHAR2(1)		:= null;
251   L_UNIQUE_KEY_NAME varchar2(30)		:= null;
252 dummy number;
253 row_id varchar2(30);
254 column_name_default varchar2(30);
255 -- * cursor definition * --
256 cursor c is
257   select 1
258   from   ak_object_attributes
259   where  database_object_name = x_database_object_name
260   and    attribute_application_id = x_attribute_application_id
261   and    attribute_code = x_attribute_code;
262 
263 cursor cz is
264   select foreign_key_name
265   from   ak_foreign_key_mapping_v
266   where  database_object_name = x_database_object_name
267   and    foreign_application_id = x_attribute_application_id
268   and    foreign_attribute_code = x_attribute_code
269   and    unique_key_name = L_UNIQUE_KEY_NAME;
270 
271  cursor uk is
272 	select unique_key_name from ak_unique_keys
273 	  where unique_key_name = L_UNIQUE_KEY_NAME;
274 begin
275 
276   if X_LOV_REGION_CODE is not null
277    and X_MODE = 'CONFIGURATOR' then
278     if X_LOV_REGION_CODE = 'CZ_ATTRIBUTE_LISTS_REGION' then
279 	L_UNIQUE_KEY_NAME := 'LIST_NAME';
280     elsif X_LOV_REGION_CODE = 'CZ_ATTRIBUTE_LISTS_NBR_REGION' then
281 	L_UNIQUE_KEY_NAME := 'NUMBER_LIST_NAME';
282     end if;
283     if L_UNIQUE_KEY_NAME is not null then
284       open uk;
285       fetch uk into l_unique_key_name;
286 	if (sql%found) then
287 	  L_LOV_REGION_APPLICATION_ID := X_LOV_REGION_APPLICATION_ID;
288 	  L_LOV_REGION_CODE := X_LOV_REGION_CODE;
289 	  L_LOV_ATTRIBUTE_APPLICATION_ID := 702;
290 	  L_LOV_ATTRIBUTE_CODE := 'LIST_NAME';
291 	  L_LOV_DEFAULT_FLAG := 'Y';
292 	  -- * no need to insert foreign key if one already exists * --
293 	  open cz;
294 	  fetch cz into L_LOV_FOREIGN_KEY_NAME;
295 	  if (sql%notfound) then
296 	    L_LOV_FOREIGN_KEY_NAME := null;
297 	  end if;
298 	  close cz;
299 /*
300 	  if L_LOV_FOREIGN_KEY_NAME is not null then
301 	    AK_ATTRIBUTES2_PKG.NEW_FOREIGN_KEY (
302 	  	X_FOREIGN_KEY_NAME => L_LOV_FOREIGN_KEY_NAME,
303 	  	X_DATABASE_OBJECT_NAME => X_DATABASE_OBJECT_NAME,
304 	  	X_UNIQUE_KEY_NAME => L_UNIQUE_KEY_NAME,
305 	  	X_APPLICATION_ID => 702,
306 	  	X_ATTRIBUTE_APPLICATION_ID => 702,
307 	  	X_ATTRIBUTE_CODE => X_ATTRIBUTE_CODE,
308 	  	X_FROM_TO_NAME => X_MODE,
309 	  	X_CREATION_DATE => x_creation_date,
310 	  	X_CREATED_BY => x_created_by,
311 	  	X_LAST_UPDATE_DATE => x_last_update_date,
312 	  	X_LAST_UPDATED_BY => x_last_updated_by,
313 	  	X_LAST_UPDATE_LOGIN => x_last_update_login);
314 	  end if;
315 */
316 	end if;
317  	close uk;
318     end if;
319   end if;
320 
321 
322 -- * no need to insert object attribute if one already exists * --
323   open c;
324   fetch c into dummy;
325   if (NOT c%notfound) then
326     close c;
327     X_OBJ_ATTR_SUCCESS := 'N';
328   end if;
329   close c;
330 
331 -- * insert row into ak_object_attributes * --
332 ak_object_attributes_pkg.insert_row(
333   X_ROWID => row_id,
334   X_DATABASE_OBJECT_NAME => x_database_object_name,
335   X_ATTRIBUTE_APPLICATION_ID => x_attribute_application_id,
336   X_ATTRIBUTE_CODE => x_attribute_code,
337   X_COLUMN_NAME => column_name_default,
338   X_ATTRIBUTE_LABEL_LENGTH => x_attribute_label_length,
339   X_BOLD => x_bold,
340   X_ITALIC => x_italic,
341   X_VERTICAL_ALIGNMENT => x_vertical_alignment,
342   X_HORIZONTAL_ALIGNMENT => x_horizontal_alignment,
343   X_ATTRIBUTE_LABEL_LONG => x_attribute_label_long,
344   X_DATA_SOURCE_TYPE => x_data_source_type,
345   X_DATA_STORAGE_TYPE => x_data_storage_type,
346   X_TABLE_NAME => x_table_name,
347   X_BASE_TABLE_COLUMN_NAME => NULL,
348   X_REQUIRED_FLAG => 'N',
349   X_DISPLAY_VALUE_LENGTH => X_DISPLAY_VALUE_LENGTH,
350   X_LOV_REGION_APPLICATION_ID => L_LOV_REGION_APPLICATION_ID,
351   X_LOV_REGION_CODE => L_LOV_REGION_CODE,
352   X_LOV_FOREIGN_KEY_NAME => L_LOV_FOREIGN_KEY_NAME,
353   X_LOV_ATTRIBUTE_APPLICATION_ID => L_LOV_ATTRIBUTE_APPLICATION_ID,
354   X_LOV_ATTRIBUTE_CODE => L_LOV_ATTRIBUTE_CODE,
355   X_DEFAULTING_API_PKG => NULL,
356   X_DEFAULTING_API_PROC => NULL,
357   X_VALIDATION_API_PKG => NULL,
358   X_VALIDATION_API_PROC => NULL,
359   X_DEFAULT_VALUE_VARCHAR2 => X_DEFAULT_VALUE_VARCHAR2,
360   X_DEFAULT_VALUE_NUMBER => X_DEFAULT_VALUE_NUMBER,
361   X_DEFAULT_VALUE_DATE => X_DEFAULT_VALUE_DATE,
362   X_CREATION_DATE => x_creation_date,
363   X_CREATED_BY => x_created_by,
364   X_LAST_UPDATE_DATE => x_last_update_date,
365   X_LAST_UPDATED_BY => x_last_updated_by,
366   X_LAST_UPDATE_LOGIN => x_last_update_login,
367   X_ATTRIBUTE_CATEGORY => NULL,
368   X_ATTRIBUTE1 => NULL,
369   X_ATTRIBUTE2 => NULL,
370   X_ATTRIBUTE3 => NULL,
371   X_ATTRIBUTE4 => NULL,
372   X_ATTRIBUTE5 => NULL,
373   X_ATTRIBUTE6 => NULL,
374   X_ATTRIBUTE7 => NULL,
375   X_ATTRIBUTE8 => NULL,
376   X_ATTRIBUTE9 => NULL,
377   X_ATTRIBUTE10 => NULL,
378   X_ATTRIBUTE11 => NULL,
379   X_ATTRIBUTE12 => NULL,
380   X_ATTRIBUTE13 => NULL,
381   X_ATTRIBUTE14 => NULL,
382   X_ATTRIBUTE15 => NULL
383 );
384 
385 commit;
386 X_OBJ_ATTR_SUCCESS := 'Y';
387 
388 -- * If region_code passed in is not null, insert * --
389 -- * a region_item record as well                 * --
390 
391 if x_region_code is not null then
392 AK_OBJECT_ATTRIBUTES_PKG.ADD_REGION_ITEM (
393   X_REGION_APPLICATION_ID => x_region_application_id,
394   X_REGION_CODE => x_region_code,
395   X_ATTRIBUTE_APPLICATION_ID => x_attribute_application_id,
396   X_ATTRIBUTE_CODE => x_attribute_code,
397   X_ATTRIBUTE_LABEL_LENGTH => x_attribute_label_length,
398   X_BOLD => x_bold,
399   X_ITALIC => x_italic,
400   X_VERTICAL_ALIGNMENT => x_vertical_alignment,
401   X_HORIZONTAL_ALIGNMENT => x_horizontal_alignment,
402   X_DEFAULT_VALUE_VARCHAR2 => X_DEFAULT_VALUE_VARCHAR2,
403   X_DEFAULT_VALUE_NUMBER => X_DEFAULT_VALUE_NUMBER,
404   X_DEFAULT_VALUE_DATE => X_DEFAULT_VALUE_DATE,
405   X_LOV_FOREIGN_KEY_NAME => L_LOV_FOREIGN_KEY_NAME,
406   X_LOV_REGION_CODE => L_LOV_REGION_CODE,
407   X_LOV_REGION_APPLICATION_ID => L_LOV_REGION_APPLICATION_ID,
408   X_LOV_ATTRIBUTE_APPLICATION_ID => L_LOV_ATTRIBUTE_APPLICATION_ID,
409   X_LOV_ATTRIBUTE_CODE => L_LOV_ATTRIBUTE_CODE,
410   X_LOV_DEFAULT_FLAG => L_LOV_DEFAULT_FLAG,
411   X_ATTRIBUTE_LABEL_LONG => x_attribute_label_long,
412   X_CREATION_DATE => x_creation_date,
413   X_CREATED_BY => x_created_by,
414   X_LAST_UPDATE_DATE => x_last_update_date,
415   X_LAST_UPDATED_BY => x_last_updated_by,
416   X_LAST_UPDATE_LOGIN => x_last_update_login,
417   x_display_value_length => x_display_value_length,
418   X_COMMIT => 'Y'
419 );
420 end if;
421 
422 end ASSIGN_ATTRIBUTE;
423 
424 --*****************************************************************************
425 
426 procedure CHANGE_OBJECT_ATTRIBUTE (
427   X_MODE in VARCHAR2,
428   X_DATABASE_OBJECT_NAME in VARCHAR2,
432   X_BOLD in VARCHAR2,
429   X_ATTRIBUTE_APPLICATION_ID in NUMBER,
430   X_ATTRIBUTE_CODE in VARCHAR2,
431   X_ATTRIBUTE_LABEL_LENGTH in NUMBER,
433   X_ITALIC in VARCHAR2,
434   X_VERTICAL_ALIGNMENT in VARCHAR2,
435   X_HORIZONTAL_ALIGNMENT in VARCHAR2,
436   X_DEFAULT_VALUE_VARCHAR2 in VARCHAR2,
437   X_DEFAULT_VALUE_NUMBER in NUMBER,
438   X_DEFAULT_VALUE_DATE in DATE,
439   X_ATTRIBUTE_LABEL_LONG in VARCHAR2,
440   X_OLD_LOV_REGION_CODE in VARCHAR2,
441   X_OLD_LOV_REGION_APPL_ID in NUMBER,
442   X_NEW_LOV_REGION_CODE in VARCHAR2,
443   X_NEW_LOV_REGION_APPL_ID in NUMBER,
444   X_CREATION_DATE in DATE,
445   X_CREATED_BY in NUMBER,
446   X_LAST_UPDATE_DATE in DATE,
447   X_LAST_UPDATED_BY in NUMBER,
448   X_LAST_UPDATE_LOGIN in NUMBER)
449 IS
450 -- * local variables * --
451   L_LOV_FOREIGN_KEY_NAME varchar2(30)	:= null;
452   L_LOV_REGION_APPLICATION_ID number	:= null;
453   L_LOV_REGION_CODE varchar2(30)		:= null;
454   L_LOV_ATTRIBUTE_APPLICATION_ID number	:= null;
455   L_LOV_ATTRIBUTE_CODE varchar2(30)		:= null;
456   L_LOV_DEFAULT_FLAG VARCHAR2(1)		:= null;
457   L_UNIQUE_KEY_NAME varchar2(30)		:= null;
458   row_id varchar2(30);
459   lang varchar2(30);
460   L_REGION_APPLICATION_ID number(15);
461   L_REGION_CODE varchar2(30);
462 -- * cursor definition * --
463 cursor c is
464   select region_application_id,region_code
465   from   ak_regions
466   where  database_object_name = x_database_object_name;
467 
468  cursor uk is
469 	select unique_key_name from ak_unique_keys
470 	  where unique_key_name = L_UNIQUE_KEY_NAME;
471 
472 begin
473   lang := fnd_global.current_language;
474 
475   if X_NEW_LOV_REGION_CODE = 'CZ_ATTRIBUTE_LISTS_REGION' then
476     L_UNIQUE_KEY_NAME := 'LIST_NAME';
477   elsif X_NEW_LOV_REGION_CODE = 'CZ_ATTRIBUTE_LISTS_NBR_REGION' then
478     L_UNIQUE_KEY_NAME := 'NUMBER_LIST_NAME';
479   end if;
480 
481   if L_UNIQUE_KEY_NAME is not null then
482       open uk;
483       fetch uk into l_unique_key_name;
484     if (sql%found) then
485 	L_LOV_REGION_APPLICATION_ID := X_NEW_LOV_REGION_APPL_ID;
486 	L_LOV_REGION_CODE := X_NEW_LOV_REGION_CODE;
487 	L_LOV_ATTRIBUTE_APPLICATION_ID := 702;
488 	L_LOV_ATTRIBUTE_CODE := 'LIST_NAME';
489 	L_LOV_DEFAULT_FLAG := 'Y';
490 -- The L_LOV_FOREIGN_KEY_NAME is returned from CHANGE_LOVS.
491 	AK_ATTRIBUTES2_PKG.CHANGE_LOVS(
492 	  X_DATABASE_OBJECT_NAME => X_DATABASE_OBJECT_NAME,
493 	  X_ATTRIBUTE_APPLICATION_ID => X_ATTRIBUTE_APPLICATION_ID,
494 	  X_ATTRIBUTE_CODE => X_ATTRIBUTE_CODE,
495 	  X_OLD_LOV_REGION_CODE => X_OLD_LOV_REGION_CODE,
496 	  X_OLD_LOV_REGION_APPL_ID => X_OLD_LOV_REGION_APPL_ID,
497 	  X_NEW_LOV_REGION_CODE => X_NEW_LOV_REGION_CODE,
498 	  X_NEW_LOV_REGION_APPL_ID => X_NEW_LOV_REGION_APPL_ID,
499 	  X_LOV_FOREIGN_KEY_NAME => L_LOV_FOREIGN_KEY_NAME,
500 	  X_CREATION_DATE => x_creation_date,
501 	  X_CREATED_BY => x_created_by,
502 	  X_LAST_UPDATE_DATE => x_last_update_date,
503 	  X_LAST_UPDATED_BY => x_last_updated_by,
504 	  X_LAST_UPDATE_LOGIN => x_last_update_login);
505     end if;
506     close uk;
507   end if;
508 
509   update ak_object_attributes set
510 	BOLD = X_BOLD,
511 	ITALIC = X_ITALIC,
512 	VERTICAL_ALIGNMENT = X_VERTICAL_ALIGNMENT,
513 	HORIZONTAL_ALIGNMENT = X_HORIZONTAL_ALIGNMENT,
514 	DEFAULT_VALUE_VARCHAR2 = X_DEFAULT_VALUE_VARCHAR2,
515 	DEFAULT_VALUE_NUMBER = X_DEFAULT_VALUE_NUMBER,
516 	DEFAULT_VALUE_DATE = X_DEFAULT_VALUE_DATE,
517 	ATTRIBUTE_LABEL_LENGTH = X_ATTRIBUTE_LABEL_LENGTH,
518 	LOV_FOREIGN_KEY_NAME = L_LOV_FOREIGN_KEY_NAME,
519 	LOV_REGION_APPLICATION_ID = L_LOV_REGION_APPLICATION_ID,
520 	LOV_REGION_CODE = L_LOV_REGION_CODE,
521 	LOV_ATTRIBUTE_APPLICATION_ID = L_LOV_ATTRIBUTE_APPLICATION_ID,
522 	LOV_ATTRIBUTE_CODE = L_LOV_ATTRIBUTE_CODE,
523 	LAST_UPDATE_DATE = x_last_update_date,
524 	LAST_UPDATED_BY = x_last_updated_by,
525 	LAST_UPDATE_LOGIN = x_last_update_login
526     where DATABASE_OBJECT_NAME = x_database_object_name
527 	and ATTRIBUTE_APPLICATION_ID = x_attribute_application_id
528 	and ATTRIBUTE_CODE = x_attribute_code;
529   if (sql%notfound) then
530     null;
531   end if;
532 
533   update ak_object_attributes_tl set
534 	ATTRIBUTE_LABEL_LONG = X_ATTRIBUTE_LABEL_LONG,
535 	LAST_UPDATE_DATE = x_last_update_date,
536 	LAST_UPDATED_BY = x_last_updated_by,
537 	LAST_UPDATE_LOGIN = x_last_update_login
538     where DATABASE_OBJECT_NAME = X_DATABASE_OBJECT_NAME
539 	and ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
540 	and ATTRIBUTE_CODE = X_ATTRIBUTE_CODE
541 	and LANGUAGE = lang;
542   if (sql%notfound) then
543     null;
544   end if;
545 
546   open c;
547   fetch c into L_REGION_APPLICATION_ID, L_REGION_CODE;
548   loop exit when c%notfound;
549     update ak_region_items set
550 	  DEFAULT_VALUE_VARCHAR2 = X_DEFAULT_VALUE_VARCHAR2,
551 	  DEFAULT_VALUE_NUMBER = X_DEFAULT_VALUE_NUMBER,
552 	  DEFAULT_VALUE_DATE = X_DEFAULT_VALUE_DATE,
553 	  LOV_FOREIGN_KEY_NAME = L_LOV_FOREIGN_KEY_NAME,
554 	  LOV_REGION_APPLICATION_ID = L_LOV_REGION_APPLICATION_ID,
555 	  LOV_REGION_CODE = L_LOV_REGION_CODE,
556 	  LOV_ATTRIBUTE_APPLICATION_ID = L_LOV_ATTRIBUTE_APPLICATION_ID,
557 	  LOV_ATTRIBUTE_CODE = L_LOV_ATTRIBUTE_CODE,
558 	  LOV_DEFAULT_FLAG = L_LOV_DEFAULT_FLAG,
559 	  LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
560 	  LAST_UPDATED_BY = X_LAST_UPDATED_BY,
561 	  LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
562 	where REGION_APPLICATION_ID = L_REGION_APPLICATION_ID
563 	  and REGION_CODE = L_REGION_CODE
564 	  and ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
565 	  and ATTRIBUTE_CODE = X_ATTRIBUTE_CODE;
566     if (sql%notfound) then
567 	null;
568     end if;
569     fetch c into L_REGION_APPLICATION_ID, L_REGION_CODE;
570   end loop;
571   close c;
572 end CHANGE_OBJECT_ATTRIBUTE;
573 
574 end AK_ATTRIBUTES2_PKG;