[Home] [Help]
PACKAGE BODY: APPS.MRP_SOURCING_RULE_PUB
Source
1 PACKAGE BODY MRP_Sourcing_Rule_PUB AS
2 /* $Header: MRPPSRLB.pls 120.1 2005/06/16 12:39:47 ichoudhu noship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'MRP_Sourcing_Rule_PUB';
7
8 -- Forward declaration of Procedure Id_To_Value
9
10 PROCEDURE Id_To_Value
11 ( p_Sourcing_Rule_rec IN Sourcing_Rule_Rec_Type
12 , p_Receiving_Org_tbl IN Receiving_Org_Tbl_Type
13 , p_Shipping_Org_tbl IN Shipping_Org_Tbl_Type
14 , x_Sourcing_Rule_val_rec OUT NOCOPY Sourcing_Rule_Val_Rec_Type
15 , x_Receiving_Org_val_tbl OUT NOCOPY Receiving_Org_Val_Tbl_Type
16 , x_Shipping_Org_val_tbl OUT NOCOPY Shipping_Org_Val_Tbl_Type
17 );
18
19 -- Forward declaration of procedure Value_To_Id
20
21 PROCEDURE Value_To_Id
22 ( x_return_status OUT NOCOPY VARCHAR2
23 , p_Sourcing_Rule_rec IN Sourcing_Rule_Rec_Type
24 , p_Sourcing_Rule_val_rec IN Sourcing_Rule_Val_Rec_Type
25 , p_Receiving_Org_tbl IN Receiving_Org_Tbl_Type
26 , p_Receiving_Org_val_tbl IN Receiving_Org_Val_Tbl_Type
27 , p_Shipping_Org_tbl IN Shipping_Org_Tbl_Type
28 , p_Shipping_Org_val_tbl IN Shipping_Org_Val_Tbl_Type
29 , x_Sourcing_Rule_rec OUT NOCOPY Sourcing_Rule_Rec_Type
30 , x_Receiving_Org_tbl OUT NOCOPY Receiving_Org_Tbl_Type
31 , x_Shipping_Org_tbl OUT NOCOPY Shipping_Org_Tbl_Type
32 );
33
34 -- Start of Comments
35 -- API name Process_Sourcing_Rule
36 -- Type Public
37 -- Function
38 --
39 -- Pre-reqs
40 --
41 -- Parameters
42 --
43 -- Version Current version = 1.0
44 -- Initial version = 1.0
45 --
46 -- Notes
47 --
48 -- End of Comments
49
50 PROCEDURE Process_Sourcing_Rule
51 ( p_api_version_number IN NUMBER
52 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
53 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
54 , p_commit IN VARCHAR2 := FND_API.G_FALSE
55 , x_return_status OUT NOCOPY VARCHAR2
56 , x_msg_count OUT NOCOPY NUMBER
57 , x_msg_data OUT NOCOPY VARCHAR2
58 , p_Sourcing_Rule_rec IN Sourcing_Rule_Rec_Type :=
59 G_MISS_SOURCING_RULE_REC
60 , p_Sourcing_Rule_val_rec IN Sourcing_Rule_Val_Rec_Type :=
61 G_MISS_SOURCING_RULE_VAL_REC
62 , p_Receiving_Org_tbl IN Receiving_Org_Tbl_Type :=
63 G_MISS_RECEIVING_ORG_TBL
64 , p_Receiving_Org_val_tbl IN Receiving_Org_Val_Tbl_Type :=
65 G_MISS_RECEIVING_ORG_VAL_TBL
66 , p_Shipping_Org_tbl IN Shipping_Org_Tbl_Type :=
67 G_MISS_SHIPPING_ORG_TBL
68 , p_Shipping_Org_val_tbl IN Shipping_Org_Val_Tbl_Type :=
69 G_MISS_SHIPPING_ORG_VAL_TBL
70 , x_Sourcing_Rule_rec OUT NOCOPY Sourcing_Rule_Rec_Type
71 , x_Sourcing_Rule_val_rec OUT NOCOPY Sourcing_Rule_Val_Rec_Type
72 , x_Receiving_Org_tbl OUT NOCOPY Receiving_Org_Tbl_Type
73 , x_Receiving_Org_val_tbl OUT NOCOPY Receiving_Org_Val_Tbl_Type
74 , x_Shipping_Org_tbl OUT NOCOPY Shipping_Org_Tbl_Type
75 , x_Shipping_Org_val_tbl OUT NOCOPY Shipping_Org_Val_Tbl_Type
76 )
77 IS
78 l_api_version_number CONSTANT NUMBER := 1.0;
79 l_api_name CONSTANT VARCHAR2(30):= 'Process_Sourcing_Rule';
80 l_control_rec MRP_GLOBALS.Control_Rec_Type;
81 l_return_status VARCHAR2(1);
82 l_Sourcing_Rule_rec Sourcing_Rule_Rec_Type;
83 l_Receiving_Org_tbl Receiving_Org_Tbl_Type;
84 l_Shipping_Org_tbl Shipping_Org_Tbl_Type;
85
86 -- New variables defined for NOCOPY hint.
87
88 l_Sourcing_Rule_rec_out Sourcing_Rule_Rec_Type;
89 l_Receiving_Org_tbl_out Receiving_Org_Tbl_Type;
90 l_Shipping_Org_tbl_out Shipping_Org_Tbl_Type;
91
92 BEGIN
93 -- bug 3138889
94 -- Set savepoint
95 SAVEPOINT S_Process_Sourcing_Rule ;
96 --
97 -- Standard call to check for call compatibility
98
99 IF NOT FND_API.Compatible_API_Call
100 ( l_api_version_number
101 , p_api_version_number
102 , l_api_name
103 , G_PKG_NAME
104 )
105 THEN
106 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
107 END IF;
108
109
110 -- Perform Value to Id conversion
111
112 Value_To_Id
113 ( x_return_status => l_return_status
114 , p_Sourcing_Rule_rec => p_Sourcing_Rule_rec
115 , p_Sourcing_Rule_val_rec => p_Sourcing_Rule_val_rec
116 , p_Receiving_Org_tbl => p_Receiving_Org_tbl
117 , p_Receiving_Org_val_tbl => p_Receiving_Org_val_tbl
118 , p_Shipping_Org_tbl => p_Shipping_Org_tbl
119 , p_Shipping_Org_val_tbl => p_Shipping_Org_val_tbl
120 , x_Sourcing_Rule_rec => l_Sourcing_Rule_rec
121 , x_Receiving_Org_tbl => l_Receiving_Org_tbl
122 , x_Shipping_Org_tbl => l_Shipping_Org_tbl
123 );
124
125 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
126 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
127 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
128 RAISE FND_API.G_EXC_ERROR;
129 END IF;
130
131 -- Call MRP_Sourcing_Rule_PVT.Process_Sourcing_Rule
132
133 MRP_Sourcing_Rule_PVT.Process_Sourcing_Rule
134 ( p_api_version_number => 1.0
135 , p_init_msg_list => p_init_msg_list
136 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
137 , p_commit => p_commit
138 , x_return_status => x_return_status
139 , x_msg_count => x_msg_count
140 , x_msg_data => x_msg_data
141 , p_control_rec => l_control_rec
142 , p_Sourcing_Rule_rec => l_Sourcing_Rule_rec
143 , p_Receiving_Org_tbl => l_Receiving_Org_tbl
144 , p_Shipping_Org_tbl => l_Shipping_Org_tbl
145 , x_Sourcing_Rule_rec => l_Sourcing_Rule_rec_out
146 , x_Receiving_Org_tbl => l_Receiving_Org_tbl_out
147 , x_Shipping_Org_tbl => l_Shipping_Org_tbl_out
148 );
149
150 l_Sourcing_Rule_rec := l_Sourcing_Rule_rec_out;
151 l_Receiving_Org_tbl := l_Receiving_Org_tbl_out;
152 l_Shipping_Org_tbl := l_Shipping_Org_tbl_out;
153
154
155 -- Load Id OUT parameters.
156
157 x_Sourcing_Rule_rec := l_Sourcing_Rule_rec;
158 x_Receiving_Org_tbl := l_Receiving_Org_tbl;
159 x_Shipping_Org_tbl := l_Shipping_Org_tbl;
160
161
162 -- If p_return_values is TRUE then convert Ids to Values.
163
164 IF FND_API.to_Boolean(p_return_values) THEN
165
166 Id_To_Value
167 ( p_Sourcing_Rule_rec => l_Sourcing_Rule_rec
168 , p_Receiving_Org_tbl => l_Receiving_Org_tbl
169 , p_Shipping_Org_tbl => l_Shipping_Org_tbl
170 , x_Sourcing_Rule_val_rec => x_Sourcing_Rule_val_rec
171 , x_Receiving_Org_val_tbl => x_Receiving_Org_val_tbl
172 , x_Shipping_Org_val_tbl => x_Shipping_Org_val_tbl
173 );
174
175 END IF;
176 -- bug 3138889
177 IF p_commit = FND_API.G_TRUE THEN
178 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
179 COMMIT;
180 ELSE
181 ROLLBACK TO S_Process_Sourcing_Rule ;
182 END IF;
183 ELSE
184 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
185 ROLLBACK TO S_Process_Sourcing_Rule ;
186 END IF;
187 END IF;
188
189 /** Bug 2263575 **/
190 /* IF p_commit = FND_API.G_FALSE THEN
191 ROLLBACK;
192 ELSIF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
193 COMMIT;
194 ELSE
195 ROLLBACK;
196 END IF;
197 */
198
199
200 EXCEPTION
201
202 WHEN FND_API.G_EXC_ERROR THEN
203
204 x_return_status := FND_API.G_RET_STS_ERROR;
205
206 -- Get message count and data
207
208 FND_MSG_PUB.Count_And_Get
209 ( p_count => x_msg_count
210 , p_data => x_msg_data
211 );
212
213 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
214
215 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
216
217 -- Get message count and data
218
219 FND_MSG_PUB.Count_And_Get
220 ( p_count => x_msg_count
221 , p_data => x_msg_data
222 );
223
224 WHEN OTHERS THEN
225
226 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
227
228 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
229 THEN
230 FND_MSG_PUB.Add_Exc_Msg
231 ( G_PKG_NAME
232 , 'Process_Sourcing_Rule'
233 );
234 END IF;
235
236 -- Get message count and data
237
238 FND_MSG_PUB.Count_And_Get
239 ( p_count => x_msg_count
240 , p_data => x_msg_data
241 );
242
243 END Process_Sourcing_Rule;
244
245 -- Start of Comments
246 -- API name Lock_Sourcing_Rule
247 -- Type Public
248 -- Function
249 --
250 -- Pre-reqs
251 --
252 -- Parameters
253 --
254 -- Version Current version = 1.0
255 -- Initial version = 1.0
256 --
257 -- Notes
258 --
259 -- End of Comments
260
261 PROCEDURE Lock_Sourcing_Rule
262 ( p_api_version_number IN NUMBER
263 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
264 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
265 , x_return_status OUT NOCOPY VARCHAR2
266 , x_msg_count OUT NOCOPY NUMBER
267 , x_msg_data OUT NOCOPY VARCHAR2
268 , p_Sourcing_Rule_rec IN Sourcing_Rule_Rec_Type :=
269 G_MISS_SOURCING_RULE_REC
270 , p_Sourcing_Rule_val_rec IN Sourcing_Rule_Val_Rec_Type :=
271 G_MISS_SOURCING_RULE_VAL_REC
272 , p_Receiving_Org_tbl IN Receiving_Org_Tbl_Type :=
273 G_MISS_RECEIVING_ORG_TBL
274 , p_Receiving_Org_val_tbl IN Receiving_Org_Val_Tbl_Type :=
275 G_MISS_RECEIVING_ORG_VAL_TBL
276 , p_Shipping_Org_tbl IN Shipping_Org_Tbl_Type :=
277 G_MISS_SHIPPING_ORG_TBL
278 , p_Shipping_Org_val_tbl IN Shipping_Org_Val_Tbl_Type :=
279 G_MISS_SHIPPING_ORG_VAL_TBL
280 , x_Sourcing_Rule_rec OUT NOCOPY Sourcing_Rule_Rec_Type
281 , x_Sourcing_Rule_val_rec OUT NOCOPY Sourcing_Rule_Val_Rec_Type
282 , x_Receiving_Org_tbl OUT NOCOPY Receiving_Org_Tbl_Type
283 , x_Receiving_Org_val_tbl OUT NOCOPY Receiving_Org_Val_Tbl_Type
284 , x_Shipping_Org_tbl OUT NOCOPY Shipping_Org_Tbl_Type
285 , x_Shipping_Org_val_tbl OUT NOCOPY Shipping_Org_Val_Tbl_Type
286 )
287 IS
288 l_api_version_number CONSTANT NUMBER := 1.0;
289 l_api_name CONSTANT VARCHAR2(30):= 'Lock_Sourcing_Rule';
290 l_return_status VARCHAR2(1);
291 l_Sourcing_Rule_rec Sourcing_Rule_Rec_Type;
292 l_Receiving_Org_tbl Receiving_Org_Tbl_Type;
293 l_Shipping_Org_tbl Shipping_Org_Tbl_Type;
294
295 l_Sourcing_Rule_rec_out Sourcing_Rule_Rec_Type;
296 l_Receiving_Org_tbl_out Receiving_Org_Tbl_Type;
297 l_Shipping_Org_tbl_out Shipping_Org_Tbl_Type;
298
299 BEGIN
300
301 -- Standard call to check for call compatibility
302
303 IF NOT FND_API.Compatible_API_Call
304 ( l_api_version_number
305 , p_api_version_number
306 , l_api_name
307 , G_PKG_NAME
308 )
309 THEN
310 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
311 END IF;
312
313 -- Perform Value to Id conversion
314
315 Value_To_Id
316 ( x_return_status => l_return_status
317 , p_Sourcing_Rule_rec => p_Sourcing_Rule_rec
318 , p_Sourcing_Rule_val_rec => p_Sourcing_Rule_val_rec
319 , p_Receiving_Org_tbl => p_Receiving_Org_tbl
320 , p_Receiving_Org_val_tbl => p_Receiving_Org_val_tbl
321 , p_Shipping_Org_tbl => p_Shipping_Org_tbl
322 , p_Shipping_Org_val_tbl => p_Shipping_Org_val_tbl
323 , x_Sourcing_Rule_rec => l_Sourcing_Rule_rec
324 , x_Receiving_Org_tbl => l_Receiving_Org_tbl
325 , x_Shipping_Org_tbl => l_Shipping_Org_tbl
326 );
327
328 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
329 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
330 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
331 RAISE FND_API.G_EXC_ERROR;
332 END IF;
333
334
335 -- Call MRP_Sourcing_Rule_PVT.Lock_Sourcing_Rule
336
337 MRP_Sourcing_Rule_PVT.Lock_Sourcing_Rule
338 ( p_api_version_number => 1.0
339 , p_init_msg_list => p_init_msg_list
340 , x_return_status => x_return_status
341 , x_msg_count => x_msg_count
342 , x_msg_data => x_msg_data
343 , p_Sourcing_Rule_rec => l_Sourcing_Rule_rec
344 , p_Receiving_Org_tbl => l_Receiving_Org_tbl
345 , p_Shipping_Org_tbl => l_Shipping_Org_tbl
346 , x_Sourcing_Rule_rec => l_Sourcing_Rule_rec_out
347 , x_Receiving_Org_tbl => l_Receiving_Org_tbl_out
348 , x_Shipping_Org_tbl => l_Shipping_Org_tbl_out
349 );
350
351 l_Sourcing_Rule_rec := l_Sourcing_Rule_rec_out;
352 l_Receiving_Org_tbl := l_Receiving_Org_tbl_out;
353 l_Shipping_Org_tbl := l_Shipping_Org_tbl_out;
354
355
356 -- Load Id OUT parameters.
357
358 x_Sourcing_Rule_rec := l_Sourcing_Rule_rec;
359 x_Receiving_Org_tbl := l_Receiving_Org_tbl;
360 x_Shipping_Org_tbl := l_Shipping_Org_tbl;
361
362 -- If p_return_values is TRUE then convert Ids to Values.
363
364 IF FND_API.to_Boolean(p_return_values) THEN
365
366 Id_To_Value
367 ( p_Sourcing_Rule_rec => l_Sourcing_Rule_rec
368 , p_Receiving_Org_tbl => l_Receiving_Org_tbl
369 , p_Shipping_Org_tbl => l_Shipping_Org_tbl
370 , x_Sourcing_Rule_val_rec => x_Sourcing_Rule_val_rec
371 , x_Receiving_Org_val_tbl => x_Receiving_Org_val_tbl
372 , x_Shipping_Org_val_tbl => x_Shipping_Org_val_tbl
373 );
374
375 END IF;
376
377 EXCEPTION
378
379 WHEN FND_API.G_EXC_ERROR THEN
380
381 x_return_status := FND_API.G_RET_STS_ERROR;
382
383 -- Get message count and data
384
385 FND_MSG_PUB.Count_And_Get
386 ( p_count => x_msg_count
387 , p_data => x_msg_data
388 );
389
390 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
391
392 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
393
394 -- Get message count and data
395
396 FND_MSG_PUB.Count_And_Get
397 ( p_count => x_msg_count
398 , p_data => x_msg_data
399 );
400
401 WHEN OTHERS THEN
402
403 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
404
405 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
406 THEN
407 FND_MSG_PUB.Add_Exc_Msg
408 ( G_PKG_NAME
409 , 'Lock_Sourcing_Rule'
410 );
411 END IF;
412
413 -- Get message count and data
414
415 FND_MSG_PUB.Count_And_Get
416 ( p_count => x_msg_count
417 , p_data => x_msg_data
418 );
419
420 END Lock_Sourcing_Rule;
421
422 -- Start of Comments
423 -- API name Get_Sourcing_Rule
424 -- Type Public
425 -- Function
426 --
427 -- Pre-reqs
428 --
429 -- Parameters
430 --
431 -- Version Current version = 1.0
432 -- Initial version = 1.0
433 --
434 -- Notes
435 --
436 -- End of Comments
437
438 PROCEDURE Get_Sourcing_Rule
439 ( p_api_version_number IN NUMBER
440 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
441 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
442 , x_return_status OUT NOCOPY VARCHAR2
443 , x_msg_count OUT NOCOPY NUMBER
444 , x_msg_data OUT NOCOPY VARCHAR2
445 , p_Sourcing_Rule_Id IN NUMBER :=
446 FND_API.G_MISS_NUM
447 , x_Sourcing_Rule_rec OUT NOCOPY Sourcing_Rule_Rec_Type
448 , x_Sourcing_Rule_val_rec OUT NOCOPY Sourcing_Rule_Val_Rec_Type
449 , x_Receiving_Org_tbl OUT NOCOPY Receiving_Org_Tbl_Type
450 , x_Receiving_Org_val_tbl OUT NOCOPY Receiving_Org_Val_Tbl_Type
451 , x_Shipping_Org_tbl OUT NOCOPY Shipping_Org_Tbl_Type
452 , x_Shipping_Org_val_tbl OUT NOCOPY Shipping_Org_Val_Tbl_Type
453 )
454 IS
455 l_api_version_number CONSTANT NUMBER := 1.0;
456 l_api_name CONSTANT VARCHAR2(30):= 'Get_Sourcing_Rule';
457 l_Sourcing_Rule_Id NUMBER := p_Sourcing_Rule_Id;
458 l_Sourcing_Rule_rec MRP_Sourcing_Rule_PUB.Sourcing_Rule_Rec_Type;
459 l_Sourcing_Rule_val_rec MRP_Sourcing_Rule_PUB.Sourcing_Rule_Val_Rec_Type;
460 l_Receiving_Org_tbl MRP_Sourcing_Rule_PUB.Receiving_Org_Tbl_Type;
461 l_Receiving_Org_val_tbl MRP_Sourcing_Rule_PUB.Receiving_Org_Val_Tbl_Type;
462 l_Shipping_Org_tbl MRP_Sourcing_Rule_PUB.Shipping_Org_Tbl_Type;
463 l_Shipping_Org_val_tbl MRP_Sourcing_Rule_PUB.Shipping_Org_Val_Tbl_Type;
464 l_x_Shipping_Org_tbl MRP_Sourcing_Rule_PUB.Shipping_Org_Tbl_Type;
465 l_x_Shipping_Org_val_tbl MRP_Sourcing_Rule_PUB.Shipping_Org_Val_Tbl_Type;
466 BEGIN
467
468 -- Standard call to check for call compatibility
469
470 IF NOT FND_API.Compatible_API_Call
471 ( l_api_version_number
472 , p_api_version_number
473 , l_api_name
474 , G_PKG_NAME
475 )
476 THEN
477 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
478 END IF;
479
480 -- Value to ID conversion
481
482 -- If p_return_values is TRUE then query read views
483
484 IF FND_API.TO_BOOLEAN(p_return_values) THEN
485
486 -- Get Sourcing_Rule
487
488 MRP_Sourcing_Rule_Handlers.Query_Entity
489 ( p_Sourcing_Rule_Id => l_Sourcing_Rule_Id
490 , x_Sourcing_Rule_rec => l_Sourcing_Rule_rec
491 , x_Sourcing_Rule_val_rec => l_Sourcing_Rule_val_rec
492 );
493
494 -- Get Receiving_Org ( parent = Sourcing_Rule )
495
496 MRP_Receiving_Org_Handlers.Query_Entities
497 ( p_Sourcing_Rule_Id => l_Sourcing_Rule_rec.Sourcing_Rule_Id
498 , x_Receiving_Org_tbl => l_Receiving_Org_tbl
499 , x_Receiving_Org_val_tbl => l_Receiving_Org_val_tbl
500 );
501
502
503 -- Loop over Receiving_Org's children
504
505 FOR I2 IN 1..l_Receiving_Org_tbl.COUNT LOOP
506
507 -- Get Shipping_Org ( parent = Receiving_Org )
508
509 MRP_Shipping_Org_Handlers.Query_Entities
510 ( p_Sr_Receipt_Id => l_Receiving_Org_tbl(I2).Sr_Receipt_Id
511 , x_Shipping_Org_tbl => l_Shipping_Org_tbl
512 , x_Shipping_Org_val_tbl => l_Shipping_Org_val_tbl
513 );
514
515 FOR I3 IN 1..l_Shipping_Org_tbl.COUNT LOOP
516 l_Shipping_Org_tbl(I3).Receiving_Org_Index := I2;
517 l_x_Shipping_Org_tbl
518 (l_x_Shipping_Org_tbl.COUNT + 1) := l_Shipping_Org_tbl(I3);
519
520 l_x_Shipping_Org_val_tbl
521 (l_x_Shipping_Org_val_tbl.COUNT + 1) := l_Shipping_Org_val_tbl(I3);
522 END LOOP;
523
524 END LOOP;
525
526 -- Load out parameters
527
528 x_Sourcing_Rule_rec := l_Sourcing_Rule_rec;
529 x_Sourcing_Rule_val_rec := l_Sourcing_Rule_val_rec;
530 x_Receiving_Org_tbl := l_Receiving_Org_tbl;
531 x_Receiving_Org_val_tbl := l_Receiving_Org_val_tbl;
532 x_Shipping_Org_tbl := l_x_Shipping_Org_tbl;
533 x_Shipping_Org_val_tbl := l_x_Shipping_Org_val_tbl;
534
535 ELSE
536
537 -- Call MRP_Sourcing_Rule_PVT.Get_Sourcing_Rule
538
539 MRP_Sourcing_Rule_PVT.Get_Sourcing_Rule
540 ( p_api_version_number => 1.0
541 , p_init_msg_list => p_init_msg_list
542 , x_return_status => x_return_status
543 , x_msg_count => x_msg_count
544 , x_msg_data => x_msg_data
545 , p_Sourcing_Rule_Id => l_Sourcing_Rule_Id
546 , x_Sourcing_Rule_rec => l_Sourcing_Rule_rec
547 , x_Receiving_Org_tbl => l_Receiving_Org_tbl
548 , x_Shipping_Org_tbl => l_Shipping_Org_tbl
549 );
550
551 -- Load Id OUT parameters.
552
553 x_Sourcing_Rule_rec := l_Sourcing_Rule_rec;
554 x_Receiving_Org_tbl := l_Receiving_Org_tbl;
555 x_Shipping_Org_tbl := l_Shipping_Org_tbl;
556
557 END IF;
558
559 -- Set return status
560
561 x_return_status := FND_API.G_RET_STS_SUCCESS;
562
563 -- Get message count and data
564
565 FND_MSG_PUB.Count_And_Get
566 ( p_count => x_msg_count
567 , p_data => x_msg_data
568 );
569
570
571 EXCEPTION
572
573 WHEN FND_API.G_EXC_ERROR THEN
574
575 x_return_status := FND_API.G_RET_STS_ERROR;
576
577 -- Get message count and data
578
579 FND_MSG_PUB.Count_And_Get
580 ( p_count => x_msg_count
581 , p_data => x_msg_data
582 );
583
584 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
585
586 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
587
588 -- Get message count and data
589
590 FND_MSG_PUB.Count_And_Get
591 ( p_count => x_msg_count
592 , p_data => x_msg_data
593 );
594
595 WHEN OTHERS THEN
596
597 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
598
599 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
600 THEN
601 FND_MSG_PUB.Add_Exc_Msg
602 ( G_PKG_NAME
603 , 'Get_Sourcing_Rule'
604 );
605 END IF;
606
607 -- Get message count and data
608
609 FND_MSG_PUB.Count_And_Get
610 ( p_count => x_msg_count
611 , p_data => x_msg_data
612 );
613
614 END Get_Sourcing_Rule;
615
616 -- Procedure Id_To_Value
617
618 PROCEDURE Id_To_Value
619 ( p_Sourcing_Rule_rec IN Sourcing_Rule_Rec_Type
620 , p_Receiving_Org_tbl IN Receiving_Org_Tbl_Type
621 , p_Shipping_Org_tbl IN Shipping_Org_Tbl_Type
622 , x_Sourcing_Rule_val_rec OUT NOCOPY Sourcing_Rule_Val_Rec_Type
623 , x_Receiving_Org_val_tbl OUT NOCOPY Receiving_Org_Val_Tbl_Type
624 , x_Shipping_Org_val_tbl OUT NOCOPY Shipping_Org_Val_Tbl_Type
625 )
626 IS
627 BEGIN
628
629 -- Convert Sourcing_Rule
630
631 x_Sourcing_Rule_val_rec := MRP_Sourcing_Rule_Util.Get_Values(p_Sourcing_Rule_rec);
632
633 -- Convert Receiving_Org
634
635 FOR I IN 1..p_Receiving_Org_tbl.COUNT LOOP
636 x_Receiving_Org_val_tbl(I) :=
637 MRP_Receiving_Org_Util.Get_Values(p_Receiving_Org_tbl(I));
638 END LOOP;
639
640 -- Convert Shipping_Org
641
642 FOR I IN 1..p_Shipping_Org_tbl.COUNT LOOP
643 x_Shipping_Org_val_tbl(I) :=
644 MRP_Shipping_Org_Util.Get_Values(p_Shipping_Org_tbl(I));
645 END LOOP;
646
647 EXCEPTION
648
649 WHEN OTHERS THEN
650
651 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
652 THEN
653 FND_MSG_PUB.Add_Exc_Msg
654 ( G_PKG_NAME
655 , 'Id_To_Value'
656 );
657 END IF;
658
659 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
660
661 END Id_To_Value;
662
663 -- Procedure Value_To_Id
664
665 PROCEDURE Value_To_Id
666 ( x_return_status OUT NOCOPY VARCHAR2
667 , p_Sourcing_Rule_rec IN Sourcing_Rule_Rec_Type
668 , p_Sourcing_Rule_val_rec IN Sourcing_Rule_Val_Rec_Type
669 , p_Receiving_Org_tbl IN Receiving_Org_Tbl_Type
670 , p_Receiving_Org_val_tbl IN Receiving_Org_Val_Tbl_Type
671 , p_Shipping_Org_tbl IN Shipping_Org_Tbl_Type
672 , p_Shipping_Org_val_tbl IN Shipping_Org_Val_Tbl_Type
673 , x_Sourcing_Rule_rec OUT NOCOPY Sourcing_Rule_Rec_Type
674 , x_Receiving_Org_tbl OUT NOCOPY Receiving_Org_Tbl_Type
675 , x_Shipping_Org_tbl OUT NOCOPY Shipping_Org_Tbl_Type
676 )
677 IS
678 l_Sourcing_Rule_rec Sourcing_Rule_Rec_Type;
679 l_Receiving_Org_rec Receiving_Org_Rec_Type;
680 l_Shipping_Org_rec Shipping_Org_Rec_Type;
681 l_index BINARY_INTEGER;
682 BEGIN
683
684 -- Init x_return_status.
685
686 x_return_status := FND_API.G_RET_STS_SUCCESS;
687
688 -- Convert Sourcing_Rule
689
690 l_Sourcing_Rule_rec := MRP_Sourcing_Rule_Util.Get_Ids
691 ( p_Sourcing_Rule_rec => p_Sourcing_Rule_rec
692 , p_Sourcing_Rule_val_rec => p_Sourcing_Rule_val_rec
693 );
694
695 x_Sourcing_Rule_rec := l_Sourcing_Rule_rec;
696
697 IF l_Sourcing_Rule_rec.return_status = FND_API.G_RET_STS_ERROR THEN
698 x_return_status := FND_API.G_RET_STS_ERROR;
699 END IF;
700
701 -- Convert Receiving_Org
702
703 x_Receiving_Org_tbl := p_Receiving_Org_tbl;
704
705 l_index := p_Receiving_Org_val_tbl.FIRST;
706
707 WHILE l_index IS NOT NULL LOOP
708
709 l_Receiving_Org_rec := MRP_Receiving_Org_Util.Get_Ids
710 ( p_Receiving_Org_rec => p_Receiving_Org_tbl(l_index)
711 , p_Receiving_Org_val_rec => p_Receiving_Org_val_tbl(l_index)
712 );
713
714 x_Receiving_Org_tbl(l_index) := l_Receiving_Org_rec;
715
716 IF l_Receiving_Org_rec.return_status = FND_API.G_RET_STS_ERROR THEN
717 x_return_status := FND_API.G_RET_STS_ERROR;
718 END IF;
719
720 l_index := p_Receiving_Org_val_tbl.NEXT(l_index);
721
722 END LOOP;
723
724 -- Convert Shipping_Org
725
726 x_Shipping_Org_tbl := p_Shipping_Org_tbl;
727
728 l_index := p_Shipping_Org_val_tbl.FIRST;
729
730 WHILE l_index IS NOT NULL LOOP
731
732 l_Shipping_Org_rec := MRP_Shipping_Org_Util.Get_Ids
733 ( p_Shipping_Org_rec => p_Shipping_Org_tbl(l_index)
734 , p_Shipping_Org_val_rec => p_Shipping_Org_val_tbl(l_index)
735 );
736
737 x_Shipping_Org_tbl(l_index) := l_Shipping_Org_rec;
738
739 IF l_Shipping_Org_rec.return_status = FND_API.G_RET_STS_ERROR THEN
740 x_return_status := FND_API.G_RET_STS_ERROR;
741 END IF;
742
743 l_index := p_Shipping_Org_val_tbl.NEXT(l_index);
744
745 END LOOP;
746
747 EXCEPTION
748
749 WHEN OTHERS THEN
750
751 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
752 THEN
753 FND_MSG_PUB.Add_Exc_Msg
754 ( G_PKG_NAME
755 , 'Value_To_Id'
756 );
757 END IF;
758
759 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
760
761 END Value_To_Id;
762
763 END MRP_Sourcing_Rule_PUB;