DBA Data[Home] [Help]

PACKAGE BODY: APPS.ALR_ALERT_INSTALLATIONS_PKG

Source


1 package body ALR_ALERT_INSTALLATIONS_PKG as
2 /* $Header: ALRAINSB.pls 120.4.12010000.1 2008/07/27 06:58:18 appldev ship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_APPLICATION_ID in NUMBER,
6   X_ALERT_ID in NUMBER,
7   X_ORACLE_ID in NUMBER,
8   X_DATA_GROUP_ID in NUMBER,
9   X_ENABLED_FLAG in VARCHAR2,
10   X_CREATION_DATE in DATE,
11   X_CREATED_BY in NUMBER,
12   X_LAST_UPDATE_DATE in DATE,
13   X_LAST_UPDATED_BY in NUMBER,
14   X_LAST_UPDATE_LOGIN in NUMBER
15 ) is
16 
17   /* oracle_id and data_group_id can be null */
18   cursor C is select ROWID from ALR_ALERT_INSTALLATIONS
19     where APPLICATION_ID = X_APPLICATION_ID
20     and ALERT_ID = X_ALERT_ID
21     and (((ORACLE_ID is null)
22       and (X_ORACLE_ID is null))
23       or ((ORACLE_ID is not null)
24       and (ORACLE_ID = X_ORACLE_ID)))
25     and (((DATA_GROUP_ID is null)
26       and (X_DATA_GROUP_ID is null))
27       or ((DATA_GROUP_ID is not null)
28       and (DATA_GROUP_ID = X_DATA_GROUP_ID)))
29     ;
30 begin
31   insert into ALR_ALERT_INSTALLATIONS (
32     APPLICATION_ID,
33     ALERT_ID,
34     ORACLE_ID,
35     DATA_GROUP_ID,
36     ENABLED_FLAG,
37     LAST_UPDATE_DATE,
38     LAST_UPDATED_BY,
39     CREATION_DATE,
40     CREATED_BY,
41     LAST_UPDATE_LOGIN
42   ) values (
43     X_APPLICATION_ID,
44     X_ALERT_ID,
45     X_ORACLE_ID,
46     X_DATA_GROUP_ID,
47     X_ENABLED_FLAG,
48     X_LAST_UPDATE_DATE,
49     X_LAST_UPDATED_BY,
50     X_CREATION_DATE,
51     X_CREATED_BY,
52     X_LAST_UPDATE_LOGIN
53   );
54 
55   open c;
56   fetch c into X_ROWID;
57   if (c%notfound) then
58     close c;
59     raise no_data_found;
60   end if;
61   close c;
62 
63 end INSERT_ROW;
64 
65 procedure LOAD_ROW (
66   X_APPLICATION_SHORT_NAME in VARCHAR2,
67   X_ALERT_NAME in VARCHAR2,
68   X_ORACLE_USERNAME in VARCHAR2,
69   X_DATA_GROUP_NAME in VARCHAR2,
70   X_OWNER in VARCHAR2,
71   X_ENABLED_FLAG in VARCHAR2,
72   X_LAST_UPDATE_DATE in VARCHAR2,
73   X_CUSTOM_MODE in VARCHAR2
74 ) is
75     l_user_id number := 0;
76     l_app_id  number := 0;
77     l_alert_id number := 0;
78     l_oracle_id number := null;
79     l_data_group_id number := null;
80     l_row_id varchar2(64);
81 
82     f_luby    number;  -- entity owner in file
83     f_ludate  date;    -- entity update date in file
84     db_luby   number;  -- entity owner in db
85     db_ludate date;    -- entity update date in db
86 
87 begin
88 --  DBMS_SESSION.SET_SQL_TRACE(TRUE);
89 --  insert into applsys.nancy values  ('l_user_id', l_user_id);
90 --  commit;
91 
92      -- Translate owner to file_last_updated_by
93   f_luby := fnd_load_util.owner_id(X_OWNER);
94 
95  -- Translate char last_update_date to date
96   f_ludate := nvl(to_date(x_last_update_date, 'YYYY/MM/DD'), sysdate);
97 
98   select APPLICATION_ID into l_app_id
99   from FND_APPLICATION
100   where APPLICATION_SHORT_NAME = X_APPLICATION_SHORT_NAME;
101 
102   select ALERT_ID into l_alert_id
103   from ALR_ALERTS
104   where APPLICATION_ID = l_app_id
105   and ALERT_NAME = X_ALERT_NAME;
106 
107   if (X_ORACLE_USERNAME is not null) then
108     select ORACLE_ID into l_oracle_id
109     from FND_ORACLE_USERID
110     where ORACLE_USERNAME = X_ORACLE_USERNAME;
111   end if;
112 
113   if (X_DATA_GROUP_NAME is not null) then
114     select ORGANIZATION_ID into l_data_group_id
115    from HR_OPERATING_UNITS
116    where NAME = X_DATA_GROUP_NAME;
117  end if;
118 
119 
120   select last_updated_by, last_update_date
121   into  db_luby, db_ludate
122   from ALR_ALERT_INSTALLATIONS
123   where application_id = l_app_id
124   and   alert_id = l_alert_id
125   and   ((data_group_id is null and l_data_group_id is null) or
126         data_group_id = l_data_group_id)
127   and   ((oracle_id is null and l_oracle_id is null) or
128 	oracle_id = l_oracle_id);
129 
130   if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,db_ludate,
131                                 x_custom_mode)) then
132 
133   ALR_ALERT_INSTALLATIONS_PKG.UPDATE_ROW(
134     X_APPLICATION_ID => l_app_id,
135     X_ALERT_ID => l_alert_id,
136     X_ORACLE_ID => l_oracle_id,
137     X_DATA_GROUP_ID => l_data_group_id,
138     X_ENABLED_FLAG => X_ENABLED_FLAG,
139     X_LAST_UPDATE_DATE => f_ludate,
140     X_LAST_UPDATED_BY => f_luby,
141     X_LAST_UPDATE_LOGIN => 0 );
142 
143 end if;
144 
145 --  DBMS_SESSION.SET_SQL_TRACE(FALSE);
146 exception
147 
148   when NO_DATA_FOUND then
149 
150 --  insert into applsys.nancy values  ('insert l_user_id', l_user_id);
151 --  commit;
152 
153   ALR_ALERT_INSTALLATIONS_PKG.INSERT_ROW(
154     X_ROWID => l_row_id,
155     X_APPLICATION_ID => l_app_id,
156     X_ALERT_ID => l_alert_id,
157     X_ORACLE_ID => l_oracle_id,
158     X_DATA_GROUP_ID => l_data_group_id,
159     X_ENABLED_FLAG => X_ENABLED_FLAG,
160     X_CREATION_DATE => f_ludate,
161     X_CREATED_BY => f_luby,
162     X_LAST_UPDATE_DATE => f_ludate,
163     X_LAST_UPDATED_BY => f_luby,
164     X_LAST_UPDATE_LOGIN => 0 );
165 
166 --  DBMS_SESSION.SET_SQL_TRACE(FALSE);
167 end LOAD_ROW;
168 
169 procedure LOCK_ROW (
170   X_APPLICATION_ID in NUMBER,
171   X_ALERT_ID in NUMBER,
172   X_ORACLE_ID in NUMBER,
173   X_DATA_GROUP_ID in NUMBER,
174   X_ENABLED_FLAG in VARCHAR2
175 ) is
176   cursor c1 is select
177       ENABLED_FLAG,
178       APPLICATION_ID,
179       ALERT_ID,
180       ORACLE_ID,
181       DATA_GROUP_ID
182     from ALR_ALERT_INSTALLATIONS
183     where APPLICATION_ID = X_APPLICATION_ID
184     and ALERT_ID = X_ALERT_ID
185     and (((ORACLE_ID is null)
186       and (X_ORACLE_ID is null))
187       or ((ORACLE_ID is not null)
188       and (ORACLE_ID = X_ORACLE_ID)))
189     and (((DATA_GROUP_ID is null)
190       and (X_DATA_GROUP_ID is null))
191       or ((DATA_GROUP_ID is not null)
192       and (DATA_GROUP_ID = X_DATA_GROUP_ID)))
193     for update of APPLICATION_ID nowait;
194 begin
195   for recinfo in c1 loop
196       if (    (recinfo.APPLICATION_ID = X_APPLICATION_ID)
197           AND (recinfo.ALERT_ID = X_ALERT_ID)
198           AND ((recinfo.ORACLE_ID = X_ORACLE_ID)
199                OR ((recinfo.ORACLE_ID is null) AND (X_ORACLE_ID is null)))
200           AND ((recinfo.DATA_GROUP_ID = X_DATA_GROUP_ID)
201                OR ((recinfo.DATA_GROUP_ID is null) AND (X_DATA_GROUP_ID is null)))
202           AND (recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
203       ) then
204         null;
205       else
206         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
207         app_exception.raise_exception;
208       end if;
209   end loop;
210   return;
211 end LOCK_ROW;
212 
213 procedure UPDATE_ROW (
214   X_APPLICATION_ID in NUMBER,
215   X_ALERT_ID in NUMBER,
216   X_ORACLE_ID in NUMBER,
217   X_DATA_GROUP_ID in NUMBER,
218   X_ENABLED_FLAG in VARCHAR2,
219   X_LAST_UPDATE_DATE in DATE,
220   X_LAST_UPDATED_BY in NUMBER,
221   X_LAST_UPDATE_LOGIN in NUMBER
222 ) is
223 begin
224   update ALR_ALERT_INSTALLATIONS set
225     ENABLED_FLAG = X_ENABLED_FLAG,
226     APPLICATION_ID = X_APPLICATION_ID,
227     ALERT_ID = X_ALERT_ID,
228     ORACLE_ID = X_ORACLE_ID,
229     DATA_GROUP_ID = X_DATA_GROUP_ID,
230     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
231     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
232     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
233   where APPLICATION_ID = X_APPLICATION_ID
234   and ALERT_ID = X_ALERT_ID
235   and (((ORACLE_ID is null)
236     and (X_ORACLE_ID is null))
237     or ((ORACLE_ID is not null)
238     and (ORACLE_ID = X_ORACLE_ID)))
239   and (((DATA_GROUP_ID is null)
240     and (X_DATA_GROUP_ID is null))
241     or ((DATA_GROUP_ID is not null)
242     and (DATA_GROUP_ID = X_DATA_GROUP_ID)));
243 
244   if (sql%notfound) then
245     raise no_data_found;
246   end if;
247 end UPDATE_ROW;
248 
249 procedure DELETE_ROW (
250   X_APPLICATION_ID in NUMBER,
251   X_ALERT_ID in NUMBER,
252   X_ORACLE_ID in NUMBER,
253   X_DATA_GROUP_ID in NUMBER
254 ) is
255 begin
256   delete from ALR_ALERT_INSTALLATIONS
257   where APPLICATION_ID = X_APPLICATION_ID
258   and ALERT_ID = X_ALERT_ID
259   and (((ORACLE_ID is null)
260     and (X_ORACLE_ID is null))
261     or ((ORACLE_ID is not null)
262     and (ORACLE_ID = X_ORACLE_ID)))
263   and (((DATA_GROUP_ID is null)
264     and (X_DATA_GROUP_ID is null))
265     or ((DATA_GROUP_ID is not null)
266     and (DATA_GROUP_ID = X_DATA_GROUP_ID)));
267 
268   if (sql%notfound) then
269     raise no_data_found;
270   end if;
271 
272 end DELETE_ROW;
273 
274 end ALR_ALERT_INSTALLATIONS_PKG;