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