DBA Data[Home] [Help]

PACKAGE BODY: APPS.CN_SYIN_RULESETS_PKG

Source


4 
1 PACKAGE BODY cn_syin_rulesets_pkg AS
2 -- $Header: cnsyinib.pls 120.9 2006/01/13 03:55:37 hanaraya ship $
3 
5 -- =================================================================================
6 -- Procedure Name : Populate_Fields
7 -- History
8 --			Tony Lower		Created
9 -- =================================================================================
10 PROCEDURE Populate_fields (X_column_id		number,
11 			   X_column_name IN OUT NOCOPY	varchar2) IS
12   BEGIN
13 
17     END IF;
14     IF X_column_id IS NOT NULL THEN
15       SELECT name INTO X_column_name FROM cn_obj_columns_v
16 	WHERE column_id = X_column_id;
18 
19   END Populate_Fields;
20 
21 
22 
23 -- =================================================================================
24 -- Procedure Name : insert_row
25 -- History
26 --			Tony Lower		Created
27 --  Feb-25-99         Harlen Chen             Change to new insert_row for MLS
28 -- =================================================================================
29 
30 procedure INSERT_ROW
31    (
32    X_ROWID in out NOCOPY VARCHAR2,
33    X_RULESET_ID in NUMBER := FND_API.G_MISS_NUM,
34    X_RULESET_STATUS in VARCHAR2 := FND_API.G_MISS_CHAR,
35    X_DESTINATION_COLUMN_ID in NUMBER := FND_API.G_MISS_NUM,
36    X_REPOSITORY_ID in NUMBER := FND_API.G_MISS_NUM,
37    X_NAME in VARCHAR2 := FND_API.G_MISS_CHAR,
38    x_module_type IN VARCHAR2 := fnd_api.g_miss_char,
39    x_start_date IN DATE := fnd_api.g_miss_date,
40    x_end_date IN DATE := fnd_api.g_miss_date,
41    X_CREATION_DATE in DATE := FND_API.G_MISS_DATE,
42    X_CREATED_BY in NUMBER := FND_API.G_MISS_NUM,
43    X_LAST_UPDATE_DATE in DATE := FND_API.G_MISS_DATE,
44    X_LAST_UPDATED_BY in NUMBER := FND_API.G_MISS_NUM,
45    X_LAST_UPDATE_LOGIN in NUMBER := FND_API.G_MISS_NUM,
46    X_ORG_ID in NUMBER := FND_API.G_MISS_NUM)
47   IS
48 
49 
50      l_rowid ROWID;
51 
52 BEGIN
53 
54 
55   insert into CN_RULESETS_ALL_B
56     (
57      RULESET_STATUS,
58      RULESET_ID,
59      DESTINATION_COLUMN_ID,
60      REPOSITORY_ID,
61      start_date,
62      end_date,
63      module_type,
64      CREATION_DATE,
65      CREATED_BY,
66      LAST_UPDATE_DATE,
67      LAST_UPDATED_BY,
68      LAST_UPDATE_LOGIN,
69      OBJECT_VERSION_NUMBER,
70      ORG_ID
71      ) values
72     (
73      x_RULESET_STATUS,
74      x_RULESET_ID,
75      x_DESTINATION_COLUMN_ID,
76      x_REPOSITORY_ID,
77      x_start_date,
78      x_end_date,
79      x_module_type,
80      x_CREATION_DATE,
81      x_CREATED_BY,
82      x_LAST_UPDATE_DATE,
83      x_LAST_UPDATED_BY,
84      x_LAST_UPDATE_LOGIN,
85      1,
86      x_org_id
87      );
88 
89   insert into CN_RULESETS_ALL_TL (
90     CREATED_BY,
91     LAST_UPDATE_DATE,
92     LAST_UPDATED_BY,
93     LAST_UPDATE_LOGIN,
94     CREATION_DATE,
95     NAME,
96     RULESET_ID,
97     LANGUAGE,
98     SOURCE_LANG,
99     ORG_ID
100   ) select
101     x_CREATED_BY,
102     x_LAST_UPDATE_DATE,
103     x_LAST_UPDATED_BY,
104     x_LAST_UPDATE_LOGIN,
105     x_CREATION_DATE,
106     x_NAME,
107     x_RULESET_ID,
108     L.LANGUAGE_CODE,
109     userenv('LANG'),
110     x_org_id
111   from FND_LANGUAGES L
112   where L.INSTALLED_FLAG in ('I', 'B')
113  and not exists
114     (select NULL
115     from CN_RULESETS_ALL_TL T
116     where T.RULESET_ID = x_RULESET_ID
117     and T.LANGUAGE = L.language_code AND
118     T.ORG_ID=x_org_id);
119 
120 
121 
122 -- 04-MAR-99 RC Commented out following code since rule_id
123 -- for base rule should be -1002
124 --  SELECT cn_rules_s.NEXTVAL
125 --    INTO  l_new_rule_id
126 --    FROM dual;
127 
128  cn_syin_rules_pkg.insert_row_into_cn_rules_only(
129   x_rowid => l_rowid,
130   X_RULE_ID => -1002,
131   X_RULESET_ID => X_ruleset_id,
132   X_NAME => 'BASE_RULE',
133   X_ORG_ID => X_ORG_ID);
134 
135 
136 end INSERT_ROW;
137 
138 
139 
140 procedure UPDATE_ROW
141   (
142   X_RULESET_ID in NUMBER,
143   X_OBJECT_VERSION_NUMBER IN NUMBER,
144   X_RULESET_STATUS in VARCHAR2,
145   X_DESTINATION_COLUMN_ID in NUMBER,
146   X_REPOSITORY_ID in NUMBER,
147   x_start_date IN DATE,
148   x_end_date IN DATE,
149    X_NAME in VARCHAR2,
150    x_module_type IN VARCHAR2,
151   X_LAST_UPDATE_DATE in DATE,
152   X_LAST_UPDATED_BY in NUMBER,
153   X_LAST_UPDATE_LOGIN in NUMBER,
154   X_ORG_ID in NUMBER
155 ) is
156 BEGIN
157 
158   update CN_RULESETS_ALL_B set
159     RULESET_STATUS = X_RULESET_STATUS,
160     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
161     DESTINATION_COLUMN_ID = X_DESTINATION_COLUMN_ID,
162     REPOSITORY_ID = X_REPOSITORY_ID,
163     start_date = x_start_date,
164     end_date = x_end_date,
165     module_type = x_module_type,
166     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
167     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
168     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
169   where RULESET_ID = x_ruleset_id  AND
170   ORG_ID=X_ORG_ID;
171 
172   if (sql%notfound) then
173     raise no_data_found;
174   end if;
175 
176   update CN_RULESETS_ALL_TL set
177     NAME = X_NAME,
178     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
179     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
180     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
181     SOURCE_LANG = userenv('LANG')
182   where RULESET_ID = X_RULESET_ID
183   and userenv('LANG') in (LANGUAGE, SOURCE_LANG)  AND
184    ORG_ID=X_ORG_ID;
185 
186   if (sql%notfound) then
187     raise no_data_found;
188   end if;
189 end UPDATE_ROW;
190 
191 procedure DELETE_ROW (
192   X_RULESET_ID in NUMBER,
193   X_ORG_ID IN NUMBER
194 ) is
195 begin
196   delete from CN_RULESETS_ALL_TL
200   if (sql%notfound) then
197   where RULESET_ID = x_ruleset_id  AND
198   ORG_ID=X_ORG_ID;
199 
201     raise no_data_found;
202   end if;
203 
204   delete from CN_RULESETS_ALL_B
205   where RULESET_ID = x_ruleset_id  AND
206   ORG_ID=X_ORG_ID;
207 
208   if (sql%notfound) then
209     raise no_data_found;
210   end if;
211 end DELETE_ROW;
212 
213 procedure ADD_LANGUAGE
214 is
215 begin
216   delete from CN_RULESETS_ALL_TL T
217   where not exists
218     (select NULL
219     from CN_RULESETS_ALL_B B
220     where B.RULESET_ID = T.ruleset_id
221     and   B.ORG_ID = T.ORG_ID
222     );
223 
227       B.NAME
224   update CN_RULESETS_ALL_TL T set (
225       NAME
226     ) = (select
228     from CN_RULESETS_ALL_TL B
229     where B.RULESET_ID = T.RULESET_ID
230     and B.LANGUAGE = T.source_lang
231     and   B.ORG_ID = T.ORG_ID 	 )
232   where (
233       T.RULESET_ID,
234       T.LANGUAGE
235   ) in (select
236       SUBT.RULESET_ID,
237       SUBT.LANGUAGE
238     from CN_RULESETS_ALL_TL SUBB, CN_RULESETS_ALL_TL SUBT
239     where SUBB.RULESET_ID = SUBT.RULESET_ID
240     and SUBB.LANGUAGE = SUBT.source_lang
241     and   SUBB.ORG_ID = SUBT.ORG_ID
242     and (SUBB.NAME <> SUBT.name
243       or (SUBB.NAME is null and SUBT.NAME is not null)
244       or (SUBB.NAME is not null and SUBT.NAME is null)
245   ));
246 
247   insert into CN_RULESETS_ALL_TL (
248     ORG_ID,
249     CREATED_BY,
250     LAST_UPDATE_DATE,
251     LAST_UPDATED_BY,
252     LAST_UPDATE_LOGIN,
253     CREATION_DATE,
254     NAME,
255     RULESET_ID,
256     LANGUAGE,
257     SOURCE_LANG
258   ) select
259     B.ORG_ID,
260     B.CREATED_BY,
261     B.LAST_UPDATE_DATE,
262     B.LAST_UPDATED_BY,
263     B.LAST_UPDATE_LOGIN,
264     B.CREATION_DATE,
265     B.NAME,
266     B.RULESET_ID,
267     L.LANGUAGE_CODE,
268     B.SOURCE_LANG
269   from CN_RULESETS_ALL_TL B, FND_LANGUAGES L
270   where L.INSTALLED_FLAG in ('I', 'B')
271   and B.LANGUAGE = userenv('LANG')
272   and not exists
273     (select NULL
274     from CN_RULESETS_ALL_TL T
275     where T.RULESET_ID = B.RULESET_ID
276     and T.LANGUAGE = L.LANGUAGE_CODE
277     and   T.ORG_ID = B.ORG_ID );
278 end ADD_LANGUAGE;
279 
280 -- --------------------------------------------------------------------+
281 -- Procedure : LOAD_ROW
282 -- Description : Called by FNDLOAD to upload seed datas, this procedure
283 --    only handle seed datas. ORG_ID = -3113
284 -- --------------------------------------------------------------------+
285 
286 PROCEDURE LOAD_ROW
287   ( x_ruleset_id IN NUMBER,
288     x_destination_column_id  IN NUMBER,
289     x_repository_id   IN NUMBER,
290     x_name IN VARCHAR2,
291     x_ruleset_status in VARCHAR2,
292     x_start_date IN DATE,
293     x_end_date IN DATE,
294     x_owner IN VARCHAR2,
295     x_org_id IN NUMBER) IS
296 
297        user_id NUMBER;
298 
299 BEGIN
300    -- Validate input data
301    IF (x_ruleset_id IS NULL) OR (x_name IS NULL)
302      OR (x_destination_column_id IS NULL) OR (x_repository_id IS NULL)
303        OR (x_ruleset_status IS NULL) THEN
304       GOTO end_load_row;
305    END IF;
306 
307    IF (x_owner IS NOT NULL) AND (x_owner = 'SEED') THEN
308       user_id := 1;
309     ELSE
310       user_id := 0;
311    END IF;
312    -- Load The record to _B table
313    UPDATE cn_rulesets_all_b SET
314      destination_column_id = x_destination_column_id,
315      repository_id = x_repository_id,
319      last_update_login = 0
316      ruleset_status = x_ruleset_status,
317      last_update_date = sysdate,
318      last_updated_by = user_id,
320      WHERE ruleset_id = x_ruleset_id and org_id=x_org_id ;
321 
322    IF (SQL%NOTFOUND) THEN
323       -- Insert new record to _B table
324       INSERT INTO cn_rulesets_all_b
325 	(RULESET_ID,
326 	 DESTINATION_COLUMN_ID,
327 	 REPOSITORY_ID,
328 	 RULESET_STATUS,
329 	 CREATION_DATE,
330 	 CREATED_BY,
331 	 LAST_UPDATE_DATE,
332 	 LAST_UPDATED_BY,
333 	 LAST_UPDATE_LOGIN,
334 	 ORG_ID
335 	 ) VALUES
336 	(X_RULESET_ID,
337 	 X_DESTINATION_COLUMN_ID,
338 	 X_REPOSITORY_ID,
339 	 X_RULESET_STATUS,
340 	 sysdate,
341 	 user_id,
342 	 sysdate,
343 	 user_id,
344 	 0,
345 	 x_org_id
346 	 );
347    END IF;
348    -- Load The record to _TL table
349    UPDATE cn_rulesets_all_tl  SET
350      name = x_name,
351      last_update_date = sysdate,
352      last_updated_by = user_id,
353      last_update_login = 0,
354      source_lang = userenv('LANG')
355      WHERE ruleset_id = x_ruleset_id AND org_id=x_org_id
356      AND userenv('LANG') IN (LANGUAGE, SOURCE_LANG);
357 
358    IF (SQL%NOTFOUND) THEN
359       -- Insert new record to _TL table
360       INSERT INTO cn_rulesets_all_tl
361 	(ruleset_id,
362 	 name,
363 	 creation_date,
364 	 created_by,
365 	 last_update_date,
366 	 last_updated_by,
367 	 last_update_login,
368 	 language,
369 	 source_lang,
370 	 org_id)
371 	SELECT
372 	x_ruleset_id,
373 	x_name,
374 	sysdate,
375 	user_id,
376 	sysdate,
377 	user_id,
378 	0,
379 	l.language_code,
380 	userenv('LANG'),
381 	x_org_id
382 	FROM fnd_languages l
383 	WHERE l.installed_flag IN ('I', 'B')
384 	AND NOT EXISTS
385 	(SELECT NULL
386 	 FROM cn_rulesets_all_tl t
387 	 WHERE t.ruleset_id = x_ruleset_id and t.org_id=x_org_id
388 	 AND t.language = l.language_code);
389    END IF;
390    << end_load_row >>
391      NULL;
392 END LOAD_ROW ;
393 
394 -- --------------------------------------------------------------------+
395 -- Procedure : TRANSLATE_ROW
396 -- Description : Called by FNDLOAD to translate seed datas, this procedure
397 --    only handle seed datas. ORG_ID = -3113
398 -- --------------------------------------------------------------------+
399 PROCEDURE TRANSLATE_ROW
400   ( x_ruleset_id IN NUMBER,
401     x_name IN VARCHAR2,
402     x_owner IN VARCHAR2,
403     x_org_id in number) IS
404     user_id NUMBER;
405 BEGIN
406     -- Validate input data
407    IF (x_ruleset_id IS NULL) OR (x_name IS NULL) THEN
408       GOTO end_translate_row;
409    END IF;
410 
411    IF (x_owner IS NOT NULL) AND (x_owner = 'SEED') THEN
412       user_id := 1;
413     ELSE
414       user_id := 0;
415    END IF;
416    -- Update the translation
417    UPDATE cn_rulesets_all_tl  SET
418      name = x_name,
419      last_update_date = sysdate,
420      last_updated_by = user_id,
421      last_update_login = 0,
422      source_lang = userenv('LANG')
423      WHERE ruleset_id = x_ruleset_id and org_id=x_org_id
424      AND userenv('LANG') IN (LANGUAGE, SOURCE_LANG);
425 
426    << end_translate_row >>
427      NULL;
428 END TRANSLATE_ROW ;
429 
430 
431 END cn_syin_rulesets_pkg;