1 package body AK_CUSTOM_REGION_ITEMS_PKG as
2 /* $Header: AKDCRITB.pls 120.3 2006/01/25 15:31:25 tshort noship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out NOCOPY VARCHAR2,
5 X_CUSTOMIZATION_APPLICATION_ID in NUMBER,
6 X_CUSTOMIZATION_CODE in VARCHAR2,
7 X_REGION_APPLICATION_ID in NUMBER,
8 X_REGION_CODE in VARCHAR2,
9 X_ATTRIBUTE_APPLICATION_ID in NUMBER,
10 X_ATTRIBUTE_CODE in VARCHAR2,
11 X_PROPERTY_NAME in VARCHAR2,
12 X_PROPERTY_VARCHAR2_VALUE in VARCHAR2,
13 X_PROPERTY_NUMBER_VALUE in NUMBER,
14 X_PROPERTY_DATE_VALUE in DATE,
15 X_CREATED_BY in NUMBER,
16 X_CREATION_DATE in DATE,
17 X_LAST_UPDATED_BY in NUMBER,
18 X_LAST_UPDATE_DATE in DATE,
19 X_LAST_UPDATE_LOGIN in NUMBER
20 ) is
21 cursor C is select ROWID from AK_CUSTOM_REGION_ITEMS
22 where CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID
23 and CUSTOMIZATION_CODE = X_CUSTOMIZATION_CODE
24 and REGION_APPLICATION_ID = X_REGION_APPLICATION_ID
25 and REGION_CODE = X_REGION_CODE
26 and ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
27 and ATTRIBUTE_CODE = X_ATTRIBUTE_CODE
28 and PROPERTY_NAME = X_PROPERTY_NAME;
29 begin
30 insert into AK_CUSTOM_REGION_ITEMS (
31 CUSTOMIZATION_APPLICATION_ID,
32 CUSTOMIZATION_CODE,
33 REGION_APPLICATION_ID,
34 REGION_CODE,
35 ATTRIBUTE_APPLICATION_ID,
36 ATTRIBUTE_CODE,
37 PROPERTY_NAME,
38 PROPERTY_VARCHAR2_VALUE,
39 PROPERTY_NUMBER_VALUE,
40 PROPERTY_DATE_VALUE,
41 CREATED_BY,
42 CREATION_DATE,
43 LAST_UPDATED_BY,
44 LAST_UPDATE_DATE,
45 LAST_UPDATE_LOGIN
46 ) values (
47 X_CUSTOMIZATION_APPLICATION_ID,
48 X_CUSTOMIZATION_CODE,
49 X_REGION_APPLICATION_ID,
50 X_REGION_CODE,
51 X_ATTRIBUTE_APPLICATION_ID,
52 X_ATTRIBUTE_CODE,
53 X_PROPERTY_NAME,
54 X_PROPERTY_VARCHAR2_VALUE,
55 X_PROPERTY_NUMBER_VALUE,
56 X_PROPERTY_DATE_VALUE,
57 X_CREATED_BY,
58 X_CREATION_DATE,
59 X_LAST_UPDATED_BY,
60 X_LAST_UPDATE_DATE,
61 X_LAST_UPDATE_LOGIN
62 );
63
64 open C;
65 fetch C into X_ROWID;
66 if (C%notfound) then
67 close C;
68 raise no_data_found;
69 end if;
70 close C;
71
72 insert into AK_CUSTOM_REGION_ITEMS_TL (
73 CUSTOMIZATION_APPLICATION_ID,
74 CUSTOMIZATION_CODE,
75 REGION_APPLICATION_ID,
76 REGION_CODE,
77 ATTRIBUTE_APPLICATION_ID,
78 ATTRIBUTE_CODE,
79 PROPERTY_NAME,
80 PROPERTY_VARCHAR2_VALUE,
81 LANGUAGE,
82 SOURCE_LANG,
83 CREATED_BY,
84 CREATION_DATE,
85 LAST_UPDATED_BY,
86 LAST_UPDATE_DATE,
87 LAST_UPDATE_LOGIN
88 ) select
89 X_CUSTOMIZATION_APPLICATION_ID,
90 X_CUSTOMIZATION_CODE,
91 X_REGION_APPLICATION_ID,
92 X_REGION_CODE,
93 X_ATTRIBUTE_APPLICATION_ID,
94 X_ATTRIBUTE_CODE,
95 X_PROPERTY_NAME,
96 X_PROPERTY_VARCHAR2_VALUE,
97 L.LANGUAGE_CODE,
98 userenv('LANG'),
99 X_CREATED_BY,
100 X_CREATION_DATE,
101 X_LAST_UPDATED_BY,
102 X_LAST_UPDATE_DATE,
103 X_LAST_UPDATE_LOGIN
104 from FND_LANGUAGES L
105 where L.INSTALLED_FLAG in ('I', 'B')
106 and not exists
107 (select NULL
108 from AK_CUSTOM_REGION_ITEMS_TL T
109 where T.CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID
110 and T.CUSTOMIZATION_CODE = X_CUSTOMIZATION_CODE
111 and T.REGION_APPLICATION_ID = X_REGION_APPLICATION_ID
112 and T.REGION_CODE = X_REGION_CODE
113 and T.ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
114 and T.ATTRIBUTE_CODE = X_ATTRIBUTE_CODE
115 and T.PROPERTY_NAME = X_PROPERTY_NAME
116 and T.LANGUAGE = L.LANGUAGE_CODE);
117 end INSERT_ROW;
118
119 procedure LOCK_ROW (
120 X_CUSTOMIZATION_APPLICATION_ID in NUMBER,
121 X_CUSTOMIZATION_CODE in VARCHAR2,
122 X_REGION_APPLICATION_ID in NUMBER,
123 X_REGION_CODE in VARCHAR2,
124 X_ATTRIBUTE_APPLICATION_ID in NUMBER,
125 X_ATTRIBUTE_CODE in VARCHAR2,
126 X_PROPERTY_NAME in VARCHAR2,
127 X_PROPERTY_VARCHAR2_VALUE in VARCHAR2,
128 X_PROPERTY_NUMBER_VALUE in NUMBER,
129 X_PROPERTY_DATE_VALUE in DATE,
130 X_CREATED_BY in NUMBER,
131 X_CREATION_DATE in DATE,
132 X_LAST_UPDATED_BY in NUMBER,
133 X_LAST_UPDATE_DATE in DATE,
134 X_LAST_UPDATE_LOGIN in NUMBER
135 ) is
136 cursor C is select
137 CUSTOMIZATION_APPLICATION_ID,
138 CUSTOMIZATION_CODE,
139 REGION_APPLICATION_ID,
140 REGION_CODE,
141 ATTRIBUTE_APPLICATION_ID,
142 ATTRIBUTE_CODE,
143 PROPERTY_NAME,
144 PROPERTY_VARCHAR2_VALUE,
145 PROPERTY_NUMBER_VALUE,
146 PROPERTY_DATE_VALUE
147 from AK_CUSTOM_REGION_ITEMS
148 where CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID
149 and CUSTOMIZATION_CODE = X_CUSTOMIZATION_CODE
150 and REGION_APPLICATION_ID = X_REGION_APPLICATION_ID
151 and REGION_CODE = X_REGION_CODE
152 and ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
153 and ATTRIBUTE_CODE = X_ATTRIBUTE_CODE
154 and PROPERTY_NAME = X_PROPERTY_NAME
155 for update of CUSTOMIZATION_APPLICATION_ID nowait;
156 recinfo C%rowtype;
157
158 cursor C1 is select
159 PROPERTY_VARCHAR2_VALUE
160 from AK_CUSTOM_REGION_ITEMS_TL
161 where CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID
162 and CUSTOMIZATION_CODE = X_CUSTOMIZATION_CODE
163 and REGION_APPLICATION_ID = X_REGION_APPLICATION_ID
164 and REGION_CODE = X_REGION_CODE
165 and ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
166 and ATTRIBUTE_CODE = X_ATTRIBUTE_CODE
167 and PROPERTY_NAME = X_PROPERTY_NAME
168 and LANGUAGE = userenv('LANG')
169 for update of CUSTOMIZATION_CODE nowait;
170 tlinfo C1%rowtype;
171 begin
172 open C;
173 fetch C into recinfo;
174 if (C%notfound) then
175 close C;
176 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
177 app_exception.raise_exception;
178 end if;
179 close C;
180
181 if (((recinfo.CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID)
182 OR ((recinfo.CUSTOMIZATION_APPLICATION_ID is null)
183 AND (X_CUSTOMIZATION_APPLICATION_ID is null)))
184 AND ((recinfo.CUSTOMIZATION_CODE = X_CUSTOMIZATION_CODE)
185 OR ((recinfo.CUSTOMIZATION_CODE is null)
186 AND (X_CUSTOMIZATION_CODE is null)))
187 AND ((recinfo.REGION_APPLICATION_ID = X_REGION_APPLICATION_ID)
188 OR ((recinfo.REGION_APPLICATION_ID is null)
189 AND (X_REGION_APPLICATION_ID is null)))
190 AND ((recinfo.REGION_CODE = X_REGION_CODE)
191 OR ((recinfo.REGION_CODE is null)
192 AND (X_REGION_CODE is null)))
193 AND ((recinfo.ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID)
194 OR ((recinfo.ATTRIBUTE_APPLICATION_ID is null)
195 AND (X_ATTRIBUTE_APPLICATION_ID is null)))
196 AND ((recinfo.ATTRIBUTE_CODE = X_ATTRIBUTE_CODE)
197 OR ((recinfo.ATTRIBUTE_CODE is null)
198 AND (X_ATTRIBUTE_CODE is null)))
199 AND ((recinfo.PROPERTY_NAME = X_PROPERTY_NAME)
200 OR ((recinfo.PROPERTY_NAME is null)
201 AND (X_PROPERTY_NAME is null)))
202 AND ((recinfo.PROPERTY_VARCHAR2_VALUE = X_PROPERTY_VARCHAR2_VALUE)
203 OR ((recinfo.PROPERTY_VARCHAR2_VALUE is null)
204 AND (X_PROPERTY_VARCHAR2_VALUE is null)))
205 AND ((recinfo.PROPERTY_NUMBER_VALUE = X_PROPERTY_NUMBER_VALUE)
206 OR ((recinfo.PROPERTY_NUMBER_VALUE is null)
207 AND (X_PROPERTY_NUMBER_VALUE is null)))
208 AND ((recinfo.PROPERTY_DATE_VALUE = X_PROPERTY_DATE_VALUE)
209 OR ((recinfo.PROPERTY_DATE_VALUE is null)
210 AND (X_PROPERTY_DATE_VALUE is null)))
211 ) then
212 null;
213 else
214 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
215 app_exception.raise_exception;
216 end if;
217
218 open C1;
219 fetch C1 into tlinfo;
220 if (C1%notfound) then
221 close C1;
222 return;
223 end if;
224 close C1;
225 if ((tlinfo.PROPERTY_VARCHAR2_VALUE = X_PROPERTY_VARCHAR2_VALUE)
226 OR ((tlinfo.PROPERTY_VARCHAR2_VALUE is null)
227 AND (X_PROPERTY_VARCHAR2_VALUE is null))
228 ) then
229 null;
230 else
231 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
232 app_exception.raise_exception;
233 end if;
234 return;
235 end LOCK_ROW;
236
237 procedure UPDATE_ROW (
238 X_CUSTOMIZATION_APPLICATION_ID in NUMBER,
239 X_CUSTOMIZATION_CODE in VARCHAR2,
240 X_REGION_APPLICATION_ID in NUMBER,
241 X_REGION_CODE in VARCHAR2,
242 X_ATTRIBUTE_APPLICATION_ID in NUMBER,
243 X_ATTRIBUTE_CODE in VARCHAR2,
244 X_PROPERTY_NAME in VARCHAR2,
245 X_PROPERTY_VARCHAR2_VALUE in VARCHAR2,
246 X_PROPERTY_NUMBER_VALUE in NUMBER,
247 X_PROPERTY_DATE_VALUE in DATE,
248 X_LAST_UPDATED_BY in NUMBER,
249 X_LAST_UPDATE_DATE in DATE,
250 X_LAST_UPDATE_LOGIN in NUMBER
251 ) is
252 begin
253 update AK_CUSTOM_REGION_ITEMS set
254 CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID,
255 CUSTOMIZATION_CODE = X_CUSTOMIZATION_CODE,
256 REGION_APPLICATION_ID = X_REGION_APPLICATION_ID,
257 REGION_CODE = X_REGION_CODE,
258 ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID,
259 ATTRIBUTE_CODE = X_ATTRIBUTE_CODE,
260 PROPERTY_NAME = X_PROPERTY_NAME,
261 PROPERTY_VARCHAR2_VALUE = X_PROPERTY_VARCHAR2_VALUE,
262 PROPERTY_NUMBER_VALUE = X_PROPERTY_NUMBER_VALUE,
263 PROPERTY_DATE_VALUE = X_PROPERTY_DATE_VALUE,
264 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
265 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
266 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
267 where CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID
268 and CUSTOMIZATION_CODE = X_CUSTOMIZATION_CODE
269 and REGION_APPLICATION_ID = X_REGION_APPLICATION_ID
270 and REGION_CODE = X_REGION_CODE
271 and ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
272 and ATTRIBUTE_CODE = X_ATTRIBUTE_CODE
273 and PROPERTY_NAME = X_PROPERTY_NAME;
274
275 if (sql%notfound) then
276 raise no_data_found;
277 end if;
278
279 update AK_CUSTOM_REGION_ITEMS_TL set
280 PROPERTY_VARCHAR2_VALUE = X_PROPERTY_VARCHAR2_VALUE,
281 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
282 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
283 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
284 SOURCE_LANG = userenv('LANG')
285 where CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID
286 and CUSTOMIZATION_CODE = X_CUSTOMIZATION_CODE
287 and REGION_APPLICATION_ID = X_REGION_APPLICATION_ID
288 and REGION_CODE = X_REGION_CODE
289 and ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
290 and ATTRIBUTE_CODE = X_ATTRIBUTE_CODE
291 and PROPERTY_NAME = X_PROPERTY_NAME
292 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
293
294 if (sql%notfound) then
295 raise no_data_found;
296 end if;
297 end UPDATE_ROW;
298
299 procedure DELETE_ROW (
300 X_CUSTOMIZATION_APPLICATION_ID in NUMBER,
301 X_CUSTOMIZATION_CODE in VARCHAR2,
302 X_REGION_APPLICATION_ID in NUMBER,
303 X_REGION_CODE in VARCHAR2,
304 X_ATTRIBUTE_APPLICATION_ID in NUMBER,
308 begin
305 X_ATTRIBUTE_CODE in VARCHAR2,
306 X_PROPERTY_NAME in VARCHAR2
307 ) is
309 delete from AK_CUSTOM_REGION_ITEMS
310 where CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID
311 and CUSTOMIZATION_CODE = X_CUSTOMIZATION_CODE
312 and REGION_APPLICATION_ID = X_REGION_APPLICATION_ID
313 and REGION_CODE = X_REGION_CODE
314 and ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
315 and ATTRIBUTE_CODE = X_ATTRIBUTE_CODE
316 and PROPERTY_NAME = X_PROPERTY_NAME;
317
318 if (sql%notfound) then
319 raise no_data_found;
320 end if;
321
322 delete from AK_CUSTOM_REGION_ITEMS_TL
323 where CUSTOMIZATION_APPLICATION_ID = X_CUSTOMIZATION_APPLICATION_ID
324 and CUSTOMIZATION_CODE = X_CUSTOMIZATION_CODE
325 and REGION_APPLICATION_ID = X_REGION_APPLICATION_ID
326 and REGION_CODE = X_REGION_CODE
327 and ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
328 and ATTRIBUTE_CODE = X_ATTRIBUTE_CODE
329 and PROPERTY_NAME = X_PROPERTY_NAME;
330
331 if (sql%notfound) then
332 raise no_data_found;
333 end if;
334 end DELETE_ROW;
335
336 procedure ADD_LANGUAGE
337 is
338 begin
339
340 /* Mar/19/03 requested by Ric Ginsberg */
341 /* The following delete and update statements are commented out */
342 /* as a quick workaround to fix the time-consuming table handler issue */
343 /* Eventually we'll need to turn them into a separate fix_language procedure */
344 /*
345 delete from AK_CUSTOM_REGION_ITEMS_TL T
346 where not exists
347 (select NULL
348 from AK_CUSTOM_REGION_ITEMS B
349 where B.CUSTOMIZATION_APPLICATION_ID = T.CUSTOMIZATION_APPLICATION_ID
350 and B.CUSTOMIZATION_CODE = T.CUSTOMIZATION_CODE
351 and B.REGION_APPLICATION_ID = T.REGION_APPLICATION_ID
352 and B.REGION_CODE = T.REGION_CODE
353 and B.ATTRIBUTE_APPLICATION_ID = T.ATTRIBUTE_APPLICATION_ID
354 and B.ATTRIBUTE_CODE = T.ATTRIBUTE_CODE
355 and B.PROPERTY_NAME = T.PROPERTY_NAME
356 );
357
358 update AK_CUSTOM_REGION_ITEMS_TL T set (
359 PROPERTY_VARCHAR2_VALUE
360 ) = (select
361 B.PROPERTY_VARCHAR2_VALUE
362 from AK_CUSTOM_REGION_ITEMS_TL B
363 where B.CUSTOMIZATION_APPLICATION_ID = T.CUSTOMIZATION_APPLICATION_ID
364 and B.CUSTOMIZATION_CODE = T.CUSTOMIZATION_CODE
365 and B.REGION_APPLICATION_ID = T.REGION_APPLICATION_ID
366 and B.REGION_CODE = T.REGION_CODE
367 and B.ATTRIBUTE_APPLICATION_ID = T.ATTRIBUTE_APPLICATION_ID
368 and B.ATTRIBUTE_CODE = T.ATTRIBUTE_CODE
369 and B.PROPERTY_NAME = T.PROPERTY_NAME
370 and B.LANGUAGE = T.SOURCE_LANG)
371 where (
372 T.CUSTOMIZATION_APPLICATION_ID,
373 T.CUSTOMIZATION_CODE,
374 T.REGION_APPLICATION_ID,
375 T.REGION_CODE,
376 T.ATTRIBUTE_APPLICATION_ID,
377 T.ATTRIBUTE_CODE,
378 T.PROPERTY_NAME,
379 T.LANGUAGE
380 ) in (select SUBT.CUSTOMIZATION_APPLICATION_ID,
381 SUBT.CUSTOMIZATION_CODE,
382 SUBT.REGION_APPLICATION_ID,
383 SUBT.REGION_CODE,
384 SUBT.ATTRIBUTE_APPLICATION_ID,
385 SUBT.ATTRIBUTE_CODE,
386 SUBT.PROPERTY_NAME,
387 SUBT.LANGUAGE
388 from AK_CUSTOM_REGION_ITEMS_TL SUBB,
389 AK_CUSTOM_REGION_ITEMS_TL SUBT
390 where SUBB.CUSTOMIZATION_APPLICATION_ID = SUBT.CUSTOMIZATION_APPLICATION_ID
391 and SUBB.CUSTOMIZATION_CODE = SUBT.CUSTOMIZATION_CODE
392 and SUBB.REGION_APPLICATION_ID = SUBT.REGION_APPLICATION_ID
393 and SUBB.REGION_CODE = SUBT.REGION_CODE
394 and SUBB.ATTRIBUTE_APPLICATION_ID = SUBT.ATTRIBUTE_APPLICATION_ID
395 and SUBB.ATTRIBUTE_CODE = SUBT.ATTRIBUTE_CODE
396 and SUBB.PROPERTY_NAME = SUBT.PROPERTY_NAME
397 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
398 and (SUBB.PROPERTY_VARCHAR2_VALUE <> SUBT.PROPERTY_VARCHAR2_VALUE
399 or (SUBB.PROPERTY_VARCHAR2_VALUE is null and SUBT.PROPERTY_VARCHAR2_VALUE is not null)
400 or (SUBB.PROPERTY_VARCHAR2_VALUE is not null and SUBT.PROPERTY_VARCHAR2_VALUE is null))
401 );
402 */
403
404 insert /*+ append parallel(tt) */ into AK_CUSTOM_REGION_ITEMS_TL tt (
405 CUSTOMIZATION_APPLICATION_ID,
406 CUSTOMIZATION_CODE,
407 REGION_APPLICATION_ID,
408 REGION_CODE,
409 ATTRIBUTE_APPLICATION_ID,
410 ATTRIBUTE_CODE,
411 PROPERTY_NAME,
412 PROPERTY_VARCHAR2_VALUE,
413 LANGUAGE,
414 SOURCE_LANG,
415 CREATED_BY,
416 CREATION_DATE,
417 LAST_UPDATED_BY,
418 LAST_UPDATE_DATE,
419 LAST_UPDATE_LOGIN
420 ) select /*+ parallel(v) parallel(t) use_nl(t) */ v.* from
421 (select /*+ no_merge ordered parallel(b) */
422 B.CUSTOMIZATION_APPLICATION_ID,
423 B.CUSTOMIZATION_CODE,
424 B.REGION_APPLICATION_ID,
425 B.REGION_CODE,
426 B.ATTRIBUTE_APPLICATION_ID,
427 B.ATTRIBUTE_CODE,
428 B.PROPERTY_NAME,
429 B.PROPERTY_VARCHAR2_VALUE,
430 L.LANGUAGE_CODE,
431 B.SOURCE_LANG,
432 B.CREATED_BY,
433 B.CREATION_DATE,
434 B.LAST_UPDATED_BY,
435 B.LAST_UPDATE_DATE,
436 B.LAST_UPDATE_LOGIN
437 from AK_CUSTOM_REGION_ITEMS_TL B,
438 FND_LANGUAGES L
439 where L.INSTALLED_FLAG in ('I', 'B')
440 and B.LANGUAGE = userenv('LANG')
441 ) v, AK_CUSTOM_REGION_ITEMS_TL t
442 where T.CUSTOMIZATION_APPLICATION_ID(+) = v.CUSTOMIZATION_APPLICATION_ID
443 and T.CUSTOMIZATION_CODE(+) = v.CUSTOMIZATION_CODE
444 and T.REGION_APPLICATION_ID(+) = v.REGION_APPLICATION_ID
445 and T.REGION_CODE(+) = v.REGION_CODE
446 and T.ATTRIBUTE_APPLICATION_ID(+) = v.ATTRIBUTE_APPLICATION_ID
447 and T.ATTRIBUTE_CODE(+) = v.ATTRIBUTE_CODE
451 and T.CUSTOMIZATION_CODE is NULL
448 and T.PROPERTY_NAME(+) = v.PROPERTY_NAME
449 and T.LANGUAGE(+) = v.LANGUAGE_CODE
450 and T.CUSTOMIZATION_APPLICATION_ID is NULL
452 AND T.REGION_APPLICATION_ID is NULL
453 and T.REGION_CODE is NULL
454 and T.ATTRIBUTE_APPLICATION_ID is NULL
455 and T.ATTRIBUTE_CODE is NULL
456 and T.PROPERTY_NAME is NULL;
457
458 end ADD_LANGUAGE;
459
460 end AK_CUSTOM_REGION_ITEMS_PKG;