DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_QP_FORM_RQT

Source


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