DBA Data[Home] [Help]

PACKAGE BODY: APPS.FEM_COL_POPULATION_TMPLT_PKG

Source


1 package body FEM_COL_POPULATION_TMPLT_PKG as
2 /* $Header: FEMCOLPOPB.pls 120.0 2005/06/06 21:20:56 appldev noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_COL_POP_TEMPLT_OBJ_DEF_ID in NUMBER,
6   X_SOURCE_TABLE_NAME in VARCHAR2,
7   X_TARGET_COLUMN_NAME in VARCHAR2,
8   X_TARGET_TABLE_NAME in VARCHAR2,
9   X_DATA_POPULATION_METHOD_CODE in VARCHAR2,
10   X_SOURCE_COLUMN_NAME in VARCHAR2,
11   X_DIMENSION_ID in NUMBER,
12   X_ATTRIBUTE_ID in NUMBER,
13   X_ATTRIBUTE_VERSION_ID in NUMBER,
14   X_AGGREGATION_METHOD in VARCHAR2,
15   X_CONSTANT_NUMERIC_VALUE in NUMBER,
16   X_CONSTANT_ALPHANUMERIC_VALUE in VARCHAR2,
17   X_CONSTANT_DATE_VALUE in DATE,
18   X_OBJECT_VERSION_NUMBER in NUMBER,
19   X_SYSTEM_RESERVED_FLAG in VARCHAR2,
20   X_ENG_PROC_PARAM in VARCHAR2,
21   X_PARAMETER_FLAG in VARCHAR2,
22   X_DESCRIPTION in VARCHAR2,
23   X_CREATION_DATE in DATE,
24   X_CREATED_BY in NUMBER,
25   X_LAST_UPDATE_DATE in DATE,
26   X_LAST_UPDATED_BY in NUMBER,
27   X_LAST_UPDATE_LOGIN in NUMBER
28 ) is
29   cursor C is select ROWID from FEM_COL_POPULATION_TMPLT_B
30     where COL_POP_TEMPLT_OBJ_DEF_ID = X_COL_POP_TEMPLT_OBJ_DEF_ID
31     and SOURCE_TABLE_NAME = X_SOURCE_TABLE_NAME
32     and TARGET_COLUMN_NAME = X_TARGET_COLUMN_NAME
33     and TARGET_TABLE_NAME = X_TARGET_TABLE_NAME
34     ;
35 begin
36   insert into FEM_COL_POPULATION_TMPLT_B (
37     COL_POP_TEMPLT_OBJ_DEF_ID,
38     TARGET_TABLE_NAME,
39     TARGET_COLUMN_NAME,
40     DATA_POPULATION_METHOD_CODE,
41     SOURCE_TABLE_NAME,
42     SOURCE_COLUMN_NAME,
43     DIMENSION_ID,
44     ATTRIBUTE_ID,
45     ATTRIBUTE_VERSION_ID,
46     AGGREGATION_METHOD,
47     CONSTANT_NUMERIC_VALUE,
48     CONSTANT_ALPHANUMERIC_VALUE,
49     CONSTANT_DATE_VALUE,
50     OBJECT_VERSION_NUMBER,
51     SYSTEM_RESERVED_FLAG,
52     ENG_PROC_PARAM,
53     PARAMETER_FLAG,
54     CREATION_DATE,
55     CREATED_BY,
56     LAST_UPDATE_DATE,
57     LAST_UPDATED_BY,
58     LAST_UPDATE_LOGIN
59   ) values (
60     X_COL_POP_TEMPLT_OBJ_DEF_ID,
61     X_TARGET_TABLE_NAME,
62     X_TARGET_COLUMN_NAME,
63     X_DATA_POPULATION_METHOD_CODE,
64     X_SOURCE_TABLE_NAME,
65     X_SOURCE_COLUMN_NAME,
66     X_DIMENSION_ID,
67     X_ATTRIBUTE_ID,
68     X_ATTRIBUTE_VERSION_ID,
69     X_AGGREGATION_METHOD,
70     X_CONSTANT_NUMERIC_VALUE,
71     X_CONSTANT_ALPHANUMERIC_VALUE,
72     X_CONSTANT_DATE_VALUE,
73     X_OBJECT_VERSION_NUMBER,
74     X_SYSTEM_RESERVED_FLAG,
75     X_ENG_PROC_PARAM,
76     X_PARAMETER_FLAG,
77     X_CREATION_DATE,
78     X_CREATED_BY,
79     X_LAST_UPDATE_DATE,
80     X_LAST_UPDATED_BY,
81     X_LAST_UPDATE_LOGIN
82   );
83 
84   insert into FEM_COL_POPULATION_TMPLT_TL (
85     COL_POP_TEMPLT_OBJ_DEF_ID,
86     TARGET_TABLE_NAME,
87     TARGET_COLUMN_NAME,
88     SOURCE_TABLE_NAME,
89     CREATED_BY,
90     CREATION_DATE,
91     LAST_UPDATED_BY,
92     LAST_UPDATE_DATE,
93     LAST_UPDATE_LOGIN,
94     DESCRIPTION,
95     LANGUAGE,
96     SOURCE_LANG
97   ) select
98     X_COL_POP_TEMPLT_OBJ_DEF_ID,
99     X_TARGET_TABLE_NAME,
100     X_TARGET_COLUMN_NAME,
101     X_SOURCE_TABLE_NAME,
102     X_CREATED_BY,
103     X_CREATION_DATE,
104     X_LAST_UPDATED_BY,
105     X_LAST_UPDATE_DATE,
106     X_LAST_UPDATE_LOGIN,
107     X_DESCRIPTION,
108     L.LANGUAGE_CODE,
109     userenv('LANG')
110   from FND_LANGUAGES L
111   where L.INSTALLED_FLAG in ('I', 'B')
112   and not exists
113     (select NULL
114     from FEM_COL_POPULATION_TMPLT_TL T
115     where T.COL_POP_TEMPLT_OBJ_DEF_ID = X_COL_POP_TEMPLT_OBJ_DEF_ID
116     and T.SOURCE_TABLE_NAME = X_SOURCE_TABLE_NAME
117     and T.TARGET_COLUMN_NAME = X_TARGET_COLUMN_NAME
118     and T.TARGET_TABLE_NAME = X_TARGET_TABLE_NAME
119     and T.LANGUAGE = L.LANGUAGE_CODE);
120 
121   open c;
122   fetch c into X_ROWID;
123   if (c%notfound) then
124     close c;
125     raise no_data_found;
126   end if;
127   close c;
128 
129 end INSERT_ROW;
130 
131 procedure LOCK_ROW (
132   X_COL_POP_TEMPLT_OBJ_DEF_ID in NUMBER,
133   X_SOURCE_TABLE_NAME in VARCHAR2,
134   X_TARGET_COLUMN_NAME in VARCHAR2,
135   X_TARGET_TABLE_NAME in VARCHAR2,
136   X_DATA_POPULATION_METHOD_CODE in VARCHAR2,
137   X_SOURCE_COLUMN_NAME in VARCHAR2,
138   X_DIMENSION_ID in NUMBER,
139   X_ATTRIBUTE_ID in NUMBER,
140   X_ATTRIBUTE_VERSION_ID in NUMBER,
141   X_AGGREGATION_METHOD in VARCHAR2,
142   X_CONSTANT_NUMERIC_VALUE in NUMBER,
143   X_CONSTANT_ALPHANUMERIC_VALUE in VARCHAR2,
144   X_CONSTANT_DATE_VALUE in DATE,
145   X_OBJECT_VERSION_NUMBER in NUMBER,
146   X_SYSTEM_RESERVED_FLAG in VARCHAR2,
147   X_ENG_PROC_PARAM in VARCHAR2,
148   X_PARAMETER_FLAG in VARCHAR2,
149   X_DESCRIPTION in VARCHAR2
150 ) is
151   cursor c is select
152       DATA_POPULATION_METHOD_CODE,
153       SOURCE_COLUMN_NAME,
154       DIMENSION_ID,
155       ATTRIBUTE_ID,
156       ATTRIBUTE_VERSION_ID,
157       AGGREGATION_METHOD,
158       CONSTANT_NUMERIC_VALUE,
159       CONSTANT_ALPHANUMERIC_VALUE,
160       CONSTANT_DATE_VALUE,
161       OBJECT_VERSION_NUMBER,
162       SYSTEM_RESERVED_FLAG,
163       ENG_PROC_PARAM,
164       PARAMETER_FLAG
165     from FEM_COL_POPULATION_TMPLT_B
166     where COL_POP_TEMPLT_OBJ_DEF_ID = X_COL_POP_TEMPLT_OBJ_DEF_ID
167     and SOURCE_TABLE_NAME = X_SOURCE_TABLE_NAME
168     and TARGET_COLUMN_NAME = X_TARGET_COLUMN_NAME
169     and TARGET_TABLE_NAME = X_TARGET_TABLE_NAME
170     for update of COL_POP_TEMPLT_OBJ_DEF_ID nowait;
171   recinfo c%rowtype;
172 
173   cursor c1 is select
174       DESCRIPTION,
175       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
176     from FEM_COL_POPULATION_TMPLT_TL
177     where COL_POP_TEMPLT_OBJ_DEF_ID = X_COL_POP_TEMPLT_OBJ_DEF_ID
178     and SOURCE_TABLE_NAME = X_SOURCE_TABLE_NAME
179     and TARGET_COLUMN_NAME = X_TARGET_COLUMN_NAME
180     and TARGET_TABLE_NAME = X_TARGET_TABLE_NAME
181     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
182     for update of COL_POP_TEMPLT_OBJ_DEF_ID nowait;
183 begin
184   open c;
185   fetch c into recinfo;
186   if (c%notfound) then
187     close c;
188     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
189     app_exception.raise_exception;
190   end if;
191   close c;
192   if (    (recinfo.DATA_POPULATION_METHOD_CODE = X_DATA_POPULATION_METHOD_CODE)
193       AND ((recinfo.SOURCE_COLUMN_NAME = X_SOURCE_COLUMN_NAME)
194            OR ((recinfo.SOURCE_COLUMN_NAME is null) AND (X_SOURCE_COLUMN_NAME is null)))
195       AND ((recinfo.DIMENSION_ID = X_DIMENSION_ID)
196            OR ((recinfo.DIMENSION_ID is null) AND (X_DIMENSION_ID is null)))
197       AND ((recinfo.ATTRIBUTE_ID = X_ATTRIBUTE_ID)
198            OR ((recinfo.ATTRIBUTE_ID is null) AND (X_ATTRIBUTE_ID is null)))
199       AND ((recinfo.ATTRIBUTE_VERSION_ID = X_ATTRIBUTE_VERSION_ID)
200            OR ((recinfo.ATTRIBUTE_VERSION_ID is null) AND (X_ATTRIBUTE_VERSION_ID is null)))
201       AND ((recinfo.AGGREGATION_METHOD = X_AGGREGATION_METHOD)
202            OR ((recinfo.AGGREGATION_METHOD is null) AND (X_AGGREGATION_METHOD is null)))
203       AND ((recinfo.CONSTANT_NUMERIC_VALUE = X_CONSTANT_NUMERIC_VALUE)
204            OR ((recinfo.CONSTANT_NUMERIC_VALUE is null) AND (X_CONSTANT_NUMERIC_VALUE is null)))
205       AND ((recinfo.CONSTANT_ALPHANUMERIC_VALUE = X_CONSTANT_ALPHANUMERIC_VALUE)
206            OR ((recinfo.CONSTANT_ALPHANUMERIC_VALUE is null) AND (X_CONSTANT_ALPHANUMERIC_VALUE is null)))
207       AND ((recinfo.CONSTANT_DATE_VALUE = X_CONSTANT_DATE_VALUE)
208            OR ((recinfo.CONSTANT_DATE_VALUE is null) AND (X_CONSTANT_DATE_VALUE is null)))
209       AND (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
210       AND (recinfo.SYSTEM_RESERVED_FLAG = X_SYSTEM_RESERVED_FLAG)
211       AND ((recinfo.ENG_PROC_PARAM = X_ENG_PROC_PARAM)
212            OR ((recinfo.ENG_PROC_PARAM is null) AND (X_ENG_PROC_PARAM is null)))
213       AND ((recinfo.PARAMETER_FLAG = X_PARAMETER_FLAG)
214            OR ((recinfo.PARAMETER_FLAG is null) AND (X_PARAMETER_FLAG is null)))
215   ) then
216     null;
217   else
218     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
219     app_exception.raise_exception;
220   end if;
221 
222   for tlinfo in c1 loop
223     if (tlinfo.BASELANG = 'Y') then
224       if (    ((tlinfo.DESCRIPTION = X_DESCRIPTION)
225                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
226       ) then
227         null;
228       else
229         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
230         app_exception.raise_exception;
231       end if;
232     end if;
233   end loop;
234   return;
235 end LOCK_ROW;
236 
237 procedure UPDATE_ROW (
238   X_COL_POP_TEMPLT_OBJ_DEF_ID in NUMBER,
239   X_SOURCE_TABLE_NAME in VARCHAR2,
240   X_TARGET_COLUMN_NAME in VARCHAR2,
241   X_TARGET_TABLE_NAME in VARCHAR2,
242   X_DATA_POPULATION_METHOD_CODE in VARCHAR2,
243   X_SOURCE_COLUMN_NAME in VARCHAR2,
244   X_DIMENSION_ID in NUMBER,
245   X_ATTRIBUTE_ID in NUMBER,
246   X_ATTRIBUTE_VERSION_ID in NUMBER,
247   X_AGGREGATION_METHOD in VARCHAR2,
248   X_CONSTANT_NUMERIC_VALUE in NUMBER,
249   X_CONSTANT_ALPHANUMERIC_VALUE in VARCHAR2,
250   X_CONSTANT_DATE_VALUE in DATE,
251   X_OBJECT_VERSION_NUMBER in NUMBER,
252   X_SYSTEM_RESERVED_FLAG in VARCHAR2,
253   X_ENG_PROC_PARAM in VARCHAR2,
254   X_PARAMETER_FLAG in VARCHAR2,
255   X_DESCRIPTION in VARCHAR2,
256   X_LAST_UPDATE_DATE in DATE,
257   X_LAST_UPDATED_BY in NUMBER,
258   X_LAST_UPDATE_LOGIN in NUMBER
259 ) is
260 begin
261   update FEM_COL_POPULATION_TMPLT_B set
262     DATA_POPULATION_METHOD_CODE = X_DATA_POPULATION_METHOD_CODE,
263     SOURCE_COLUMN_NAME = X_SOURCE_COLUMN_NAME,
264     DIMENSION_ID = X_DIMENSION_ID,
265     ATTRIBUTE_ID = X_ATTRIBUTE_ID,
266     ATTRIBUTE_VERSION_ID = X_ATTRIBUTE_VERSION_ID,
267     AGGREGATION_METHOD = X_AGGREGATION_METHOD,
268     CONSTANT_NUMERIC_VALUE = X_CONSTANT_NUMERIC_VALUE,
269     CONSTANT_ALPHANUMERIC_VALUE = X_CONSTANT_ALPHANUMERIC_VALUE,
270     CONSTANT_DATE_VALUE = X_CONSTANT_DATE_VALUE,
271     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
272     SYSTEM_RESERVED_FLAG = X_SYSTEM_RESERVED_FLAG,
273     ENG_PROC_PARAM = X_ENG_PROC_PARAM,
274     PARAMETER_FLAG = X_PARAMETER_FLAG,
275     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
276     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
277     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
278   where COL_POP_TEMPLT_OBJ_DEF_ID = X_COL_POP_TEMPLT_OBJ_DEF_ID
279   and SOURCE_TABLE_NAME = X_SOURCE_TABLE_NAME
280   and TARGET_COLUMN_NAME = X_TARGET_COLUMN_NAME
281   and TARGET_TABLE_NAME = X_TARGET_TABLE_NAME;
282 
283   if (sql%notfound) then
284     raise no_data_found;
285   end if;
286 
287   update FEM_COL_POPULATION_TMPLT_TL set
288     DESCRIPTION = X_DESCRIPTION,
289     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
290     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
291     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
292     SOURCE_LANG = userenv('LANG')
293   where COL_POP_TEMPLT_OBJ_DEF_ID = X_COL_POP_TEMPLT_OBJ_DEF_ID
294   and SOURCE_TABLE_NAME = X_SOURCE_TABLE_NAME
295   and TARGET_COLUMN_NAME = X_TARGET_COLUMN_NAME
296   and TARGET_TABLE_NAME = X_TARGET_TABLE_NAME
297   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
298 
299   if (sql%notfound) then
300     raise no_data_found;
301   end if;
302 end UPDATE_ROW;
303 
304 procedure DELETE_ROW (
305   X_COL_POP_TEMPLT_OBJ_DEF_ID in NUMBER,
306   X_SOURCE_TABLE_NAME in VARCHAR2,
307   X_TARGET_COLUMN_NAME in VARCHAR2,
308   X_TARGET_TABLE_NAME in VARCHAR2
309 ) is
310 begin
311   delete from FEM_COL_POPULATION_TMPLT_TL
312   where COL_POP_TEMPLT_OBJ_DEF_ID = X_COL_POP_TEMPLT_OBJ_DEF_ID
313   and SOURCE_TABLE_NAME = X_SOURCE_TABLE_NAME
314   and TARGET_COLUMN_NAME = X_TARGET_COLUMN_NAME
315   and TARGET_TABLE_NAME = X_TARGET_TABLE_NAME;
316 
317   if (sql%notfound) then
318     raise no_data_found;
319   end if;
320 
321   delete from FEM_COL_POPULATION_TMPLT_B
322   where COL_POP_TEMPLT_OBJ_DEF_ID = X_COL_POP_TEMPLT_OBJ_DEF_ID
323   and SOURCE_TABLE_NAME = X_SOURCE_TABLE_NAME
324   and TARGET_COLUMN_NAME = X_TARGET_COLUMN_NAME
325   and TARGET_TABLE_NAME = X_TARGET_TABLE_NAME;
326 
327   if (sql%notfound) then
328     raise no_data_found;
329   end if;
330 end DELETE_ROW;
331 
332 procedure ADD_LANGUAGE
333 is
334 begin
335   delete from FEM_COL_POPULATION_TMPLT_TL T
336   where not exists
337     (select NULL
338     from FEM_COL_POPULATION_TMPLT_B B
339     where B.COL_POP_TEMPLT_OBJ_DEF_ID = T.COL_POP_TEMPLT_OBJ_DEF_ID
340     and B.SOURCE_TABLE_NAME = T.SOURCE_TABLE_NAME
341     and B.TARGET_COLUMN_NAME = T.TARGET_COLUMN_NAME
342     and B.TARGET_TABLE_NAME = T.TARGET_TABLE_NAME
343     );
344 
348       B.DESCRIPTION
345   update FEM_COL_POPULATION_TMPLT_TL T set (
346       DESCRIPTION
347     ) = (select
349     from FEM_COL_POPULATION_TMPLT_TL B
350     where B.COL_POP_TEMPLT_OBJ_DEF_ID = T.COL_POP_TEMPLT_OBJ_DEF_ID
351     and B.SOURCE_TABLE_NAME = T.SOURCE_TABLE_NAME
352     and B.TARGET_COLUMN_NAME = T.TARGET_COLUMN_NAME
353     and B.TARGET_TABLE_NAME = T.TARGET_TABLE_NAME
354     and B.LANGUAGE = T.SOURCE_LANG)
355   where (
356       T.COL_POP_TEMPLT_OBJ_DEF_ID,
357       T.SOURCE_TABLE_NAME,
358       T.TARGET_COLUMN_NAME,
359       T.TARGET_TABLE_NAME,
360       T.LANGUAGE
361   ) in (select
362       SUBT.COL_POP_TEMPLT_OBJ_DEF_ID,
363       SUBT.SOURCE_TABLE_NAME,
364       SUBT.TARGET_COLUMN_NAME,
365       SUBT.TARGET_TABLE_NAME,
366       SUBT.LANGUAGE
367     from FEM_COL_POPULATION_TMPLT_TL SUBB, FEM_COL_POPULATION_TMPLT_TL SUBT
368     where SUBB.COL_POP_TEMPLT_OBJ_DEF_ID = SUBT.COL_POP_TEMPLT_OBJ_DEF_ID
369     and SUBB.SOURCE_TABLE_NAME = SUBT.SOURCE_TABLE_NAME
370     and SUBB.TARGET_COLUMN_NAME = SUBT.TARGET_COLUMN_NAME
371     and SUBB.TARGET_TABLE_NAME = SUBT.TARGET_TABLE_NAME
372     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
373     and (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
374       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
375       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
376   ));
377 
378   insert into FEM_COL_POPULATION_TMPLT_TL (
379     COL_POP_TEMPLT_OBJ_DEF_ID,
380     TARGET_TABLE_NAME,
381     TARGET_COLUMN_NAME,
382     SOURCE_TABLE_NAME,
383     CREATED_BY,
384     CREATION_DATE,
385     LAST_UPDATED_BY,
386     LAST_UPDATE_DATE,
387     LAST_UPDATE_LOGIN,
388     DESCRIPTION,
389     LANGUAGE,
390     SOURCE_LANG
391   ) select /*+ ORDERED */
392     B.COL_POP_TEMPLT_OBJ_DEF_ID,
393     B.TARGET_TABLE_NAME,
394     B.TARGET_COLUMN_NAME,
395     B.SOURCE_TABLE_NAME,
396     B.CREATED_BY,
397     B.CREATION_DATE,
398     B.LAST_UPDATED_BY,
399     B.LAST_UPDATE_DATE,
400     B.LAST_UPDATE_LOGIN,
401     B.DESCRIPTION,
402     L.LANGUAGE_CODE,
403     B.SOURCE_LANG
404   from FEM_COL_POPULATION_TMPLT_TL B, FND_LANGUAGES L
405   where L.INSTALLED_FLAG in ('I', 'B')
406   and B.LANGUAGE = userenv('LANG')
407   and not exists
408     (select NULL
409     from FEM_COL_POPULATION_TMPLT_TL T
410     where T.COL_POP_TEMPLT_OBJ_DEF_ID = B.COL_POP_TEMPLT_OBJ_DEF_ID
411     and T.SOURCE_TABLE_NAME = B.SOURCE_TABLE_NAME
412     and T.TARGET_COLUMN_NAME = B.TARGET_COLUMN_NAME
413     and T.TARGET_TABLE_NAME = B.TARGET_TABLE_NAME
414     and T.LANGUAGE = L.LANGUAGE_CODE);
415 end ADD_LANGUAGE;
416 
417 end FEM_COL_POPULATION_TMPLT_PKG;