DBA Data[Home] [Help]

PACKAGE BODY: APPS.ALR_PERIODIC_SET_MEMBERS_PKG

Source


1 package body ALR_PERIODIC_SET_MEMBERS_PKG as
2 /* $Header: ALRPSTMB.pls 120.5.12010000.1 2008/07/27 06:58:53 appldev ship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_APPLICATION_ID in NUMBER,
6   X_PERIODIC_SET_ID in NUMBER,
7   X_CHILD_APPLICATION_ID in NUMBER,
8   X_CHILD_ALERT_ID in NUMBER,
9   X_CHILD_PERIODIC_SET_ID in NUMBER,
10   X_SEQUENCE in NUMBER,
11   X_ENABLED_FLAG in VARCHAR2,
12   X_END_DATE_ACTIVE in DATE,
13   X_CREATION_DATE in DATE,
14   X_CREATED_BY in NUMBER,
15   X_LAST_UPDATE_DATE in DATE,
16   X_LAST_UPDATED_BY in NUMBER,
17   X_LAST_UPDATE_LOGIN in NUMBER
18 ) is
19   /* sequence, child_alert_id, and child_periodic_set_id can be null */
20   cursor C is select ROWID from ALR_PERIODIC_SET_MEMBERS
21     where APPLICATION_ID = X_APPLICATION_ID
22     and PERIODIC_SET_ID = X_PERIODIC_SET_ID
23     and CHILD_APPLICATION_ID = X_CHILD_APPLICATION_ID
24     and ((CHILD_ALERT_ID is null)
25       or ((CHILD_ALERT_ID is not null)
26       and (CHILD_ALERT_ID = X_CHILD_ALERT_ID)))
27     and ((CHILD_PERIODIC_SET_ID is null)
28       or ((CHILD_PERIODIC_SET_ID is not null)
29       and (CHILD_PERIODIC_SET_ID = X_CHILD_PERIODIC_SET_ID)))
30     and ((SEQUENCE is null)
31       or ((SEQUENCE is not null)
32       and (SEQUENCE = X_SEQUENCE)))
33     ;
34 begin
35   insert into ALR_PERIODIC_SET_MEMBERS (
36     APPLICATION_ID,
37     PERIODIC_SET_ID,
38     SEQUENCE,
39     CHILD_APPLICATION_ID,
40     CHILD_ALERT_ID,
41     CHILD_PERIODIC_SET_ID,
42     LAST_UPDATED_BY,
43     LAST_UPDATE_DATE,
44     CREATED_BY,
45     CREATION_DATE,
46     LAST_UPDATE_LOGIN,
47     ENABLED_FLAG,
48     END_DATE_ACTIVE
49   ) values (
50     X_APPLICATION_ID,
51     X_PERIODIC_SET_ID,
52     X_SEQUENCE,
53     X_CHILD_APPLICATION_ID,
54     X_CHILD_ALERT_ID,
55     X_CHILD_PERIODIC_SET_ID,
56     X_LAST_UPDATED_BY,
57     X_LAST_UPDATE_DATE,
58     X_CREATED_BY,
59     X_CREATION_DATE,
60     X_LAST_UPDATE_LOGIN,
61     X_ENABLED_FLAG,
62     X_END_DATE_ACTIVE);
63 
64   open c;
65   fetch c into X_ROWID;
66   if (c%notfound) then
67     close c;
68     raise no_data_found;
69   end if;
70   close c;
71 
72 end INSERT_ROW;
73 
74 procedure LOAD_ROW (
75   X_APPLICATION_SHORT_NAME in VARCHAR2,
76   X_NAME in VARCHAR2,
77   X_SEQUENCE in VARCHAR2,
78   X_CHILD_APPLICATION_SHORT_NAME in VARCHAR2,
79   X_CHILD_ALERT_NAME in VARCHAR2,
80   X_CHILD_PERIODIC_SET_NAME in VARCHAR2,
81   X_OWNER in VARCHAR2,
82   X_ENABLED_FLAG in VARCHAR2,
83   X_END_DATE_ACTIVE in VARCHAR2,
84   X_LAST_UPDATE_DATE in VARCHAR2,
85   X_CUSTOM_MODE in VARCHAR2
86 ) is
87   l_user_id number := 0;
88   l_row_id varchar2(64);
89   l_app_id number := 0;
90   l_per_id number := 0;
91   l_child_app_id number := 0;
92   l_child_alert_id number;
93   l_child_per_id number;
94   l_seq number := 0;
95 
96   f_luby    number;  -- entity owner in file
97   f_ludate  date;    -- entity update date in file
98   db_luby   number;  -- entity owner in db
99   db_ludate date;    -- entity update date in db
100 
101 begin
102 
103   -- Translate owner to file_last_updated_by
104   f_luby := fnd_load_util.owner_id(X_OWNER);
105 
106   -- Translate char last_update_date to date
107   f_ludate := nvl(to_date(x_last_update_date, 'YYYY/MM/DD'), sysdate);
108 
109   select application_id into l_app_id
110   from fnd_application
111   where application_short_name = X_APPLICATION_SHORT_NAME;
112 
113   select periodic_set_id into l_per_id
114   from alr_periodic_sets
115   where application_id = l_app_id
116   and name = X_NAME;
117 
118   select application_id into l_child_app_id
119   from fnd_application
120   where application_short_name = X_CHILD_APPLICATION_SHORT_NAME;
121 
122   if X_CHILD_ALERT_NAME is not null then
123   	select alert_id into l_child_alert_id
124   	from alr_alerts
125   	where application_id = l_child_app_id
126   	and alert_name = X_CHILD_ALERT_NAME;
127   end if;
128 
129   if X_CHILD_PERIODIC_SET_NAME is not null then
130   	select periodic_set_id into l_child_per_id
131   	from alr_periodic_sets
132   	where application_id = l_child_app_id
133   	and name = X_CHILD_PERIODIC_SET_NAME;
134   end if;
135 
136   select last_updated_by, last_update_date
137   into  db_luby, db_ludate
138   from ALR_PERIODIC_SET_MEMBERS
139   where application_id = l_app_id
140   and   ((child_alert_id is not null
141         and child_alert_id = l_child_alert_id)
142         or  (child_alert_id is NULL and
143         l_child_alert_id is null))
144   and   child_application_id = l_child_app_id
145   and   ((child_periodic_set_id is not null
146          and child_periodic_set_id = l_child_per_id)
147          or (child_periodic_set_id is null
148          and l_child_per_id is null))
149   and   periodic_set_id = l_per_id
150   and   sequence = X_SEQUENCE;
151 
152  if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,db_ludate,
153                                 x_custom_mode)) then
154 
155   ALR_PERIODIC_SET_MEMBERS_PKG.UPDATE_ROW(
156     X_APPLICATION_ID => l_app_id,
157     X_PERIODIC_SET_ID => l_per_id,
158     X_CHILD_APPLICATION_ID => l_child_app_id,
159     X_CHILD_ALERT_ID => l_child_alert_id,
160     X_CHILD_PERIODIC_SET_ID => l_child_per_id,
161     X_SEQUENCE => to_number(X_SEQUENCE),
162     X_ENABLED_FLAG => X_ENABLED_FLAG,
163     X_END_DATE_ACTIVE => to_date(X_END_DATE_ACTIVE,
164                          'YYYY/MM/DD HH24:MI:SS'),
165     X_LAST_UPDATE_DATE => f_ludate,
166     X_LAST_UPDATED_BY => f_luby,
167     X_LAST_UPDATE_LOGIN => 0 );
168 
169 end if;
170 
171 exception
172   when NO_DATA_FOUND then
173 
174   ALR_PERIODIC_SET_MEMBERS_PKG.INSERT_ROW(
175     X_ROWID => l_row_id,
176     X_APPLICATION_ID => l_app_id,
177     X_PERIODIC_SET_ID => l_per_id,
178     X_CHILD_APPLICATION_ID => l_child_app_id,
179     X_CHILD_ALERT_ID => l_child_alert_id,
180     X_CHILD_PERIODIC_SET_ID => l_child_per_id,
181     X_SEQUENCE => to_number(X_SEQUENCE),
182     X_ENABLED_FLAG => X_ENABLED_FLAG,
183     X_END_DATE_ACTIVE => to_date(X_END_DATE_ACTIVE,
184                          'YYYY/MM/DD HH24:MI:SS'),
185     X_CREATION_DATE => f_ludate,
186     X_CREATED_BY => f_luby,
187     X_LAST_UPDATE_DATE => f_ludate,
188     X_LAST_UPDATED_BY => f_luby,
189     X_LAST_UPDATE_LOGIN => 0 );
190 
191 end LOAD_ROW;
192 
193 procedure LOCK_ROW (
194   X_APPLICATION_ID in NUMBER,
195   X_PERIODIC_SET_ID in NUMBER,
196   X_CHILD_APPLICATION_ID in NUMBER,
197   X_CHILD_ALERT_ID in NUMBER,
198   X_CHILD_PERIODIC_SET_ID in NUMBER,
199   X_SEQUENCE in NUMBER,
200   X_ENABLED_FLAG in VARCHAR2,
201   X_END_DATE_ACTIVE in DATE
202 ) is
203   cursor c1 is select
204       ENABLED_FLAG,
205       END_DATE_ACTIVE,
206       APPLICATION_ID,
207       PERIODIC_SET_ID,
208       CHILD_APPLICATION_ID,
209       CHILD_ALERT_ID,
210       CHILD_PERIODIC_SET_ID,
211       SEQUENCE
212     from ALR_PERIODIC_SET_MEMBERS
213     where APPLICATION_ID = X_APPLICATION_ID
214     and PERIODIC_SET_ID = X_PERIODIC_SET_ID
215     and CHILD_APPLICATION_ID = X_CHILD_APPLICATION_ID
216     and CHILD_ALERT_ID = X_CHILD_ALERT_ID
217     and CHILD_PERIODIC_SET_ID = X_CHILD_PERIODIC_SET_ID
218     and SEQUENCE = X_SEQUENCE
219     for update of APPLICATION_ID nowait;
220 begin
221   for recinfo in c1 loop
222       if (    (recinfo.APPLICATION_ID = X_APPLICATION_ID)
223           AND (recinfo.PERIODIC_SET_ID = X_PERIODIC_SET_ID)
224           AND (recinfo.CHILD_APPLICATION_ID = X_CHILD_APPLICATION_ID)
225           AND ((recinfo.CHILD_ALERT_ID = X_CHILD_ALERT_ID)
226                OR ((recinfo.CHILD_ALERT_ID is null)
227                AND (X_CHILD_ALERT_ID is null)))
228           AND ((recinfo.CHILD_PERIODIC_SET_ID = X_CHILD_PERIODIC_SET_ID)
229                OR ((recinfo.CHILD_PERIODIC_SET_ID is null)
230                AND (X_CHILD_PERIODIC_SET_ID is null)))
231           AND ((recinfo.SEQUENCE = X_SEQUENCE)
232                OR ((recinfo.SEQUENCE is null) AND (X_SEQUENCE is null)))
233           AND (recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
234           AND ((recinfo.END_DATE_ACTIVE = X_END_DATE_ACTIVE)
235                OR ((recinfo.END_DATE_ACTIVE is null)
236                AND (X_END_DATE_ACTIVE is null)))
237       ) then
238         null;
239       else
240         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
241         app_exception.raise_exception;
242       end if;
243   end loop;
244   return;
245 end LOCK_ROW;
246 
247 procedure UPDATE_ROW (
248   X_APPLICATION_ID in NUMBER,
249   X_PERIODIC_SET_ID in NUMBER,
250   X_CHILD_APPLICATION_ID in NUMBER,
251   X_CHILD_ALERT_ID in NUMBER,
252   X_CHILD_PERIODIC_SET_ID in NUMBER,
253   X_SEQUENCE in NUMBER,
254   X_ENABLED_FLAG in VARCHAR2,
255   X_END_DATE_ACTIVE in DATE,
256   X_LAST_UPDATE_DATE in DATE,
257   X_LAST_UPDATED_BY in NUMBER,
258   X_LAST_UPDATE_LOGIN in NUMBER
259 ) is
260 begin
261   update ALR_PERIODIC_SET_MEMBERS set
262     ENABLED_FLAG = X_ENABLED_FLAG,
263     END_DATE_ACTIVE = X_END_DATE_ACTIVE,
264     APPLICATION_ID = X_APPLICATION_ID,
265     PERIODIC_SET_ID = X_PERIODIC_SET_ID,
266     CHILD_APPLICATION_ID = X_CHILD_APPLICATION_ID,
267     CHILD_ALERT_ID = X_CHILD_ALERT_ID,
268     CHILD_PERIODIC_SET_ID = X_CHILD_PERIODIC_SET_ID,
269     SEQUENCE = X_SEQUENCE,
270     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
271     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
272     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
273   where APPLICATION_ID = X_APPLICATION_ID
274   and PERIODIC_SET_ID = X_PERIODIC_SET_ID
275   and CHILD_APPLICATION_ID = X_CHILD_APPLICATION_ID
276   and ((CHILD_ALERT_ID is not null
277 	and CHILD_ALERT_ID = X_CHILD_ALERT_ID)
278 	or (CHILD_ALERT_ID is null and
279 	X_CHILD_ALERT_ID is null))
280   and ((CHILD_PERIODIC_SET_ID is not null
281 	and CHILD_PERIODIC_SET_ID = X_CHILD_PERIODIC_SET_ID)
282 	or (CHILD_PERIODIC_SET_ID is null and
283 	X_CHILD_PERIODIC_SET_ID is null))
284   and SEQUENCE = X_SEQUENCE;
285 
286   if (sql%notfound) then
287     raise no_data_found;
288   end if;
289 end UPDATE_ROW;
290 
291 procedure DELETE_ROW (
292   X_APPLICATION_ID in NUMBER,
293   X_PERIODIC_SET_ID in NUMBER,
294   X_CHILD_APPLICATION_ID in NUMBER,
295   X_CHILD_ALERT_ID in NUMBER,
296   X_CHILD_PERIODIC_SET_ID in NUMBER,
297   X_SEQUENCE in NUMBER
298 ) is
299 begin
300   delete from ALR_PERIODIC_SET_MEMBERS
301   where APPLICATION_ID = X_APPLICATION_ID
302   and PERIODIC_SET_ID = X_PERIODIC_SET_ID
303   and CHILD_APPLICATION_ID = X_CHILD_APPLICATION_ID
304   and CHILD_ALERT_ID = X_CHILD_ALERT_ID
305   and CHILD_PERIODIC_SET_ID = X_CHILD_PERIODIC_SET_ID
306   and SEQUENCE = X_SEQUENCE;
307 
308   if (sql%notfound) then
309     raise no_data_found;
310   end if;
311 
312 end DELETE_ROW;
313 
314 end ALR_PERIODIC_SET_MEMBERS_PKG;