DBA Data[Home] [Help]

PACKAGE BODY: APPS.BSC_DB_MEASURE_GROUPS_PKG

Source


1 package body BSC_DB_MEASURE_GROUPS_PKG as
2 /* $Header: BSCMSGRB.pls 120.1 2005/08/02 03:09:19 ashankar noship $ */
3 
4 -- mdamle 04/23/2003 - Measure Definer - Added sequence for Group Id
5 -- Changed x_measure_group_id to out parameter.
6 PROCEDURE INSERT_ROW
7 (
8     X_MEASURE_GROUP_ID    OUT NOCOPY NUMBER
9   , X_HELP                IN         VARCHAR2
10   , X_SHORT_NAME          IN         VARCHAR2 := NULL
11 )IS
12   l_count   NUMBER;
13   sql_stmt  VARCHAR2(2000);
14 BEGIN
15 
16   -- mdamle 07/25/2003 - Added check for duplicate name
17   FND_MSG_PUB.INITIALIZE;
18   SELECT COUNT(1)
19   INTO   l_count
20   FROM   bsc_db_measure_groups_tl
21   WHERE  help = x_help;
22 
23   IF (l_count > 0) THEN
24         FND_MESSAGE.SET_NAME('BSC','BSC_D_SOURCE_EXIST');
25         FND_MSG_PUB.ADD;
26   ELSE
27     SELECT bsc_db_measure_groups_s.nextVal
28     INTO   X_MEASURE_GROUP_ID
29     FROM   dual;
30 
31     BSC_DB_MEASURE_GROUPS_PKG.Insert_Row_Values
32     (
33         x_Measure_group_id  =>  X_MEASURE_GROUP_ID
34       , x_Help              =>  X_HELP
35       , x_Short_name        =>  X_SHORT_NAME
36     );
37 
38   END IF;
39 
40 END INSERT_ROW;
41 
42 procedure LOCK_ROW (
43   X_MEASURE_GROUP_ID in NUMBER,
44   X_HELP in VARCHAR2
45 ) is
46   cursor c1 is select
47       HELP,
48       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
49     from BSC_DB_MEASURE_GROUPS_TL
50     where MEASURE_GROUP_ID = X_MEASURE_GROUP_ID
51     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
52     for update of MEASURE_GROUP_ID nowait;
53 begin
54   for tlinfo in c1 loop
55     if (tlinfo.BASELANG = 'Y') then
56       if (    (tlinfo.HELP = X_HELP)
57       ) then
58         null;
59       else
60         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
61         app_exception.raise_exception;
62       end if;
63     end if;
64   end loop;
65   return;
66 end LOCK_ROW;
67 
68 
69 PROCEDURE UPDATE_ROW
70 (
71     X_MEASURE_GROUP_ID  IN NUMBER
72   , X_HELP              IN VARCHAR2
73   , X_SHORT_NAME        IN VARCHAR2:= NULL
74 )IS
75 BEGIN
76 
77  UPDATE bsc_db_measure_groups_tl
78  SET    help        = X_HELP
79       , short_name  = X_SHORT_NAME
80       , source_lang = USERENV('LANG')
81  WHERE measure_group_id = X_MEASURE_GROUP_ID
82  AND   USERENV('LANG') IN (LANGUAGE, SOURCE_LANG);
83 
84  IF (sql%notfound) THEN
85    RAISE NO_DATA_FOUND;
86  END IF;
87 
88 END UPDATE_ROW;
89 
90 procedure TRANSLATE_ROW (
91   X_MEASURE_GROUP_ID in NUMBER,
92   X_HELP in VARCHAR2
93 ) is
94 begin
95   update BSC_DB_MEASURE_GROUPS_TL set
96     HELP = nvl(X_HELP,HELP),
97     SOURCE_LANG = userenv('LANG')
98   where MEASURE_GROUP_ID = X_MEASURE_GROUP_ID
99   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
100 
101   if (sql%notfound) then
102     raise no_data_found;
103   end if;
104 end TRANSLATE_ROW;
105 
106 
107 procedure DELETE_ROW (
108   X_MEASURE_GROUP_ID in NUMBER
109 ) is
110 begin
111   delete from BSC_DB_MEASURE_GROUPS_TL
112   where MEASURE_GROUP_ID = X_MEASURE_GROUP_ID;
113 
114   if (sql%notfound) then
115     raise no_data_found;
116   end if;
117 
118 end DELETE_ROW;
119 
120 
121 PROCEDURE ADD_LANGUAGE
122 IS
123 BEGIN
124 
125   UPDATE bsc_db_measure_groups_tl t
126   SET (
127         help
128       ) = (
129            SELECT b.help
130            FROM   bsc_db_measure_groups_tl b
131            WHERE  b.Measure_group_id = t.Measure_group_id
132            AND    b.language = t.Source_lang)
133   WHERE (
134       t.Measure_group_id,
135       t.language
136   ) IN (
137         SELECT subt.Measure_group_id
138               ,subt.language
139         FROM  bsc_db_measure_groups_tl subb
140             , bsc_db_measure_groups_tl subt
141         WHERE subb.Measure_group_id = subt.Measure_group_id
142         AND   subb.language = subt.Source_lang
143         AND   (subb.help <> subt.help));
144 
145 
146   INSERT INTO bsc_db_measure_groups_tl
147   (  help
148    , measure_group_id
149    , language
150    , source_lang
151    , short_name
152   ) SELECT  b.Help
153           , b.Measure_group_id
154           , l.Language_code
155           , b.Source_lang
156           , b.Short_name
157     FROM  bsc_db_measure_groups_tl b
158         , fnd_languages l
159     WHERE l.Installed_flag IN ('I', 'B')
160     AND   b.language = USERENV('LANG')
161     AND NOT EXISTS (
162                     SELECT NULL
163                     FROM   bsc_db_measure_groups_tl t
164                     WHERE  t.Measure_group_id = b.Measure_group_id
165                     AND    t.language = l.language_code);
166 
167 END ADD_LANGUAGE;
168 
169 /*************************************************
170  Procedure    : Insert_Default_Meas_Row
171  Description  : This procedure is called from bscmsgrp.lct
172                 file.Pls don't modify this procedure.
173  Input        : Default measure group id <-1>
174               : <DEFAULT> help
175  Created BY   : ashankar 27-JUL-2005
176 /**************************************************/
177 
178 PROCEDURE Insert_Default_Meas_Row
179 (
180     x_Measure_group_id    IN    NUMBER
181   , x_Help                IN    VARCHAR2
182 )IS
183 BEGIN
184 
185       BSC_DB_MEASURE_GROUPS_PKG.Insert_Row_Values
186       (
187           x_Measure_group_id  =>  x_Measure_group_id
188         , x_Help              =>  x_Help
189         , x_Short_name        =>  NULL
190       );
191 END Insert_Default_Meas_Row;
192 
193 /*************************************************************************************************
194  Procedure    : Insert_Row_Values
195  Description  : This procedure insert values into bsc_db_measure_groups_tl table.
196  Input        : Measure group Id
197               : help
198               : short_name
199  Created BY   : ashankar 27-JUL-2005
200  Note         : Removed the dynamic SQL because BSC 5.2 MD/DD xdf files are included with BIS 4.0.9
201                 Verified BIS ARU 4122391 it contains bsc_db_measure_groups_tl.xdf version 115.3
202                 So SHORT_NAME column will always be there.
203 /***************************************************************************************************/
204 
205 PROCEDURE Insert_Row_Values
206 (
207     x_Measure_group_id    IN    NUMBER
208   , x_Help                IN    VARCHAR2
209   , x_Short_name          IN    VARCHAR2
210 )IS
211 BEGIN
212     INSERT INTO bsc_db_measure_groups_tl
213     ( short_name
214      , help
215      , measure_group_id
216      ,language
217      ,source_lang
218     ) SELECT  x_Short_name
219             , x_Help
220             , x_Measure_group_id
221             , l.LANGUAGE_CODE
222             , USERENV('LANG')
223       FROM  fnd_languages l
224       WHERE l.installed_flag IN ('I', 'B')
225       AND NOT EXISTS (
226                       SELECT NULL
227                       FROM   bsc_db_measure_groups_tl t
228                       WHERE  t.measure_group_id = x_Measure_group_id
229                       AND    t.language = l.language_code);
230 
231 END  Insert_Row_Values;
232 
233 
234 END BSC_DB_MEASURE_GROUPS_PKG;