DBA Data[Home] [Help]

PACKAGE BODY: APPS.XDO_CONFIG_PROPERTIES_PKG

Source


1 package body XDO_CONFIG_PROPERTIES_PKG as
2 /* $Header: XDOCFGPB.pls 120.3 2006/05/23 19:50:38 jyeung noship $ */
3 
4 procedure INSERT_ROW (
5           P_PROPERTY_CODE in VARCHAR2,
6           P_PROPERTY_NAME in VARCHAR2,
7           P_CATEGORY      in VARCHAR2,
8           P_XDO_CFG_NAME  in VARCHAR2,
9           P_LOOKUP_TYPE   in VARCHAR2,
10           P_SORT_ORDER    in NUMBER,
11           P_CREATION_DATE in DATE,
12           P_CREATED_BY in NUMBER,
13           P_LAST_UPDATE_DATE in DATE,
14           P_LAST_UPDATED_BY in NUMBER,
15           P_LAST_UPDATE_LOGIN in NUMBER
16 ) is
17 begin
18   insert into XDO_CONFIG_PROPERTIES_B (
19           PROPERTY_CODE,
20           CATEGORY,
21           XDO_CFG_NAME,
22           LOOKUP_TYPE,
23           SORT_ORDER,
24           CREATION_DATE,
25           CREATED_BY,
26           LAST_UPDATE_DATE,
27           LAST_UPDATED_BY,
28           LAST_UPDATE_LOGIN
29   ) values (
30           P_PROPERTY_CODE,
31           P_CATEGORY,
32           P_XDO_CFG_NAME,
33           P_LOOKUP_TYPE,
34           P_SORT_ORDER,
35           P_CREATION_DATE,
36           P_CREATED_BY,
37           P_LAST_UPDATE_DATE,
38           P_LAST_UPDATED_BY,
39           P_LAST_UPDATE_LOGIN
40   );
41 
42   insert into XDO_CONFIG_PROPERTIES_TL (
43     PROPERTY_CODE,
44     PROPERTY_NAME,
45     CREATION_DATE,
46     CREATED_BY,
47     LAST_UPDATE_DATE,
48     LAST_UPDATED_BY,
49     LAST_UPDATE_LOGIN,
50     LANGUAGE,
51     SOURCE_LANG
52   ) select P_PROPERTY_CODE,
53            P_PROPERTY_NAME,
54            P_CREATION_DATE,
55            P_CREATED_BY,
56            P_LAST_UPDATE_DATE,
57            P_LAST_UPDATED_BY,
58            P_LAST_UPDATE_LOGIN,
59            L.LANGUAGE_CODE,
60            userenv('LANG')
61      from FND_LANGUAGES L
62     where L.INSTALLED_FLAG in ('I', 'B')
63       and not exists
64           (select NULL
65              from XDO_CONFIG_PROPERTIES_TL T
66             where T.PROPERTY_CODE = P_PROPERTY_CODE
67               and T.LANGUAGE = L.LANGUAGE_CODE);
68 
69 end INSERT_ROW;
70 
71 procedure UPDATE_ROW (
72           P_PROPERTY_CODE in VARCHAR2,
73           P_PROPERTY_NAME in VARCHAR2,
74           P_CATEGORY      in VARCHAR2,
75           P_XDO_CFG_NAME  in VARCHAR2,
76           P_LOOKUP_TYPE   in VARCHAR2,
77           P_SORT_ORDER    in NUMBER,
78           P_LAST_UPDATE_DATE in DATE,
79           P_LAST_UPDATED_BY in NUMBER,
80           P_LAST_UPDATE_LOGIN in NUMBER
81 ) is
82 begin
83   update XDO_CONFIG_PROPERTIES_B
84      set CATEGORY = P_CATEGORY,
85          XDO_CFG_NAME = P_XDO_CFG_NAME,
86          LOOKUP_TYPE = P_LOOKUP_TYPE,
87          SORT_ORDER = P_SORT_ORDER,
88          LAST_UPDATE_DATE = P_LAST_UPDATE_DATE,
89          LAST_UPDATED_BY = P_LAST_UPDATED_BY,
90          LAST_UPDATE_LOGIN = P_LAST_UPDATE_LOGIN
91   where PROPERTY_CODE = P_PROPERTY_CODE;
92 
93   if (sql%notfound) then
94     raise no_data_found;
95   end if;
96 
97   update XDO_CONFIG_PROPERTIES_TL set
98     PROPERTY_NAME = P_PROPERTY_NAME,
99     LAST_UPDATE_DATE = P_LAST_UPDATE_DATE,
100     LAST_UPDATED_BY = P_LAST_UPDATED_BY,
101     LAST_UPDATE_LOGIN = P_LAST_UPDATE_LOGIN,
102     SOURCE_LANG = userenv('LANG')
103   where PROPERTY_CODE = P_PROPERTY_CODE
104   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
105 
106   if (sql%notfound) then
107     raise no_data_found;
108   end if;
109 
110 end UPDATE_ROW;
111 
112 
113 procedure ADD_LANGUAGE is
114 begin
115   insert into XDO_CONFIG_PROPERTIES_TL (
116     PROPERTY_CODE,
117     PROPERTY_NAME,
118     CREATED_BY,
119     CREATION_DATE,
120     LAST_UPDATED_BY,
121     LAST_UPDATE_DATE,
122     LAST_UPDATE_LOGIN,
123     LANGUAGE,
124     SOURCE_LANG
125   ) select /*+ ORDERED */
126     B.PROPERTY_CODE,
127     B.PROPERTY_NAME,
128     B.CREATED_BY,
129     B.CREATION_DATE,
130     B.LAST_UPDATED_BY,
131     B.LAST_UPDATE_DATE,
132     B.LAST_UPDATE_LOGIN,
133     L.LANGUAGE_CODE,
134     B.SOURCE_LANG
135   from XDO_CONFIG_PROPERTIES_TL B, FND_LANGUAGES L
136   where L.INSTALLED_FLAG in ('I', 'B')
137   and B.LANGUAGE = userenv('LANG')
138   and not exists
139     (select NULL
140     from XDO_CONFIG_PROPERTIES_TL T
141     where T.PROPERTY_CODE = B.PROPERTY_CODE
142     and T.LANGUAGE = L.LANGUAGE_CODE);
143 end ADD_LANGUAGE;
144 
145 
146 procedure TRANSLATE_ROW (
147           P_PROPERTY_CODE in VARCHAR2,
148           P_PROPERTY_NAME in VARCHAR2,
149           P_LAST_UPDATE_DATE in VARCHAR2,
150           P_CUSTOM_MODE   in VARCHAR2,
151           P_OWNER         in VARCHAR2
152 ) is
153 
154   f_luby    number;  -- entity owner in file
155   f_ludate  date;    -- entity update date in file
156   db_luby   number;  -- entity owner in db
157   db_ludate date;    -- entity update date in db
158 
159 begin
160 
161    -- Translate owner to file_last_updated_by
162    f_luby := fnd_load_util.OWNER_ID(p_owner);
163 
164    -- Translate char last_update_date to date
165    f_ludate := nvl(to_date(p_last_update_date, 'YYYY/MM/DD'), sysdate);
166 
167    begin
168      select LAST_UPDATED_BY, LAST_UPDATE_DATE
169      into db_luby, db_ludate
170      from XDO_CONFIG_PROPERTIES_TL
171      where PROPERTY_CODE = P_PROPERTY_CODE
172      and LANGUAGE = userenv('LANG');
173 
174      -- Update record, honoring customization mode.
175      -- Record should be updated only if:
176      -- a. CUSTOM_MODE = FORCE, or
177      -- b. file owner is USER, db owner is SEED
178      -- c. owners are the same, and file_date > db_date
179      if (fnd_load_util.UPLOAD_TEST(
180                 p_file_id     => f_luby,
181                 p_file_lud    => f_ludate,
182                 p_db_id       => db_luby,
183                 p_db_lud      => db_ludate,
184                 p_custom_mode => p_custom_mode))
185      then
186        update XDO_CONFIG_PROPERTIES_TL
187           set PROPERTY_NAME = nvl(p_property_name, property_name),
188          SOURCE_LANG         = userenv('LANG'),
189          LAST_UPDATE_DATE    = f_ludate,
190          LAST_UPDATED_BY     = f_luby,
191          LAST_UPDATE_LOGIN   = 0
192        where PROPERTY_CODE = P_PROPERTY_CODE
193        and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
194      end if;
195    exception
196     when no_data_found then
197       null;
198    end;
199 end TRANSLATE_ROW;
200 
201 
202 procedure LOAD_ROW (
203           P_PROPERTY_CODE    in VARCHAR2,
204           P_PROPERTY_NAME    in VARCHAR2,
205           P_CATEGORY         in VARCHAR2,
206           P_XDO_CFG_NAME     in VARCHAR2,
207           P_LOOKUP_TYPE      in VARCHAR2,
208           P_SORT_ORDER       in NUMBER,
209           P_LAST_UPDATE_DATE in VARCHAR2,
210           P_CUSTOM_MODE      in VARCHAR2,
211           P_OWNER            in VARCHAR2
212 ) is
213 
214   f_luby    number;  -- entity owner in file
215   f_ludate  date;    -- entity update date in file
216   db_luby   number;  -- entity owner in db
217   db_ludate date;    -- entity update date in db
218 
219 begin
220 
221   -- Translate owner to file_last_updated_by
222   f_luby := fnd_load_util.owner_id(p_owner);
223 
224   -- Translate char last_update_date to date
225   f_ludate := nvl(to_date(p_last_update_date, 'YYYY/MM/DD'), sysdate);
226 
227   begin
228     select LAST_UPDATED_BY, LAST_UPDATE_DATE
229       into db_luby, db_ludate
230       from xdo_config_properties_b
231      where property_code = p_property_code;
232 
233      if (fnd_load_util.UPLOAD_TEST(p_file_id      => f_luby,
234                                    p_file_lud     => f_ludate,
235                                    p_db_id        => db_luby,
236                                    p_db_lud       => db_ludate,
237                                    p_custom_mode  => p_custom_mode))
238      then
239        UPDATE_ROW (
240           P_PROPERTY_CODE => P_PROPERTY_CODE,
241           P_PROPERTY_NAME => P_PROPERTY_NAME,
242           P_CATEGORY      => P_CATEGORY,
243           P_XDO_CFG_NAME  => P_XDO_CFG_NAME,
244           P_LOOKUP_TYPE   => P_LOOKUP_TYPE,
245           P_SORT_ORDER    => P_SORT_ORDER,
246           P_LAST_UPDATE_DATE  => f_ludate,
247           P_LAST_UPDATED_BY   => f_luby,
248           P_LAST_UPDATE_LOGIN => 0
249        );
250      end if;
251 
252   exception when no_data_found then
253 
254       INSERT_ROW (
255           P_PROPERTY_CODE => P_PROPERTY_CODE,
256           P_PROPERTY_NAME => P_PROPERTY_NAME,
257           P_CATEGORY      => P_CATEGORY,
258           P_XDO_CFG_NAME  => P_XDO_CFG_NAME,
259           P_LOOKUP_TYPE   => P_LOOKUP_TYPE,
260           P_SORT_ORDER    => P_SORT_ORDER,
261           P_CREATION_DATE => f_ludate,
262           P_CREATED_BY    => f_luby,
263           P_LAST_UPDATE_DATE  => f_ludate,
264           P_LAST_UPDATED_BY   => f_luby,
265           P_LAST_UPDATE_LOGIN => 0
266       );
267 
268   end;
269 
270 end LOAD_ROW;
271 
272 end XDO_CONFIG_PROPERTIES_PKG;