[Home] [Help]
PACKAGE BODY: APPS.CS_KB_CTXT_REPO_MAPS_PKG
Source
1 package body CS_KB_CTXT_REPO_MAPS_PKG as
2 /* $Header: cskbcrmb.pls 120.1 2005/08/09 16:18:55 mkettle noship $ */
3 /*=======================================================================+
4 | Copyright (c) 1997 Oracle Corporation Redwood Shores, California, USA|
5 | All rights reserved. |
6 +=======================================================================+
7 | FILENAME
8 | DESCRIPTION
9 | PL/SQL body for package: CS_KB_CTXT_REPO_MAPS_PKG
10 |
11 | History:
12 | 04 Apr 05 Matt Kettle Created
13 | 05 Aug 05 Matt Kettle Added Load_Seed_Row
14 *=======================================================================*/
15
16 procedure INSERT_ROW (
17 X_ROWID in out nocopy VARCHAR2,
18 X_MAP_ID in NUMBER,
19 X_REPOSITORY_ID in NUMBER,
20 X_CONTEXT_ID in NUMBER,
21 X_MAPPING_ORDER in NUMBER,
22 X_START_DATE_ACTIVE in DATE,
23 X_END_DATE_ACTIVE in DATE,
24 X_OBJECT_VERSION_NUMBER in NUMBER,
25 X_ATTRIBUTE_CATEGORY in VARCHAR2,
26 X_ATTRIBUTE1 in VARCHAR2,
27 X_ATTRIBUTE2 in VARCHAR2,
28 X_ATTRIBUTE3 in VARCHAR2,
29 X_ATTRIBUTE4 in VARCHAR2,
30 X_ATTRIBUTE5 in VARCHAR2,
31 X_ATTRIBUTE6 in VARCHAR2,
32 X_ATTRIBUTE7 in VARCHAR2,
33 X_ATTRIBUTE8 in VARCHAR2,
34 X_ATTRIBUTE9 in VARCHAR2,
35 X_ATTRIBUTE10 in VARCHAR2,
36 X_ATTRIBUTE11 in VARCHAR2,
37 X_ATTRIBUTE12 in VARCHAR2,
38 X_ATTRIBUTE13 in VARCHAR2,
39 X_ATTRIBUTE14 in VARCHAR2,
40 X_ATTRIBUTE15 in VARCHAR2,
41 X_LABEL in VARCHAR2,
42 X_CREATION_DATE in DATE,
43 X_CREATED_BY in NUMBER,
44 X_LAST_UPDATE_DATE in DATE,
45 X_LAST_UPDATED_BY in NUMBER,
46 X_LAST_UPDATE_LOGIN in NUMBER
47 ) is
48 cursor C is select ROWID from CS_KB_CTXT_REPO_MAPS_B
49 where MAP_ID = X_MAP_ID
50 ;
51 begin
52 insert into CS_KB_CTXT_REPO_MAPS_B (
53 MAP_ID,
54 REPOSITORY_ID,
55 CONTEXT_ID,
56 MAPPING_ORDER,
57 START_DATE_ACTIVE,
58 END_DATE_ACTIVE,
59 OBJECT_VERSION_NUMBER,
60 ATTRIBUTE_CATEGORY,
61 ATTRIBUTE1,
62 ATTRIBUTE2,
63 ATTRIBUTE3,
64 ATTRIBUTE4,
65 ATTRIBUTE5,
66 ATTRIBUTE6,
67 ATTRIBUTE7,
68 ATTRIBUTE8,
69 ATTRIBUTE9,
70 ATTRIBUTE10,
71 ATTRIBUTE11,
72 ATTRIBUTE12,
73 ATTRIBUTE13,
74 ATTRIBUTE14,
75 ATTRIBUTE15,
76 CREATION_DATE,
77 CREATED_BY,
78 LAST_UPDATE_DATE,
79 LAST_UPDATED_BY,
80 LAST_UPDATE_LOGIN
81 ) values (
82 X_MAP_ID,
83 X_REPOSITORY_ID,
84 X_CONTEXT_ID,
85 X_MAPPING_ORDER,
86 X_START_DATE_ACTIVE,
87 X_END_DATE_ACTIVE,
88 X_OBJECT_VERSION_NUMBER,
89 X_ATTRIBUTE_CATEGORY,
90 X_ATTRIBUTE1,
91 X_ATTRIBUTE2,
92 X_ATTRIBUTE3,
93 X_ATTRIBUTE4,
94 X_ATTRIBUTE5,
95 X_ATTRIBUTE6,
96 X_ATTRIBUTE7,
97 X_ATTRIBUTE8,
98 X_ATTRIBUTE9,
99 X_ATTRIBUTE10,
100 X_ATTRIBUTE11,
101 X_ATTRIBUTE12,
102 X_ATTRIBUTE13,
103 X_ATTRIBUTE14,
104 X_ATTRIBUTE15,
105 X_CREATION_DATE,
106 X_CREATED_BY,
107 X_LAST_UPDATE_DATE,
108 X_LAST_UPDATED_BY,
109 X_LAST_UPDATE_LOGIN
110 );
111
112 insert into CS_KB_CTXT_REPO_MAPS_TL (
113 MAP_ID,
114 LABEL,
115 CREATION_DATE,
116 CREATED_BY,
117 LAST_UPDATE_DATE,
118 LAST_UPDATED_BY,
119 LAST_UPDATE_LOGIN,
120 LANGUAGE,
121 SOURCE_LANG
122 ) select
123 X_MAP_ID,
124 X_LABEL,
125 X_CREATION_DATE,
126 X_CREATED_BY,
127 X_LAST_UPDATE_DATE,
128 X_LAST_UPDATED_BY,
129 X_LAST_UPDATE_LOGIN,
130 L.LANGUAGE_CODE,
131 userenv('LANG')
132 from FND_LANGUAGES L
133 where L.INSTALLED_FLAG in ('I', 'B')
134 and not exists
135 (select NULL
136 from CS_KB_CTXT_REPO_MAPS_TL T
137 where T.MAP_ID = X_MAP_ID
138 and T.LANGUAGE = L.LANGUAGE_CODE);
139
140 open c;
141 fetch c into X_ROWID;
142 if (c%notfound) then
143 close c;
144 raise no_data_found;
145 end if;
146 close c;
147
148 end INSERT_ROW;
149
150 procedure LOCK_ROW (
151 X_MAP_ID in NUMBER,
152 X_REPOSITORY_ID in NUMBER,
153 X_CONTEXT_ID in NUMBER,
154 X_MAPPING_ORDER in NUMBER,
155 X_START_DATE_ACTIVE in DATE,
156 X_END_DATE_ACTIVE in DATE,
157 X_OBJECT_VERSION_NUMBER in NUMBER,
158 X_ATTRIBUTE_CATEGORY in VARCHAR2,
159 X_ATTRIBUTE1 in VARCHAR2,
160 X_ATTRIBUTE2 in VARCHAR2,
161 X_ATTRIBUTE3 in VARCHAR2,
162 X_ATTRIBUTE4 in VARCHAR2,
163 X_ATTRIBUTE5 in VARCHAR2,
164 X_ATTRIBUTE6 in VARCHAR2,
165 X_ATTRIBUTE7 in VARCHAR2,
166 X_ATTRIBUTE8 in VARCHAR2,
167 X_ATTRIBUTE9 in VARCHAR2,
168 X_ATTRIBUTE10 in VARCHAR2,
169 X_ATTRIBUTE11 in VARCHAR2,
170 X_ATTRIBUTE12 in VARCHAR2,
171 X_ATTRIBUTE13 in VARCHAR2,
172 X_ATTRIBUTE14 in VARCHAR2,
173 X_ATTRIBUTE15 in VARCHAR2,
174 X_LABEL in VARCHAR2
175 ) is
176 cursor c is select
177 REPOSITORY_ID,
178 CONTEXT_ID,
179 MAPPING_ORDER,
180 START_DATE_ACTIVE,
181 END_DATE_ACTIVE,
182 OBJECT_VERSION_NUMBER,
183 ATTRIBUTE_CATEGORY,
184 ATTRIBUTE1,
185 ATTRIBUTE2,
186 ATTRIBUTE3,
187 ATTRIBUTE4,
188 ATTRIBUTE5,
189 ATTRIBUTE6,
190 ATTRIBUTE7,
191 ATTRIBUTE8,
192 ATTRIBUTE9,
193 ATTRIBUTE10,
194 ATTRIBUTE11,
195 ATTRIBUTE12,
196 ATTRIBUTE13,
197 ATTRIBUTE14,
198 ATTRIBUTE15
199 from CS_KB_CTXT_REPO_MAPS_B
200 where MAP_ID = X_MAP_ID
201 for update of MAP_ID nowait;
202 recinfo c%rowtype;
203
204 cursor c1 is select
205 LABEL,
206 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
207 from CS_KB_CTXT_REPO_MAPS_TL
208 where MAP_ID = X_MAP_ID
209 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
210 for update of MAP_ID nowait;
211 begin
212 open c;
213 fetch c into recinfo;
214 if (c%notfound) then
215 close c;
216 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
217 app_exception.raise_exception;
218 end if;
219 close c;
220 if ( (recinfo.REPOSITORY_ID = X_REPOSITORY_ID)
221 AND (recinfo.CONTEXT_ID = X_CONTEXT_ID)
222 AND (recinfo.MAPPING_ORDER = X_MAPPING_ORDER)
223 AND ((recinfo.START_DATE_ACTIVE = X_START_DATE_ACTIVE)
224 OR ((recinfo.START_DATE_ACTIVE is null) AND (X_START_DATE_ACTIVE is null)))
225 AND ((recinfo.END_DATE_ACTIVE = X_END_DATE_ACTIVE)
226 OR ((recinfo.END_DATE_ACTIVE is null) AND (X_END_DATE_ACTIVE is null)))
227 AND ((recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
228 OR ((recinfo.OBJECT_VERSION_NUMBER is null) AND (X_OBJECT_VERSION_NUMBER is null)))
229 AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
230 OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
231 AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
232 OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
233 AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
234 OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
235 AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
236 OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
237 AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
238 OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
239 AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
240 OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
241 AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
242 OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
243 AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
244 OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
245 AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
246 OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
247 AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
248 OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
249 AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
250 OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
251 AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
252 OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
253 AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
254 OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
255 AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
256 OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
257 AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
258 OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
259 AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
260 OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
261 ) then
262 null;
263 else
264 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
265 app_exception.raise_exception;
266 end if;
267
268 for tlinfo in c1 loop
269 if (tlinfo.BASELANG = 'Y') then
270 if ( (tlinfo.LABEL = X_LABEL)
271 ) then
272 null;
273 else
274 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
275 app_exception.raise_exception;
276 end if;
277 end if;
278 end loop;
279 return;
280 end LOCK_ROW;
281
282 procedure UPDATE_ROW (
283 X_MAP_ID in NUMBER,
284 X_REPOSITORY_ID in NUMBER,
285 X_CONTEXT_ID in NUMBER,
286 X_MAPPING_ORDER in NUMBER,
287 X_START_DATE_ACTIVE in DATE,
288 X_END_DATE_ACTIVE in DATE,
289 X_OBJECT_VERSION_NUMBER in NUMBER,
290 X_ATTRIBUTE_CATEGORY in VARCHAR2,
291 X_ATTRIBUTE1 in VARCHAR2,
292 X_ATTRIBUTE2 in VARCHAR2,
293 X_ATTRIBUTE3 in VARCHAR2,
294 X_ATTRIBUTE4 in VARCHAR2,
295 X_ATTRIBUTE5 in VARCHAR2,
296 X_ATTRIBUTE6 in VARCHAR2,
297 X_ATTRIBUTE7 in VARCHAR2,
298 X_ATTRIBUTE8 in VARCHAR2,
299 X_ATTRIBUTE9 in VARCHAR2,
300 X_ATTRIBUTE10 in VARCHAR2,
301 X_ATTRIBUTE11 in VARCHAR2,
302 X_ATTRIBUTE12 in VARCHAR2,
303 X_ATTRIBUTE13 in VARCHAR2,
304 X_ATTRIBUTE14 in VARCHAR2,
305 X_ATTRIBUTE15 in VARCHAR2,
306 X_LABEL in VARCHAR2,
307 X_LAST_UPDATE_DATE in DATE,
308 X_LAST_UPDATED_BY in NUMBER,
309 X_LAST_UPDATE_LOGIN in NUMBER
310 ) is
311 begin
312 update CS_KB_CTXT_REPO_MAPS_B set
313 REPOSITORY_ID = X_REPOSITORY_ID,
314 CONTEXT_ID = X_CONTEXT_ID,
315 MAPPING_ORDER = X_MAPPING_ORDER,
316 START_DATE_ACTIVE = X_START_DATE_ACTIVE,
317 END_DATE_ACTIVE = X_END_DATE_ACTIVE,
318 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
319 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
320 ATTRIBUTE1 = X_ATTRIBUTE1,
321 ATTRIBUTE2 = X_ATTRIBUTE2,
322 ATTRIBUTE3 = X_ATTRIBUTE3,
323 ATTRIBUTE4 = X_ATTRIBUTE4,
324 ATTRIBUTE5 = X_ATTRIBUTE5,
325 ATTRIBUTE6 = X_ATTRIBUTE6,
326 ATTRIBUTE7 = X_ATTRIBUTE7,
327 ATTRIBUTE8 = X_ATTRIBUTE8,
328 ATTRIBUTE9 = X_ATTRIBUTE9,
329 ATTRIBUTE10 = X_ATTRIBUTE10,
330 ATTRIBUTE11 = X_ATTRIBUTE11,
331 ATTRIBUTE12 = X_ATTRIBUTE12,
332 ATTRIBUTE13 = X_ATTRIBUTE13,
333 ATTRIBUTE14 = X_ATTRIBUTE14,
334 ATTRIBUTE15 = X_ATTRIBUTE15,
335 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
336 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
337 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
338 where MAP_ID = X_MAP_ID;
339
340 if (sql%notfound) then
341 raise no_data_found;
342 end if;
343
344 update CS_KB_CTXT_REPO_MAPS_TL set
345 LABEL = X_LABEL,
346 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
347 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
348 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
349 SOURCE_LANG = userenv('LANG')
350 where MAP_ID = X_MAP_ID
351 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
352
353 if (sql%notfound) then
354 raise no_data_found;
355 end if;
356 end UPDATE_ROW;
357
358 procedure DELETE_ROW (
359 X_MAP_ID in NUMBER
360 ) is
361 begin
362 delete from CS_KB_CTXT_REPO_MAPS_TL
363 where MAP_ID = X_MAP_ID;
364
365 if (sql%notfound) then
366 raise no_data_found;
367 end if;
368
369 delete from CS_KB_CTXT_REPO_MAPS_B
370 where MAP_ID = X_MAP_ID;
371
372 if (sql%notfound) then
373 raise no_data_found;
374 end if;
375 end DELETE_ROW;
376
377 procedure ADD_LANGUAGE
378 is
379 begin
380 delete from CS_KB_CTXT_REPO_MAPS_TL T
381 where not exists
382 (select NULL
383 from CS_KB_CTXT_REPO_MAPS_B B
384 where B.MAP_ID = T.MAP_ID
385 );
386
387 update CS_KB_CTXT_REPO_MAPS_TL T set (
388 LABEL
389 ) = (select
390 B.LABEL
391 from CS_KB_CTXT_REPO_MAPS_TL B
392 where B.MAP_ID = T.MAP_ID
393 and B.LANGUAGE = T.SOURCE_LANG)
394 where (
395 T.MAP_ID,
396 T.LANGUAGE
397 ) in (select
398 SUBT.MAP_ID,
399 SUBT.LANGUAGE
400 from CS_KB_CTXT_REPO_MAPS_TL SUBB, CS_KB_CTXT_REPO_MAPS_TL SUBT
401 where SUBB.MAP_ID = SUBT.MAP_ID
402 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
403 and (SUBB.LABEL <> SUBT.LABEL
404 ));
405
406 insert into CS_KB_CTXT_REPO_MAPS_TL (
407 MAP_ID,
408 LABEL,
409 CREATION_DATE,
410 CREATED_BY,
414 LANGUAGE,
411 LAST_UPDATE_DATE,
412 LAST_UPDATED_BY,
413 LAST_UPDATE_LOGIN,
415 SOURCE_LANG
416 ) select /*+ ORDERED */
417 B.MAP_ID,
418 B.LABEL,
419 B.CREATION_DATE,
420 B.CREATED_BY,
421 B.LAST_UPDATE_DATE,
422 B.LAST_UPDATED_BY,
423 B.LAST_UPDATE_LOGIN,
424 L.LANGUAGE_CODE,
425 B.SOURCE_LANG
426 from CS_KB_CTXT_REPO_MAPS_TL B, FND_LANGUAGES L
427 where L.INSTALLED_FLAG in ('I', 'B')
428 and B.LANGUAGE = userenv('LANG')
429 and not exists
430 (select NULL
431 from CS_KB_CTXT_REPO_MAPS_TL T
432 where T.MAP_ID = B.MAP_ID
433 and T.LANGUAGE = L.LANGUAGE_CODE);
434 end ADD_LANGUAGE;
435
436 PROCEDURE LOAD_ROW(
437 X_MAP_ID in NUMBER,
438 X_REPOSITORY_ID in NUMBER,
439 X_CONTEXT_ID in NUMBER,
440 X_MAPPING_ORDER in NUMBER,
441 X_START_DATE_ACTIVE in DATE,
442 X_END_DATE_ACTIVE in DATE,
443 X_LABEL in VARCHAR2,
444 X_OWNER in VARCHAR2,
445 X_LAST_UPDATE_DATE in VARCHAR2,
446 X_CUSTOM_MODE in VARCHAR2
447 ) IS
448 f_luby number; -- entity owner in file
449 f_ludate date; -- entity update date in file
450 db_luby number; -- entity owner in db
451 db_ludate date; -- entity update date in db
452 db_ovn NUMBER;
453 l_rowid rowid;
454 BEGIN
455
456 -- Translate a true null value to fnd_api.g_miss_char
457 -- Note table handler apis should be coded to treat
458 -- fnd_api.g_miss_* as true nulls, and not as no-change.
459 -- if (x_meaning = fnd_load_util.null_value) then
460 -- l_meaning := fnd_api.g_miss_char;
461 -- else
462 -- l_meaning := x_meaning;
463 -- end if;
464
465 -- Translate owner to file_last_updated_by
466 f_luby := fnd_load_util.owner_id(X_OWNER);
467
468 -- Translate char last_update_date to date
469 f_ludate := nvl(to_date(X_LAST_UPDATE_DATE, 'YYYY/MM/DD'), sysdate);
470 BEGIN
471 SELECT LAST_UPDATED_BY, LAST_UPDATE_DATE, OBJECT_VERSION_NUMBER
472 INTO db_luby, db_ludate, db_ovn
473 FROM CS_KB_CTXT_REPO_MAPS_B
474 WHERE MAP_ID = X_MAP_ID;
475
476 -- Test for customization and version
477 IF (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
478 db_ludate, X_CUSTOM_MODE)) THEN
479 -- Update existing row
480 UPDATE_ROW (
481 X_MAP_ID => X_MAP_ID,
482 X_REPOSITORY_ID => X_REPOSITORY_ID,
483 X_CONTEXT_ID => X_CONTEXT_ID,
484 X_MAPPING_ORDER => X_MAPPING_ORDER,
485 X_START_DATE_ACTIVE => X_START_DATE_ACTIVE,
486 X_END_DATE_ACTIVE => X_END_DATE_ACTIVE,
487 X_OBJECT_VERSION_NUMBER => db_ovn+1,
488 X_ATTRIBUTE_CATEGORY => null,
489 X_ATTRIBUTE1 => null,
490 X_ATTRIBUTE2 => null,
491 X_ATTRIBUTE3 => null,
492 X_ATTRIBUTE4 => null,
493 X_ATTRIBUTE5 => null,
494 X_ATTRIBUTE6 => null,
495 X_ATTRIBUTE7 => null,
496 X_ATTRIBUTE8 => null,
497 X_ATTRIBUTE9 => null,
498 X_ATTRIBUTE10 => null,
499 X_ATTRIBUTE11 => null,
500 X_ATTRIBUTE12 => null,
501 X_ATTRIBUTE13 => null,
502 X_ATTRIBUTE14 => null,
503 X_ATTRIBUTE15 => null,
504 X_LABEL => X_LABEL,
505 X_LAST_UPDATE_DATE => f_ludate,
506 X_LAST_UPDATED_BY => f_luby,
507 X_LAST_UPDATE_LOGIN => 0);
508
509
510 END IF;
511 EXCEPTION
512 WHEN no_data_found THEN
513 -- Record doesn't exist - insert in all cases
514 INSERT_ROW (
515 X_ROWID => l_rowid,
516 X_MAP_ID => X_MAP_ID,
517 X_REPOSITORY_ID => X_REPOSITORY_ID,
518 X_CONTEXT_ID => X_CONTEXT_ID,
519 X_MAPPING_ORDER => X_MAPPING_ORDER,
520 X_START_DATE_ACTIVE => X_START_DATE_ACTIVE,
521 X_END_DATE_ACTIVE => X_END_DATE_ACTIVE,
522 X_OBJECT_VERSION_NUMBER => 1,
523 X_ATTRIBUTE_CATEGORY => null,
524 X_ATTRIBUTE1 => null,
525 X_ATTRIBUTE2 => null,
526 X_ATTRIBUTE3 => null,
527 X_ATTRIBUTE4 => null,
528 X_ATTRIBUTE5 => null,
529 X_ATTRIBUTE6 => null,
530 X_ATTRIBUTE7 => null,
531 X_ATTRIBUTE8 => null,
532 X_ATTRIBUTE9 => null,
533 X_ATTRIBUTE10 => null,
534 X_ATTRIBUTE11 => null,
535 X_ATTRIBUTE12 => null,
536 X_ATTRIBUTE13 => null,
537 X_ATTRIBUTE14 => null,
538 X_ATTRIBUTE15 => null,
539 X_LABEL => X_LABEL,
540 X_CREATION_DATE => f_ludate,
541 X_CREATED_BY => f_luby,
542 X_LAST_UPDATE_DATE => f_ludate,
543 X_LAST_UPDATED_BY => f_luby,
544 X_LAST_UPDATE_LOGIN => 0);
545
546 END;
547
548 END LOAD_ROW;
549
550 PROCEDURE TRANSLATE_ROW(
551 X_MAP_ID in NUMBER,
552 X_LABEL in VARCHAR2,
553 X_OWNER in VARCHAR2,
554 X_LAST_UPDATE_DATE in VARCHAR2,
555 X_CUSTOM_MODE in VARCHAR2
556 ) is
557 row_id varchar2(64);
558 f_luby number; -- entity owner in file
559 f_ludate date; -- entity update date in file
560 db_luby number; -- entity owner in db
561 db_ludate date; -- entity update date in db
562 BEGIN
563
564 -- Translate owner to file_last_updated_by
565 f_luby := fnd_load_util.owner_id(X_OWNER);
566
567 -- Translate char last_update_date to date
568 f_ludate := nvl(to_date(X_LAST_UPDATE_DATE, 'YYYY/MM/DD'), sysdate);
569 BEGIN
570 SELECT LAST_UPDATED_BY, LAST_UPDATE_DATE
574 AND LANGUAGE = userenv('LANG');
571 INTO db_luby, db_ludate
572 FROM CS_KB_CTXT_REPO_MAPS_TL
573 WHERE MAP_ID = X_MAP_ID
575
576 -- Test for customization and version
577 IF (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
578 db_ludate, X_CUSTOM_MODE)) then
579 -- Update translations for this language
580 UPDATE CS_KB_CTXT_REPO_MAPS_TL SET
581 LABEL = decode(x_label,
582 fnd_load_util.null_value, null, -- Real null
583 null, LABEL, -- No change
584 x_label),
585 LAST_UPDATE_DATE = f_ludate,
586 LAST_UPDATED_BY = f_luby,
587 LAST_UPDATE_LOGIN = 0,
588 SOURCE_LANG = userenv('LANG')
589 WHERE userenv('LANG') in (LANGUAGE, SOURCE_LANG)
590 AND MAP_ID = X_MAP_ID;
591
592 END IF;
593
594 EXCEPTION
595 WHEN no_data_found THEN
596 -- Do not insert missing translations, skip this row
597 null;
598 END;
599
600 END TRANSLATE_ROW;
601
602 PROCEDURE LOAD_SEED_ROW(
603 X_UPLOAD_MODE in VARCHAR2,
604 X_MAP_ID in NUMBER,
605 X_REPOSITORY_ID in NUMBER,
606 X_CONTEXT_ID in NUMBER,
607 X_MAPPING_ORDER in NUMBER,
608 X_START_DATE_ACTIVE in DATE,
609 X_END_DATE_ACTIVE in DATE,
610 X_LABEL in VARCHAR2,
611 X_OWNER in VARCHAR2,
612 X_LAST_UPDATE_DATE in VARCHAR2,
613 X_CUSTOM_MODE in VARCHAR2) IS
614 BEGIN
615
616 if (X_UPLOAD_MODE = 'NLS') then
617 TRANSLATE_ROW(
618 X_MAP_ID,
619 X_LABEL,
620 X_OWNER,
621 X_LAST_UPDATE_DATE,
622 X_CUSTOM_MODE );
623 else
624 LOAD_ROW(
625 X_MAP_ID,
626 X_REPOSITORY_ID,
627 X_CONTEXT_ID,
628 X_MAPPING_ORDER,
629 X_START_DATE_ACTIVE,
630 X_END_DATE_ACTIVE,
631 X_LABEL,
632 X_OWNER,
633 X_LAST_UPDATE_DATE,
634 X_CUSTOM_MODE );
635 end if;
636
637 END LOAD_SEED_ROW;
638
639 END CS_KB_CTXT_REPO_MAPS_PKG;