[Home] [Help]
PACKAGE BODY: APPS.CS_SR_TYPES_MAPPING_PKG
Source
1 PACKAGE body CS_SR_TYPES_MAPPING_PKG as
2 /* $Header: csvtmapb.pls 115.13 2003/11/06 23:45:46 aneemuch noship $ */
3
4 -- for security
5 FUNCTION Check_Duplicate( p_rowid IN ROWID,
6 p_incident_type_id IN NUMBER,
7 p_resp_id IN NUMBER,
8 p_template_type IN VARCHAR,
9 p_application_id IN NUMBER) RETURN BOOLEAN
10 IS
11
12 l_rowid rowid;
13 CURSOR l_type_cur IS
14 SELECT nvl(1,0),rowid
15 FROM CS_SR_TYPE_MAPPING
16 WHERE incident_type_id = p_incident_type_id
17 AND responsibility_id = p_resp_id
18 AND type = p_template_type
19 AND application_id = p_application_id;
20
21 CURSOR l_inc_cur IS
22 SELECT nvl(2,0),rowid
23 FROM CS_SR_TYPE_MAPPING
24 WHERE incident_type_id = p_incident_type_id
25 AND responsibility_id = p_resp_id
26 AND application_id = p_application_id;
27
28 l_value NUMBER := 0;
29 l_return boolean := TRUE;
30 -- True There is a duplicate record.
31 -- False There is no duplicate record.
32
33 BEGIN
34
35 if p_template_type is not null then
36
37 OPEN l_type_cur;
38 FETCH l_type_cur INTO l_value,l_rowid;
39
40 if l_type_cur%NOTFOUND then
41 l_return := FALSE;
42 else
43 --bug 2942245 to avoid the same record to undergo duplicate checking
44 if l_rowid = p_rowid and p_rowid is not null then
45 l_return := FALSE;
46 end if;
47 end if;
48
49 CLOSE l_type_cur;
50
51 elsif p_template_type is null then
52
53 OPEN l_inc_cur;
54 FETCH l_inc_cur INTO l_value,l_rowid;
55
56 if l_inc_cur%NOTFOUND then
57 l_return := FALSE;
58 else
59 --bug 2942245 to avoid the same record to undergo duplicate checking
60 if l_rowid = p_rowid and p_rowid is not null then
61 l_return := FALSE;
62 end if;
63 end if;
64
65 CLOSE l_inc_cur;
66
67 end if;
68
69 --bug 2942245 to avoid the same record to undergo duplicate checking
70 if l_value = 0 then
71 l_return := FALSE;
72 end if;
73
74 return l_return;
75
76 END Check_Duplicate;
77
78 procedure INSERT_ROW(
79 X_ROWID in out NOCOPY VARCHAR2,
80 X_INCIDENT_TYPE_ID in NUMBER,
81 X_RESPONSIBILITY_ID in NUMBER,
82 X_TEMPLATE_ID in NUMBER,
83 X_TYPE in VARCHAR2,
84 X_START_DATE in DATE ,
85 X_END_DATE in DATE ,
86 X_SEEDED_FLAG in VARCHAR2,
87 X_ATTRIBUTE1 in VARCHAR2,
88 X_ATTRIBUTE2 in VARCHAR2,
89 X_ATTRIBUTE3 in VARCHAR2,
90 X_ATTRIBUTE4 in VARCHAR2,
91 X_ATTRIBUTE5 in VARCHAR2,
92 X_ATTRIBUTE6 in VARCHAR2,
93 X_ATTRIBUTE7 in VARCHAR2,
94 X_ATTRIBUTE8 in VARCHAR2,
95 X_ATTRIBUTE9 in VARCHAR2,
96 X_ATTRIBUTE10 in VARCHAR2,
97 X_ATTRIBUTE11 in VARCHAR2,
98 X_ATTRIBUTE12 in VARCHAR2,
99 X_ATTRIBUTE13 in VARCHAR2,
100 X_ATTRIBUTE14 in VARCHAR2,
101 X_ATTRIBUTE15 in VARCHAR2,
102 X_ATTRIBUTE_CATEGORY in VARCHAR2,
103 X_CREATION_DATE in DATE,
104 X_CREATED_BY in NUMBER,
105 X_LAST_UPDATE_DATE in DATE,
106 X_LAST_UPDATED_BY in NUMBER,
107 X_LAST_UPDATE_LOGIN in NUMBER,
108 X_STATUS_GROUP_ID in NUMBER,
109 -- for security
110 X_APPLICATION_ID in NUMBER,
111 X_BUSINESS_USAGE in VARCHAR2) is
112 cursor C is select ROWID from CS_SR_TYPE_MAPPING
113 where INCIDENT_TYPE_ID = X_INCIDENT_TYPE_ID and
114 RESPONSIBILITY_ID = X_RESPONSIBILITY_ID and
115 APPLICATION_ID = X_APPLICATION_ID;
116
117 G_EXP_DUP_RECORD EXCEPTION;
118
119 begin
120
121 if NOT Check_Duplicate( p_rowid => null,
122 p_incident_type_id => x_incident_type_id,
123 p_resp_id => x_responsibility_id,
124 p_template_type => x_type,
125 p_application_id => x_application_id)
126 then
127 insert into CS_SR_TYPE_MAPPING(
128 INCIDENT_TYPE_ID,
129 RESPONSIBILITY_ID,
130 TEMPLATE_ID,
131 TYPE,
132 START_DATE ,
133 END_DATE ,
134 SEEDED_FLAG ,
135 ATTRIBUTE1 ,
136 ATTRIBUTE2 ,
137 ATTRIBUTE3 ,
138 ATTRIBUTE4 ,
139 ATTRIBUTE5 ,
140 ATTRIBUTE6 ,
141 ATTRIBUTE7 ,
142 ATTRIBUTE8 ,
143 ATTRIBUTE9 ,
144 ATTRIBUTE10 ,
145 ATTRIBUTE11 ,
146 ATTRIBUTE12 ,
147 ATTRIBUTE13 ,
148 ATTRIBUTE14 ,
149 ATTRIBUTE15 ,
150 ATTRIBUTE_CATEGORY,
151 CREATION_DATE ,
152 CREATED_BY ,
153 LAST_UPDATE_DATE ,
154 LAST_UPDATED_BY ,
155 LAST_UPDATE_LOGIN ,
156 OBJECT_VERSION_NUMBER,
157 STATUS_GROUP_ID,
158 -- for security
159 APPLICATION_ID,
160 BUSINESS_USAGE
161 ) values (
162 X_INCIDENT_TYPE_ID ,
163 X_RESPONSIBILITY_ID,
164 X_TEMPLATE_ID,
165 X_TYPE,
166 X_START_DATE ,
167 X_END_DATE ,
168 X_SEEDED_FLAG ,
169 X_ATTRIBUTE1 ,
170 X_ATTRIBUTE2 ,
171 X_ATTRIBUTE3 ,
172 X_ATTRIBUTE4 ,
173 X_ATTRIBUTE5 ,
174 X_ATTRIBUTE6 ,
175 X_ATTRIBUTE7 ,
176 X_ATTRIBUTE8 ,
177 X_ATTRIBUTE9 ,
178 X_ATTRIBUTE10 ,
179 X_ATTRIBUTE11 ,
180 X_ATTRIBUTE12 ,
181 X_ATTRIBUTE13 ,
182 X_ATTRIBUTE14 ,
183 X_ATTRIBUTE15 ,
184 X_ATTRIBUTE_CATEGORY,
185 X_CREATION_DATE ,
186 X_CREATED_BY ,
187 X_LAST_UPDATE_DATE ,
188 X_LAST_UPDATED_BY ,
189 1 ,
190 1,
191 X_STATUS_GROUP_ID,
192 -- for security
193 X_APPLICATION_ID,
194 X_BUSINESS_USAGE
195 );
196
197 open c;
198 fetch c into X_ROWID;
199 if (c%notfound) then
200 close c;
201 raise no_data_found;
202 end if;
203 close c;
204
205 else
206 raise G_EXP_DUP_RECORD;
207 end if;
208
209 Exception
210
211 when G_EXP_DUP_RECORD then
212 --x_return_status := G_RET_STS_ERROR;
213 Fnd_Message.Set_Name('CS', 'CS_ALL_DUPLICATE_RECORD');
214 Fnd_Msg_Pub.Add;
215
216 When Others then
217 app_exception.raise_exception('ERROR','12',SQLERRM);
218
219 end INSERT_ROW;
220
221 procedure LOCK_ROW (
222 X_INCIDENT_TYPE_ID in NUMBER,
223 X_RESPONSIBILITY_ID in NUMBER,
224 X_OBJECT_VERSION_NUMBER in NUMBER,
225 X_ROWID OUT NOCOPY VARCHAR2,
226 -- for security
227 X_APPLICATION_ID in NUMBER
228 ) is
229 cursor c is select
230 ROWID,OBJECT_VERSION_NUMBER
231 from CS_SR_TYPE_MAPPING
232 where INCIDENT_TYPE_ID = X_INCIDENT_TYPE_ID
233 and RESPONSIBILITY_ID = X_RESPONSIBILITY_ID
234 and APPLICATION_ID = X_APPLICATION_ID
235 and OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER
236 for update of OBJECT_VERSION_NUMBER nowait;
237 recinfo c%rowtype;
238
239
240 begin
241 open c;
242 fetch c into recinfo;
243 x_rowid := recinfo.rowid;
244 if (c%notfound) then
245 close c;
246 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
247 app_exception.raise_exception;
248 end if;
249 close c;
250
251 if (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
252 then
253 null;
254 else
255 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
256 app_exception.raise_exception;
257 end if;
258
259 end LOCK_ROW;
260
261
262 procedure UPDATE_ROW (
263 X_ROWID in out NOCOPY VARCHAR2,
264 X_INCIDENT_TYPE_ID in NUMBER,
265 X_RESPONSIBILITY_ID in NUMBER,
266 X_TEMPLATE_ID in NUMBER,
267 X_TYPE in VARCHAR2,
268 X_START_DATE in DATE ,
269 X_END_DATE in DATE ,
270 X_SEEDED_FLAG in VARCHAR2,
271 X_ATTRIBUTE1 in VARCHAR2,
272 X_ATTRIBUTE2 in VARCHAR2,
273 X_ATTRIBUTE3 in VARCHAR2,
274 X_ATTRIBUTE4 in VARCHAR2,
275 X_ATTRIBUTE5 in VARCHAR2,
276 X_ATTRIBUTE6 in VARCHAR2,
277 X_ATTRIBUTE7 in VARCHAR2,
278 X_ATTRIBUTE8 in VARCHAR2,
279 X_ATTRIBUTE9 in VARCHAR2,
280 X_ATTRIBUTE10 in VARCHAR2,
281 X_ATTRIBUTE11 in VARCHAR2,
282 X_ATTRIBUTE12 in VARCHAR2,
283 X_ATTRIBUTE13 in VARCHAR2,
284 X_ATTRIBUTE14 in VARCHAR2,
285 X_ATTRIBUTE15 in VARCHAR2,
286 X_ATTRIBUTE_CATEGORY in VARCHAR2,
287 X_CREATION_DATE in DATE,
288 X_CREATED_BY in NUMBER,
289 X_LAST_UPDATE_DATE in DATE,
290 X_LAST_UPDATED_BY in NUMBER,
291 X_LAST_UPDATE_LOGIN in NUMBER,
292 X_OBJECT_VERSION_NUMBER in NUMBER,
293 X_STATUS_GROUP_ID in NUMBER,
294 -- for security
295 X_APPLICATION_ID in NUMBER,
296 X_BUSINESS_USAGE in VARCHAR2)
297 is
298
299 G_EXP_DUP_RECORD EXCEPTION;
300 begin
301
302 if NOT Check_Duplicate( p_rowid => x_rowid,
303 p_incident_type_id => x_incident_type_id,
304 p_resp_id => x_responsibility_id,
305 p_template_type => x_type,
306 p_application_id => x_application_id)
307 then
308 update CS_SR_TYPE_MAPPING set
309 INCIDENT_TYPE_ID = X_INCIDENT_TYPE_ID ,
310 RESPONSIBILITY_ID = X_RESPONSIBILITY_ID,
311 TEMPLATE_ID = X_TEMPLATE_ID,
312 TYPE = X_TYPE,
313 START_DATE = X_START_DATE ,
314 END_DATE = X_END_DATE ,
315 SEEDED_FLAG = X_SEEDED_FLAG,
316 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER +1,
317 ATTRIBUTE1 = X_ATTRIBUTE1,
318 ATTRIBUTE2 = X_ATTRIBUTE2,
319 ATTRIBUTE3 = X_ATTRIBUTE3,
320 ATTRIBUTE4 = X_ATTRIBUTE4,
321 ATTRIBUTE5 = X_ATTRIBUTE5,
322 ATTRIBUTE6 = X_ATTRIBUTE6,
323 ATTRIBUTE7 = X_ATTRIBUTE7,
324 ATTRIBUTE8 = X_ATTRIBUTE8,
325 ATTRIBUTE9 = X_ATTRIBUTE9,
326 ATTRIBUTE10 = X_ATTRIBUTE10,
327 ATTRIBUTE11 = X_ATTRIBUTE11,
328 ATTRIBUTE12 = X_ATTRIBUTE12,
329 ATTRIBUTE13 = X_ATTRIBUTE13,
330 ATTRIBUTE14 = X_ATTRIBUTE14,
331 ATTRIBUTE15 = X_ATTRIBUTE15,
332 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
333 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
334 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
335 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
336 STATUS_GROUP_ID = X_STATUS_GROUP_ID ,
337 -- for security
338 APPLICATION_ID = X_APPLICATION_ID,
339 BUSINESS_USAGE = X_BUSINESS_USAGE
340 where ROWID = X_ROWID;
341
342 if (sql%notfound) then
343 raise no_data_found;
344 end if;
345
346 else
347 raise G_EXP_DUP_RECORD;
348 end if;
349
350 Exception
351 when G_EXP_DUP_RECORD then
352 --x_return_status := G_RET_STS_ERROR;
353 Fnd_Message.Set_Name('CS', 'CS_ALL_DUPLICATE_RECORD');
354 Fnd_Msg_Pub.Add;
355
356 When Others then
357 app_exception.raise_exception('ERROR','12',SQLERRM);
358
359 end UPDATE_ROW;
360
361 procedure DELETE_ROW (
362 X_INCIDENT_TYPE_ID in NUMBER,
363 X_RESPONSIBILITY_ID in NUMBER,
364 -- for security
365 X_APPLICATION_ID in NUMBER
366 ) is
367 begin
368 delete from CS_SR_TYPE_MAPPING
369 where INCIDENT_TYPE_ID = X_INCIDENT_TYPE_ID
370 and RESPONSIBILITY_ID = X_RESPONSIBILITY_ID
371 and APPLICATION_ID = X_APPLICATION_ID;
372
373 if (sql%notfound) then
374 raise no_data_found;
375 end if;
376
377 Exception
378 When Others then
379 app_exception.raise_exception('ERROR','12',SQLERRM);
380
381 end DELETE_ROW;
382
383 end CS_SR_TYPES_MAPPING_PKG;