1 package body FND_PRIVACY_ATTRIBUTES_PKG as
2 /* $Header: fndpiadb.pls 120.1 2005/07/02 03:34:37 appldev noship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out nocopy VARCHAR2,
5 X_PRIVACY_ATTRIBUTE_CODE in VARCHAR2,
6 X_ATTRIBUTE8 in VARCHAR2,
7 X_ATTRIBUTE9 in VARCHAR2,
8 X_ATTRIBUTE10 in VARCHAR2,
9 X_ATTRIBUTE11 in VARCHAR2,
10 X_ATTRIBUTE12 in VARCHAR2,
11 X_ATTRIBUTE13 in VARCHAR2,
12 X_ATTRIBUTE14 in VARCHAR2,
13 X_ATTRIBUTE15 in VARCHAR2,
14 X_ATTRIBUTE_CATEGORY in VARCHAR2,
15 X_OBJECT_VERSION_NUMBER in NUMBER,
16 X_PRIVACY_ATTRIBUTE_TYPE in VARCHAR2,
17 X_SENSITIVITY in VARCHAR2,
18 X_PII_FLAG in VARCHAR2,
19 X_LOCKED_FLAG in VARCHAR2,
20 X_ATTRIBUTE1 in VARCHAR2,
21 X_ATTRIBUTE2 in VARCHAR2,
22 X_ATTRIBUTE3 in VARCHAR2,
23 X_ATTRIBUTE4 in VARCHAR2,
24 X_ATTRIBUTE5 in VARCHAR2,
25 X_ATTRIBUTE6 in VARCHAR2,
26 X_ATTRIBUTE7 in VARCHAR2,
27 X_PRIVACY_ATTRIBUTE_NAME in VARCHAR2,
28 X_DESCRIPTION in VARCHAR2,
29 X_DESCRIPTION_INT in VARCHAR2,
30 X_CREATION_DATE in DATE,
31 X_CREATED_BY in NUMBER,
32 X_LAST_UPDATE_DATE in DATE,
33 X_LAST_UPDATED_BY in NUMBER,
34 X_LAST_UPDATE_LOGIN in NUMBER,
35 X_DSCRAM_LEVEL in VARCHAR2,
36 X_DSCRAM_ALGO_ID in NUMBER
37 ) is
38 cursor C is select ROWID from FND_PRIVACY_ATTRIBUTES_B
39 where PRIVACY_ATTRIBUTE_CODE = X_PRIVACY_ATTRIBUTE_CODE
40 ;
41 begin
42 insert into FND_PRIVACY_ATTRIBUTES_B (
43 ATTRIBUTE8,
44 ATTRIBUTE9,
45 ATTRIBUTE10,
46 ATTRIBUTE11,
47 ATTRIBUTE12,
48 ATTRIBUTE13,
49 ATTRIBUTE14,
50 ATTRIBUTE15,
51 ATTRIBUTE_CATEGORY,
52 OBJECT_VERSION_NUMBER,
53 PRIVACY_ATTRIBUTE_CODE,
54 PRIVACY_ATTRIBUTE_TYPE,
55 SENSITIVITY,
56 PII_FLAG,
57 LOCKED_FLAG,
58 ATTRIBUTE1,
59 ATTRIBUTE2,
60 ATTRIBUTE3,
61 ATTRIBUTE4,
62 ATTRIBUTE5,
63 ATTRIBUTE6,
64 ATTRIBUTE7,
65 CREATION_DATE,
66 CREATED_BY,
67 LAST_UPDATE_DATE,
68 LAST_UPDATED_BY,
69 LAST_UPDATE_LOGIN,
70 DSCRAM_LEVEL,
71 DSCRAM_ALGO_ID
72 ) values (
73 X_ATTRIBUTE8,
74 X_ATTRIBUTE9,
75 X_ATTRIBUTE10,
76 X_ATTRIBUTE11,
77 X_ATTRIBUTE12,
78 X_ATTRIBUTE13,
79 X_ATTRIBUTE14,
80 X_ATTRIBUTE15,
81 X_ATTRIBUTE_CATEGORY,
82 X_OBJECT_VERSION_NUMBER,
83 X_PRIVACY_ATTRIBUTE_CODE,
84 X_PRIVACY_ATTRIBUTE_TYPE,
85 X_SENSITIVITY,
86 X_PII_FLAG,
87 X_LOCKED_FLAG,
88 X_ATTRIBUTE1,
89 X_ATTRIBUTE2,
90 X_ATTRIBUTE3,
91 X_ATTRIBUTE4,
92 X_ATTRIBUTE5,
93 X_ATTRIBUTE6,
94 X_ATTRIBUTE7,
95 X_CREATION_DATE,
96 X_CREATED_BY,
97 X_LAST_UPDATE_DATE,
98 X_LAST_UPDATED_BY,
99 X_LAST_UPDATE_LOGIN,
100 X_DSCRAM_LEVEL,
101 X_DSCRAM_ALGO_ID
102 );
103
104 insert into FND_PRIVACY_ATTRIBUTES_TL (
105 PRIVACY_ATTRIBUTE_CODE,
106 PRIVACY_ATTRIBUTE_NAME,
107 DESCRIPTION,
108 DESCRIPTION_INT,
109 CREATED_BY,
110 CREATION_DATE,
111 LAST_UPDATED_BY,
112 LAST_UPDATE_DATE,
113 LAST_UPDATE_LOGIN,
114 LANGUAGE,
115 SOURCE_LANG
116 ) select
117 X_PRIVACY_ATTRIBUTE_CODE,
118 X_PRIVACY_ATTRIBUTE_NAME,
119 X_DESCRIPTION,
120 X_DESCRIPTION_INT,
121 X_CREATED_BY,
122 X_CREATION_DATE,
123 X_LAST_UPDATED_BY,
124 X_LAST_UPDATE_DATE,
125 X_LAST_UPDATE_LOGIN,
126 L.LANGUAGE_CODE,
127 userenv('LANG')
128 from FND_LANGUAGES L
129 where L.INSTALLED_FLAG in ('I', 'B')
130 and not exists
131 (select NULL
132 from FND_PRIVACY_ATTRIBUTES_TL T
133 where T.PRIVACY_ATTRIBUTE_CODE = X_PRIVACY_ATTRIBUTE_CODE
134 and T.LANGUAGE = L.LANGUAGE_CODE);
135
136 open c;
137 fetch c into X_ROWID;
138 if (c%notfound) then
139 close c;
140 raise no_data_found;
141 end if;
142 close c;
143
144 end INSERT_ROW;
145
146 procedure LOCK_ROW (
147 X_PRIVACY_ATTRIBUTE_CODE in VARCHAR2,
148 X_ATTRIBUTE8 in VARCHAR2,
149 X_ATTRIBUTE9 in VARCHAR2,
150 X_ATTRIBUTE10 in VARCHAR2,
151 X_ATTRIBUTE11 in VARCHAR2,
152 X_ATTRIBUTE12 in VARCHAR2,
153 X_ATTRIBUTE13 in VARCHAR2,
154 X_ATTRIBUTE14 in VARCHAR2,
155 X_ATTRIBUTE15 in VARCHAR2,
156 X_ATTRIBUTE_CATEGORY in VARCHAR2,
157 X_OBJECT_VERSION_NUMBER in NUMBER,
158 X_PRIVACY_ATTRIBUTE_TYPE in VARCHAR2,
159 X_SENSITIVITY in VARCHAR2,
160 X_PII_FLAG in VARCHAR2,
161 X_LOCKED_FLAG in VARCHAR2,
162 X_ATTRIBUTE1 in VARCHAR2,
163 X_ATTRIBUTE2 in VARCHAR2,
164 X_ATTRIBUTE3 in VARCHAR2,
165 X_ATTRIBUTE4 in VARCHAR2,
166 X_ATTRIBUTE5 in VARCHAR2,
167 X_ATTRIBUTE6 in VARCHAR2,
168 X_ATTRIBUTE7 in VARCHAR2,
169 X_PRIVACY_ATTRIBUTE_NAME in VARCHAR2,
170 X_DESCRIPTION in VARCHAR2,
171 X_DESCRIPTION_INT in VARCHAR2,
172 X_DSCRAM_LEVEL in VARCHAR2,
173 X_DSCRAM_ALGO_ID in NUMBER
174 ) is
175 cursor c is select
176 ATTRIBUTE8,
177 ATTRIBUTE9,
178 ATTRIBUTE10,
179 ATTRIBUTE11,
180 ATTRIBUTE12,
181 ATTRIBUTE13,
182 ATTRIBUTE14,
183 ATTRIBUTE15,
184 ATTRIBUTE_CATEGORY,
185 OBJECT_VERSION_NUMBER,
186 PRIVACY_ATTRIBUTE_TYPE,
187 SENSITIVITY,
188 PII_FLAG,
189 LOCKED_FLAG,
190 ATTRIBUTE1,
191 ATTRIBUTE2,
192 ATTRIBUTE3,
193 ATTRIBUTE4,
194 ATTRIBUTE5,
195 ATTRIBUTE6,
196 ATTRIBUTE7,
197 DSCRAM_LEVEL,
198 DSCRAM_ALGO_ID
199 from FND_PRIVACY_ATTRIBUTES_B
200 where PRIVACY_ATTRIBUTE_CODE = X_PRIVACY_ATTRIBUTE_CODE
201 for update of PRIVACY_ATTRIBUTE_CODE nowait;
202 recinfo c%rowtype;
203
204 cursor c1 is select
205 PRIVACY_ATTRIBUTE_NAME,
206 DESCRIPTION,
207 DESCRIPTION_INT,
208 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
209 from FND_PRIVACY_ATTRIBUTES_TL
210 where PRIVACY_ATTRIBUTE_CODE = X_PRIVACY_ATTRIBUTE_CODE
211 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
212 for update of PRIVACY_ATTRIBUTE_CODE nowait;
213 begin
214 open c;
215 fetch c into recinfo;
216 if (c%notfound) then
217 close c;
218 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
219 app_exception.raise_exception;
220 end if;
221 close c;
222 if ( ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
223 OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
224 AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
225 OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
226 AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
227 OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
228 AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
229 OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
230 AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
231 OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
232 AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
233 OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
234 AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
235 OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
236 AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
237 OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
238 AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
239 OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
240 AND (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
241 AND (recinfo.PRIVACY_ATTRIBUTE_TYPE = X_PRIVACY_ATTRIBUTE_TYPE)
242 AND (recinfo.SENSITIVITY = X_SENSITIVITY)
243 AND (recinfo.PII_FLAG = X_PII_FLAG)
244 AND (recinfo.LOCKED_FLAG = X_LOCKED_FLAG)
245 AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
246 OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
247 AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
248 OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
249 AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
250 OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
251 AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
252 OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
253 AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
254 OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
255 AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
256 OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
257 AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
258 OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
259 AND ((recinfo.DSCRAM_LEVEL = X_DSCRAM_LEVEL)
260 OR ((recinfo.DSCRAM_LEVEL is null) AND (X_DSCRAM_LEVEL is null)))
261 AND ((recinfo.DSCRAM_ALGO_ID = X_DSCRAM_ALGO_ID)
262 OR ((recinfo.DSCRAM_ALGO_ID is null) AND (X_DSCRAM_ALGO_ID is null)))
263 ) then
264 null;
265 else
266 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
267 app_exception.raise_exception;
268 end if;
269
270 for tlinfo in c1 loop
271 if (tlinfo.BASELANG = 'Y') then
272 if ( (tlinfo.PRIVACY_ATTRIBUTE_NAME = X_PRIVACY_ATTRIBUTE_NAME)
273 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
274 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
275 AND ((tlinfo.DESCRIPTION_INT = X_DESCRIPTION_INT)
276 OR ((tlinfo.DESCRIPTION_INT is null) AND (X_DESCRIPTION_INT is null)))
277 ) then
278 null;
279 else
280 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
281 app_exception.raise_exception;
282 end if;
283 end if;
284 end loop;
285 return;
286 end LOCK_ROW;
287
288 procedure UPDATE_ROW (
289 X_PRIVACY_ATTRIBUTE_CODE in VARCHAR2,
290 X_ATTRIBUTE8 in VARCHAR2,
291 X_ATTRIBUTE9 in VARCHAR2,
292 X_ATTRIBUTE10 in VARCHAR2,
293 X_ATTRIBUTE11 in VARCHAR2,
294 X_ATTRIBUTE12 in VARCHAR2,
295 X_ATTRIBUTE13 in VARCHAR2,
296 X_ATTRIBUTE14 in VARCHAR2,
297 X_ATTRIBUTE15 in VARCHAR2,
298 X_ATTRIBUTE_CATEGORY in VARCHAR2,
299 X_OBJECT_VERSION_NUMBER in NUMBER,
300 X_PRIVACY_ATTRIBUTE_TYPE in VARCHAR2,
301 X_SENSITIVITY in VARCHAR2,
302 X_PII_FLAG in VARCHAR2,
303 X_LOCKED_FLAG in VARCHAR2,
304 X_ATTRIBUTE1 in VARCHAR2,
305 X_ATTRIBUTE2 in VARCHAR2,
306 X_ATTRIBUTE3 in VARCHAR2,
307 X_ATTRIBUTE4 in VARCHAR2,
308 X_ATTRIBUTE5 in VARCHAR2,
309 X_ATTRIBUTE6 in VARCHAR2,
310 X_ATTRIBUTE7 in VARCHAR2,
311 X_PRIVACY_ATTRIBUTE_NAME in VARCHAR2,
312 X_DESCRIPTION in VARCHAR2,
313 X_DESCRIPTION_INT in VARCHAR2,
314 X_LAST_UPDATE_DATE in DATE,
315 X_LAST_UPDATED_BY in NUMBER,
316 X_LAST_UPDATE_LOGIN in NUMBER,
317 X_DSCRAM_LEVEL in VARCHAR2,
318 X_DSCRAM_ALGO_ID in NUMBER
319 ) is
320 begin
321 update FND_PRIVACY_ATTRIBUTES_B set
322 ATTRIBUTE8 = X_ATTRIBUTE8,
323 ATTRIBUTE9 = X_ATTRIBUTE9,
324 ATTRIBUTE10 = X_ATTRIBUTE10,
325 ATTRIBUTE11 = X_ATTRIBUTE11,
326 ATTRIBUTE12 = X_ATTRIBUTE12,
327 ATTRIBUTE13 = X_ATTRIBUTE13,
328 ATTRIBUTE14 = X_ATTRIBUTE14,
329 ATTRIBUTE15 = X_ATTRIBUTE15,
330 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
331 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
332 PRIVACY_ATTRIBUTE_TYPE = X_PRIVACY_ATTRIBUTE_TYPE,
333 SENSITIVITY = X_SENSITIVITY,
334 PII_FLAG = X_PII_FLAG,
335 LOCKED_FLAG = X_LOCKED_FLAG,
336 ATTRIBUTE1 = X_ATTRIBUTE1,
337 ATTRIBUTE2 = X_ATTRIBUTE2,
338 ATTRIBUTE3 = X_ATTRIBUTE3,
339 ATTRIBUTE4 = X_ATTRIBUTE4,
340 ATTRIBUTE5 = X_ATTRIBUTE5,
341 ATTRIBUTE6 = X_ATTRIBUTE6,
342 ATTRIBUTE7 = X_ATTRIBUTE7,
343 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
344 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
345 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
346 DSCRAM_LEVEL = X_DSCRAM_LEVEL,
347 DSCRAM_ALGO_ID = X_DSCRAM_ALGO_ID
348 where PRIVACY_ATTRIBUTE_CODE = X_PRIVACY_ATTRIBUTE_CODE;
349
350 if (sql%notfound) then
351 raise no_data_found;
352 end if;
353
354 update FND_PRIVACY_ATTRIBUTES_TL set
355 PRIVACY_ATTRIBUTE_NAME = X_PRIVACY_ATTRIBUTE_NAME,
356 DESCRIPTION = X_DESCRIPTION,
357 DESCRIPTION_INT = X_DESCRIPTION_INT,
358 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
359 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
360 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
361 SOURCE_LANG = userenv('LANG')
362 where PRIVACY_ATTRIBUTE_CODE = X_PRIVACY_ATTRIBUTE_CODE
363 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
364
365 if (sql%notfound) then
366 raise no_data_found;
367 end if;
368 end UPDATE_ROW;
369
370 procedure DELETE_ROW (
371 X_PRIVACY_ATTRIBUTE_CODE in VARCHAR2
372 ) is
373 begin
374 delete from FND_PRIVACY_ATTRIBUTES_TL
375 where PRIVACY_ATTRIBUTE_CODE = X_PRIVACY_ATTRIBUTE_CODE;
376
377 if (sql%notfound) then
378 raise no_data_found;
379 end if;
380
381 delete from FND_PRIVACY_ATTRIBUTES_B
382 where PRIVACY_ATTRIBUTE_CODE = X_PRIVACY_ATTRIBUTE_CODE;
383
384 if (sql%notfound) then
385 raise no_data_found;
386 end if;
387 end DELETE_ROW;
388
389 procedure ADD_LANGUAGE
390 is
391 begin
392 delete from FND_PRIVACY_ATTRIBUTES_TL T
393 where not exists
394 (select NULL
395 from FND_PRIVACY_ATTRIBUTES_B B
396 where B.PRIVACY_ATTRIBUTE_CODE = T.PRIVACY_ATTRIBUTE_CODE
397 );
398
399 update FND_PRIVACY_ATTRIBUTES_TL T set (
400 PRIVACY_ATTRIBUTE_NAME,
401 DESCRIPTION,
402 DESCRIPTION_INT
403 ) = (select
404 B.PRIVACY_ATTRIBUTE_NAME,
405 B.DESCRIPTION,
406 B.DESCRIPTION_INT
407 from FND_PRIVACY_ATTRIBUTES_TL B
408 where B.PRIVACY_ATTRIBUTE_CODE = T.PRIVACY_ATTRIBUTE_CODE
409 and B.LANGUAGE = T.SOURCE_LANG)
410 where (
411 T.PRIVACY_ATTRIBUTE_CODE,
412 T.LANGUAGE
413 ) in (select
414 SUBT.PRIVACY_ATTRIBUTE_CODE,
415 SUBT.LANGUAGE
416 from FND_PRIVACY_ATTRIBUTES_TL SUBB, FND_PRIVACY_ATTRIBUTES_TL SUBT
417 where SUBB.PRIVACY_ATTRIBUTE_CODE = SUBT.PRIVACY_ATTRIBUTE_CODE
418 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
419 and (SUBB.PRIVACY_ATTRIBUTE_NAME <> SUBT.PRIVACY_ATTRIBUTE_NAME
420 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
421 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
422 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
423 or SUBB.DESCRIPTION_INT <> SUBT.DESCRIPTION_INT
424 or (SUBB.DESCRIPTION_INT is null and SUBT.DESCRIPTION_INT is not null)
425 or (SUBB.DESCRIPTION_INT is not null and SUBT.DESCRIPTION_INT is null)
426 ));
427
428 insert into FND_PRIVACY_ATTRIBUTES_TL (
429 PRIVACY_ATTRIBUTE_CODE,
430 PRIVACY_ATTRIBUTE_NAME,
431 DESCRIPTION,
432 DESCRIPTION_INT,
433 CREATED_BY,
434 CREATION_DATE,
435 LAST_UPDATED_BY,
436 LAST_UPDATE_DATE,
437 LAST_UPDATE_LOGIN,
438 LANGUAGE,
439 SOURCE_LANG
440 ) select /*+ ORDERED */
441 B.PRIVACY_ATTRIBUTE_CODE,
442 B.PRIVACY_ATTRIBUTE_NAME,
443 B.DESCRIPTION,
444 B.DESCRIPTION_INT,
445 B.CREATED_BY,
446 B.CREATION_DATE,
447 B.LAST_UPDATED_BY,
448 B.LAST_UPDATE_DATE,
449 B.LAST_UPDATE_LOGIN,
450 L.LANGUAGE_CODE,
451 B.SOURCE_LANG
452 from FND_PRIVACY_ATTRIBUTES_TL B, FND_LANGUAGES L
453 where L.INSTALLED_FLAG in ('I', 'B')
454 and B.LANGUAGE = userenv('LANG')
455 and not exists
456 (select NULL
457 from FND_PRIVACY_ATTRIBUTES_TL T
458 where T.PRIVACY_ATTRIBUTE_CODE = B.PRIVACY_ATTRIBUTE_CODE
459 and T.LANGUAGE = L.LANGUAGE_CODE);
460 end ADD_LANGUAGE;
461
462 Procedure TRANSLATE_ROW
463 (x_PRIVACY_ATTRIBUTE_CODE in varchar2,
464 x_PRIVACY_ATTRIBUTE_NAME in varchar2,
465 x_Last_update_date in date,
466 x_last_updated_by in number,
467 x_last_update_login in number)
468 is
469 begin
470
471 UPDATE FND_PRIVACY_ATTRIBUTES_TL SET
472 privacy_attribute_name = nvl(x_PRIVACY_ATTRIBUTE_NAME,privacy_attribute_name),
473 last_update_date = nvl(x_last_update_date,sysdate),
474 last_updated_by = x_last_updated_by,
475 last_update_login = 0,
476 source_lang = userenv('LANG')
477 WHERE privacy_attribute_code = x_PRIVACY_ATTRIBUTE_CODE
478 AND userenv('LANG') in (LANGUAGE,SOURCE_LANG);
479
480 IF (sql%notfound) THEN
481 raise no_data_found;
482 END IF;
483
484 end TRANSLATE_ROW;
485
486 end FND_PRIVACY_ATTRIBUTES_PKG;