[Home] [Help]
PACKAGE BODY: APPS.MRP_SRC_ASSIGNMENT_PUB
Source
1 PACKAGE BODY MRP_Src_Assignment_PUB AS
2 /* $Header: MRPPASNB.pls 120.2 2005/06/27 17:09:55 ichoudhu noship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'MRP_Src_Assignment_PUB';
7
8 -- Forward declaration of Procedure Id_To_Value
9
10 PROCEDURE Id_To_Value
11 ( p_Assignment_Set_rec IN Assignment_Set_Rec_Type
12 , p_Assignment_tbl IN Assignment_Tbl_Type
13 , x_Assignment_Set_val_rec OUT NOCOPY Assignment_Set_Val_Rec_Type
14 , x_Assignment_val_tbl OUT NOCOPY Assignment_Val_Tbl_Type
15 );
16
17 -- Forward declaration of procedure Value_To_Id
18
19 PROCEDURE Value_To_Id
20 ( x_return_status OUT NOCOPY VARCHAR2
21 , p_Assignment_Set_rec IN Assignment_Set_Rec_Type
22 , p_Assignment_Set_val_rec IN Assignment_Set_Val_Rec_Type
23 , p_Assignment_tbl IN Assignment_Tbl_Type
24 , p_Assignment_val_tbl IN Assignment_Val_Tbl_Type
25 , x_Assignment_Set_rec OUT NOCOPY Assignment_Set_Rec_Type
26 , x_Assignment_tbl OUT NOCOPY Assignment_Tbl_Type
27 );
28
29 -- Start of Comments
30 -- API name Process_Assignment
31 -- Type Public
32 -- Function
33 --
34 -- Pre-reqs
35 --
36 -- Parameters
37 --
38 -- Version Current version = 1.0
39 -- Initial version = 1.0
40 --
41 -- Notes
42 --
43 -- End of Comments
44
45 PROCEDURE Process_Assignment
46 ( p_api_version_number IN NUMBER
47 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
48 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
49 , p_commit IN VARCHAR2 := FND_API.G_FALSE
50 , x_return_status OUT NOCOPY VARCHAR2
51 , x_msg_count OUT NOCOPY NUMBER
52 , x_msg_data OUT NOCOPY VARCHAR2
53 , p_Assignment_Set_rec IN Assignment_Set_Rec_Type :=
54 G_MISS_ASSIGNMENT_SET_REC
55 , p_Assignment_Set_val_rec IN Assignment_Set_Val_Rec_Type :=
56 G_MISS_ASSIGNMENT_SET_VAL_REC
57 , p_Assignment_tbl IN Assignment_Tbl_Type :=
58 G_MISS_ASSIGNMENT_TBL
59 , p_Assignment_val_tbl IN Assignment_Val_Tbl_Type :=
60 G_MISS_ASSIGNMENT_VAL_TBL
61 , x_Assignment_Set_rec OUT NOCOPY Assignment_Set_Rec_Type
62 , x_Assignment_Set_val_rec OUT NOCOPY Assignment_Set_Val_Rec_Type
63 , x_Assignment_tbl OUT NOCOPY Assignment_Tbl_Type
64 , x_Assignment_val_tbl OUT NOCOPY Assignment_Val_Tbl_Type
65 )
66 IS
67 l_api_version_number CONSTANT NUMBER := 1.0;
68 l_api_name CONSTANT VARCHAR2(30):= 'Process_Assignment';
69 l_control_rec MRP_GLOBALS.Control_Rec_Type;
70 l_return_status VARCHAR2(1);
71 l_Assignment_Set_rec Assignment_Set_Rec_Type;
72 l_Assignment_tbl Assignment_Tbl_Type;
73 l_Assignment_Set_rec_out Assignment_Set_Rec_Type;
74 l_Assignment_tbl_out Assignment_Tbl_Type;
75 BEGIN
76
77
78 -- Standard call to check for call compatibility
79
80 IF NOT FND_API.Compatible_API_Call
81 ( l_api_version_number
82 , p_api_version_number
83 , l_api_name
84 , G_PKG_NAME
85 )
86 THEN
87 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
88 END IF;
89
90 -- Perform Value to Id conversion
91
92 Value_To_Id
93 ( x_return_status => l_return_status
94 , p_Assignment_Set_rec => p_Assignment_Set_rec
95 , p_Assignment_Set_val_rec => p_Assignment_Set_val_rec
96 , p_Assignment_tbl => p_Assignment_tbl
97 , p_Assignment_val_tbl => p_Assignment_val_tbl
98 , x_Assignment_Set_rec => l_Assignment_Set_rec
99 , x_Assignment_tbl => l_Assignment_tbl
100 );
101
102 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
103 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
104 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
105 RAISE FND_API.G_EXC_ERROR;
106 END IF;
107
108
109 -- Call MRP_Assignment_PVT.Process_Assignment
110
111 MRP_Assignment_PVT.Process_Assignment
112 ( p_api_version_number => 1.0
113 , p_init_msg_list => p_init_msg_list
114 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
115 , p_commit => p_commit
116 , x_return_status => x_return_status
117 , x_msg_count => x_msg_count
118 , x_msg_data => x_msg_data
119 , p_control_rec => l_control_rec
120 , p_Assignment_Set_rec => l_Assignment_Set_rec
121 , p_Assignment_tbl => l_Assignment_tbl
122 , x_Assignment_Set_rec => l_Assignment_Set_rec_out
123 , x_Assignment_tbl => l_Assignment_tbl_out
124 );
125
126 l_Assignment_Set_rec := l_Assignment_Set_rec_out;
127 l_Assignment_tbl := l_Assignment_tbl_out;
128
129 -- Load Id OUT parameters.
130
131 x_Assignment_Set_rec := l_Assignment_Set_rec;
132 x_Assignment_tbl := l_Assignment_tbl;
133
134 -- If p_return_values is TRUE then convert Ids to Values.
135
136 IF FND_API.to_Boolean(p_return_values) THEN
137
138 Id_To_Value
139 ( p_Assignment_Set_rec => l_Assignment_Set_rec
140 , p_Assignment_tbl => l_Assignment_tbl
141 , x_Assignment_Set_val_rec => x_Assignment_Set_val_rec
142 , x_Assignment_val_tbl => x_Assignment_val_tbl
143 );
144
145 END IF;
146
147 EXCEPTION
148
149 WHEN FND_API.G_EXC_ERROR THEN
150
151
152 x_return_status := FND_API.G_RET_STS_ERROR;
153
154 -- Get message count and data
155
156 FND_MSG_PUB.Count_And_Get
157 ( p_count => x_msg_count
158 , p_data => x_msg_data
159 );
160
161 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
162
163
164 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
165
166 -- Get message count and data
167
168 FND_MSG_PUB.Count_And_Get
169 ( p_count => x_msg_count
170 , p_data => x_msg_data
171 );
172
173 WHEN OTHERS THEN
174
175
176 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
177
178 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
179 THEN
180 FND_MSG_PUB.Add_Exc_Msg
181 ( G_PKG_NAME
182 , 'Process_Assignment'
183 );
184 END IF;
185
186 -- Get message count and data
187
188 FND_MSG_PUB.Count_And_Get
189 ( p_count => x_msg_count
190 , p_data => x_msg_data
191 );
192
193 END Process_Assignment;
194
195 -- Start of Comments
196 -- API name Lock_Assignment
197 -- Type Public
198 -- Function
199 --
200 -- Pre-reqs
201 --
202 -- Parameters
203 --
204 -- Version Current version = 1.0
205 -- Initial version = 1.0
206 --
207 -- Notes
208 --
209 -- End of Comments
210
211 PROCEDURE Lock_Assignment
212 ( p_api_version_number IN NUMBER
213 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
214 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
215 , x_return_status OUT NOCOPY VARCHAR2
216 , x_msg_count OUT NOCOPY NUMBER
217 , x_msg_data OUT NOCOPY VARCHAR2
218 , p_Assignment_Set_rec IN Assignment_Set_Rec_Type :=
219 G_MISS_ASSIGNMENT_SET_REC
220 , p_Assignment_Set_val_rec IN Assignment_Set_Val_Rec_Type :=
221 G_MISS_ASSIGNMENT_SET_VAL_REC
222 , p_Assignment_tbl IN Assignment_Tbl_Type :=
223 G_MISS_ASSIGNMENT_TBL
224 , p_Assignment_val_tbl IN Assignment_Val_Tbl_Type :=
225 G_MISS_ASSIGNMENT_VAL_TBL
226 , x_Assignment_Set_rec OUT NOCOPY Assignment_Set_Rec_Type
227 , x_Assignment_Set_val_rec OUT NOCOPY Assignment_Set_Val_Rec_Type
228 , x_Assignment_tbl OUT NOCOPY Assignment_Tbl_Type
229 , x_Assignment_val_tbl OUT NOCOPY Assignment_Val_Tbl_Type
230 )
231 IS
232 l_api_version_number CONSTANT NUMBER := 1.0;
233 l_api_name CONSTANT VARCHAR2(30):= 'Lock_Assignment';
234 l_return_status VARCHAR2(1);
235 l_Assignment_Set_rec Assignment_Set_Rec_Type;
236 l_Assignment_tbl Assignment_Tbl_Type;
237 l_Assignment_Set_rec_out Assignment_Set_Rec_Type;
238 l_Assignment_tbl_out Assignment_Tbl_Type;
239 BEGIN
240
241
242 -- Standard call to check for call compatibility
243
244 IF NOT FND_API.Compatible_API_Call
245 ( l_api_version_number
246 , p_api_version_number
247 , l_api_name
248 , G_PKG_NAME
249 )
250 THEN
251 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
252 END IF;
253
254 -- Perform Value to Id conversion
255
256 Value_To_Id
257 ( x_return_status => l_return_status
258 , p_Assignment_Set_rec => p_Assignment_Set_rec
259 , p_Assignment_Set_val_rec => p_Assignment_Set_val_rec
260 , p_Assignment_tbl => p_Assignment_tbl
261 , p_Assignment_val_tbl => p_Assignment_val_tbl
262 , x_Assignment_Set_rec => l_Assignment_Set_rec
263 , x_Assignment_tbl => l_Assignment_tbl
264 );
265
266 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
267 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
268 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
269 RAISE FND_API.G_EXC_ERROR;
270 END IF;
271
272
273 -- Call MRP_Assignment_PVT.Lock_Assignment
274
275 MRP_Assignment_PVT.Lock_Assignment
276 ( p_api_version_number => 1.0
277 , p_init_msg_list => p_init_msg_list
278 , x_return_status => x_return_status
279 , x_msg_count => x_msg_count
280 , x_msg_data => x_msg_data
281 , p_Assignment_Set_rec => l_Assignment_Set_rec
282 , p_Assignment_tbl => l_Assignment_tbl
283 , x_Assignment_Set_rec => l_Assignment_Set_rec_out
284 , x_Assignment_tbl => l_Assignment_tbl_out
285 );
286
287 l_Assignment_Set_rec := l_Assignment_Set_rec_out;
288 l_Assignment_tbl := l_Assignment_tbl_out;
289 -- Load Id OUT parameters.
290
291 x_Assignment_Set_rec := l_Assignment_Set_rec;
292 x_Assignment_tbl := l_Assignment_tbl;
293
294 -- If p_return_values is TRUE then convert Ids to Values.
295
296 IF FND_API.to_Boolean(p_return_values) THEN
297
298 Id_To_Value
299 ( p_Assignment_Set_rec => l_Assignment_Set_rec
300 , p_Assignment_tbl => l_Assignment_tbl
301 , x_Assignment_Set_val_rec => x_Assignment_Set_val_rec
302 , x_Assignment_val_tbl => x_Assignment_val_tbl
303 );
304
305 END IF;
306
307 EXCEPTION
308
309 WHEN FND_API.G_EXC_ERROR THEN
310
311
312 x_return_status := FND_API.G_RET_STS_ERROR;
313
314 -- Get message count and data
315
316 FND_MSG_PUB.Count_And_Get
317 ( p_count => x_msg_count
318 , p_data => x_msg_data
319 );
320
321 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
322
323
324 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
325
326 -- Get message count and data
327
328 FND_MSG_PUB.Count_And_Get
329 ( p_count => x_msg_count
330 , p_data => x_msg_data
331 );
332
333 WHEN OTHERS THEN
334
335
336 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
337
338 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
339 THEN
340 FND_MSG_PUB.Add_Exc_Msg
341 ( G_PKG_NAME
342 , 'Lock_Assignment'
343 );
344 END IF;
345
346 -- Get message count and data
347
348 FND_MSG_PUB.Count_And_Get
349 ( p_count => x_msg_count
350 , p_data => x_msg_data
351 );
352
353 END Lock_Assignment;
354
355 -- Start of Comments
356 -- API name Get_Assignment
357 -- Type Public
358 -- Function
359 --
360 -- Pre-reqs
361 --
362 -- Parameters
363 --
364 -- Version Current version = 1.0
365 -- Initial version = 1.0
366 --
367 -- Notes
368 --
369 -- End of Comments
370
371 PROCEDURE Get_Assignment
372 ( p_api_version_number IN NUMBER
373 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
374 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
375 , x_return_status OUT NOCOPY VARCHAR2
376 , x_msg_count OUT NOCOPY NUMBER
377 , x_msg_data OUT NOCOPY VARCHAR2
378 , p_Assignment_Set_Id IN NUMBER :=
379 FND_API.G_MISS_NUM
380 , x_Assignment_Set_rec OUT NOCOPY Assignment_Set_Rec_Type
381 , x_Assignment_Set_val_rec OUT NOCOPY Assignment_Set_Val_Rec_Type
382 , x_Assignment_tbl OUT NOCOPY Assignment_Tbl_Type
383 , x_Assignment_val_tbl OUT NOCOPY Assignment_Val_Tbl_Type
384 )
385 IS
386 l_api_version_number CONSTANT NUMBER := 1.0;
387 l_api_name CONSTANT VARCHAR2(30):= 'Get_Assignment';
388 l_Assignment_Set_Id NUMBER := p_Assignment_Set_Id;
389 l_Assignment_Set_rec MRP_Src_Assignment_PUB.Assignment_Set_Rec_Type;
390 l_Assignment_Set_val_rec MRP_Src_Assignment_PUB.Assignment_Set_Val_Rec_Type;
391 l_Assignment_tbl MRP_Src_Assignment_PUB.Assignment_Tbl_Type;
392 l_Assignment_val_tbl MRP_Src_Assignment_PUB.Assignment_Val_Tbl_Type;
393 BEGIN
394
395
396 -- Standard call to check for call compatibility
397
398 IF NOT FND_API.Compatible_API_Call
399 ( l_api_version_number
400 , p_api_version_number
401 , l_api_name
402 , G_PKG_NAME
403 )
404 THEN
405 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
406 END IF;
407
408 -- Value to ID conversion
409
410
411 -- If p_return_values is TRUE then query read views
412
413 IF FND_API.TO_BOOLEAN(p_return_values) THEN
414
415 -- Get Assignment_Set
416
417 MRP_Assignment_Set_Handlers.Query_Entity
418 ( p_Assignment_Set_Id => l_Assignment_Set_Id
419 , x_Assignment_Set_rec => l_Assignment_Set_rec
420 , x_Assignment_Set_val_rec => l_Assignment_Set_val_rec
421 );
422
423 -- Get Assignment ( parent = Assignment_Set )
424
425 MRP_Assignment_Handlers.Query_Entities
426 ( p_Assignment_Set_Id => l_Assignment_Set_rec.Assignment_Set_Id
427 , x_Assignment_tbl => l_Assignment_tbl
428 , x_Assignment_val_tbl => l_Assignment_val_tbl
429 );
430
431
432 -- Load out parameters
433
434 x_Assignment_Set_rec := l_Assignment_Set_rec;
435 x_Assignment_Set_val_rec := l_Assignment_Set_val_rec;
436 x_Assignment_tbl := l_Assignment_tbl;
437 x_Assignment_val_tbl := l_Assignment_val_tbl;
438
439 ELSE
440
441 -- Call MRP_Assignment_PVT.Get_Assignment
442
443 MRP_Assignment_PVT.Get_Assignment
444 ( p_api_version_number => 1.0
445 , p_init_msg_list => p_init_msg_list
446 , x_return_status => x_return_status
447 , x_msg_count => x_msg_count
448 , x_msg_data => x_msg_data
449 , p_Assignment_Set_Id => l_Assignment_Set_Id
450 , x_Assignment_Set_rec => l_Assignment_Set_rec
451 , x_Assignment_tbl => l_Assignment_tbl
452 );
453
454 -- Load Id OUT parameters.
455
456 x_Assignment_Set_rec := l_Assignment_Set_rec;
457 x_Assignment_tbl := l_Assignment_tbl;
458
459 END IF;
460
461 -- Set return status
462
463 x_return_status := FND_API.G_RET_STS_SUCCESS;
464
465 -- Get message count and data
466
467 FND_MSG_PUB.Count_And_Get
468 ( p_count => x_msg_count
469 , p_data => x_msg_data
470 );
471
472
473 EXCEPTION
474
475 WHEN FND_API.G_EXC_ERROR THEN
476
477
478 x_return_status := FND_API.G_RET_STS_ERROR;
479
480 -- Get message count and data
481
482 FND_MSG_PUB.Count_And_Get
483 ( p_count => x_msg_count
484 , p_data => x_msg_data
485 );
486
487 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
488
489
490 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
491
492 -- Get message count and data
493
494 FND_MSG_PUB.Count_And_Get
495 ( p_count => x_msg_count
496 , p_data => x_msg_data
497 );
498
499 WHEN OTHERS THEN
500
501
502 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
503
504 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
505 THEN
506 FND_MSG_PUB.Add_Exc_Msg
507 ( G_PKG_NAME
508 , 'Get_Assignment'
509 );
510 END IF;
511
512 -- Get message count and data
513
514 FND_MSG_PUB.Count_And_Get
515 ( p_count => x_msg_count
516 , p_data => x_msg_data
517 );
518
519 END Get_Assignment;
520
521 -- Procedure Id_To_Value
522
523 PROCEDURE Id_To_Value
524 ( p_Assignment_Set_rec IN Assignment_Set_Rec_Type
525 , p_Assignment_tbl IN Assignment_Tbl_Type
526 , x_Assignment_Set_val_rec OUT NOCOPY Assignment_Set_Val_Rec_Type
527 , x_Assignment_val_tbl OUT NOCOPY Assignment_Val_Tbl_Type
528 )
529 IS
530 BEGIN
531
532
533 -- Convert Assignment_Set
534
535 x_Assignment_Set_val_rec := MRP_Assignment_Set_Util.Get_Values(p_Assignment_Set_rec);
536
537 -- Convert Assignment
538
539 FOR I IN 1..p_Assignment_tbl.COUNT LOOP
540 x_Assignment_val_tbl(I) :=
541 MRP_Assignment_Util.Get_Values(p_Assignment_tbl(I));
542 END LOOP;
543
544 EXCEPTION
545
546 WHEN OTHERS THEN
547
548
549 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
550 THEN
551 FND_MSG_PUB.Add_Exc_Msg
552 ( G_PKG_NAME
553 , 'Id_To_Value'
554 );
555 END IF;
556
557 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
558
559 END Id_To_Value;
560
561 -- Procedure Value_To_Id
562
563 PROCEDURE Value_To_Id
564 ( x_return_status OUT NOCOPY VARCHAR2
565 , p_Assignment_Set_rec IN Assignment_Set_Rec_Type
566 , p_Assignment_Set_val_rec IN Assignment_Set_Val_Rec_Type
567 , p_Assignment_tbl IN Assignment_Tbl_Type
568 , p_Assignment_val_tbl IN Assignment_Val_Tbl_Type
569 , x_Assignment_Set_rec OUT NOCOPY Assignment_Set_Rec_Type
570 , x_Assignment_tbl OUT NOCOPY Assignment_Tbl_Type
571 )
572 IS
573 l_Assignment_Set_rec Assignment_Set_Rec_Type;
574 l_Assignment_rec Assignment_Rec_Type;
575 l_index BINARY_INTEGER;
576 BEGIN
577
578
579 -- Init x_return_status.
580
581 x_return_status := FND_API.G_RET_STS_SUCCESS;
582
583 -- Convert Assignment_Set
584
585 l_Assignment_Set_rec := MRP_Assignment_Set_Util.Get_Ids
586 ( p_Assignment_Set_rec => p_Assignment_Set_rec
587 , p_Assignment_Set_val_rec => p_Assignment_Set_val_rec
588 );
589
590 x_Assignment_Set_rec := l_Assignment_Set_rec;
591
592 IF l_Assignment_Set_rec.return_status = FND_API.G_RET_STS_ERROR THEN
593 x_return_status := FND_API.G_RET_STS_ERROR;
594 END IF;
595
596 -- Convert Assignment
597
598 x_Assignment_tbl := p_Assignment_tbl;
599
600 l_index := p_Assignment_val_tbl.FIRST;
601
602 WHILE l_index IS NOT NULL LOOP
603
604 l_Assignment_rec := MRP_Assignment_Util.Get_Ids
605 ( p_Assignment_rec => p_Assignment_tbl(l_index)
606 , p_Assignment_val_rec => p_Assignment_val_tbl(l_index)
607 );
608
609 x_Assignment_tbl(l_index) := l_Assignment_rec;
610
611 IF l_Assignment_rec.return_status = FND_API.G_RET_STS_ERROR THEN
612 x_return_status := FND_API.G_RET_STS_ERROR;
613 END IF;
614
615 l_index := p_Assignment_val_tbl.NEXT(l_index);
616
617 END LOOP;
618
619 EXCEPTION
620
621 WHEN OTHERS THEN
622
623
624 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
625 THEN
626 FND_MSG_PUB.Add_Exc_Msg
627 ( G_PKG_NAME
628 , 'Value_To_Id'
629 );
630 END IF;
631
632 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
633
634 END Value_To_Id;
635
636 END MRP_Src_Assignment_PUB;