DBA Data[Home] [Help]

PACKAGE BODY: APPS.BSC_SYS_IMAGES_MAP_PKG

Source


1 package body BSC_SYS_IMAGES_MAP_PKG as
2 /* $Header: BSCSSIMB.pls 115.7 2004/03/04 16:23:36 meastmon ship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_SOURCE_TYPE in NUMBER,
6   X_SOURCE_CODE in NUMBER,
7   X_TYPE in NUMBER,
8   X_IMAGE_ID in NUMBER,
9   X_CREATION_DATE in DATE,
10   X_CREATED_BY in NUMBER,
11   X_LAST_UPDATE_DATE in DATE,
12   X_LAST_UPDATED_BY in NUMBER,
13   X_LAST_UPDATE_LOGIN in NUMBER
14 ) is
15   cursor C is select ROWID from BSC_SYS_IMAGES_MAP_TL
16     where SOURCE_TYPE = X_SOURCE_TYPE
17     and SOURCE_CODE = X_SOURCE_CODE
18     and TYPE = X_TYPE
19     and LANGUAGE = userenv('LANG')
20     ;
21 begin
22   insert into BSC_SYS_IMAGES_MAP_TL (
23     SOURCE_TYPE,
24     SOURCE_CODE,
25     TYPE,
26     IMAGE_ID,
27     CREATION_DATE ,
28     CREATED_BY,
29     LAST_UPDATE_DATE,
30     LAST_UPDATED_BY ,
31     LAST_UPDATE_LOGIN,
32     LANGUAGE,
33     SOURCE_LANG
34   ) select
35 	  X_SOURCE_TYPE,
36 	  X_SOURCE_CODE,
37 	  X_TYPE,
38 	  X_IMAGE_ID,
39 	  X_CREATION_DATE ,
40 	  X_CREATED_BY,
41 	  X_LAST_UPDATE_DATE,
42 	  X_LAST_UPDATED_BY ,
43 	  X_LAST_UPDATE_LOGIN,
44 	  L.LANGUAGE_CODE,
45 	  userenv('LANG')
46   from FND_LANGUAGES L
47   where L.INSTALLED_FLAG in ('I', 'B')
48   and not exists
49     (select NULL
50     from BSC_SYS_IMAGES_MAP_TL T
51     where T.SOURCE_TYPE = X_SOURCE_TYPE
52     and T.SOURCE_CODE = X_SOURCE_CODE
53     and T.TYPE = X_TYPE
54     and T.LANGUAGE = L.LANGUAGE_CODE);
55 
56   open c;
57   fetch c into X_ROWID;
58   if (c%notfound) then
59     close c;
60     raise no_data_found;
61   end if;
62   close c;
63 
64 end INSERT_ROW;
65 
66 procedure LOCK_ROW (
67   X_SOURCE_TYPE in NUMBER,
68   X_SOURCE_CODE in NUMBER,
69   X_TYPE in NUMBER,
70   X_IMAGE_ID in NUMBER
71 ) is
72   cursor c1 is select
73         IMAGE_ID,
74       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
75     from BSC_SYS_IMAGES_MAP_TL
76     where SOURCE_TYPE = X_SOURCE_TYPE
77     and SOURCE_CODE = X_SOURCE_CODE
78     and TYPE = X_TYPE
79     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
80     for update of SOURCE_TYPE nowait;
81 begin
82   for tlinfo in c1 loop
83     if (tlinfo.BASELANG = 'Y') then
84       if (    (tlinfo.IMAGE_ID = X_IMAGE_ID)
85       ) then
86         null;
87       else
88         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
89         app_exception.raise_exception;
90       end if;
91     end if;
92   end loop;
93   return;
94 end LOCK_ROW;
95 
96 procedure UPDATE_ROW (
97   X_SOURCE_TYPE in NUMBER,
98   X_SOURCE_CODE in NUMBER,
99   X_TYPE in NUMBER,
100   X_IMAGE_ID in NUMBER,
101   X_CREATION_DATE in DATE,
102   X_CREATED_BY in NUMBER,
103   X_LAST_UPDATE_DATE in DATE,
104   X_LAST_UPDATED_BY in NUMBER,
105   X_LAST_UPDATE_LOGIN in NUMBER
106 ) is
107 begin
108   update BSC_SYS_IMAGES_MAP_TL set
109      IMAGE_ID = X_IMAGE_ID,
110      LAST_UPDATE_DATE = DECODE(LAST_UPDATED_BY,1,X_LAST_UPDATE_DATE,LAST_UPDATE_DATE),
111      LAST_UPDATED_BY = DECODE(LAST_UPDATED_BY,1,X_LAST_UPDATED_BY,LAST_UPDATED_BY),
112      LAST_UPDATE_LOGIN = DECODE(LAST_UPDATED_BY,1,X_LAST_UPDATE_LOGIN,LAST_UPDATE_LOGIN),
113      SOURCE_LANG = userenv('LANG')
114   where SOURCE_TYPE = X_SOURCE_TYPE
115   and SOURCE_CODE = X_SOURCE_CODE
116   and TYPE = X_TYPE
117   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
118 
119   if (sql%notfound) then
120     raise no_data_found;
121   end if;
122 end UPDATE_ROW;
123 
124 procedure DELETE_ROW (
125   X_SOURCE_TYPE in NUMBER,
126   X_SOURCE_CODE in NUMBER,
127   X_TYPE in NUMBER
128 ) is
129 begin
130   delete from BSC_SYS_IMAGES_MAP_TL
131   where SOURCE_TYPE = X_SOURCE_TYPE
132   and SOURCE_CODE = X_SOURCE_CODE
133   and TYPE = X_TYPE;
134 
135   if (sql%notfound) then
136     raise no_data_found;
137   end if;
138 
139 end DELETE_ROW;
140 
141 procedure ADD_LANGUAGE
142 is
143 l_user NUMBER;
144 begin
145 
146   -- Ref: bug#3482442 In corner cases this query can return more than one
147   -- row and it will fail. AUDSID is not PK. After meeting with
148   -- Vinod and Kris and Venu, we should use FNG_GLOBAL.user_id
149   l_user := BSC_APPS.fnd_global_user_id;
150 
151   update BSC_SYS_IMAGES_MAP_TL T set (
152     IMAGE_ID
153     ) = (select
154       B.IMAGE_ID
155     from BSC_SYS_IMAGES_MAP_TL B
156     where B.SOURCE_TYPE = T.SOURCE_TYPE
157     and B.SOURCE_CODE = T.SOURCE_CODE
158     and B.TYPE = T.TYPE
159     and B.LANGUAGE = T.SOURCE_LANG)
160   where (
161       T.SOURCE_TYPE,
162       T.SOURCE_CODE,
163       T.TYPE,
164       T.LANGUAGE
165   ) in (select
166       SUBT.SOURCE_TYPE,
167       SUBT.SOURCE_CODE,
168       SUBT.TYPE,
169       SUBT.LANGUAGE
170     from BSC_SYS_IMAGES_MAP_TL SUBB, BSC_SYS_IMAGES_MAP_TL SUBT
171     where SUBB.SOURCE_TYPE = SUBT.SOURCE_TYPE
172     and SUBB.SOURCE_CODE = SUBT.SOURCE_CODE
173     and SUBB.TYPE = SUBT.TYPE
174     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
175     and (SUBB.IMAGE_ID <> SUBT.IMAGE_ID
176   ));
177 
178   insert into BSC_SYS_IMAGES_MAP_TL (
179     SOURCE_TYPE,
180     SOURCE_CODE,
181     TYPE,
182     IMAGE_ID,
183     CREATION_DATE ,
184     CREATED_BY,
185     LAST_UPDATE_DATE,
186     LAST_UPDATED_BY ,
187     LAST_UPDATE_LOGIN,
188     LANGUAGE,
189     SOURCE_LANG
190   ) select
191     B.SOURCE_TYPE,
192     B.SOURCE_CODE,
193     B.TYPE,
194       B.IMAGE_ID,
195       SYSDATE,
196     l_user,
197     SYSDATE,
198     l_user,
199     l_user,
200     L.LANGUAGE_CODE,
201     B.SOURCE_LANG
202   from BSC_SYS_IMAGES_MAP_TL B, FND_LANGUAGES L
203   where L.INSTALLED_FLAG in ('I', 'B')
204   and B.LANGUAGE = userenv('LANG')
205   and not exists
206     (select NULL
207     from BSC_SYS_IMAGES_MAP_TL T
208     where T.SOURCE_TYPE = B.SOURCE_TYPE
209     and T.SOURCE_CODE = B.SOURCE_CODE
210     and T.TYPE = B.TYPE
211     and T.LANGUAGE = L.LANGUAGE_CODE);
212 end ADD_LANGUAGE;
213 
214 end BSC_SYS_IMAGES_MAP_PKG;