[Home] [Help]
PACKAGE BODY: APPS.IBE_CCTBOM_PVT
Source
1 PACKAGE BODY IBE_CCTBOM_PVT AS
2 /* $Header: IBEVCBMB.pls 120.1 2005/12/21 20:32:36 ssekar noship $ */
3
4 FUNCTION Validate_Model_Bundle(p_model_id IN NUMBER, p_organization_id IN NUMBER)
5 RETURN VARCHAR2
6 IS
7 l_item_id NUMBER;
8 l_optional NUMBER;
9 l_component_code VARCHAR2(1000);
10 l_total_component_items NUMBER;
11 l_isModelBundle VARCHAR2(1);
12 l_isEmptyModelItem VARCHAR2(1); --gzhang 12/12/02, #2709735
13
14 cursor l_option_class_csr IS
15 SELECT component_item_id,optional,bom_item_type FROM BOM_EXPLOSIONS
16 WHERE top_bill_sequence_id =
17 (SELECT bill_sequence_id FROM bom_structures_b
18 WHERE assembly_item_id = p_model_id
19 AND organization_id = p_organization_id
20 AND alternate_bom_designator IS NULL)
21 AND EXPLOSION_TYPE = 'ALL'
22 AND organization_id = p_organization_id
23 AND plan_level=1
24 AND NVL(disable_date,sysdate) >=sysdate
25 AND NVL(effectivity_date,sysdate) <= sysdate;
26
27 BEGIN
28 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
29 IBE_UTIL.DEBUG(G_PKG_NAME||'.Validate_Model_Bundle: Validating model bundle, item_id='||p_model_id||',organization_id='||p_organization_id);
30 END IF;
31
32 l_isModelBundle := FND_API.G_TRUE;
33 l_isEmptyModelItem := FND_API.G_TRUE; --gzhang 12/12/02, #2709735
34
35 FOR option_class_rec IN l_option_class_csr LOOP
36
37 IF option_class_rec.optional <> 2 OR option_class_rec.bom_item_type <> 2 THEN
38
39 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
40 IBE_UTIL.DEBUG(G_PKG_NAME||'.Validate_Model_Bundle:'
41 ||option_class_rec.component_item_id||' is not a required optional class, optional='||option_class_rec.optional
42 ||',bom_item_type='||option_class_rec.bom_item_type);
43 END IF;
44
45 l_isModelBundle := FND_API.G_FALSE;
46
47 ELSE
48 l_component_code := p_model_id || '-' || option_class_rec.component_item_id || '-%';
49 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
50 IBE_UTIL.DEBUG(G_PKG_NAME||'.Validate_Model_Bundle: Looking for items with component code like '||l_component_code);
51 END IF;
52
53 SELECT count(component_item_id) into l_total_component_items
54 FROM BOM_EXPLOSIONS
55 WHERE top_bill_sequence_id =
56 (SELECT bill_sequence_id
57 FROM bom_structures_b
58 WHERE assembly_item_id = p_model_id
59 AND organization_id = p_organization_id
60 AND alternate_bom_designator IS NULL)
61 AND EXPLOSION_TYPE = 'ALL'
62 AND plan_level = 2
63 AND organization_id = p_organization_id
64 AND component_code like l_component_code
65 AND NVL(disable_date,sysdate) >=sysdate
66 AND NVL(effectivity_date,sysdate) <= sysdate;
67
68 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
69 IBE_UTIL.DEBUG(G_PKG_NAME||'.Validate_Model_Bundle: Found '||l_total_component_items||' component item(s)');
70 END IF;
71 IF l_total_component_items = 1 THEN
72 SELECT component_item_id, optional into l_item_id,l_optional
73 FROM BOM_EXPLOSIONS
74 WHERE top_bill_sequence_id =
75 (SELECT bill_sequence_id
76 FROM bom_structures_b
77 WHERE assembly_item_id = p_model_id
78 AND organization_id = p_organization_id
79 AND alternate_bom_designator IS NULL)
80 AND EXPLOSION_TYPE = 'ALL'
81 AND plan_level = 2
82 AND organization_id = p_organization_id
83 AND component_code like l_component_code
84 AND NVL(disable_date,sysdate) >=sysdate
85 AND NVL(effectivity_date,sysdate) <= sysdate;
86 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
87 IBE_UTIL.DEBUG(G_PKG_NAME||'.Validate_Model_Bundle: item_id='||l_item_id||', optional='||l_optional);
88 END IF;
89 IF l_optional <> 1 THEN
90 l_isModelBundle := FND_API.G_FALSE;
91 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
92 IBE_UTIL.DEBUG(G_PKG_NAME||'.Validate_Model_Bundle: component item(item_id='||l_item_id||') not optional, optional='||l_optional);
93 END IF;
94 END IF;
95 ELSE
96 l_isModelBundle := FND_API.G_FALSE;
97 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
98 IBE_UTIL.DEBUG(G_PKG_NAME||'.Validate_Model_Bundle: optional class (item_id='||option_class_rec.component_item_id||') contains '||l_total_component_items||'(more than one or ZERO) items');
99 END IF;
100 END IF;
101 END IF;
102 l_isEmptyModelItem := FND_API.G_FALSE; --gzhang 12/12/02, #2709735
103 EXIT WHEN l_isModelBundle = FND_API.G_FALSE;
104 END LOOP;
105
106 IF l_option_class_csr%ISOPEN THEN
107 CLOSE l_option_class_csr;
108 END IF;
109
110 --gzhang 12/16/02, #2709735
111 IF l_isEmptyModelItem = FND_API.G_TRUE THEN
112 l_isModelBundle := FND_API.G_FALSE;
113 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
114 IBE_UTIL.DEBUG(G_PKG_NAME||'.Validate_Model_Bundle: No child items found');
115 END IF;
116 END IF;
117
118 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
119 IBE_UTIL.DEBUG(G_PKG_NAME||'.Validate_Model_Bundle: return '||l_isModelBundle);
120 END IF;
121 --gzhang 08/08/2002, bug#2488246
122 --IBE_UTIL.DISABLE_DEBUG;
123 RETURN l_isModelBundle;
124 EXCEPTION
125 WHEN NO_DATA_FOUND THEN
126 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
127 IBE_UTIL.DEBUG(G_PKG_NAME||'.Validate_Model_Bundle: NO_DATA_FOUND Exception, return F');
128 END IF;
129 --gzhang 08/08/2002, bug#2488246
130 --IBE_UTIL.DISABLE_DEBUG;
131 RETURN FND_API.G_FALSE;
132 WHEN OTHERS THEN
133 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
134 IBE_UTIL.DEBUG(G_PKG_NAME||'.Validate_Model_Bundle: OTHERS Exception, return F');
135 END IF;
136 --gzhang 08/08/2002, bug#2488246
137 --IBE_UTIL.DISABLE_DEBUG;
138 RETURN FND_API.G_FALSE;
139 END Validate_Model_Bundle;
140
141
142 -- Start of comments
143 -- API name : Is_Model_Bundle
144 -- Type : Private.
145 -- Function : Given a model item id, returns 'T' if this is a model bundle,
146 -- otherwise returns 'F'
147 --
148 -- Pre-reqs : None.
149 -- Parameters :
150 -- IN : p_api_version IN NUMBER Required
151 -- p_init_msg_list IN VARCHAR2 Optional
152 -- Default = FND_API.G_FALSE
153 -- p_validation_level IN NUMBER Optional
154 -- Default = FND_API.G_VALID_LEVEL_FULL
155 --
156 -- p_model_id IN NUMBER Required
157 -- p_orgnization_id IN NUMBER, Required
158 --
159 --
160 --
161 --
162 --
163 -- Version : Current version 1.0
164 --
165 -- previous version None
166 --
167 --
168 -- Initial version 1.0
169 --
170 -- Notes : Note text
171 --
172 -- End of comments
173
174 Function Is_Model_Bundle
175 (p_api_version IN NUMBER,
176 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
177 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
178 p_model_id IN NUMBER,
179 p_organization_id IN NUMBER
180 )
181
182 RETURN VARCHAR2
183
184 IS
185
186 l_bundle VARCHAR2(1) := FND_API.G_FALSE;
187
188
189 l_api_version CONSTANT NUMBER := 1.0;
190 l_explosion_date DATE := sysdate;
191 l_error_code NUMBER;
192 l_return_status VARCHAR2(1);
193 l_msg_count NUMBER;
194 l_msg_data VARCHAR2(2000);
195
196 l_count NUMBER := 0;
197 l_validate VARCHAR2(1);
198
199 l_bom_item_type NUMBER;
200 l_resp_id NUMBER;
201 l_resp_appl_id NUMBER;
202
203 cursor l_bom_item_type_csr IS
204 SELECT MSIV.bom_item_type
205 FROM mtl_system_items_vl MSIV
206 WHERE MSIV.inventory_item_id = p_model_id
207 AND MSIV.organization_id = p_organization_id;
208
209 BEGIN
210 --gzhang 08/08/2002, bug#2488246
211 --ibe_util.enable_debug;
212
213 -- begin API body
214 l_return_status := FND_API.G_RET_STS_SUCCESS;
215 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
216 IBE_UTIL.debug(G_PKG_NAME||'.Is_Model_Bundle : p_model_id ='||p_model_id||', p_organization_id='||p_organization_id);
217 END IF;
218
219 OPEN l_bom_item_type_csr;
220 FETCH l_bom_item_type_csr INTO l_bom_item_type;
221 CLOSE l_bom_item_type_csr;
222
223 l_resp_id := FND_PROFILE.value('RESP_ID');
224 l_resp_appl_id := FND_PROFILE.value('RESP_APPL_ID');
225
226 IF l_bom_item_type = 1 AND CZ_CF_API.UI_FOR_ITEM(p_model_id, p_organization_id, SYSDATE, 'DHTML', FND_API.G_MISS_NUM, l_resp_id, l_resp_appl_id) IS NULL THEN
227 -- Call BOM Explosion API
228 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
229 IBE_UTIL.debug(G_PKG_NAME||'.Is_Model_Bundle :Calling BOMPNORD.Bmxporder_Explode_For_Order()');
230 END IF;
231 Explode(p_validation_org => p_organization_id,
232 p_levels => 6, --??
233 p_stdcompflag => 'ALL',
234 p_top_item_id => p_model_id,
235 p_revdate => l_explosion_date,
236 x_msg_data => l_msg_data,
237 x_error_code => l_error_code,
238 x_return_status => l_return_status);
239 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
240 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
241 IBE_UTIL.debug(G_PKG_NAME||'.Is_Model_Bundle : RAISE FND_API.G_RET_STS_UNEXP_ERROR');
242 END IF;
243 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
244 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
245 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
246 IBE_UTIL.debug(G_PKG_NAME||'.Is_Model_Bundle : RAISE FND_API.G_RET_STS_ERROR');
247 END IF;
248 RAISE FND_API.G_EXC_ERROR;
249 ELSE
250 l_bundle := Validate_Model_Bundle(p_model_id,p_organization_id);
251 IF l_bundle = FND_API.G_FALSE THEN
252 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
253 IBE_UTIL.debug(G_PKG_NAME||'.Is_Model_Bundle : Model bundle ( item_id='||p_model_id||') is invalid. Incorrect BOM setup.');
254 END IF;
255 ELSE
256 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
257 IBE_UTIL.debug(G_PKG_NAME||'.Is_Model_Bundle : valid model bundle, item_id='||p_model_id);
258 END IF;
259 END IF;
260 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
261 IBE_UTIL.debug(G_PKG_NAME||'.Is_Model_Bundle : Validate_Model_Bundle('||p_model_id||','||p_organization_id||') returns '||l_bundle);
262 END IF;
263 END IF;
264 ELSE
265 l_bundle := FND_API.G_FALSE;
266 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
267 IBE_UTIL.debug(G_PKG_NAME||'.Is_Model_Bundle : Item( item_id='||p_model_id||') is not a model bundle.');
268 END IF;
269 END IF;
270 return l_bundle;
271 END Is_Model_Bundle;
272
273
274 -- Start of comments
275 -- API name : Load_Components
276 -- Type : Private.
277 -- Function : Given a model item id, retrieve all the component item ids of
278 -- this model item.
279 -- Pre-reqs : None.
280 -- Parameters :
281 -- IN : p_api_version IN NUMBER Required
282 -- p_init_msg_list IN VARCHAR2 Optional
283 -- Default = FND_API.G_FALSE
284 -- p_validation_level IN NUMBER Optional
285 -- Default = FND_API.G_VALID_LEVEL_FULL
286 --
287 -- p_model_id IN NUMBER Required
288 -- p_organization_id IN NUMBER Required
289 --
290 -- OUT : x_return_status OUT NOCOPY VARCHAR2(1)
291 -- x_msg_count OUT NOCOPY NUMBER
292 -- x_msg_data OUT NOCOPY VARCHAR2(2000)
293 -- x_item_csr OUT NOCOPY IBE_CCTBOM_REF_CSR_TYPE
294 -- Record type = IBE_BOM_EXPLOSION_REC
295 --
296 --
297 --
298 --
299 -- Version : Current version 1.0
300 --
301 --
302 -- previous version None
303 --
304 -- Initial version 1.0
305 --
306 -- Notes : Note text
307 --
308 -- End of comments
309
310 procedure Load_Components
311 (p_api_version IN NUMBER,
312 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
313 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
314 x_return_status OUT NOCOPY VARCHAR2,
315 x_msg_count OUT NOCOPY NUMBER,
316 x_msg_data OUT NOCOPY VARCHAR2,
317 p_model_id IN NUMBER,
318 p_organization_id IN NUMBER ,
319 x_item_csr OUT NOCOPY IBE_CCTBOM_REF_CSR_TYPE) IS
320
321 l_api_name CONSTANT VARCHAR2(30) := 'Load_Components';
322 l_api_version CONSTANT NUMBER := 1.0;
323
324 l_explosion_date DATE := sysdate;
325 l_error_code NUMBER;
326 l_return_status VARCHAR2(1);
327 l_msg_count NUMBER;
328 l_msg_data VARCHAR2(2000);
329
330 BEGIN
331 --dbms_output.put_line('INSIDE LOAD COMPONENTS');
332 --gzhang 08/08/2002, bug#2488246
333 --ibe_util.enable_debug;
334 -- standard call to check for call compatibility
335 l_return_status := FND_API.G_RET_STS_SUCCESS;
336 IF NOT FND_API.Compatible_API_Call (l_api_version,
337 p_api_version,
338 l_api_name,
339 G_PKG_NAME )
340 THEN
341 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
342 END IF;
343
344 -- initialize message list if p_init_msg_list is set to TRUE
345 IF FND_API.to_Boolean(p_init_msg_list) THEN
346 FND_MSG_PUB.initialize;
347 END IF;
348
349 -- initialize API return status to success
350 x_return_status := FND_API.G_RET_STS_SUCCESS;
351
352 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
353 IBE_UTIL.debug(G_PKG_NAME||'.Load_Components');
354 -- begin API body
355 -- Call BOM Explosion API
356 IBE_UTIL.debug(G_PKG_NAME||'.Load_Components: Calling BOMPNORD.Bmxporder_Explode_For_Order()');
357 IBE_UTIL.debug(G_PKG_NAME||'.Load_Components: BEFORE EXPLODE in LOAD');
358 END IF;
359
360 Explode(p_validation_org => p_organization_id,
361 p_levels => 6, --??
362 p_stdcompflag => 'ALL',
363 p_top_item_id => p_model_id,
364 p_revdate => l_explosion_date,
365 x_msg_data => l_msg_data,
366 x_error_code => l_error_code,
367 x_return_status => l_return_status);
368 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
369 IBE_UTIL.debug(G_PKG_NAME||'.Load_Components: AFTER Explode reture status = '||l_return_status); --gzhang 05/24/2002 typo error
370 END IF;
371
372 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
373 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
374 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
375 RAISE FND_API.G_EXC_ERROR;
376 END IF;
377
378 OPEN x_item_csr FOR
379 SELECT COMPONENT_ITEM_ID,
380 PLAN_LEVEL,
381 OPTIONAL,
382 PARENT_BOM_ITEM_TYPE,
383 BOM_ITEM_TYPE,
384 PRIMARY_UOM_CODE,
385 COMPONENT_QUANTITY,
386 COMPONENT_CODE
387 FROM BOM_EXPLOSIONS
388 WHERE top_bill_sequence_id =
389 (SELECT bill_sequence_id FROM bom_structures_b
390 WHERE assembly_item_id = p_model_id
391 AND organization_id = p_organization_id
392 AND alternate_bom_designator IS NULL)
393 AND ORGANIZATION_ID = p_organization_id --gzhang 01/16/2003, bug#2750492
394 AND EXPLOSION_TYPE = 'ALL'
395 AND PARENT_BOM_ITEM_TYPE < 3
396 AND COMPONENT_ITEM_ID <> TOP_ITEM_ID
397 --AND OPTIONAL = 2
398 AND DISABLE_DATE >= sysdate;
399
400 -- end API body
401 --dbms_output.put_line('After select in load ');
402 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
403 IBE_UTIL.debug(G_PKG_NAME||'.Load_Components: After select in load');
404 END IF;
405
406 -- standard call to get message count and if count is 1, get message info.
407 FND_MSG_PUB.Count_And_Get
408 ( p_encoded => FND_API.G_FALSE,
409 p_count => x_msg_count,
410 p_data => x_msg_data
411 );
412 --gzhang 08/08/2002, bug#2488246
413 --ibe_util.disable_debug;
414 EXCEPTION
415 WHEN FND_API.G_EXC_ERROR THEN
416 x_return_status := FND_API.G_RET_STS_ERROR;
417 FND_MSG_PUB.Count_And_Get
418 ( p_encoded => FND_API.G_FALSE,
419 p_count => x_msg_count,
420 p_data => x_msg_data
421 );
422 --gzhang 08/08/2002, bug#2488246
423 --ibe_util.disable_debug;
424 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
425 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
426 FND_MSG_PUB.Count_And_Get
427 ( p_encoded => FND_API.G_FALSE,
428 p_count => x_msg_count,
429 p_data => x_msg_data
430 );
431 --gzhang 08/08/2002, bug#2488246
432 --ibe_util.disable_debug;
433 WHEN OTHERS THEN
434 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
435 FND_MESSAGE.Set_Name('FND', 'SQL_PLSQL_ERROR');
436 FND_MESSAGE.Set_Token('ROUTINE', l_api_name);
437 FND_MESSAGE.Set_Token('ERRNO', SQLCODE);
438 FND_MESSAGE.Set_Token('REASON', SQLERRM);
439 FND_MSG_PUB.Add;
440 IF FND_MSG_PUB.Check_Msg_Level
441 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
442 THEN FND_MSG_PUB.Add_Exc_Msg
443 ( G_PKG_NAME,
444 l_api_name
445 );
446 END IF;
447 FND_MSG_PUB.Count_And_Get
448 ( p_encoded => FND_API.G_FALSE,
449 p_count => x_msg_count,
450 p_data => x_msg_data
451 );
452 --gzhang 08/08/2002, bug#2488246
453 --ibe_util.disable_debug;
454 END Load_Components;
455
456 /*----------------------------------------------------------------------
457 Procedure Name : Explode
458 Description :
459 -----------------------------------------------------------------------*/
460 Procedure Explode
461 ( p_validation_org IN NUMBER
462 , p_group_id IN NUMBER := NULL
463 , p_session_id IN NUMBER := NULL
464 , p_levels IN NUMBER := 60
465 , p_stdcompflag IN VARCHAR2 := 'ALL'
466 , p_exp_quantity IN NUMBER := NULL
467 , p_top_item_id IN NUMBER
468 , p_revdate IN DATE
469 , p_component_code IN VARCHAR2 := NULL
470 , x_msg_data OUT NOCOPY VARCHAR2
471 , x_error_code OUT NOCOPY NUMBER
472 , x_return_status OUT NOCOPY VARCHAR2)
473 IS
474 l_group_id NUMBER; -- bom out param
475 BEGIN
476
477 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
478 IBE_UTIL.debug(G_PKG_NAME||'.Explode: Inside EXPLODE before call itemid = '||p_top_item_id);
479 END IF;
480
481 BOMPNORD.Bmxporder_Explode_For_Order(
482 org_id => p_validation_org,
483 copy_flag => 2,
484 expl_type => p_stdcompflag,
485 order_by => 2,
486 grp_id => l_group_id,
487 session_id => p_session_id,
488 levels_to_explode => 60,
489 item_id => p_top_item_id,
490 rev_date => to_char(p_revdate,'YYYY/MM/DD HH24:MI'),
491 user_id => 0,
492 commit_flag => 'Y',
493 err_msg => x_msg_data,
494 error_code => x_error_code);
495 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
496 IBE_UTIL.debug(G_PKG_NAME||'.Explode: Error Msg = '||x_msg_data);
497 IBE_UTIL.debug(G_PKG_NAME||'.Explode: Error_code = '|| x_error_code);
498 IBE_UTIL.debug(G_PKG_NAME||'.Explode: grp_id = '|| l_group_id);
499
500 IBE_UTIL.debug(G_PKG_NAME||'.Explode: After calling bom Explode api');
501 END IF;
502
503 IF x_error_code <> 0 THEN
504 --dbms_output.put_line('Error in BOM Explosion');
505 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
506 IBE_UTIL.debug('Error in BOM Explosion');
507 END IF;
508 IF x_msg_data is not null THEN
509 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
510 IBE_UTIL.debug(G_PKG_NAME||'.Explode: BOM msg name= ' || substr(x_msg_data, 1, 250));
511 END IF;
512
513 -- girish from bom team told err_msg is msg name, track bug 1623728
514 FND_MESSAGE.Set_Name('BOM', x_msg_data);
515
516 END IF;
517
518 RAISE FND_API.G_EXC_ERROR;
519 END IF;
520
521
522 x_return_status := FND_API.G_RET_STS_SUCCESS;
523 IF (IBE_UTIL.G_DEBUGON = FND_API.G_TRUE) THEN
524 IBE_UTIL.debug(G_PKG_NAME||'.Explode: Exiting Ibe_CctBom_Pvt.Explode');
525 END IF;
526
527 EXCEPTION
528 WHEN FND_API.G_EXC_ERROR THEN
529 x_return_status := FND_API.G_RET_STS_ERROR;
530 END Explode;
531
532 end IBE_CCTBOM_PVT;