DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_QP_FORM_SSC

Source


1 PACKAGE BODY QP_QP_Form_Ssc AS
2 /* $Header: QPXFSSCB.pls 120.2 2005/07/18 18:38:20 appldev ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_QP_Form_Ssc';
7 
8 --  Global variables holding cached record.
9 
10 g_SSC_rec                     QP_Attr_Map_PUB.Ssc_Rec_Type;
11 g_db_SSC_rec                  QP_Attr_Map_PUB.Ssc_Rec_Type;
12 
13 --  Forward declaration of procedures maintaining entity record cache.
14 
15 PROCEDURE Write_SSC
16 (   p_SSC_rec                       IN  QP_Attr_Map_PUB.Ssc_Rec_Type
17 ,   p_db_record                     IN  BOOLEAN := FALSE
18 );
19 
20 FUNCTION Get_SSC
21 (   p_db_record                     IN  BOOLEAN := FALSE
22 ,   p_pte_source_system_id          IN  NUMBER
23 )
24 RETURN QP_Attr_Map_PUB.Ssc_Rec_Type;
25 
26 PROCEDURE Clear_SSC;
27 
28 --  Global variable holding performed operations.
29 
30 g_opr__tbl                    QP_Attr_Map_PUB.Ssc_Tbl_Type;
31 
32 --  Procedure : Default_Attributes
33 --
34 
35 PROCEDURE Default_Attributes
36 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
37 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
38 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
39 ,   x_application_short_name        OUT NOCOPY /* file.sql.39 change */ VARCHAR2
40 ,   x_attribute1                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
41 ,   x_attribute10                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
42 ,   x_attribute11                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
43 ,   x_attribute12                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
44 ,   x_attribute13                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
45 ,   x_attribute14                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
46 ,   x_attribute15                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
47 ,   x_attribute2                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
48 ,   x_attribute3                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
49 ,   x_attribute4                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
50 ,   x_attribute5                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
51 ,   x_attribute6                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
52 ,   x_attribute7                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
53 ,   x_attribute8                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
54 ,   x_attribute9                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
55 ,   x_context                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
56 ,   x_enabled_flag                  OUT NOCOPY /* file.sql.39 change */ VARCHAR2
57 ,   x_pte_code                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
58 ,   x_pte_source_system_id          OUT NOCOPY /* file.sql.39 change */ NUMBER
59 ,   x_enabled                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
60 ,   x_pte                           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
61 ,   x_pte_source_system             OUT NOCOPY /* file.sql.39 change */ VARCHAR2
62 )
63 IS
64 l_SSC_rec                     QP_Attr_Map_PUB.Ssc_Rec_Type;
65 l_SSC_val_rec                 QP_Attr_Map_PUB.Ssc_Val_Rec_Type;
66 l_SSC_tbl                     QP_Attr_Map_PUB.Ssc_Tbl_Type;
67 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
68 l_return_status               VARCHAR2(1);
69 l_x_PTE_rec                   QP_Attr_Map_PUB.Pte_Rec_Type;
70 l_x_RQT_rec                   QP_Attr_Map_PUB.Rqt_Rec_Type;
71 l_x_RQT_tbl                   QP_Attr_Map_PUB.Rqt_Tbl_Type;
72 l_x_SSC_rec                   QP_Attr_Map_PUB.Ssc_Rec_Type;
73 l_x_SSC_tbl                   QP_Attr_Map_PUB.Ssc_Tbl_Type;
74 l_x_PSG_rec                   QP_Attr_Map_PUB.Psg_Rec_Type;
75 l_x_PSG_tbl                   QP_Attr_Map_PUB.Psg_Tbl_Type;
76 l_x_SOU_rec                   QP_Attr_Map_PUB.Sou_Rec_Type;
77 l_x_SOU_tbl                   QP_Attr_Map_PUB.Sou_Tbl_Type;
78 l_x_FNA_rec                   QP_Attr_Map_PUB.Fna_Rec_Type;
79 l_x_FNA_tbl                   QP_Attr_Map_PUB.Fna_Tbl_Type;
80 BEGIN
81 
82     --  Set control flags.
83 
84     l_control_rec.controlled_operation := TRUE;
85     l_control_rec.default_attributes   := TRUE;
86 
87     l_control_rec.change_attributes    := FALSE;
88     l_control_rec.validate_entity      := FALSE;
89     l_control_rec.write_to_DB          := FALSE;
90     l_control_rec.process              := FALSE;
91 
92     --  Instruct API to retain its caches
93 
94     l_control_rec.clear_api_cache      := FALSE;
95     l_control_rec.clear_api_requests   := FALSE;
96 
97     --  Load IN parameters if any exist
98 
99 
100     --  Defaulting of flex values is currently done by the form.
101     --  Set flex attributes to NULL in order to avoid defaulting them.
102 
103     l_SSC_rec.attribute1                          := NULL;
104     l_SSC_rec.attribute10                         := NULL;
105     l_SSC_rec.attribute11                         := NULL;
106     l_SSC_rec.attribute12                         := NULL;
107     l_SSC_rec.attribute13                         := NULL;
108     l_SSC_rec.attribute14                         := NULL;
109     l_SSC_rec.attribute15                         := NULL;
110     l_SSC_rec.attribute2                          := NULL;
111     l_SSC_rec.attribute3                          := NULL;
112     l_SSC_rec.attribute4                          := NULL;
113     l_SSC_rec.attribute5                          := NULL;
114     l_SSC_rec.attribute6                          := NULL;
115     l_SSC_rec.attribute7                          := NULL;
116     l_SSC_rec.attribute8                          := NULL;
117     l_SSC_rec.attribute9                          := NULL;
118     l_SSC_rec.context                             := NULL;
119 
120     --  Set Operation to Create
121 
122     l_SSC_rec.operation := QP_GLOBALS.G_OPR_CREATE;
123 
124     --  Populate SSC table
125 
126     l_SSC_tbl(1) := l_SSC_rec;
127 
128     --  Call QP_Attr_Map_PVT.Process_Attr_Mapping
129 
130     QP_Attr_Map_PVT.Process_Attr_Mapping
131     (   p_api_version_number          => 1.0
132     ,   p_init_msg_list               => FND_API.G_TRUE
133     ,   x_return_status               => l_return_status
134     ,   x_msg_count                   => x_msg_count
135     ,   x_msg_data                    => x_msg_data
136     ,   p_control_rec                 => l_control_rec
137     ,   p_SSC_tbl                     => l_SSC_tbl
138     ,   x_PTE_rec                     => l_x_PTE_rec
139     ,   x_RQT_tbl                     => l_x_RQT_tbl
140     ,   x_SSC_tbl                     => l_x_SSC_tbl
141     ,   x_PSG_tbl                     => l_x_PSG_tbl
142     ,   x_SOU_tbl                     => l_x_SOU_tbl
143     ,   x_FNA_tbl                     => l_x_FNA_tbl
144     );
145 
146     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
147         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
148     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
149         RAISE FND_API.G_EXC_ERROR;
150     END IF;
151 
152 
153     --  Unload out tbl
154 
155     l_x_SSC_rec := l_x_SSC_tbl(1);
156 
157     --  Load OUT parameters.
158 
159     x_application_short_name       := l_x_SSC_rec.application_short_name;
160     x_attribute1                   := l_x_SSC_rec.attribute1;
161     x_attribute10                  := l_x_SSC_rec.attribute10;
162     x_attribute11                  := l_x_SSC_rec.attribute11;
163     x_attribute12                  := l_x_SSC_rec.attribute12;
164     x_attribute13                  := l_x_SSC_rec.attribute13;
165     x_attribute14                  := l_x_SSC_rec.attribute14;
166     x_attribute15                  := l_x_SSC_rec.attribute15;
167     x_attribute2                   := l_x_SSC_rec.attribute2;
168     x_attribute3                   := l_x_SSC_rec.attribute3;
169     x_attribute4                   := l_x_SSC_rec.attribute4;
170     x_attribute5                   := l_x_SSC_rec.attribute5;
171     x_attribute6                   := l_x_SSC_rec.attribute6;
172     x_attribute7                   := l_x_SSC_rec.attribute7;
173     x_attribute8                   := l_x_SSC_rec.attribute8;
174     x_attribute9                   := l_x_SSC_rec.attribute9;
175     x_context                      := l_x_SSC_rec.context;
176     x_enabled_flag                 := l_x_SSC_rec.enabled_flag;
177     x_pte_code                     := l_x_SSC_rec.pte_code;
178     x_pte_source_system_id         := l_x_SSC_rec.pte_source_system_id;
179 
180     --  Load display out parameters if any
181 
182     l_SSC_val_rec := QP_Ssc_Util.Get_Values
183     (   p_SSC_rec                     => l_x_SSC_rec
184     );
185     x_enabled                      := l_SSC_val_rec.enabled;
186     x_pte                          := l_SSC_val_rec.pte;
187     x_pte_source_system            := l_SSC_val_rec.pte_source_system;
188 
189     --  Write to cache.
190     --  Set db_flag to False before writing to cache
191 
192     l_x_SSC_rec.db_flag := FND_API.G_FALSE;
193 
194     Write_SSC
195     (   p_SSC_rec                     => l_x_SSC_rec
196     );
197 
198     --  Set return status.
199 
200     x_return_status := FND_API.G_RET_STS_SUCCESS;
201 
202     --  Get message count and data
203 
204     OE_MSG_PUB.Count_And_Get
205     (   p_count                       => x_msg_count
206     ,   p_data                        => x_msg_data
207     );
208 
209 
210 EXCEPTION
211 
212     WHEN FND_API.G_EXC_ERROR THEN
213 
214         x_return_status := FND_API.G_RET_STS_ERROR;
215 
216         --  Get message count and data
217 
218         OE_MSG_PUB.Count_And_Get
219         (   p_count                       => x_msg_count
220         ,   p_data                        => x_msg_data
221         );
222 
223     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
224 
225         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
226 
227         --  Get message count and data
228 
229         OE_MSG_PUB.Count_And_Get
230         (   p_count                       => x_msg_count
231         ,   p_data                        => x_msg_data
232         );
233 
234     WHEN OTHERS THEN
235 
236         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
237 
238         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
239         THEN
240             OE_MSG_PUB.Add_Exc_Msg
241             (   G_PKG_NAME
242             ,   'Default_Attributes'
243             );
244         END IF;
245 
246         --  Get message count and data
247 
248         OE_MSG_PUB.Count_And_Get
249         (   p_count                       => x_msg_count
250         ,   p_data                        => x_msg_data
251         );
252 
253 END Default_Attributes;
254 
255 --  Procedure   :   Change_Attribute
256 --
257 
258 PROCEDURE Change_Attribute
259 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
260 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
261 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
262 ,   p_pte_source_system_id          IN  NUMBER
263 ,   p_attr_id                       IN  NUMBER
264 ,   p_attr_value                    IN  VARCHAR2
265 ,   p_attribute1                    IN  VARCHAR2
266 ,   p_attribute10                   IN  VARCHAR2
267 ,   p_attribute11                   IN  VARCHAR2
268 ,   p_attribute12                   IN  VARCHAR2
269 ,   p_attribute13                   IN  VARCHAR2
270 ,   p_attribute14                   IN  VARCHAR2
271 ,   p_attribute15                   IN  VARCHAR2
272 ,   p_attribute2                    IN  VARCHAR2
273 ,   p_attribute3                    IN  VARCHAR2
274 ,   p_attribute4                    IN  VARCHAR2
275 ,   p_attribute5                    IN  VARCHAR2
276 ,   p_attribute6                    IN  VARCHAR2
277 ,   p_attribute7                    IN  VARCHAR2
278 ,   p_attribute8                    IN  VARCHAR2
279 ,   p_attribute9                    IN  VARCHAR2
280 ,   p_context                       IN  VARCHAR2
281 ,   x_application_short_name        OUT NOCOPY /* file.sql.39 change */ VARCHAR2
282 ,   x_attribute1                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
283 ,   x_attribute10                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
284 ,   x_attribute11                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
285 ,   x_attribute12                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
286 ,   x_attribute13                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
287 ,   x_attribute14                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
288 ,   x_attribute15                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
289 ,   x_attribute2                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
290 ,   x_attribute3                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
291 ,   x_attribute4                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
292 ,   x_attribute5                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
293 ,   x_attribute6                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
294 ,   x_attribute7                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
295 ,   x_attribute8                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
296 ,   x_attribute9                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
297 ,   x_context                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
298 ,   x_enabled_flag                  OUT NOCOPY /* file.sql.39 change */ VARCHAR2
299 ,   x_pte_code                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
300 ,   x_pte_source_system_id          OUT NOCOPY /* file.sql.39 change */ NUMBER
301 ,   x_enabled                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
302 ,   x_pte                           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
303 ,   x_pte_source_system             OUT NOCOPY /* file.sql.39 change */ VARCHAR2
304 )
305 IS
306 l_SSC_rec                     QP_Attr_Map_PUB.Ssc_Rec_Type;
307 l_old_SSC_rec                 QP_Attr_Map_PUB.Ssc_Rec_Type;
308 l_SSC_val_rec                 QP_Attr_Map_PUB.Ssc_Val_Rec_Type;
309 l_SSC_tbl                     QP_Attr_Map_PUB.Ssc_Tbl_Type;
310 l_old_SSC_tbl                 QP_Attr_Map_PUB.Ssc_Tbl_Type;
311 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
312 l_return_status               VARCHAR2(1);
313 l_x_PTE_rec                   QP_Attr_Map_PUB.Pte_Rec_Type;
314 l_x_RQT_rec                   QP_Attr_Map_PUB.Rqt_Rec_Type;
315 l_x_RQT_tbl                   QP_Attr_Map_PUB.Rqt_Tbl_Type;
316 l_x_SSC_rec                   QP_Attr_Map_PUB.Ssc_Rec_Type;
317 l_x_SSC_tbl                   QP_Attr_Map_PUB.Ssc_Tbl_Type;
318 l_x_PSG_rec                   QP_Attr_Map_PUB.Psg_Rec_Type;
319 l_x_PSG_tbl                   QP_Attr_Map_PUB.Psg_Tbl_Type;
320 l_x_SOU_rec                   QP_Attr_Map_PUB.Sou_Rec_Type;
321 l_x_SOU_tbl                   QP_Attr_Map_PUB.Sou_Tbl_Type;
322 l_x_FNA_rec                   QP_Attr_Map_PUB.Fna_Rec_Type;
323 l_x_FNA_tbl                   QP_Attr_Map_PUB.Fna_Tbl_Type;
324 BEGIN
325 
326     --  Set control flags.
327 
328     l_control_rec.controlled_operation := TRUE;
329     l_control_rec.change_attributes    := TRUE;
330 
331     l_control_rec.default_attributes   := FALSE;
332     l_control_rec.validate_entity      := FALSE;
333     l_control_rec.write_to_DB          := FALSE;
334     l_control_rec.process              := FALSE;
335 
336     --  Instruct API to retain its caches
337 
338     l_control_rec.clear_api_cache      := FALSE;
339     l_control_rec.clear_api_requests   := FALSE;
340 
341     --  Read SSC from cache
342 
343     l_SSC_rec := Get_SSC
344     (   p_db_record                   => FALSE
345     ,   p_pte_source_system_id        => p_pte_source_system_id
346     );
347 
348     l_old_SSC_rec                  := l_SSC_rec;
349 
350     IF p_attr_id = QP_Ssc_Util.G_APPLICATION_SHORT_NAME THEN
351         l_SSC_rec.application_short_name := p_attr_value;
352     ELSIF p_attr_id = QP_Ssc_Util.G_ENABLED THEN
353         l_SSC_rec.enabled_flag := p_attr_value;
354     ELSIF p_attr_id = QP_Ssc_Util.G_PTE THEN
355         l_SSC_rec.pte_code := p_attr_value;
356     ELSIF p_attr_id = QP_Ssc_Util.G_PTE_SOURCE_SYSTEM THEN
357         l_SSC_rec.pte_source_system_id := TO_NUMBER(p_attr_value);
358     ELSIF p_attr_id = QP_Ssc_Util.G_ATTRIBUTE1
359     OR     p_attr_id = QP_Ssc_Util.G_ATTRIBUTE10
360     OR     p_attr_id = QP_Ssc_Util.G_ATTRIBUTE11
361     OR     p_attr_id = QP_Ssc_Util.G_ATTRIBUTE12
362     OR     p_attr_id = QP_Ssc_Util.G_ATTRIBUTE13
363     OR     p_attr_id = QP_Ssc_Util.G_ATTRIBUTE14
364     OR     p_attr_id = QP_Ssc_Util.G_ATTRIBUTE15
365     OR     p_attr_id = QP_Ssc_Util.G_ATTRIBUTE2
366     OR     p_attr_id = QP_Ssc_Util.G_ATTRIBUTE3
367     OR     p_attr_id = QP_Ssc_Util.G_ATTRIBUTE4
368     OR     p_attr_id = QP_Ssc_Util.G_ATTRIBUTE5
369     OR     p_attr_id = QP_Ssc_Util.G_ATTRIBUTE6
370     OR     p_attr_id = QP_Ssc_Util.G_ATTRIBUTE7
371     OR     p_attr_id = QP_Ssc_Util.G_ATTRIBUTE8
372     OR     p_attr_id = QP_Ssc_Util.G_ATTRIBUTE9
373     OR     p_attr_id = QP_Ssc_Util.G_CONTEXT
374     THEN
375 
376         l_SSC_rec.attribute1           := p_attribute1;
377         l_SSC_rec.attribute10          := p_attribute10;
378         l_SSC_rec.attribute11          := p_attribute11;
379         l_SSC_rec.attribute12          := p_attribute12;
380         l_SSC_rec.attribute13          := p_attribute13;
381         l_SSC_rec.attribute14          := p_attribute14;
382         l_SSC_rec.attribute15          := p_attribute15;
383         l_SSC_rec.attribute2           := p_attribute2;
384         l_SSC_rec.attribute3           := p_attribute3;
385         l_SSC_rec.attribute4           := p_attribute4;
386         l_SSC_rec.attribute5           := p_attribute5;
387         l_SSC_rec.attribute6           := p_attribute6;
388         l_SSC_rec.attribute7           := p_attribute7;
389         l_SSC_rec.attribute8           := p_attribute8;
390         l_SSC_rec.attribute9           := p_attribute9;
391         l_SSC_rec.context              := p_context;
392 
393     ELSE
394 
395         --  Unexpected error, unrecognized attribute
396 
397         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
398         THEN
399             OE_MSG_PUB.Add_Exc_Msg
400             (   G_PKG_NAME
401             ,   'Change_Attribute'
402             ,   'Unrecognized attribute'
403             );
404         END IF;
405 
406         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
407 
408     END IF;
409 
410     --  Set Operation.
411 
412     IF FND_API.To_Boolean(l_SSC_rec.db_flag) THEN
413         l_SSC_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
414     ELSE
415         l_SSC_rec.operation := QP_GLOBALS.G_OPR_CREATE;
416     END IF;
417 
418     --  Populate SSC table
419 
420     l_SSC_tbl(1) := l_SSC_rec;
421     l_old_SSC_tbl(1) := l_old_SSC_rec;
422 
423     --  Call QP_Attr_Map_PVT.Process_Attr_Mapping
424 
425     QP_Attr_Map_PVT.Process_Attr_Mapping
426     (   p_api_version_number          => 1.0
427     ,   p_init_msg_list               => FND_API.G_TRUE
428     ,   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
429     ,   x_return_status               => l_return_status
430     ,   x_msg_count                   => x_msg_count
431     ,   x_msg_data                    => x_msg_data
432     ,   p_control_rec                 => l_control_rec
433     ,   p_SSC_tbl                     => l_SSC_tbl
434     ,   p_old_SSC_tbl                 => l_old_SSC_tbl
435     ,   x_PTE_rec                     => l_x_PTE_rec
436     ,   x_RQT_tbl                     => l_x_RQT_tbl
437     ,   x_SSC_tbl                     => l_x_SSC_tbl
438     ,   x_PSG_tbl                     => l_x_PSG_tbl
439     ,   x_SOU_tbl                     => l_x_SOU_tbl
440     ,   x_FNA_tbl                     => l_x_FNA_tbl
441     );
442 
443     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
444         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
445     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
446         RAISE FND_API.G_EXC_ERROR;
447     END IF;
448 
449 
450     --  Unload out tbl
451 
452     l_x_SSC_rec := l_x_SSC_tbl(1);
453 
454     --  Init OUT parameters to missing.
455 
456     x_application_short_name       := FND_API.G_MISS_CHAR;
457     x_attribute1                   := FND_API.G_MISS_CHAR;
458     x_attribute10                  := FND_API.G_MISS_CHAR;
459     x_attribute11                  := FND_API.G_MISS_CHAR;
460     x_attribute12                  := FND_API.G_MISS_CHAR;
461     x_attribute13                  := FND_API.G_MISS_CHAR;
462     x_attribute14                  := FND_API.G_MISS_CHAR;
463     x_attribute15                  := FND_API.G_MISS_CHAR;
464     x_attribute2                   := FND_API.G_MISS_CHAR;
465     x_attribute3                   := FND_API.G_MISS_CHAR;
466     x_attribute4                   := FND_API.G_MISS_CHAR;
467     x_attribute5                   := FND_API.G_MISS_CHAR;
468     x_attribute6                   := FND_API.G_MISS_CHAR;
469     x_attribute7                   := FND_API.G_MISS_CHAR;
470     x_attribute8                   := FND_API.G_MISS_CHAR;
471     x_attribute9                   := FND_API.G_MISS_CHAR;
472     x_context                      := FND_API.G_MISS_CHAR;
473     x_enabled_flag                 := FND_API.G_MISS_CHAR;
474     x_pte_code                     := FND_API.G_MISS_CHAR;
475     x_pte_source_system_id         := FND_API.G_MISS_NUM;
476     x_enabled                      := FND_API.G_MISS_CHAR;
477     x_pte                          := FND_API.G_MISS_CHAR;
478     x_pte_source_system            := FND_API.G_MISS_CHAR;
479 
480     --  Load display out parameters if any
481 
482     l_SSC_val_rec := QP_Ssc_Util.Get_Values
483     (   p_SSC_rec                     => l_x_SSC_rec
484     ,   p_old_SSC_rec                 => l_SSC_rec
485     );
486 
487     --  Return changed attributes.
488 
489     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.application_short_name,
490                             l_SSC_rec.application_short_name)
491     THEN
492         x_application_short_name := l_x_SSC_rec.application_short_name;
493     END IF;
494 
495     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.attribute1,
496                             l_SSC_rec.attribute1)
497     THEN
498         x_attribute1 := l_x_SSC_rec.attribute1;
499     END IF;
500 
501     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.attribute10,
502                             l_SSC_rec.attribute10)
503     THEN
504         x_attribute10 := l_x_SSC_rec.attribute10;
505     END IF;
506 
507     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.attribute11,
508                             l_SSC_rec.attribute11)
509     THEN
510         x_attribute11 := l_x_SSC_rec.attribute11;
511     END IF;
512 
513     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.attribute12,
514                             l_SSC_rec.attribute12)
515     THEN
516         x_attribute12 := l_x_SSC_rec.attribute12;
517     END IF;
518 
519     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.attribute13,
520                             l_SSC_rec.attribute13)
521     THEN
522         x_attribute13 := l_x_SSC_rec.attribute13;
523     END IF;
524 
525     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.attribute14,
526                             l_SSC_rec.attribute14)
527     THEN
528         x_attribute14 := l_x_SSC_rec.attribute14;
529     END IF;
530 
531     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.attribute15,
532                             l_SSC_rec.attribute15)
533     THEN
534         x_attribute15 := l_x_SSC_rec.attribute15;
535     END IF;
536 
537     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.attribute2,
538                             l_SSC_rec.attribute2)
539     THEN
540         x_attribute2 := l_x_SSC_rec.attribute2;
541     END IF;
542 
543     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.attribute3,
544                             l_SSC_rec.attribute3)
545     THEN
546         x_attribute3 := l_x_SSC_rec.attribute3;
547     END IF;
548 
549     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.attribute4,
550                             l_SSC_rec.attribute4)
551     THEN
552         x_attribute4 := l_x_SSC_rec.attribute4;
553     END IF;
554 
555     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.attribute5,
556                             l_SSC_rec.attribute5)
557     THEN
558         x_attribute5 := l_x_SSC_rec.attribute5;
559     END IF;
560 
561     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.attribute6,
562                             l_SSC_rec.attribute6)
563     THEN
564         x_attribute6 := l_x_SSC_rec.attribute6;
565     END IF;
566 
567     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.attribute7,
568                             l_SSC_rec.attribute7)
569     THEN
570         x_attribute7 := l_x_SSC_rec.attribute7;
571     END IF;
572 
573     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.attribute8,
574                             l_SSC_rec.attribute8)
575     THEN
576         x_attribute8 := l_x_SSC_rec.attribute8;
577     END IF;
578 
579     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.attribute9,
580                             l_SSC_rec.attribute9)
581     THEN
582         x_attribute9 := l_x_SSC_rec.attribute9;
583     END IF;
584 
585     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.context,
586                             l_SSC_rec.context)
587     THEN
588         x_context := l_x_SSC_rec.context;
589     END IF;
590 
591     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.enabled_flag,
592                             l_SSC_rec.enabled_flag)
593     THEN
594         x_enabled_flag := l_x_SSC_rec.enabled_flag;
595         x_enabled := l_SSC_val_rec.enabled;
596     END IF;
597 
598     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.pte_code,
599                             l_SSC_rec.pte_code)
600     THEN
601         x_pte_code := l_x_SSC_rec.pte_code;
602         x_pte := l_SSC_val_rec.pte;
603     END IF;
604 
605     IF NOT QP_GLOBALS.Equal(l_x_SSC_rec.pte_source_system_id,
606                             l_SSC_rec.pte_source_system_id)
607     THEN
608         x_pte_source_system_id := l_x_SSC_rec.pte_source_system_id;
609         x_pte_source_system := l_SSC_val_rec.pte_source_system;
610     END IF;
611 
612 
613     --  Write to cache.
614 
615     Write_SSC
616     (   p_SSC_rec                     => l_x_SSC_rec
617     );
618 
619     --  Set return status.
620 
621     x_return_status := FND_API.G_RET_STS_SUCCESS;
622 
623     --  Get message count and data
624 
625     OE_MSG_PUB.Count_And_Get
626     (   p_count                       => x_msg_count
627     ,   p_data                        => x_msg_data
628     );
629 
630 
631 EXCEPTION
632 
633     WHEN FND_API.G_EXC_ERROR THEN
634 
635         x_return_status := FND_API.G_RET_STS_ERROR;
636 
637         --  Get message count and data
638 
639         OE_MSG_PUB.Count_And_Get
640         (   p_count                       => x_msg_count
641         ,   p_data                        => x_msg_data
642         );
643 
644     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
645 
646         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
647 
648         --  Get message count and data
649 
650         OE_MSG_PUB.Count_And_Get
651         (   p_count                       => x_msg_count
652         ,   p_data                        => x_msg_data
653         );
654 
655     WHEN OTHERS THEN
656 
657         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
658 
659         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
660         THEN
661             OE_MSG_PUB.Add_Exc_Msg
662             (   G_PKG_NAME
663             ,   'Change_Attribute'
664             );
665         END IF;
666 
667         --  Get message count and data
668 
669         OE_MSG_PUB.Count_And_Get
670         (   p_count                       => x_msg_count
671         ,   p_data                        => x_msg_data
672         );
673 
674 END Change_Attribute;
675 
676 --  Procedure       Validate_And_Write
677 --
678 
679 PROCEDURE Validate_And_Write
680 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
681 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
682 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
683 ,   p_pte_source_system_id          IN  NUMBER
684 ,   x_creation_date                 OUT NOCOPY /* file.sql.39 change */ DATE
685 ,   x_created_by                    OUT NOCOPY /* file.sql.39 change */ NUMBER
686 ,   x_last_update_date              OUT NOCOPY /* file.sql.39 change */ DATE
687 ,   x_last_updated_by               OUT NOCOPY /* file.sql.39 change */ NUMBER
688 ,   x_last_update_login             OUT NOCOPY /* file.sql.39 change */ NUMBER
689 )
690 IS
691 l_SSC_rec                     QP_Attr_Map_PUB.Ssc_Rec_Type;
692 l_old_SSC_rec                 QP_Attr_Map_PUB.Ssc_Rec_Type;
693 l_SSC_tbl                     QP_Attr_Map_PUB.Ssc_Tbl_Type;
694 l_old_SSC_tbl                 QP_Attr_Map_PUB.Ssc_Tbl_Type;
695 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
696 l_return_status               VARCHAR2(1);
697 l_x_PTE_rec                   QP_Attr_Map_PUB.Pte_Rec_Type;
698 l_x_RQT_rec                   QP_Attr_Map_PUB.Rqt_Rec_Type;
699 l_x_RQT_tbl                   QP_Attr_Map_PUB.Rqt_Tbl_Type;
700 l_x_SSC_rec                   QP_Attr_Map_PUB.Ssc_Rec_Type;
701 l_x_SSC_tbl                   QP_Attr_Map_PUB.Ssc_Tbl_Type;
702 l_x_PSG_rec                   QP_Attr_Map_PUB.Psg_Rec_Type;
703 l_x_PSG_tbl                   QP_Attr_Map_PUB.Psg_Tbl_Type;
704 l_x_SOU_rec                   QP_Attr_Map_PUB.Sou_Rec_Type;
705 l_x_SOU_tbl                   QP_Attr_Map_PUB.Sou_Tbl_Type;
706 l_x_FNA_rec                   QP_Attr_Map_PUB.Fna_Rec_Type;
707 l_x_FNA_tbl                   QP_Attr_Map_PUB.Fna_Tbl_Type;
708 BEGIN
709 
710     --  Set control flags.
711 
712     l_control_rec.controlled_operation := TRUE;
713     l_control_rec.validate_entity      := TRUE;
714     l_control_rec.write_to_DB          := TRUE;
715 
716     l_control_rec.default_attributes   := FALSE;
717     l_control_rec.change_attributes    := FALSE;
718     l_control_rec.process              := FALSE;
719 
720     --  Instruct API to retain its caches
721 
722     l_control_rec.clear_api_cache      := FALSE;
723     l_control_rec.clear_api_requests   := FALSE;
724 
725     --  Read SSC from cache
726 
727     l_old_SSC_rec := Get_SSC
728     (   p_db_record                   => TRUE
729     ,   p_pte_source_system_id        => p_pte_source_system_id
730     );
731 
732     l_SSC_rec := Get_SSC
733     (   p_db_record                   => FALSE
734     ,   p_pte_source_system_id        => p_pte_source_system_id
735     );
736 
737     --  Set Operation.
738 
739     IF FND_API.To_Boolean(l_SSC_rec.db_flag) THEN
740         l_SSC_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
741     ELSE
742         l_SSC_rec.operation := QP_GLOBALS.G_OPR_CREATE;
743     END IF;
744 
745     --  Populate SSC table
746 
747     l_SSC_tbl(1) := l_SSC_rec;
748     l_old_SSC_tbl(1) := l_old_SSC_rec;
749 
750     --  Call QP_Attr_Map_PVT.Process_Attr_Mapping
751 
752     QP_Attr_Map_PVT.Process_Attr_Mapping
753     (   p_api_version_number          => 1.0
754     ,   p_init_msg_list               => FND_API.G_TRUE
755     ,   x_return_status               => l_return_status
756     ,   x_msg_count                   => x_msg_count
757     ,   x_msg_data                    => x_msg_data
758     ,   p_control_rec                 => l_control_rec
759     ,   p_SSC_tbl                     => l_SSC_tbl
760     ,   p_old_SSC_tbl                 => l_old_SSC_tbl
761     ,   x_PTE_rec                     => l_x_PTE_rec
762     ,   x_RQT_tbl                     => l_x_RQT_tbl
763     ,   x_SSC_tbl                     => l_x_SSC_tbl
764     ,   x_PSG_tbl                     => l_x_PSG_tbl
765     ,   x_SOU_tbl                     => l_x_SOU_tbl
766     ,   x_FNA_tbl                     => l_x_FNA_tbl
767     );
768 
769     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
770         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
771     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
772         RAISE FND_API.G_EXC_ERROR;
773     END IF;
774 
775 
776     --  Load OUT parameters.
777 
778     l_x_SSC_rec := l_x_SSC_tbl(1);
779 
780     x_creation_date                := l_x_SSC_rec.creation_date;
781     x_created_by                   := l_x_SSC_rec.created_by;
782     x_last_update_date             := l_x_SSC_rec.last_update_date;
783     x_last_updated_by              := l_x_SSC_rec.last_updated_by;
784     x_last_update_login            := l_x_SSC_rec.last_update_login;
785 
786     --  Clear SSC record cache
787 
788     Clear_SSC;
789 
790     --  Keep track of performed operations.
791 
792     l_old_SSC_rec.operation := l_SSC_rec.operation;
793 
794 
795     --  Set return status.
796 
797     x_return_status := FND_API.G_RET_STS_SUCCESS;
798 
799     --  Get message count and data
800 
801     OE_MSG_PUB.Count_And_Get
802     (   p_count                       => x_msg_count
803     ,   p_data                        => x_msg_data
804     );
805 
806 
807 EXCEPTION
808 
809     WHEN FND_API.G_EXC_ERROR THEN
810 
811         x_return_status := FND_API.G_RET_STS_ERROR;
812 
813         --  Get message count and data
814 
815         OE_MSG_PUB.Count_And_Get
816         (   p_count                       => x_msg_count
817         ,   p_data                        => x_msg_data
818         );
819 
820     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
821 
822         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
823 
824         --  Get message count and data
825 
826         OE_MSG_PUB.Count_And_Get
827         (   p_count                       => x_msg_count
828         ,   p_data                        => x_msg_data
829         );
830 
831     WHEN OTHERS THEN
832 
833         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
834 
835         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
836         THEN
837             OE_MSG_PUB.Add_Exc_Msg
838             (   G_PKG_NAME
839             ,   'Validate_And_Write'
840             );
841         END IF;
842 
843         --  Get message count and data
844 
845         OE_MSG_PUB.Count_And_Get
846         (   p_count                       => x_msg_count
847         ,   p_data                        => x_msg_data
848         );
849 
850 END Validate_And_Write;
851 
852 --  Procedure       Delete_Row
853 --
854 
855 PROCEDURE Delete_Row
856 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
857 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
858 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
859 ,   p_pte_source_system_id          IN  NUMBER
860 )
861 IS
862 l_SSC_rec                     QP_Attr_Map_PUB.Ssc_Rec_Type;
863 l_SSC_tbl                     QP_Attr_Map_PUB.Ssc_Tbl_Type;
864 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
865 l_return_status               VARCHAR2(1);
866 l_x_PTE_rec                   QP_Attr_Map_PUB.Pte_Rec_Type;
867 l_x_RQT_rec                   QP_Attr_Map_PUB.Rqt_Rec_Type;
868 l_x_RQT_tbl                   QP_Attr_Map_PUB.Rqt_Tbl_Type;
869 l_x_SSC_rec                   QP_Attr_Map_PUB.Ssc_Rec_Type;
870 l_x_SSC_tbl                   QP_Attr_Map_PUB.Ssc_Tbl_Type;
871 l_x_PSG_rec                   QP_Attr_Map_PUB.Psg_Rec_Type;
872 l_x_PSG_tbl                   QP_Attr_Map_PUB.Psg_Tbl_Type;
873 l_x_SOU_rec                   QP_Attr_Map_PUB.Sou_Rec_Type;
874 l_x_SOU_tbl                   QP_Attr_Map_PUB.Sou_Tbl_Type;
875 l_x_FNA_rec                   QP_Attr_Map_PUB.Fna_Rec_Type;
876 l_x_FNA_tbl                   QP_Attr_Map_PUB.Fna_Tbl_Type;
877 BEGIN
878 
879     --  Set control flags.
880 
881     l_control_rec.controlled_operation := TRUE;
882     l_control_rec.validate_entity      := TRUE;
883     l_control_rec.write_to_DB          := TRUE;
884 
885     l_control_rec.default_attributes   := FALSE;
886     l_control_rec.change_attributes    := FALSE;
887     l_control_rec.process              := FALSE;
888 
889     --  Instruct API to retain its caches
890 
891     l_control_rec.clear_api_cache      := FALSE;
892     l_control_rec.clear_api_requests   := FALSE;
893 
894     --  Read DB record from cache
895 
896     l_SSC_rec := Get_SSC
897     (   p_db_record                   => TRUE
898     ,   p_pte_source_system_id        => p_pte_source_system_id
899     );
900 
901     --  Set Operation.
902 
903     l_SSC_rec.operation := QP_GLOBALS.G_OPR_DELETE;
904 
905     --  Populate SSC table
906 
907     l_SSC_tbl(1) := l_SSC_rec;
908 
909     --  Call QP_Attr_Map_PVT.Process_Attr_Mapping
910 
911     QP_Attr_Map_PVT.Process_Attr_Mapping
912     (   p_api_version_number          => 1.0
913     ,   p_init_msg_list               => FND_API.G_TRUE
914     ,   x_return_status               => l_return_status
915     ,   x_msg_count                   => x_msg_count
916     ,   x_msg_data                    => x_msg_data
917     ,   p_control_rec                 => l_control_rec
918     ,   p_SSC_tbl                     => l_SSC_tbl
919     ,   x_PTE_rec                     => l_x_PTE_rec
920     ,   x_RQT_tbl                     => l_x_RQT_tbl
921     ,   x_SSC_tbl                     => l_x_SSC_tbl
922     ,   x_PSG_tbl                     => l_x_PSG_tbl
923     ,   x_SOU_tbl                     => l_x_SOU_tbl
924     ,   x_FNA_tbl                     => l_x_FNA_tbl
925     );
926 
927     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
928         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
929     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
930         RAISE FND_API.G_EXC_ERROR;
931     END IF;
932 
933 
934     --  Clear SSC record cache
935 
936     Clear_SSC;
937 
938     --  Set return status.
939 
940     x_return_status := FND_API.G_RET_STS_SUCCESS;
941 
942     --  Get message count and data
943 
944     OE_MSG_PUB.Count_And_Get
945     (   p_count                       => x_msg_count
946     ,   p_data                        => x_msg_data
947     );
948 
949 
950 EXCEPTION
951 
952     WHEN FND_API.G_EXC_ERROR THEN
953 
954         x_return_status := FND_API.G_RET_STS_ERROR;
955 
956         --  Get message count and data
957 
958         OE_MSG_PUB.Count_And_Get
959         (   p_count                       => x_msg_count
960         ,   p_data                        => x_msg_data
961         );
962 
963     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
964 
965         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
966 
967         --  Get message count and data
968 
969         OE_MSG_PUB.Count_And_Get
970         (   p_count                       => x_msg_count
971         ,   p_data                        => x_msg_data
972         );
973 
974     WHEN OTHERS THEN
975 
976         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
977 
978         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
979         THEN
980             OE_MSG_PUB.Add_Exc_Msg
981             (   G_PKG_NAME
982             ,   'Delete_Row'
983             );
984         END IF;
985 
986         --  Get message count and data
987 
988         OE_MSG_PUB.Count_And_Get
989         (   p_count                       => x_msg_count
990         ,   p_data                        => x_msg_data
991         );
992 
993 END Delete_Row;
994 
995 --  Procedure       Process_Entity
996 --
997 
998 PROCEDURE Process_Entity
999 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1000 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1001 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1002 )
1003 IS
1004 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
1005 l_return_status               VARCHAR2(1);
1006 l_x_PTE_rec                   QP_Attr_Map_PUB.Pte_Rec_Type;
1007 l_x_RQT_rec                   QP_Attr_Map_PUB.Rqt_Rec_Type;
1008 l_x_RQT_tbl                   QP_Attr_Map_PUB.Rqt_Tbl_Type;
1009 l_x_SSC_rec                   QP_Attr_Map_PUB.Ssc_Rec_Type;
1010 l_x_SSC_tbl                   QP_Attr_Map_PUB.Ssc_Tbl_Type;
1011 l_x_PSG_rec                   QP_Attr_Map_PUB.Psg_Rec_Type;
1012 l_x_PSG_tbl                   QP_Attr_Map_PUB.Psg_Tbl_Type;
1013 l_x_SOU_rec                   QP_Attr_Map_PUB.Sou_Rec_Type;
1014 l_x_SOU_tbl                   QP_Attr_Map_PUB.Sou_Tbl_Type;
1015 l_x_FNA_rec                   QP_Attr_Map_PUB.Fna_Rec_Type;
1016 l_x_FNA_tbl                   QP_Attr_Map_PUB.Fna_Tbl_Type;
1017 BEGIN
1018 
1019     --  Set control flags.
1020 
1021     l_control_rec.controlled_operation := TRUE;
1022     l_control_rec.process              := TRUE;
1023     l_control_rec.process_entity       := QP_GLOBALS.G_ENTITY_SSC;
1024 
1025     l_control_rec.default_attributes   := FALSE;
1026     l_control_rec.change_attributes    := FALSE;
1027     l_control_rec.validate_entity      := FALSE;
1028     l_control_rec.write_to_DB          := FALSE;
1029 
1030     --  Instruct API to clear its request table
1031 
1032     l_control_rec.clear_api_cache      := FALSE;
1033     l_control_rec.clear_api_requests   := FALSE;
1034 
1035     --  Call QP_Attr_Map_PVT.Process_Attr_Mapping
1036 
1037     QP_Attr_Map_PVT.Process_Attr_Mapping
1038     (   p_api_version_number          => 1.0
1039     ,   p_init_msg_list               => FND_API.G_TRUE
1040     ,   x_return_status               => l_return_status
1041     ,   x_msg_count                   => x_msg_count
1042     ,   x_msg_data                    => x_msg_data
1043     ,   p_control_rec                 => l_control_rec
1044     ,   x_PTE_rec                     => l_x_PTE_rec
1045     ,   x_RQT_tbl                     => l_x_RQT_tbl
1046     ,   x_SSC_tbl                     => l_x_SSC_tbl
1047     ,   x_PSG_tbl                     => l_x_PSG_tbl
1048     ,   x_SOU_tbl                     => l_x_SOU_tbl
1049     ,   x_FNA_tbl                     => l_x_FNA_tbl
1050     );
1051 
1052     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1053         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1054     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1055         RAISE FND_API.G_EXC_ERROR;
1056     END IF;
1057 
1058 
1059     --  Set return status.
1060 
1061     x_return_status := FND_API.G_RET_STS_SUCCESS;
1062 
1063     --  Get message count and data
1064 
1065     OE_MSG_PUB.Count_And_Get
1066     (   p_count                       => x_msg_count
1067     ,   p_data                        => x_msg_data
1068     );
1069 
1070 
1071 EXCEPTION
1072 
1073     WHEN FND_API.G_EXC_ERROR THEN
1074 
1075         x_return_status := FND_API.G_RET_STS_ERROR;
1076 
1077         --  Get message count and data
1078 
1079         OE_MSG_PUB.Count_And_Get
1080         (   p_count                       => x_msg_count
1081         ,   p_data                        => x_msg_data
1082         );
1083 
1084     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1085 
1086         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1087 
1088         --  Get message count and data
1089 
1090         OE_MSG_PUB.Count_And_Get
1091         (   p_count                       => x_msg_count
1092         ,   p_data                        => x_msg_data
1093         );
1094 
1095     WHEN OTHERS THEN
1096 
1097         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1098 
1099         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1100         THEN
1101             OE_MSG_PUB.Add_Exc_Msg
1102             (   G_PKG_NAME
1103             ,   'Process_Entity'
1104             );
1105         END IF;
1106 
1107         --  Get message count and data
1108 
1109         OE_MSG_PUB.Count_And_Get
1110         (   p_count                       => x_msg_count
1111         ,   p_data                        => x_msg_data
1112         );
1113 
1114 END Process_Entity;
1115 
1116 --  Procedure       lock_Row
1117 --
1118 
1119 PROCEDURE Lock_Row
1120 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1121 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1122 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1123 ,   p_application_short_name        IN  VARCHAR2
1124 ,   p_attribute1                    IN  VARCHAR2
1125 ,   p_attribute10                   IN  VARCHAR2
1126 ,   p_attribute11                   IN  VARCHAR2
1127 ,   p_attribute12                   IN  VARCHAR2
1128 ,   p_attribute13                   IN  VARCHAR2
1129 ,   p_attribute14                   IN  VARCHAR2
1130 ,   p_attribute15                   IN  VARCHAR2
1131 ,   p_attribute2                    IN  VARCHAR2
1132 ,   p_attribute3                    IN  VARCHAR2
1133 ,   p_attribute4                    IN  VARCHAR2
1134 ,   p_attribute5                    IN  VARCHAR2
1135 ,   p_attribute6                    IN  VARCHAR2
1136 ,   p_attribute7                    IN  VARCHAR2
1137 ,   p_attribute8                    IN  VARCHAR2
1138 ,   p_attribute9                    IN  VARCHAR2
1139 ,   p_context                       IN  VARCHAR2
1140 ,   p_created_by                    IN  NUMBER
1141 ,   p_creation_date                 IN  DATE
1142 ,   p_enabled_flag                  IN  VARCHAR2
1143 ,   p_last_updated_by               IN  NUMBER
1144 ,   p_last_update_date              IN  DATE
1145 ,   p_last_update_login             IN  NUMBER
1146 ,   p_program_application_id        IN  NUMBER
1147 ,   p_program_id                    IN  NUMBER
1148 ,   p_program_update_date           IN  DATE
1149 ,   p_pte_code                      IN  VARCHAR2
1150 ,   p_pte_source_system_id          IN  NUMBER
1151 )
1152 IS
1153 l_return_status               VARCHAR2(1);
1154 l_SSC_rec                     QP_Attr_Map_PUB.Ssc_Rec_Type;
1155 l_SSC_tbl                     QP_Attr_Map_PUB.Ssc_Tbl_Type;
1156 l_x_PTE_rec                   QP_Attr_Map_PUB.Pte_Rec_Type;
1157 l_x_RQT_rec                   QP_Attr_Map_PUB.Rqt_Rec_Type;
1158 l_x_RQT_tbl                   QP_Attr_Map_PUB.Rqt_Tbl_Type;
1159 l_x_SSC_rec                   QP_Attr_Map_PUB.Ssc_Rec_Type;
1160 l_x_SSC_tbl                   QP_Attr_Map_PUB.Ssc_Tbl_Type;
1161 l_x_PSG_rec                   QP_Attr_Map_PUB.Psg_Rec_Type;
1162 l_x_PSG_tbl                   QP_Attr_Map_PUB.Psg_Tbl_Type;
1163 l_x_SOU_rec                   QP_Attr_Map_PUB.Sou_Rec_Type;
1164 l_x_SOU_tbl                   QP_Attr_Map_PUB.Sou_Tbl_Type;
1165 l_x_FNA_rec                   QP_Attr_Map_PUB.Fna_Rec_Type;
1166 l_x_FNA_tbl                   QP_Attr_Map_PUB.Fna_Tbl_Type;
1167 BEGIN
1168 
1169     --  Load SSC record
1170 
1171     l_SSC_rec.application_short_name := p_application_short_name;
1172     l_SSC_rec.attribute1           := p_attribute1;
1173     l_SSC_rec.attribute10          := p_attribute10;
1174     l_SSC_rec.attribute11          := p_attribute11;
1175     l_SSC_rec.attribute12          := p_attribute12;
1176     l_SSC_rec.attribute13          := p_attribute13;
1177     l_SSC_rec.attribute14          := p_attribute14;
1178     l_SSC_rec.attribute15          := p_attribute15;
1179     l_SSC_rec.attribute2           := p_attribute2;
1180     l_SSC_rec.attribute3           := p_attribute3;
1181     l_SSC_rec.attribute4           := p_attribute4;
1182     l_SSC_rec.attribute5           := p_attribute5;
1183     l_SSC_rec.attribute6           := p_attribute6;
1184     l_SSC_rec.attribute7           := p_attribute7;
1185     l_SSC_rec.attribute8           := p_attribute8;
1186     l_SSC_rec.attribute9           := p_attribute9;
1187     l_SSC_rec.context              := p_context;
1188     l_SSC_rec.created_by           := p_created_by;
1189     l_SSC_rec.creation_date        := p_creation_date;
1190     l_SSC_rec.enabled_flag         := p_enabled_flag;
1191     l_SSC_rec.last_updated_by      := p_last_updated_by;
1192     l_SSC_rec.last_update_date     := p_last_update_date;
1193     l_SSC_rec.last_update_login    := p_last_update_login;
1194     l_SSC_rec.program_application_id := p_program_application_id;
1195     l_SSC_rec.program_id           := p_program_id;
1196     l_SSC_rec.program_update_date  := p_program_update_date;
1197     l_SSC_rec.pte_code             := p_pte_code;
1198     l_SSC_rec.pte_source_system_id := p_pte_source_system_id;
1199 
1200     --  Populate SSC table
1201 
1202     l_SSC_tbl(1) := l_SSC_rec;
1203 
1204     --  Call QP_Attr_Map_PVT.Lock_Attr_Mapping
1205 
1206     QP_Attr_Map_PVT.Lock_Attr_Mapping
1207     (   p_api_version_number          => 1.0
1208     ,   p_init_msg_list               => FND_API.G_TRUE
1209     ,   x_return_status               => l_return_status
1210     ,   x_msg_count                   => x_msg_count
1211     ,   x_msg_data                    => x_msg_data
1212     ,   p_SSC_tbl                     => l_SSC_tbl
1213     ,   x_PTE_rec                     => l_x_PTE_rec
1214     ,   x_RQT_tbl                     => l_x_RQT_tbl
1215     ,   x_SSC_tbl                     => l_x_SSC_tbl
1216     ,   x_PSG_tbl                     => l_x_PSG_tbl
1217     ,   x_SOU_tbl                     => l_x_SOU_tbl
1218     ,   x_FNA_tbl                     => l_x_FNA_tbl
1219     );
1220 
1221     IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1222 
1223         --  Set DB flag and write record to cache.
1224 
1225         l_x_SSC_rec.db_flag := FND_API.G_TRUE;
1226 
1227         Write_SSC
1228         (   p_SSC_rec                     => l_x_SSC_rec
1229         ,   p_db_record                   => TRUE
1230         );
1231 
1232     END IF;
1233 
1234     --  Set return status.
1235 
1236     x_return_status := l_return_status;
1237 
1238     --  Get message count and data
1239 
1240     OE_MSG_PUB.Count_And_Get
1241     (   p_count                       => x_msg_count
1242     ,   p_data                        => x_msg_data
1243     );
1244 
1245 
1246 EXCEPTION
1247 
1248     WHEN OTHERS THEN
1249 
1250         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1251         THEN
1252             OE_MSG_PUB.Add_Exc_Msg
1253             (   G_PKG_NAME
1254             ,   'Lock_Row'
1255             );
1256         END IF;
1257 
1258         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1259 
1260         --  Get message count and data
1261 
1262         OE_MSG_PUB.Count_And_Get
1263         (   p_count                       => x_msg_count
1264         ,   p_data                        => x_msg_data
1265         );
1266 
1267 
1268 
1269 END Lock_Row;
1270 
1271 --  Procedures maintaining SSC record cache.
1272 
1273 PROCEDURE Write_SSC
1274 (   p_SSC_rec                       IN  QP_Attr_Map_PUB.Ssc_Rec_Type
1275 ,   p_db_record                     IN  BOOLEAN := FALSE
1276 )
1277 IS
1278 BEGIN
1279 
1280     g_SSC_rec := p_SSC_rec;
1281 
1282     IF p_db_record THEN
1283 
1284         g_db_SSC_rec := p_SSC_rec;
1285 
1286     END IF;
1287 
1288 END Write_Ssc;
1289 
1290 FUNCTION Get_SSC
1291 (   p_db_record                     IN  BOOLEAN := FALSE
1292 ,   p_pte_source_system_id          IN  NUMBER
1293 )
1294 RETURN QP_Attr_Map_PUB.Ssc_Rec_Type
1295 IS
1296 BEGIN
1297 
1298     IF  p_pte_source_system_id <> g_SSC_rec.pte_source_system_id
1299     THEN
1300 
1301         --  Query row from DB
1302 
1303         g_SSC_rec := QP_Ssc_Util.Query_Row
1304         (   p_pte_source_system_id        => p_pte_source_system_id
1305         );
1306 
1307         g_SSC_rec.db_flag              := FND_API.G_TRUE;
1308 
1309         --  Load DB record
1310 
1311         g_db_SSC_rec                   := g_SSC_rec;
1312 
1313     END IF;
1314 
1315     IF p_db_record THEN
1316 
1317         RETURN g_db_SSC_rec;
1318 
1319     ELSE
1320 
1321         RETURN g_SSC_rec;
1322 
1323     END IF;
1324 
1325 END Get_Ssc;
1326 
1327 PROCEDURE Clear_Ssc
1328 IS
1329 BEGIN
1330 
1331     g_SSC_rec                      := QP_Attr_Map_PUB.G_MISS_SSC_REC;
1332     g_db_SSC_rec                   := QP_Attr_Map_PUB.G_MISS_SSC_REC;
1333 
1334 END Clear_Ssc;
1335 
1336 END QP_QP_Form_Ssc;