DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_SSC_UTIL

Source


1 PACKAGE BODY QP_Ssc_Util AS
2 /* $Header: QPXUSSCB.pls 120.1 2005/06/14 00:16:11 appldev  $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Ssc_Util';
7 
8 --  Procedure Clear_Dependent_Attr
9 
10 PROCEDURE Clear_Dependent_Attr
11 (   p_attr_id                       IN  NUMBER := FND_API.G_MISS_NUM
12 ,   p_SSC_rec                       IN  QP_Attr_Map_PUB.Ssc_Rec_Type
13 ,   p_old_SSC_rec                   IN  QP_Attr_Map_PUB.Ssc_Rec_Type :=
14                                         QP_Attr_Map_PUB.G_MISS_SSC_REC
15 ,   x_SSC_rec                       OUT NOCOPY /* file.sql.39 change */ QP_Attr_Map_PUB.Ssc_Rec_Type
16 )
17 IS
18 l_index                       NUMBER := 0;
19 l_src_attr_tbl                QP_GLOBALS.NUMBER_Tbl_Type;
20 l_dep_attr_tbl                QP_GLOBALS.NUMBER_Tbl_Type;
21 BEGIN
22 
23     --  Load out record
24 
25     x_SSC_rec := p_SSC_rec;
26 
27     --  If attr_id is missing compare old and new records and for
28     --  every changed attribute clear its dependent fields.
29 
30     IF p_attr_id = FND_API.G_MISS_NUM THEN
31 
32         IF NOT QP_GLOBALS.Equal(p_SSC_rec.application_short_name,p_old_SSC_rec.application_short_name)
33         THEN
34             l_index := l_index + 1;
35             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_APPLICATION_SHORT_NAME;
36         END IF;
37 
38         IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute1,p_old_SSC_rec.attribute1)
39         THEN
40             l_index := l_index + 1;
41             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE1;
42         END IF;
43 
44         IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute10,p_old_SSC_rec.attribute10)
45         THEN
46             l_index := l_index + 1;
47             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE10;
48         END IF;
49 
50         IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute11,p_old_SSC_rec.attribute11)
51         THEN
52             l_index := l_index + 1;
53             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE11;
54         END IF;
55 
56         IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute12,p_old_SSC_rec.attribute12)
57         THEN
58             l_index := l_index + 1;
59             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE12;
60         END IF;
61 
62         IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute13,p_old_SSC_rec.attribute13)
63         THEN
64             l_index := l_index + 1;
65             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE13;
66         END IF;
67 
68         IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute14,p_old_SSC_rec.attribute14)
69         THEN
70             l_index := l_index + 1;
71             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE14;
72         END IF;
73 
74         IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute15,p_old_SSC_rec.attribute15)
75         THEN
76             l_index := l_index + 1;
77             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE15;
78         END IF;
79 
80         IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute2,p_old_SSC_rec.attribute2)
81         THEN
82             l_index := l_index + 1;
83             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE2;
84         END IF;
85 
86         IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute3,p_old_SSC_rec.attribute3)
87         THEN
88             l_index := l_index + 1;
89             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE3;
90         END IF;
91 
92         IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute4,p_old_SSC_rec.attribute4)
93         THEN
94             l_index := l_index + 1;
95             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE4;
96         END IF;
97 
98         IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute5,p_old_SSC_rec.attribute5)
99         THEN
100             l_index := l_index + 1;
101             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE5;
102         END IF;
103 
104         IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute6,p_old_SSC_rec.attribute6)
105         THEN
106             l_index := l_index + 1;
107             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE6;
108         END IF;
109 
110         IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute7,p_old_SSC_rec.attribute7)
111         THEN
112             l_index := l_index + 1;
113             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE7;
114         END IF;
115 
116         IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute8,p_old_SSC_rec.attribute8)
117         THEN
118             l_index := l_index + 1;
119             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE8;
120         END IF;
121 
122         IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute9,p_old_SSC_rec.attribute9)
123         THEN
124             l_index := l_index + 1;
125             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE9;
126         END IF;
127 
128         IF NOT QP_GLOBALS.Equal(p_SSC_rec.context,p_old_SSC_rec.context)
129         THEN
130             l_index := l_index + 1;
131             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_CONTEXT;
132         END IF;
133 
134         IF NOT QP_GLOBALS.Equal(p_SSC_rec.created_by,p_old_SSC_rec.created_by)
135         THEN
136             l_index := l_index + 1;
137             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_CREATED_BY;
138         END IF;
139 
140         IF NOT QP_GLOBALS.Equal(p_SSC_rec.creation_date,p_old_SSC_rec.creation_date)
141         THEN
142             l_index := l_index + 1;
143             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_CREATION_DATE;
144         END IF;
145 
146         IF NOT QP_GLOBALS.Equal(p_SSC_rec.enabled_flag,p_old_SSC_rec.enabled_flag)
147         THEN
148             l_index := l_index + 1;
149             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ENABLED;
150         END IF;
151 
152         IF NOT QP_GLOBALS.Equal(p_SSC_rec.last_updated_by,p_old_SSC_rec.last_updated_by)
153         THEN
154             l_index := l_index + 1;
155             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_LAST_UPDATED_BY;
156         END IF;
157 
158         IF NOT QP_GLOBALS.Equal(p_SSC_rec.last_update_date,p_old_SSC_rec.last_update_date)
159         THEN
160             l_index := l_index + 1;
161             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_LAST_UPDATE_DATE;
162         END IF;
163 
164         IF NOT QP_GLOBALS.Equal(p_SSC_rec.last_update_login,p_old_SSC_rec.last_update_login)
165         THEN
166             l_index := l_index + 1;
167             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_LAST_UPDATE_LOGIN;
168         END IF;
169 
170         IF NOT QP_GLOBALS.Equal(p_SSC_rec.program_application_id,p_old_SSC_rec.program_application_id)
171         THEN
172             l_index := l_index + 1;
173             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_PROGRAM_APPLICATION;
174         END IF;
175 
176         IF NOT QP_GLOBALS.Equal(p_SSC_rec.program_id,p_old_SSC_rec.program_id)
177         THEN
178             l_index := l_index + 1;
179             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_PROGRAM;
180         END IF;
181 
182         IF NOT QP_GLOBALS.Equal(p_SSC_rec.program_update_date,p_old_SSC_rec.program_update_date)
183         THEN
184             l_index := l_index + 1;
185             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_PROGRAM_UPDATE_DATE;
186         END IF;
187 
188         IF NOT QP_GLOBALS.Equal(p_SSC_rec.pte_code,p_old_SSC_rec.pte_code)
189         THEN
190             l_index := l_index + 1;
191             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_PTE;
192         END IF;
193 
194         IF NOT QP_GLOBALS.Equal(p_SSC_rec.pte_source_system_id,p_old_SSC_rec.pte_source_system_id)
195         THEN
196             l_index := l_index + 1;
197             l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_PTE_SOURCE_SYSTEM;
198         END IF;
199 
200     ELSIF p_attr_id = G_APPLICATION_SHORT_NAME THEN
201         l_index := l_index + 1;
202         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_APPLICATION_SHORT_NAME;
203     ELSIF p_attr_id = G_ATTRIBUTE1 THEN
204         l_index := l_index + 1;
205         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE1;
206     ELSIF p_attr_id = G_ATTRIBUTE10 THEN
207         l_index := l_index + 1;
208         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE10;
209     ELSIF p_attr_id = G_ATTRIBUTE11 THEN
210         l_index := l_index + 1;
211         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE11;
212     ELSIF p_attr_id = G_ATTRIBUTE12 THEN
213         l_index := l_index + 1;
214         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE12;
215     ELSIF p_attr_id = G_ATTRIBUTE13 THEN
216         l_index := l_index + 1;
217         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE13;
218     ELSIF p_attr_id = G_ATTRIBUTE14 THEN
219         l_index := l_index + 1;
220         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE14;
221     ELSIF p_attr_id = G_ATTRIBUTE15 THEN
222         l_index := l_index + 1;
223         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE15;
224     ELSIF p_attr_id = G_ATTRIBUTE2 THEN
225         l_index := l_index + 1;
226         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE2;
227     ELSIF p_attr_id = G_ATTRIBUTE3 THEN
228         l_index := l_index + 1;
229         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE3;
230     ELSIF p_attr_id = G_ATTRIBUTE4 THEN
231         l_index := l_index + 1;
232         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE4;
233     ELSIF p_attr_id = G_ATTRIBUTE5 THEN
234         l_index := l_index + 1;
235         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE5;
236     ELSIF p_attr_id = G_ATTRIBUTE6 THEN
237         l_index := l_index + 1;
238         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE6;
239     ELSIF p_attr_id = G_ATTRIBUTE7 THEN
240         l_index := l_index + 1;
241         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE7;
242     ELSIF p_attr_id = G_ATTRIBUTE8 THEN
243         l_index := l_index + 1;
244         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE8;
245     ELSIF p_attr_id = G_ATTRIBUTE9 THEN
246         l_index := l_index + 1;
247         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ATTRIBUTE9;
248     ELSIF p_attr_id = G_CONTEXT THEN
249         l_index := l_index + 1;
250         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_CONTEXT;
251     ELSIF p_attr_id = G_CREATED_BY THEN
252         l_index := l_index + 1;
253         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_CREATED_BY;
254     ELSIF p_attr_id = G_CREATION_DATE THEN
255         l_index := l_index + 1;
256         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_CREATION_DATE;
257     ELSIF p_attr_id = G_ENABLED THEN
258         l_index := l_index + 1;
259         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_ENABLED;
260     ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
261         l_index := l_index + 1;
262         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_LAST_UPDATED_BY;
263     ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
264         l_index := l_index + 1;
265         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_LAST_UPDATE_DATE;
266     ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
267         l_index := l_index + 1;
268         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_LAST_UPDATE_LOGIN;
269     ELSIF p_attr_id = G_PROGRAM_APPLICATION THEN
270         l_index := l_index + 1;
271         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_PROGRAM_APPLICATION;
272     ELSIF p_attr_id = G_PROGRAM THEN
273         l_index := l_index + 1;
274         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_PROGRAM;
275     ELSIF p_attr_id = G_PROGRAM_UPDATE_DATE THEN
276         l_index := l_index + 1;
277         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_PROGRAM_UPDATE_DATE;
278     ELSIF p_attr_id = G_PTE THEN
279         l_index := l_index + 1;
280         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_PTE;
281     ELSIF p_attr_id = G_PTE_SOURCE_SYSTEM THEN
282         l_index := l_index + 1;
283         l_src_attr_tbl(l_index) := QP_SSC_UTIL.G_PTE_SOURCE_SYSTEM;
284     END IF;
285 
286 END Clear_Dependent_Attr;
287 
288 --  Procedure Apply_Attribute_Changes
289 
290 PROCEDURE Apply_Attribute_Changes
291 (   p_SSC_rec                       IN  QP_Attr_Map_PUB.Ssc_Rec_Type
292 ,   p_old_SSC_rec                   IN  QP_Attr_Map_PUB.Ssc_Rec_Type :=
293                                         QP_Attr_Map_PUB.G_MISS_SSC_REC
294 ,   x_SSC_rec                       OUT NOCOPY /* file.sql.39 change */ QP_Attr_Map_PUB.Ssc_Rec_Type
295 )
296 IS
297 BEGIN
298 
299     --  Load out record
300 
301     x_SSC_rec := p_SSC_rec;
302 
303     IF NOT QP_GLOBALS.Equal(p_SSC_rec.application_short_name,p_old_SSC_rec.application_short_name)
304     THEN
305         NULL;
306     END IF;
307 
308     IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute1,p_old_SSC_rec.attribute1)
309     THEN
310         NULL;
311     END IF;
312 
313     IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute10,p_old_SSC_rec.attribute10)
314     THEN
315         NULL;
316     END IF;
317 
318     IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute11,p_old_SSC_rec.attribute11)
319     THEN
320         NULL;
321     END IF;
322 
323     IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute12,p_old_SSC_rec.attribute12)
324     THEN
325         NULL;
326     END IF;
327 
328     IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute13,p_old_SSC_rec.attribute13)
329     THEN
330         NULL;
331     END IF;
332 
333     IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute14,p_old_SSC_rec.attribute14)
334     THEN
335         NULL;
336     END IF;
337 
338     IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute15,p_old_SSC_rec.attribute15)
339     THEN
340         NULL;
341     END IF;
342 
343     IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute2,p_old_SSC_rec.attribute2)
344     THEN
345         NULL;
346     END IF;
347 
348     IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute3,p_old_SSC_rec.attribute3)
349     THEN
350         NULL;
351     END IF;
352 
353     IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute4,p_old_SSC_rec.attribute4)
354     THEN
355         NULL;
356     END IF;
357 
358     IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute5,p_old_SSC_rec.attribute5)
359     THEN
360         NULL;
361     END IF;
362 
363     IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute6,p_old_SSC_rec.attribute6)
364     THEN
365         NULL;
366     END IF;
367 
368     IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute7,p_old_SSC_rec.attribute7)
369     THEN
370         NULL;
371     END IF;
372 
373     IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute8,p_old_SSC_rec.attribute8)
374     THEN
375         NULL;
376     END IF;
377 
378     IF NOT QP_GLOBALS.Equal(p_SSC_rec.attribute9,p_old_SSC_rec.attribute9)
379     THEN
380         NULL;
381     END IF;
382 
383     IF NOT QP_GLOBALS.Equal(p_SSC_rec.context,p_old_SSC_rec.context)
384     THEN
385         NULL;
386     END IF;
387 
388     IF NOT QP_GLOBALS.Equal(p_SSC_rec.created_by,p_old_SSC_rec.created_by)
389     THEN
390         NULL;
391     END IF;
392 
393     IF NOT QP_GLOBALS.Equal(p_SSC_rec.creation_date,p_old_SSC_rec.creation_date)
394     THEN
395         NULL;
396     END IF;
397 
398     IF NOT QP_GLOBALS.Equal(p_SSC_rec.enabled_flag,p_old_SSC_rec.enabled_flag)
399     THEN
400         NULL;
401     END IF;
402 
403     IF NOT QP_GLOBALS.Equal(p_SSC_rec.last_updated_by,p_old_SSC_rec.last_updated_by)
404     THEN
405         NULL;
406     END IF;
407 
408     IF NOT QP_GLOBALS.Equal(p_SSC_rec.last_update_date,p_old_SSC_rec.last_update_date)
409     THEN
410         NULL;
411     END IF;
412 
416     END IF;
413     IF NOT QP_GLOBALS.Equal(p_SSC_rec.last_update_login,p_old_SSC_rec.last_update_login)
414     THEN
415         NULL;
417 
418     IF NOT QP_GLOBALS.Equal(p_SSC_rec.program_application_id,p_old_SSC_rec.program_application_id)
419     THEN
420         NULL;
421     END IF;
422 
423     IF NOT QP_GLOBALS.Equal(p_SSC_rec.program_id,p_old_SSC_rec.program_id)
424     THEN
425         NULL;
426     END IF;
427 
428     IF NOT QP_GLOBALS.Equal(p_SSC_rec.program_update_date,p_old_SSC_rec.program_update_date)
429     THEN
430         NULL;
431     END IF;
432 
433     IF NOT QP_GLOBALS.Equal(p_SSC_rec.pte_code,p_old_SSC_rec.pte_code)
434     THEN
435         NULL;
436     END IF;
437 
438     IF NOT QP_GLOBALS.Equal(p_SSC_rec.pte_source_system_id,p_old_SSC_rec.pte_source_system_id)
439     THEN
440         NULL;
441     END IF;
442 
443 END Apply_Attribute_Changes;
444 
445 --  Function Complete_Record
446 
447 FUNCTION Complete_Record
448 (   p_SSC_rec                       IN  QP_Attr_Map_PUB.Ssc_Rec_Type
449 ,   p_old_SSC_rec                   IN  QP_Attr_Map_PUB.Ssc_Rec_Type
450 ) RETURN QP_Attr_Map_PUB.Ssc_Rec_Type
451 IS
452 l_SSC_rec                     QP_Attr_Map_PUB.Ssc_Rec_Type := p_SSC_rec;
453 BEGIN
454 
455     IF l_SSC_rec.application_short_name = FND_API.G_MISS_CHAR THEN
456         l_SSC_rec.application_short_name := p_old_SSC_rec.application_short_name;
457     END IF;
458 
459     IF l_SSC_rec.attribute1 = FND_API.G_MISS_CHAR THEN
460         l_SSC_rec.attribute1 := p_old_SSC_rec.attribute1;
461     END IF;
462 
463     IF l_SSC_rec.attribute10 = FND_API.G_MISS_CHAR THEN
464         l_SSC_rec.attribute10 := p_old_SSC_rec.attribute10;
465     END IF;
466 
467     IF l_SSC_rec.attribute11 = FND_API.G_MISS_CHAR THEN
468         l_SSC_rec.attribute11 := p_old_SSC_rec.attribute11;
469     END IF;
470 
471     IF l_SSC_rec.attribute12 = FND_API.G_MISS_CHAR THEN
472         l_SSC_rec.attribute12 := p_old_SSC_rec.attribute12;
473     END IF;
474 
475     IF l_SSC_rec.attribute13 = FND_API.G_MISS_CHAR THEN
476         l_SSC_rec.attribute13 := p_old_SSC_rec.attribute13;
477     END IF;
478 
479     IF l_SSC_rec.attribute14 = FND_API.G_MISS_CHAR THEN
480         l_SSC_rec.attribute14 := p_old_SSC_rec.attribute14;
481     END IF;
482 
483     IF l_SSC_rec.attribute15 = FND_API.G_MISS_CHAR THEN
484         l_SSC_rec.attribute15 := p_old_SSC_rec.attribute15;
485     END IF;
486 
487     IF l_SSC_rec.attribute2 = FND_API.G_MISS_CHAR THEN
488         l_SSC_rec.attribute2 := p_old_SSC_rec.attribute2;
489     END IF;
490 
491     IF l_SSC_rec.attribute3 = FND_API.G_MISS_CHAR THEN
492         l_SSC_rec.attribute3 := p_old_SSC_rec.attribute3;
493     END IF;
494 
495     IF l_SSC_rec.attribute4 = FND_API.G_MISS_CHAR THEN
496         l_SSC_rec.attribute4 := p_old_SSC_rec.attribute4;
497     END IF;
498 
499     IF l_SSC_rec.attribute5 = FND_API.G_MISS_CHAR THEN
500         l_SSC_rec.attribute5 := p_old_SSC_rec.attribute5;
501     END IF;
502 
503     IF l_SSC_rec.attribute6 = FND_API.G_MISS_CHAR THEN
504         l_SSC_rec.attribute6 := p_old_SSC_rec.attribute6;
505     END IF;
506 
507     IF l_SSC_rec.attribute7 = FND_API.G_MISS_CHAR THEN
508         l_SSC_rec.attribute7 := p_old_SSC_rec.attribute7;
509     END IF;
510 
511     IF l_SSC_rec.attribute8 = FND_API.G_MISS_CHAR THEN
512         l_SSC_rec.attribute8 := p_old_SSC_rec.attribute8;
513     END IF;
514 
515     IF l_SSC_rec.attribute9 = FND_API.G_MISS_CHAR THEN
516         l_SSC_rec.attribute9 := p_old_SSC_rec.attribute9;
517     END IF;
518 
519     IF l_SSC_rec.context = FND_API.G_MISS_CHAR THEN
520         l_SSC_rec.context := p_old_SSC_rec.context;
521     END IF;
522 
523     IF l_SSC_rec.created_by = FND_API.G_MISS_NUM THEN
524         l_SSC_rec.created_by := p_old_SSC_rec.created_by;
525     END IF;
526 
527     IF l_SSC_rec.creation_date = FND_API.G_MISS_DATE THEN
528         l_SSC_rec.creation_date := p_old_SSC_rec.creation_date;
529     END IF;
530 
531     IF l_SSC_rec.enabled_flag = FND_API.G_MISS_CHAR THEN
532         l_SSC_rec.enabled_flag := p_old_SSC_rec.enabled_flag;
533     END IF;
534 
535     IF l_SSC_rec.last_updated_by = FND_API.G_MISS_NUM THEN
536         l_SSC_rec.last_updated_by := p_old_SSC_rec.last_updated_by;
537     END IF;
538 
539     IF l_SSC_rec.last_update_date = FND_API.G_MISS_DATE THEN
540         l_SSC_rec.last_update_date := p_old_SSC_rec.last_update_date;
541     END IF;
542 
543     IF l_SSC_rec.last_update_login = FND_API.G_MISS_NUM THEN
544         l_SSC_rec.last_update_login := p_old_SSC_rec.last_update_login;
545     END IF;
546 
547     IF l_SSC_rec.program_application_id = FND_API.G_MISS_NUM THEN
548         l_SSC_rec.program_application_id := p_old_SSC_rec.program_application_id;
549     END IF;
550 
551     IF l_SSC_rec.program_id = FND_API.G_MISS_NUM THEN
552         l_SSC_rec.program_id := p_old_SSC_rec.program_id;
553     END IF;
554 
555     IF l_SSC_rec.program_update_date = FND_API.G_MISS_DATE THEN
556         l_SSC_rec.program_update_date := p_old_SSC_rec.program_update_date;
557     END IF;
558 
562 
559     IF l_SSC_rec.pte_code = FND_API.G_MISS_CHAR THEN
560         l_SSC_rec.pte_code := p_old_SSC_rec.pte_code;
561     END IF;
563     IF l_SSC_rec.pte_source_system_id = FND_API.G_MISS_NUM THEN
564         l_SSC_rec.pte_source_system_id := p_old_SSC_rec.pte_source_system_id;
565     END IF;
566 
567     RETURN l_SSC_rec;
568 
569 END Complete_Record;
570 
571 --  Function Convert_Miss_To_Null
572 
573 FUNCTION Convert_Miss_To_Null
574 (   p_SSC_rec                       IN  QP_Attr_Map_PUB.Ssc_Rec_Type
575 ) RETURN QP_Attr_Map_PUB.Ssc_Rec_Type
576 IS
577 l_SSC_rec                     QP_Attr_Map_PUB.Ssc_Rec_Type := p_SSC_rec;
578 BEGIN
579 
580     IF l_SSC_rec.application_short_name = FND_API.G_MISS_CHAR THEN
581         l_SSC_rec.application_short_name := NULL;
582     END IF;
583 
584     IF l_SSC_rec.attribute1 = FND_API.G_MISS_CHAR THEN
585         l_SSC_rec.attribute1 := NULL;
586     END IF;
587 
588     IF l_SSC_rec.attribute10 = FND_API.G_MISS_CHAR THEN
589         l_SSC_rec.attribute10 := NULL;
590     END IF;
591 
592     IF l_SSC_rec.attribute11 = FND_API.G_MISS_CHAR THEN
593         l_SSC_rec.attribute11 := NULL;
594     END IF;
595 
596     IF l_SSC_rec.attribute12 = FND_API.G_MISS_CHAR THEN
597         l_SSC_rec.attribute12 := NULL;
598     END IF;
599 
600     IF l_SSC_rec.attribute13 = FND_API.G_MISS_CHAR THEN
601         l_SSC_rec.attribute13 := NULL;
602     END IF;
603 
604     IF l_SSC_rec.attribute14 = FND_API.G_MISS_CHAR THEN
605         l_SSC_rec.attribute14 := NULL;
606     END IF;
607 
608     IF l_SSC_rec.attribute15 = FND_API.G_MISS_CHAR THEN
609         l_SSC_rec.attribute15 := NULL;
610     END IF;
611 
612     IF l_SSC_rec.attribute2 = FND_API.G_MISS_CHAR THEN
613         l_SSC_rec.attribute2 := NULL;
614     END IF;
615 
616     IF l_SSC_rec.attribute3 = FND_API.G_MISS_CHAR THEN
617         l_SSC_rec.attribute3 := NULL;
618     END IF;
619 
620     IF l_SSC_rec.attribute4 = FND_API.G_MISS_CHAR THEN
621         l_SSC_rec.attribute4 := NULL;
622     END IF;
623 
624     IF l_SSC_rec.attribute5 = FND_API.G_MISS_CHAR THEN
625         l_SSC_rec.attribute5 := NULL;
626     END IF;
627 
628     IF l_SSC_rec.attribute6 = FND_API.G_MISS_CHAR THEN
629         l_SSC_rec.attribute6 := NULL;
630     END IF;
631 
632     IF l_SSC_rec.attribute7 = FND_API.G_MISS_CHAR THEN
633         l_SSC_rec.attribute7 := NULL;
634     END IF;
635 
636     IF l_SSC_rec.attribute8 = FND_API.G_MISS_CHAR THEN
637         l_SSC_rec.attribute8 := NULL;
638     END IF;
639 
640     IF l_SSC_rec.attribute9 = FND_API.G_MISS_CHAR THEN
641         l_SSC_rec.attribute9 := NULL;
642     END IF;
643 
644     IF l_SSC_rec.context = FND_API.G_MISS_CHAR THEN
645         l_SSC_rec.context := NULL;
646     END IF;
647 
648     IF l_SSC_rec.created_by = FND_API.G_MISS_NUM THEN
649         l_SSC_rec.created_by := NULL;
650     END IF;
651 
652     IF l_SSC_rec.creation_date = FND_API.G_MISS_DATE THEN
653         l_SSC_rec.creation_date := NULL;
654     END IF;
655 
656     IF l_SSC_rec.enabled_flag = FND_API.G_MISS_CHAR THEN
657         l_SSC_rec.enabled_flag := NULL;
658     END IF;
659 
660     IF l_SSC_rec.last_updated_by = FND_API.G_MISS_NUM THEN
661         l_SSC_rec.last_updated_by := NULL;
662     END IF;
663 
664     IF l_SSC_rec.last_update_date = FND_API.G_MISS_DATE THEN
665         l_SSC_rec.last_update_date := NULL;
666     END IF;
667 
668     IF l_SSC_rec.last_update_login = FND_API.G_MISS_NUM THEN
669         l_SSC_rec.last_update_login := NULL;
670     END IF;
671 
672     IF l_SSC_rec.program_application_id = FND_API.G_MISS_NUM THEN
673         l_SSC_rec.program_application_id := NULL;
674     END IF;
675 
676     IF l_SSC_rec.program_id = FND_API.G_MISS_NUM THEN
677         l_SSC_rec.program_id := NULL;
678     END IF;
679 
680     IF l_SSC_rec.program_update_date = FND_API.G_MISS_DATE THEN
681         l_SSC_rec.program_update_date := NULL;
682     END IF;
683 
684     IF l_SSC_rec.pte_code = FND_API.G_MISS_CHAR THEN
685         l_SSC_rec.pte_code := NULL;
686     END IF;
687 
688     IF l_SSC_rec.pte_source_system_id = FND_API.G_MISS_NUM THEN
689         l_SSC_rec.pte_source_system_id := NULL;
690     END IF;
691 
692     RETURN l_SSC_rec;
693 
694 END Convert_Miss_To_Null;
695 
696 --  Procedure Update_Row
697 
698 PROCEDURE Update_Row
699 (   p_SSC_rec                       IN  QP_Attr_Map_PUB.Ssc_Rec_Type
700 )
701 IS
702 BEGIN
703 
704     UPDATE  QP_PTE_SOURCE_SYSTEMS
705     SET     APPLICATION_SHORT_NAME         = p_SSC_rec.application_short_name
706     ,       ATTRIBUTE1                     = p_SSC_rec.attribute1
707     ,       ATTRIBUTE10                    = p_SSC_rec.attribute10
708     ,       ATTRIBUTE11                    = p_SSC_rec.attribute11
709     ,       ATTRIBUTE12                    = p_SSC_rec.attribute12
710     ,       ATTRIBUTE13                    = p_SSC_rec.attribute13
711     ,       ATTRIBUTE14                    = p_SSC_rec.attribute14
712     ,       ATTRIBUTE15                    = p_SSC_rec.attribute15
716     ,       ATTRIBUTE5                     = p_SSC_rec.attribute5
713     ,       ATTRIBUTE2                     = p_SSC_rec.attribute2
714     ,       ATTRIBUTE3                     = p_SSC_rec.attribute3
715     ,       ATTRIBUTE4                     = p_SSC_rec.attribute4
717     ,       ATTRIBUTE6                     = p_SSC_rec.attribute6
718     ,       ATTRIBUTE7                     = p_SSC_rec.attribute7
719     ,       ATTRIBUTE8                     = p_SSC_rec.attribute8
720     ,       ATTRIBUTE9                     = p_SSC_rec.attribute9
721     ,       CONTEXT                        = p_SSC_rec.context
722     ,       CREATED_BY                     = p_SSC_rec.created_by
723     ,       CREATION_DATE                  = p_SSC_rec.creation_date
724     ,       ENABLED_FLAG                   = p_SSC_rec.enabled_flag
725     ,       LAST_UPDATED_BY                = p_SSC_rec.last_updated_by
726     ,       LAST_UPDATE_DATE               = p_SSC_rec.last_update_date
727     ,       LAST_UPDATE_LOGIN              = p_SSC_rec.last_update_login
728     ,       PROGRAM_APPLICATION_ID         = p_SSC_rec.program_application_id
729     ,       PROGRAM_ID                     = p_SSC_rec.program_id
730     ,       PROGRAM_UPDATE_DATE            = p_SSC_rec.program_update_date
731     ,       PTE_CODE                       = p_SSC_rec.pte_code
732     ,       PTE_SOURCE_SYSTEM_ID           = p_SSC_rec.pte_source_system_id
733     WHERE   PTE_SOURCE_SYSTEM_ID = p_SSC_rec.pte_source_system_id
734     ;
735 
736 EXCEPTION
737 
738     WHEN OTHERS THEN
739 
740         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
741         THEN
742             OE_MSG_PUB.Add_Exc_Msg
743             (   G_PKG_NAME
744             ,   'Update_Row'
745             );
746         END IF;
747 
748         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
749 
750 END Update_Row;
751 
752 --  Procedure Insert_Row
753 
754 PROCEDURE Insert_Row
755 (   p_SSC_rec                       IN  QP_Attr_Map_PUB.Ssc_Rec_Type
756 )
757 IS
758 BEGIN
759 
760     INSERT  INTO QP_PTE_SOURCE_SYSTEMS
761     (       APPLICATION_SHORT_NAME
762     ,       ATTRIBUTE1
763     ,       ATTRIBUTE10
764     ,       ATTRIBUTE11
765     ,       ATTRIBUTE12
766     ,       ATTRIBUTE13
767     ,       ATTRIBUTE14
768     ,       ATTRIBUTE15
769     ,       ATTRIBUTE2
770     ,       ATTRIBUTE3
771     ,       ATTRIBUTE4
772     ,       ATTRIBUTE5
773     ,       ATTRIBUTE6
774     ,       ATTRIBUTE7
775     ,       ATTRIBUTE8
776     ,       ATTRIBUTE9
777     ,       CONTEXT
778     ,       CREATED_BY
779     ,       CREATION_DATE
780     ,       ENABLED_FLAG
781     ,       LAST_UPDATED_BY
782     ,       LAST_UPDATE_DATE
783     ,       LAST_UPDATE_LOGIN
784     ,       PROGRAM_APPLICATION_ID
785     ,       PROGRAM_ID
786     ,       PROGRAM_UPDATE_DATE
787     ,       PTE_CODE
788     ,       PTE_SOURCE_SYSTEM_ID
789     )
790     VALUES
791     (       p_SSC_rec.application_short_name
792     ,       p_SSC_rec.attribute1
793     ,       p_SSC_rec.attribute10
794     ,       p_SSC_rec.attribute11
795     ,       p_SSC_rec.attribute12
796     ,       p_SSC_rec.attribute13
797     ,       p_SSC_rec.attribute14
798     ,       p_SSC_rec.attribute15
799     ,       p_SSC_rec.attribute2
800     ,       p_SSC_rec.attribute3
801     ,       p_SSC_rec.attribute4
802     ,       p_SSC_rec.attribute5
803     ,       p_SSC_rec.attribute6
804     ,       p_SSC_rec.attribute7
805     ,       p_SSC_rec.attribute8
806     ,       p_SSC_rec.attribute9
807     ,       p_SSC_rec.context
808     ,       p_SSC_rec.created_by
809     ,       p_SSC_rec.creation_date
810     ,       p_SSC_rec.enabled_flag
811     ,       p_SSC_rec.last_updated_by
812     ,       p_SSC_rec.last_update_date
813     ,       p_SSC_rec.last_update_login
814     ,       p_SSC_rec.program_application_id
815     ,       p_SSC_rec.program_id
816     ,       p_SSC_rec.program_update_date
817     ,       p_SSC_rec.pte_code
818     ,       p_SSC_rec.pte_source_system_id
819     );
820 
821 EXCEPTION
822 
823     WHEN OTHERS THEN
824 
825         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
826         THEN
827             OE_MSG_PUB.Add_Exc_Msg
828             (   G_PKG_NAME
829             ,   'Insert_Row'
830             );
831         END IF;
832 
833         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
834 
835 END Insert_Row;
836 
837 --  Procedure Delete_Row
838 
839 PROCEDURE Delete_Row
840 (   p_pte_source_system_id          IN  NUMBER
841 )
842 IS
843 BEGIN
844 
845     DELETE  FROM QP_PTE_SOURCE_SYSTEMS
846     WHERE   PTE_SOURCE_SYSTEM_ID = p_pte_source_system_id
847     ;
848 
849 EXCEPTION
850 
851     WHEN OTHERS THEN
852 
853         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
854         THEN
855             OE_MSG_PUB.Add_Exc_Msg
856             (   G_PKG_NAME
857             ,   'Delete_Row'
858             );
859         END IF;
860 
861         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
862 
863 END Delete_Row;
864 
865 --  Function Query_Row
866 
867 FUNCTION Query_Row
868 (   p_pte_source_system_id          IN  NUMBER
872 
869 ) RETURN QP_Attr_Map_PUB.Ssc_Rec_Type
870 IS
871 BEGIN
873     RETURN Query_Rows
874         (   p_pte_source_system_id        => p_pte_source_system_id
875         )(1);
876 
877 END Query_Row;
878 
879 --  Function Query_Rows
880 
881 --
882 
883 FUNCTION Query_Rows
884 (   p_pte_source_system_id          IN  NUMBER :=
885                                         FND_API.G_MISS_NUM
886 ,   p_lookup_code                   IN  VARCHAR2 :=
887                                         FND_API.G_MISS_CHAR
888 ) RETURN QP_Attr_Map_PUB.Ssc_Tbl_Type
889 IS
890 l_SSC_rec                     QP_Attr_Map_PUB.Ssc_Rec_Type;
891 l_SSC_tbl                     QP_Attr_Map_PUB.Ssc_Tbl_Type;
892 
893 CURSOR l_SSC_csr IS
894     SELECT  APPLICATION_SHORT_NAME
895     ,       ATTRIBUTE1
896     ,       ATTRIBUTE10
897     ,       ATTRIBUTE11
898     ,       ATTRIBUTE12
899     ,       ATTRIBUTE13
900     ,       ATTRIBUTE14
901     ,       ATTRIBUTE15
902     ,       ATTRIBUTE2
903     ,       ATTRIBUTE3
904     ,       ATTRIBUTE4
905     ,       ATTRIBUTE5
906     ,       ATTRIBUTE6
907     ,       ATTRIBUTE7
908     ,       ATTRIBUTE8
909     ,       ATTRIBUTE9
910     ,       CONTEXT
911     ,       CREATED_BY
912     ,       CREATION_DATE
913     ,       ENABLED_FLAG
914     ,       LAST_UPDATED_BY
915     ,       LAST_UPDATE_DATE
916     ,       LAST_UPDATE_LOGIN
917     ,       PROGRAM_APPLICATION_ID
918     ,       PROGRAM_ID
919     ,       PROGRAM_UPDATE_DATE
920     ,       PTE_CODE
921     ,       PTE_SOURCE_SYSTEM_ID
922     FROM    QP_PTE_SOURCE_SYSTEMS
923     WHERE ( PTE_SOURCE_SYSTEM_ID = p_pte_source_system_id
924     )
925     --**OR (    LOOKUP_CODE = p_lookup_code
926     OR (    PTE_CODE = p_lookup_code
927     );
928 
929 BEGIN
930 
931     IF
932     (p_pte_source_system_id IS NOT NULL
933      AND
934      p_pte_source_system_id <> FND_API.G_MISS_NUM)
935     AND
936     (p_lookup_code IS NOT NULL
937      AND
938      p_lookup_code <> FND_API.G_MISS_CHAR)
939     THEN
940             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
941             THEN
942                 OE_MSG_PUB.Add_Exc_Msg
943                 (   G_PKG_NAME
944                 ,   'Query Rows'
945                 ,   'Keys are mutually exclusive: pte_source_system_id = '|| p_pte_source_system_id || ', lookup_code = '|| p_lookup_code
946                 );
947             END IF;
948 
949         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
950 
951     END IF;
952 
953 
954     --  Loop over fetched records
955 
956     FOR l_implicit_rec IN l_SSC_csr LOOP
957 
958         l_SSC_rec.application_short_name := l_implicit_rec.APPLICATION_SHORT_NAME;
959         l_SSC_rec.attribute1           := l_implicit_rec.ATTRIBUTE1;
960         l_SSC_rec.attribute10          := l_implicit_rec.ATTRIBUTE10;
961         l_SSC_rec.attribute11          := l_implicit_rec.ATTRIBUTE11;
962         l_SSC_rec.attribute12          := l_implicit_rec.ATTRIBUTE12;
963         l_SSC_rec.attribute13          := l_implicit_rec.ATTRIBUTE13;
964         l_SSC_rec.attribute14          := l_implicit_rec.ATTRIBUTE14;
965         l_SSC_rec.attribute15          := l_implicit_rec.ATTRIBUTE15;
966         l_SSC_rec.attribute2           := l_implicit_rec.ATTRIBUTE2;
967         l_SSC_rec.attribute3           := l_implicit_rec.ATTRIBUTE3;
968         l_SSC_rec.attribute4           := l_implicit_rec.ATTRIBUTE4;
969         l_SSC_rec.attribute5           := l_implicit_rec.ATTRIBUTE5;
970         l_SSC_rec.attribute6           := l_implicit_rec.ATTRIBUTE6;
971         l_SSC_rec.attribute7           := l_implicit_rec.ATTRIBUTE7;
972         l_SSC_rec.attribute8           := l_implicit_rec.ATTRIBUTE8;
973         l_SSC_rec.attribute9           := l_implicit_rec.ATTRIBUTE9;
974         l_SSC_rec.context              := l_implicit_rec.CONTEXT;
975         l_SSC_rec.created_by           := l_implicit_rec.CREATED_BY;
976         l_SSC_rec.creation_date        := l_implicit_rec.CREATION_DATE;
977         l_SSC_rec.enabled_flag         := l_implicit_rec.ENABLED_FLAG;
978         l_SSC_rec.last_updated_by      := l_implicit_rec.LAST_UPDATED_BY;
979         l_SSC_rec.last_update_date     := l_implicit_rec.LAST_UPDATE_DATE;
980         l_SSC_rec.last_update_login    := l_implicit_rec.LAST_UPDATE_LOGIN;
981         l_SSC_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
982         l_SSC_rec.program_id           := l_implicit_rec.PROGRAM_ID;
983         l_SSC_rec.program_update_date  := l_implicit_rec.PROGRAM_UPDATE_DATE;
984         l_SSC_rec.pte_code             := l_implicit_rec.PTE_CODE;
985         l_SSC_rec.pte_source_system_id := l_implicit_rec.PTE_SOURCE_SYSTEM_ID;
986 
987         l_SSC_tbl(l_SSC_tbl.COUNT + 1) := l_SSC_rec;
988 
989     END LOOP;
990 
991 
992     --  PK sent and no rows found
993 
994     IF
995     (p_pte_source_system_id IS NOT NULL
996      AND
997      p_pte_source_system_id <> FND_API.G_MISS_NUM)
998     AND
999     (l_SSC_tbl.COUNT = 0)
1000     THEN
1001         RAISE NO_DATA_FOUND;
1002     END IF;
1003 
1004 
1005     --  Return fetched table
1006 
1007     RETURN l_SSC_tbl;
1008 
1009 EXCEPTION
1010 
1011     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1012 
1013         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1014 
1015     WHEN OTHERS THEN
1016 
1017         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1018         THEN
1019             OE_MSG_PUB.Add_Exc_Msg
1020             (   G_PKG_NAME
1021             ,   'Query_Rows'
1022             );
1023         END IF;
1024 
1025         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1026 
1027 END Query_Rows;
1028 
1032 PROCEDURE Lock_Row
1029 --  Procedure       lock_Row
1030 --
1031 
1033 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1034 ,   p_SSC_rec                       IN  QP_Attr_Map_PUB.Ssc_Rec_Type
1035 ,   x_SSC_rec                       OUT NOCOPY /* file.sql.39 change */ QP_Attr_Map_PUB.Ssc_Rec_Type
1036 )
1037 IS
1038 l_SSC_rec                     QP_Attr_Map_PUB.Ssc_Rec_Type;
1039 BEGIN
1040 
1041     SELECT  APPLICATION_SHORT_NAME
1042     ,       ATTRIBUTE1
1043     ,       ATTRIBUTE10
1044     ,       ATTRIBUTE11
1045     ,       ATTRIBUTE12
1046     ,       ATTRIBUTE13
1047     ,       ATTRIBUTE14
1048     ,       ATTRIBUTE15
1049     ,       ATTRIBUTE2
1050     ,       ATTRIBUTE3
1051     ,       ATTRIBUTE4
1052     ,       ATTRIBUTE5
1053     ,       ATTRIBUTE6
1054     ,       ATTRIBUTE7
1055     ,       ATTRIBUTE8
1056     ,       ATTRIBUTE9
1057     ,       CONTEXT
1058     ,       CREATED_BY
1059     ,       CREATION_DATE
1060     ,       ENABLED_FLAG
1061     ,       LAST_UPDATED_BY
1062     ,       LAST_UPDATE_DATE
1063     ,       LAST_UPDATE_LOGIN
1064     ,       PROGRAM_APPLICATION_ID
1065     ,       PROGRAM_ID
1066     ,       PROGRAM_UPDATE_DATE
1067     ,       PTE_CODE
1068     ,       PTE_SOURCE_SYSTEM_ID
1069     INTO    l_SSC_rec.application_short_name
1070     ,       l_SSC_rec.attribute1
1071     ,       l_SSC_rec.attribute10
1072     ,       l_SSC_rec.attribute11
1073     ,       l_SSC_rec.attribute12
1074     ,       l_SSC_rec.attribute13
1075     ,       l_SSC_rec.attribute14
1076     ,       l_SSC_rec.attribute15
1077     ,       l_SSC_rec.attribute2
1078     ,       l_SSC_rec.attribute3
1079     ,       l_SSC_rec.attribute4
1080     ,       l_SSC_rec.attribute5
1081     ,       l_SSC_rec.attribute6
1082     ,       l_SSC_rec.attribute7
1083     ,       l_SSC_rec.attribute8
1084     ,       l_SSC_rec.attribute9
1085     ,       l_SSC_rec.context
1086     ,       l_SSC_rec.created_by
1087     ,       l_SSC_rec.creation_date
1088     ,       l_SSC_rec.enabled_flag
1089     ,       l_SSC_rec.last_updated_by
1090     ,       l_SSC_rec.last_update_date
1091     ,       l_SSC_rec.last_update_login
1092     ,       l_SSC_rec.program_application_id
1093     ,       l_SSC_rec.program_id
1094     ,       l_SSC_rec.program_update_date
1095     ,       l_SSC_rec.pte_code
1096     ,       l_SSC_rec.pte_source_system_id
1097     FROM    QP_PTE_SOURCE_SYSTEMS
1098     WHERE   PTE_SOURCE_SYSTEM_ID = p_SSC_rec.pte_source_system_id
1099         FOR UPDATE NOWAIT;
1100 
1101     --  Row locked. Compare IN attributes to DB attributes.
1102 
1103     IF  QP_GLOBALS.Equal(p_SSC_rec.application_short_name,
1104                          l_SSC_rec.application_short_name)
1105     AND QP_GLOBALS.Equal(p_SSC_rec.attribute1,
1106                          l_SSC_rec.attribute1)
1107     AND QP_GLOBALS.Equal(p_SSC_rec.attribute10,
1108                          l_SSC_rec.attribute10)
1109     AND QP_GLOBALS.Equal(p_SSC_rec.attribute11,
1110                          l_SSC_rec.attribute11)
1111     AND QP_GLOBALS.Equal(p_SSC_rec.attribute12,
1112                          l_SSC_rec.attribute12)
1113     AND QP_GLOBALS.Equal(p_SSC_rec.attribute13,
1114                          l_SSC_rec.attribute13)
1115     AND QP_GLOBALS.Equal(p_SSC_rec.attribute14,
1116                          l_SSC_rec.attribute14)
1117     AND QP_GLOBALS.Equal(p_SSC_rec.attribute15,
1118                          l_SSC_rec.attribute15)
1119     AND QP_GLOBALS.Equal(p_SSC_rec.attribute2,
1120                          l_SSC_rec.attribute2)
1121     AND QP_GLOBALS.Equal(p_SSC_rec.attribute3,
1122                          l_SSC_rec.attribute3)
1123     AND QP_GLOBALS.Equal(p_SSC_rec.attribute4,
1124                          l_SSC_rec.attribute4)
1125     AND QP_GLOBALS.Equal(p_SSC_rec.attribute5,
1126                          l_SSC_rec.attribute5)
1127     AND QP_GLOBALS.Equal(p_SSC_rec.attribute6,
1128                          l_SSC_rec.attribute6)
1129     AND QP_GLOBALS.Equal(p_SSC_rec.attribute7,
1130                          l_SSC_rec.attribute7)
1131     AND QP_GLOBALS.Equal(p_SSC_rec.attribute8,
1132                          l_SSC_rec.attribute8)
1133     AND QP_GLOBALS.Equal(p_SSC_rec.attribute9,
1134                          l_SSC_rec.attribute9)
1135     AND QP_GLOBALS.Equal(p_SSC_rec.context,
1136                          l_SSC_rec.context)
1137     AND QP_GLOBALS.Equal(p_SSC_rec.created_by,
1138                          l_SSC_rec.created_by)
1139     AND QP_GLOBALS.Equal(p_SSC_rec.creation_date,
1140                          l_SSC_rec.creation_date)
1141     AND QP_GLOBALS.Equal(p_SSC_rec.enabled_flag,
1142                          l_SSC_rec.enabled_flag)
1143     AND QP_GLOBALS.Equal(p_SSC_rec.last_updated_by,
1144                          l_SSC_rec.last_updated_by)
1145     AND QP_GLOBALS.Equal(p_SSC_rec.last_update_date,
1146                          l_SSC_rec.last_update_date)
1147     AND QP_GLOBALS.Equal(p_SSC_rec.last_update_login,
1148                          l_SSC_rec.last_update_login)
1149     AND QP_GLOBALS.Equal(p_SSC_rec.program_application_id,
1150                          l_SSC_rec.program_application_id)
1151     AND QP_GLOBALS.Equal(p_SSC_rec.program_id,
1152                          l_SSC_rec.program_id)
1153     AND QP_GLOBALS.Equal(p_SSC_rec.program_update_date,
1154                          l_SSC_rec.program_update_date)
1155     AND QP_GLOBALS.Equal(p_SSC_rec.pte_code,
1156                          l_SSC_rec.pte_code)
1157     AND QP_GLOBALS.Equal(p_SSC_rec.pte_source_system_id,
1158                          l_SSC_rec.pte_source_system_id)
1159     THEN
1160 
1161         --  Row has not changed. Set out parameter.
1162 
1163         x_SSC_rec                      := l_SSC_rec;
1164 
1165         --  Set return status
1166 
1170     ELSE
1167         x_return_status                := FND_API.G_RET_STS_SUCCESS;
1168         x_SSC_rec.return_status        := FND_API.G_RET_STS_SUCCESS;
1169 
1171 
1172         --  Row has changed by another user.
1173 
1174         x_return_status                := FND_API.G_RET_STS_ERROR;
1175         x_SSC_rec.return_status        := FND_API.G_RET_STS_ERROR;
1176 
1177         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1178         THEN
1179 
1180             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_CHANGED');
1181             OE_MSG_PUB.Add;
1182 
1183         END IF;
1184 
1185     END IF;
1186 
1187 EXCEPTION
1188 
1189     WHEN NO_DATA_FOUND THEN
1190 
1191         x_return_status                := FND_API.G_RET_STS_ERROR;
1192         x_SSC_rec.return_status        := FND_API.G_RET_STS_ERROR;
1193 
1194         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1195         THEN
1196 
1197             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_DELETED');
1198             OE_MSG_PUB.Add;
1199 
1200         END IF;
1201     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
1202 
1203         x_return_status                := FND_API.G_RET_STS_ERROR;
1204         x_SSC_rec.return_status        := FND_API.G_RET_STS_ERROR;
1205 
1206         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1207         THEN
1208 
1209             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_ALREADY_LOCKED');
1210             OE_MSG_PUB.Add;
1211 
1212         END IF;
1213     WHEN OTHERS THEN
1214 
1215         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
1216         x_SSC_rec.return_status        := FND_API.G_RET_STS_UNEXP_ERROR;
1217 
1218         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1219         THEN
1220             OE_MSG_PUB.Add_Exc_Msg
1221             (   G_PKG_NAME
1222             ,   'Lock_Row'
1223             );
1224         END IF;
1225 
1226 END Lock_Row;
1227 
1228 --  Function Get_Values
1229 
1230 FUNCTION Get_Values
1231 (   p_SSC_rec                       IN  QP_Attr_Map_PUB.Ssc_Rec_Type
1232 ,   p_old_SSC_rec                   IN  QP_Attr_Map_PUB.Ssc_Rec_Type :=
1233                                         QP_Attr_Map_PUB.G_MISS_SSC_REC
1234 ) RETURN QP_Attr_Map_PUB.Ssc_Val_Rec_Type
1235 IS
1236 l_SSC_val_rec                 QP_Attr_Map_PUB.Ssc_Val_Rec_Type;
1237 BEGIN
1238 
1239     IF p_SSC_rec.enabled_flag IS NOT NULL AND
1240         p_SSC_rec.enabled_flag <> FND_API.G_MISS_CHAR AND
1241         NOT QP_GLOBALS.Equal(p_SSC_rec.enabled_flag,
1242         p_old_SSC_rec.enabled_flag)
1243     THEN
1244         l_SSC_val_rec.enabled := QP_Id_To_Value.Enabled
1245         (   p_enabled_flag                => p_SSC_rec.enabled_flag
1246         );
1247     END IF;
1248 
1249     IF p_SSC_rec.pte_code IS NOT NULL AND
1250         p_SSC_rec.pte_code <> FND_API.G_MISS_CHAR AND
1251         NOT QP_GLOBALS.Equal(p_SSC_rec.pte_code,
1252         p_old_SSC_rec.pte_code)
1253     THEN
1254         l_SSC_val_rec.pte := QP_Id_To_Value.Pte
1255         (   p_pte_code                    => p_SSC_rec.pte_code
1256         );
1257     END IF;
1258 
1259     IF p_SSC_rec.pte_source_system_id IS NOT NULL AND
1260         p_SSC_rec.pte_source_system_id <> FND_API.G_MISS_NUM AND
1261         NOT QP_GLOBALS.Equal(p_SSC_rec.pte_source_system_id,
1262         p_old_SSC_rec.pte_source_system_id)
1263     THEN
1264         l_SSC_val_rec.pte_source_system := QP_Id_To_Value.Pte_Source_System
1265         (   p_pte_source_system_id        => p_SSC_rec.pte_source_system_id
1266         );
1267     END IF;
1268 
1269     RETURN l_SSC_val_rec;
1270 
1271 END Get_Values;
1272 
1273 --  Function Get_Ids
1274 
1275 FUNCTION Get_Ids
1276 (   p_SSC_rec                       IN  QP_Attr_Map_PUB.Ssc_Rec_Type
1277 ,   p_SSC_val_rec                   IN  QP_Attr_Map_PUB.Ssc_Val_Rec_Type
1278 ) RETURN QP_Attr_Map_PUB.Ssc_Rec_Type
1279 IS
1280 l_SSC_rec                     QP_Attr_Map_PUB.Ssc_Rec_Type;
1281 BEGIN
1282 
1283     --  initialize  return_status.
1284 
1285     l_SSC_rec.return_status := FND_API.G_RET_STS_SUCCESS;
1286 
1287     --  initialize l_SSC_rec.
1288 
1289     l_SSC_rec := p_SSC_rec;
1290 
1291     IF  p_SSC_val_rec.enabled <> FND_API.G_MISS_CHAR
1292     THEN
1293 
1294         IF p_SSC_rec.enabled_flag <> FND_API.G_MISS_CHAR THEN
1295 
1296             l_SSC_rec.enabled_flag := p_SSC_rec.enabled_flag;
1297 
1298             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1299             THEN
1300 
1301                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1302                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','enabled');
1303                 OE_MSG_PUB.Add;
1304 
1305             END IF;
1306 
1307         ELSE
1308 
1309             l_SSC_rec.enabled_flag := QP_Value_To_Id.enabled
1310             (   p_enabled                     => p_SSC_val_rec.enabled
1311             );
1312 
1313             IF l_SSC_rec.enabled_flag = FND_API.G_MISS_CHAR THEN
1314                 l_SSC_rec.return_status := FND_API.G_RET_STS_ERROR;
1315             END IF;
1316 
1317         END IF;
1318 
1319     END IF;
1320 
1321     IF  p_SSC_val_rec.pte <> FND_API.G_MISS_CHAR
1322     THEN
1323 
1324         IF p_SSC_rec.pte_code <> FND_API.G_MISS_CHAR THEN
1325 
1326             l_SSC_rec.pte_code := p_SSC_rec.pte_code;
1327 
1328             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1329             THEN
1330 
1331                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1332                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','pte');
1333                 OE_MSG_PUB.Add;
1334 
1335             END IF;
1336 
1337         ELSE
1338 
1339             l_SSC_rec.pte_code := QP_Value_To_Id.pte
1340             (   p_pte                         => p_SSC_val_rec.pte
1341             );
1342 
1343             IF l_SSC_rec.pte_code = FND_API.G_MISS_CHAR THEN
1344                 l_SSC_rec.return_status := FND_API.G_RET_STS_ERROR;
1345             END IF;
1346 
1347         END IF;
1348 
1349     END IF;
1350 
1351     IF  p_SSC_val_rec.pte_source_system <> FND_API.G_MISS_CHAR
1352     THEN
1353 
1354         IF p_SSC_rec.pte_source_system_id <> FND_API.G_MISS_NUM THEN
1355 
1356             l_SSC_rec.pte_source_system_id := p_SSC_rec.pte_source_system_id;
1357 
1358             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1359             THEN
1360 
1361                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1362                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','pte_source_system');
1363                 OE_MSG_PUB.Add;
1364 
1365             END IF;
1366 
1367         ELSE
1368 
1369             l_SSC_rec.pte_source_system_id := QP_Value_To_Id.pte_source_system
1370             (   p_pte_source_system           => p_SSC_val_rec.pte_source_system
1371             );
1372 
1373             IF l_SSC_rec.pte_source_system_id = FND_API.G_MISS_NUM THEN
1374                 l_SSC_rec.return_status := FND_API.G_RET_STS_ERROR;
1375             END IF;
1376 
1377         END IF;
1378 
1379     END IF;
1380 
1381 
1382     RETURN l_SSC_rec;
1383 
1384 END Get_Ids;
1385 
1386 END QP_Ssc_Util;