[Home] [Help]
PACKAGE BODY: APPS.GMD_FORMULA_DETAIL_PVT
Source
1 PACKAGE BODY GMD_FORMULA_DETAIL_PVT AS
2 /* $Header: GMDVFMDB.pls 120.2.12000000.2 2007/02/09 12:43:07 kmotupal ship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'GMD_FORMULA_DETAIL_PVT';
5
6 --Bug 3222090, NSRIVAST 20-FEB-2004, BEGIN
7 --Forward declaration.
8 FUNCTION set_debug_flag RETURN VARCHAR2;
9 l_debug VARCHAR2(1) := set_debug_flag;
10
11 FUNCTION set_debug_flag RETURN VARCHAR2 IS
12 l_debug VARCHAR2(1):= 'N';
13 BEGIN
14 IF( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
15 l_debug := 'Y';
16 END IF;
17 RETURN l_debug;
18 END set_debug_flag;
19 --Bug 3222090, NSRIVAST 20-FEB-2004, END
20
21 /* ======================================================================== */
22 /* Procedure: */
23 /* Insert_FormulaDetail */
24 /* */
25 /* DESCRIPTION: */
26 /* This PL/SQL procedure is responsible for */
27 /* inserting a formula detail. */
28 /* HISTORY: */
29 /* Kapil ME Bug# 5716318 - Added the new Percentage Fields for Auto -Prod*/
30 /* ME. */
31 /* ======================================================================== */
32 PROCEDURE Insert_FormulaDetail
33 ( p_api_version IN NUMBER
34 ,p_init_msg_list IN VARCHAR2
35 ,p_commit IN VARCHAR2
36 ,x_return_status OUT NOCOPY VARCHAR2
37 ,x_msg_count OUT NOCOPY NUMBER
38 ,x_msg_data OUT NOCOPY VARCHAR2
39 ,p_formula_detail_rec IN fm_matl_dtl%ROWTYPE
40 )
41 IS
42 /* Local Variables definitions */
43 l_api_name CONSTANT VARCHAR2(30) := 'INSERT_FORMULADETAIL';
44 l_api_version CONSTANT NUMBER := 1.0;
45 X_msg_cnt NUMBER;
46 X_msg_dat VARCHAR2(100);
47 X_status VARCHAR2(1);
48 l_product_qty NUMBER;
49 l_ing_qty NUMBER;
50 l_uom mtl_units_of_measure.unit_of_measure%TYPE;
51
52 BEGIN
53 /* Define Savepoint */
54 SAVEPOINT Insert_FormulaDetail_PVT;
55
56 /* Standard Check for API compatibility */
57 IF NOT FND_API.Compatible_API_Call( l_api_version
58 ,p_api_version
59 ,l_api_name
60 ,G_PKG_NAME )
61 THEN
62 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
63 END IF;
64
65 /* Initialize message list if p_init_msg_list is set to TRUE */
66 IF FND_API.to_Boolean( p_init_msg_list ) THEN
67 FND_MSG_PUB.initialize;
68 END IF;
69
70 /* Initialize API return status to success */
71 x_return_status := FND_API.G_RET_STS_SUCCESS;
72
73 /* API Body */
74 /* Later on this insert should be changed to */
75 /* make insert on business view as opposed to tables directly. */
76
77 IF (l_debug = 'Y') THEN
78 gmd_debug.put_line(' ');
79 END IF;
80
81 IF (l_debug = 'Y') THEN
82 gmd_debug.put_line(' In formula detail Pvt - About to insert formulaline id = '
83 ||p_formula_detail_rec.formulaline_id);
84 END IF;
85
86 INSERT INTO fm_matl_dtl
87 (formulaline_id,
88 formula_id,
89 line_type,
90 line_no,
91 inventory_item_id,
92 organization_id,
93 revision,
94 qty,
95 detail_uom,
96 release_type,
97 scrap_factor,
98 scale_type,
99 cost_alloc,
100 phantom_type,
101 buffer_ind,
102 rework_type,
103 text_code,
104 tpformula_id,
105 iaformula_id,
106 scale_multiple,
107 contribute_yield_ind,
108 scale_uom,
109 contribute_step_qty_ind ,
110 scale_rounding_variance,
111 rounding_direction,
112 /*Bug 2509076 - Thomas Daniel QM Integration */
113 by_product_type,
114 ingredient_end_date, --Bug 4479101
115 created_by,
116 creation_date,
117 last_update_date,
118 last_updated_by,
119 last_update_login,
120 attribute1, attribute2,
121 attribute3, attribute4,
122 attribute5, attribute6,
123 attribute7, attribute8,
124 attribute9, attribute10,
125 attribute11, attribute12,
126 attribute13, attribute14,
127 attribute15, attribute16,
128 attribute17, attribute18,
129 attribute19, attribute20,
130 attribute21, attribute22,
131 attribute23, attribute24,
132 attribute25, attribute26,
133 attribute27, attribute28,
134 attribute29, attribute30,
135 attribute_category,
136 prod_percent)
137 VALUES
138 (p_formula_detail_rec.formulaline_id,
139 p_formula_detail_rec.formula_id,
140 p_formula_detail_rec.line_type,
141 p_formula_detail_rec.line_no ,
142 p_formula_detail_rec.inventory_item_id,
143 p_formula_detail_rec.organization_id,
144 p_formula_detail_rec.revision,
145 p_formula_detail_rec.qty,
146 p_formula_detail_rec.detail_uom,
147 p_formula_detail_rec.release_type,
148 p_formula_detail_rec.scrap_factor,
149 p_formula_detail_rec.scale_type,
150 p_formula_detail_rec.cost_alloc,
151 p_formula_detail_rec.phantom_type,
152 p_formula_detail_rec.buffer_ind,
153 p_formula_detail_rec.rework_type,
154 p_formula_detail_rec.text_code,
155 p_formula_detail_rec.tpformula_id,
156 p_formula_detail_rec.iaformula_id,
157 p_formula_detail_rec.scale_multiple,
158 p_formula_detail_rec.contribute_yield_ind,
159 p_formula_detail_rec.scale_uom,
160 p_formula_detail_rec.contribute_step_qty_ind ,
161 p_formula_detail_rec.scale_rounding_variance ,
162 p_formula_detail_rec.rounding_direction ,
163 /*Bug 2509076 - Thomas Daniel QM Integration */
164 p_formula_detail_rec.by_product_type,
165 p_formula_detail_rec.ingredient_end_date, --Bug 4479101
166 p_formula_detail_rec.created_by,
167 p_formula_detail_rec.creation_date,
168 p_formula_detail_rec.last_update_date,
169 p_formula_detail_rec.last_updated_by,
170 p_formula_detail_rec.last_update_login,
171 p_formula_detail_rec.attribute1, p_formula_detail_rec.attribute2,
172 p_formula_detail_rec.attribute3, p_formula_detail_rec.attribute4,
173 p_formula_detail_rec.attribute5, p_formula_detail_rec.attribute6,
174 p_formula_detail_rec.attribute7, p_formula_detail_rec.attribute8,
175 p_formula_detail_rec.attribute9, p_formula_detail_rec.attribute10,
176 p_formula_detail_rec.attribute11, p_formula_detail_rec.attribute12,
177 p_formula_detail_rec.attribute13, p_formula_detail_rec.attribute14,
178 p_formula_detail_rec.attribute15, p_formula_detail_rec.attribute16,
179 p_formula_detail_rec.attribute17, p_formula_detail_rec.attribute18,
180 p_formula_detail_rec.attribute19, p_formula_detail_rec.attribute20,
181 p_formula_detail_rec.attribute21, p_formula_detail_rec.attribute22,
182 p_formula_detail_rec.attribute23, p_formula_detail_rec.attribute24,
183 p_formula_detail_rec.attribute25, p_formula_detail_rec.attribute26,
184 p_formula_detail_rec.attribute27, p_formula_detail_rec.attribute28,
185 p_formula_detail_rec.attribute29, p_formula_detail_rec.attribute30,
186 p_formula_detail_rec.attribute_category,
187 p_formula_detail_rec.prod_percent);
188 /* END API Body */
189 IF (l_debug = 'Y') THEN
190 gmd_debug.put_line(' In formula detail Pvt - After insert formulaline insert ');
191 END IF;
192
193 IF (l_debug = 'Y') THEN
194 gmd_debug.put_line(' In formula detail Pvt - About to recalculate TOQ ');
195 END IF;
196 /* Recalculate the TOQ and TIQ */
197 GMD_COMMON_VAL.calculate_total_qty(
198 formula_id => p_formula_detail_rec.formula_id,
199 x_product_qty => l_product_qty ,
200 x_ingredient_qty => l_ing_qty ,
201 x_uom => l_uom ,
202 x_return_status => x_return_status ,
203 x_msg_count => X_msg_cnt ,
204 x_msg_data => x_msg_dat );
205
206 IF (l_debug = 'Y') THEN
207 gmd_debug.put_line(' In formula detail Pvt - Update header with TOQ '
208 ||' TIQ = '
209 ||l_ing_qty
210 ||' TOQ = '
211 ||l_product_qty);
212 END IF;
213 /* Update formula header table with TOQ and TIQ */
214 UPDATE fm_form_mst_b
215 SET total_output_qty = l_product_qty,
216 total_input_qty = l_ing_qty,
217 yield_uom = l_uom
218 WHERE formula_id = p_formula_detail_rec.formula_id;
219
220 /* Check if p_commit is set to TRUE */
221 IF FND_API.To_Boolean(p_commit) THEN
222 Commit;
223 END IF;
224
225 /* Get the message count and information */
226 FND_MSG_PUB.Count_And_Get (
227 p_count => x_msg_count,
228 p_data => x_msg_data );
229 EXCEPTION
230 WHEN FND_API.G_EXC_ERROR THEN
231 ROLLBACK to Insert_FormulaDetail_PVT;
232 x_return_status := FND_API.G_RET_STS_ERROR;
233 FND_MSG_PUB.Count_And_Get (
234 p_count => x_msg_count,
235 p_data => x_msg_data );
236
237 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
238 ROLLBACK to Insert_FormulaDetail_PVT;
239 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
240 FND_MSG_PUB.Count_And_Get (
241 p_count => x_msg_count,
242 p_data => x_msg_data );
243
244 WHEN OTHERS THEN
245 ROLLBACK to Insert_FormulaDetail_PVT;
246 fnd_msg_pub.add_exc_msg (G_pkg_name, l_api_name);
247 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
248 IF (l_debug = 'Y') THEN
249 gmd_debug.put_line(' In Formula Detail Pvt - In OTHERS Exception Section '
250 ||' - '
251 ||x_return_status);
252 END IF;
253
254 END Insert_FormulaDetail;
255
256 /* ======================================================================== */
257 /* Procedure: */
258 /* Update_FormulaDetail */
259 /* */
260 /* DESCRIPTION: */
261 /* This PL/SQL procedure is responsible for updating a formula. */
262 /* details. */
263 /* HISTORY: */
264 /* Kapil ME Bug# 5716318 - Added the new Percentage Fields for Auto -Prod*/
265 /* ME. */
266 /* ======================================================================== */
267 PROCEDURE Update_FormulaDetail
268 ( p_api_version IN NUMBER
269 ,p_init_msg_list IN VARCHAR2
270 ,p_commit IN VARCHAR2
271 ,x_return_status OUT NOCOPY VARCHAR2
272 ,x_msg_count OUT NOCOPY NUMBER
273 ,x_msg_data OUT NOCOPY VARCHAR2
274 ,p_formula_detail_rec IN fm_matl_dtl%ROWTYPE
275 )
276 IS
277
278 /* Local Variables definitions */
279 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_FORMULADETAIL';
280 l_api_version CONSTANT NUMBER := 1.0;
281 l_line_no fm_matl_dtl.line_no%TYPE;
282 l_line_type fm_matl_dtl.line_type%TYPE;
283 l_qty fm_matl_dtl.qty%TYPE;
284 l_item_um fm_matl_dtl.detail_uom%TYPE;
285 l_release_type fm_matl_dtl.release_type%TYPE;
286 l_scrap_factor fm_matl_dtl.scrap_factor%TYPE;
287 l_scale_type fm_matl_dtl.scale_type%TYPE;
288 l_phantom_type fm_matl_dtl.phantom_type%TYPE;
289 X_msg_cnt NUMBER;
290 X_msg_dat VARCHAR2(100);
291 X_status VARCHAR2(1);
292 l_product_qty NUMBER;
293 l_ing_qty NUMBER;
294 l_uom VARCHAR2(3);
295 l_return_val NUMBER := 0;
296
297 CURSOR C_get_orgid (V_formula_id NUMBER) IS
298 SELECT owner_organization_id
299 FROM fm_form_mst_b
300 WHERE formula_id = V_formula_id;
301 l_org_id NUMBER;
302
303 BEGIN
304 /* Define Savepoint */
305 SAVEPOINT Update_FormulaDetail_PVT;
306
307 /* Standard Check for API compatibility */
308 IF NOT FND_API.Compatible_API_Call ( l_api_version
309 ,p_api_version
310 ,l_api_name
311 ,G_PKG_NAME )
312 THEN
313 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
314 END IF;
315
316 /* Initialize message list if p_init_msg_list is set to TRUE */
317 IF FND_API.to_Boolean( p_init_msg_list ) THEN
318 FND_MSG_PUB.initialize;
319 END IF;
320 /* Initialize API return status to success */
321 x_return_status := FND_API.G_RET_STS_SUCCESS;
322
323 IF (p_formula_detail_rec.organization_id IS NULL) THEN
324 OPEN C_get_orgid (p_formula_detail_rec.formula_id);
325 FETCH C_get_orgid INTO l_org_id;
326 CLOSE C_get_orgid;
327 ELSE
328 l_org_id := p_formula_detail_rec.organization_id;
329 END IF;
330
331 /* API body */
332 /* Later on to be changed to update a business view */
333 /* and not a table. */
334 IF (l_debug = 'Y') THEN
335 gmd_debug.put_line(' In Formula Detail PVT - '
336 ||' Before the update of fm_matl_dtl '
337 ||' formulaline id - '
338 ||p_formula_detail_rec.formulaline_id
339 ||' line no '
340 ||p_formula_detail_rec.line_no
341 ||' line_type '
342 ||p_formula_detail_rec.line_type
343 ||' Contrib in d '
344 ||p_formula_detail_rec.contribute_yield_ind
345 ||' - '
346 ||x_return_status);
347 END IF;
348 UPDATE fm_matl_dtl SET
349 line_no = p_formula_detail_rec.line_no,
350 line_type = p_formula_detail_rec.line_type,
351 qty = p_formula_detail_rec.qty,
352 organization_id = l_org_id,
353 revision = p_formula_detail_rec.revision,
354 detail_uom = p_formula_detail_rec.detail_uom,
355 release_type = p_formula_detail_rec.release_type,
356 scale_type = p_formula_detail_rec.scale_type,
357 scrap_factor = p_formula_detail_rec.scrap_factor,
358 cost_alloc = p_formula_detail_rec.cost_alloc,
359 phantom_type = p_formula_detail_rec.phantom_type,
360 buffer_ind = p_formula_detail_rec.buffer_ind,
361 rework_type = p_formula_detail_rec.rework_type,
362 tpformula_id = p_formula_detail_rec.tpformula_id ,
363 iaformula_id = p_formula_detail_rec.iaformula_id ,
364 scale_multiple = p_formula_detail_rec.scale_multiple ,
365 contribute_yield_ind = p_formula_detail_rec.contribute_yield_ind ,
366 scale_uom = p_formula_detail_rec.scale_uom ,
367 contribute_step_qty_ind = p_formula_detail_rec.contribute_step_qty_ind,
368 scale_rounding_variance = p_formula_detail_rec.scale_rounding_variance,
369 rounding_direction = p_formula_detail_rec.rounding_direction,
370 /*Bug 2509076 - Thomas Daniel QM Integration */
371 by_product_type = p_formula_detail_rec.by_product_type,
372 ingredient_end_date = p_formula_detail_rec.ingredient_end_date, --bug 4479101
373 text_code = p_formula_detail_rec.text_code,
374 last_update_date = p_formula_detail_rec.last_update_date,
375 last_updated_by = p_formula_detail_rec.last_updated_by,
376 last_update_login = p_formula_detail_rec.last_update_login,
377 attribute1 = p_formula_detail_rec.attribute1,
378 attribute2 = p_formula_detail_rec.attribute2,
379 attribute3 = p_formula_detail_rec.attribute3,
380 attribute4 = p_formula_detail_rec.attribute4,
381 attribute5 = p_formula_detail_rec.attribute5,
382 attribute6 = p_formula_detail_rec.attribute6,
383 attribute7 = p_formula_detail_rec.attribute7,
384 attribute8 = p_formula_detail_rec.attribute8,
385 attribute9 = p_formula_detail_rec.attribute9,
386 attribute10 = p_formula_detail_rec.attribute10,
387 attribute11 = p_formula_detail_rec.attribute11,
388 attribute12 = p_formula_detail_rec.attribute12,
389 attribute13 = p_formula_detail_rec.attribute13,
390 attribute14 = p_formula_detail_rec.attribute14,
391 attribute15 = p_formula_detail_rec.attribute15,
392 attribute16 = p_formula_detail_rec.attribute16,
393 attribute17 = p_formula_detail_rec.attribute17,
394 attribute18 = p_formula_detail_rec.attribute18,
395 attribute19 = p_formula_detail_rec.attribute19,
396 attribute20 = p_formula_detail_rec.attribute20,
397 attribute21 = p_formula_detail_rec.attribute21,
398 attribute22 = p_formula_detail_rec.attribute22,
399 attribute23 = p_formula_detail_rec.attribute23,
400 attribute24 = p_formula_detail_rec.attribute24,
401 attribute25 = p_formula_detail_rec.attribute25,
402 attribute26 = p_formula_detail_rec.attribute26,
403 attribute27 = p_formula_detail_rec.attribute27,
404 attribute28 = p_formula_detail_rec.attribute28,
405 attribute29 = p_formula_detail_rec.attribute29,
406 attribute30 = p_formula_detail_rec.attribute30,
407 attribute_category = p_formula_detail_rec.attribute_category,
408 prod_percent = p_formula_detail_rec.prod_percent
409 WHERE
410 formulaline_id = p_formula_detail_rec.formulaline_id;
411
412 /* End API body */
413 /* Calculate the total input and output qty and update the formula header table */
414 IF (l_debug = 'Y') THEN
415 gmd_debug.put_line(' In Formula Detail PVT - '
416 ||' Before the TOQ calculation '
417 ||' - '
418 ||x_return_status);
419 END IF;
420 GMD_COMMON_VAL.calculate_total_qty(
421 FORMULA_ID => p_formula_detail_rec.formula_id,
422 X_PRODUCT_QTY => l_product_qty ,
423 X_INGREDIENT_QTY => l_ing_qty ,
424 X_UOM => l_uom ,
425 X_RETURN_STATUS => x_return_status ,
426 X_MSG_COUNT => X_msg_cnt ,
427 X_MSG_DATA => x_msg_dat );
428
429 IF (l_debug = 'Y') THEN
430 gmd_debug.put_line(' In Formula Detail PVT - '
431 ||' Before the update of fm header with toq and tiq = '
432 ||' TOQ = '
433 ||l_product_qty
434 ||' TIQ = '
435 ||l_ing_qty
436 ||' - '
437 ||x_return_status);
438 END IF;
439 UPDATE fm_form_mst_b
440 SET total_output_qty = l_product_qty,
441 total_input_qty = l_ing_qty,
442 yield_uom = l_uom
443 WHERE formula_id = p_formula_detail_rec.formula_id;
444
445
446 /* Check if p_commit is set to TRUE */
447 IF FND_API.To_Boolean( p_commit ) THEN
448 Commit;
449 END IF;
450
451 /* Get the message count and information */
452 FND_MSG_PUB.Count_And_Get (
453 p_count => x_msg_count,
454 p_data => x_msg_data );
455
456
457 EXCEPTION
458 WHEN FND_API.G_EXC_ERROR THEN
459 ROLLBACK to Update_FormulaDetail_PVT;
460 x_return_status := FND_API.G_RET_STS_ERROR;
461 FND_MSG_PUB.Count_And_Get (
462 p_count => x_msg_count,
463 p_data => x_msg_data );
464
465 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
466 ROLLBACK to Update_FormulaDetail_PVT;
467 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
468 FND_MSG_PUB.Count_And_Get (
469 p_count => x_msg_count,
470 p_data => x_msg_data );
471
472 WHEN OTHERS THEN
473 ROLLBACK to Update_FormulaDetail_PVT;
474 fnd_msg_pub.add_exc_msg (G_pkg_name, l_api_name);
475 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
476 IF (l_debug = 'Y') THEN
477 gmd_debug.put_line(' In Formula Detail Pvt - In OTHERS Exception Section '
478 ||' - '
479 ||x_return_status);
480 END IF;
481 END Update_FormulaDetail;
482
483 /* ============================================= */
484 /* Procedure: */
485 /* Delete_FormulaDetail */
486 /* */
487 /* DESCRIPTION: */
488 /* This PL/SQL procedure is responsible for */
489 /* deleting formula detail. */
490 /* HISTORY: */
491 /* ============================================= */
492 PROCEDURE Delete_FormulaDetail
493 ( p_api_version IN NUMBER ,
494 p_init_msg_list IN VARCHAR2 ,
495 p_commit IN VARCHAR2 ,
496 x_return_status OUT NOCOPY VARCHAR2 ,
497 x_msg_count OUT NOCOPY NUMBER ,
498 x_msg_data OUT NOCOPY VARCHAR2 ,
499 p_formula_detail_rec IN fm_matl_dtl%ROWTYPE
500 )
501 IS
502
503 /* Local Variables definitions */
504 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_FORMULADETAIL';
505 l_api_version CONSTANT NUMBER := 1.0;
506
507 X_msg_cnt NUMBER;
508 X_msg_dat VARCHAR2(100);
509 X_status varchar2(1);
510 l_product_qty NUMBER;
511 l_ing_qty NUMBER;
512 l_uom mtl_units_of_measure.unit_of_measure%TYPE;
513
514 BEGIN
515 /* Define Savepoint */
516 SAVEPOINT Delete_FormulaDetail_PVT;
517
518 /* Standard Check for API compatibility */
519 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
520 p_api_version ,
521 l_api_name ,
522 G_PKG_NAME )
523 THEN
524 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
525 END IF;
526
527 /* Initialize message list if p_init_msg_list is set to TRUE */
528 IF FND_API.to_Boolean( p_init_msg_list ) THEN
529 FND_MSG_PUB.initialize;
530 END IF;
531 /* Initialize API return status to success */
532 x_return_status := FND_API.G_RET_STS_SUCCESS;
533
534 /* API body */
535 /* Later on to be changed to update a business view */
536 /* and not a table. */
537
538 DELETE FROM fm_matl_dtl
539 WHERE
540 formulaline_id = p_formula_detail_rec.formulaline_id;
541
542 IF(SQL%ROWCOUNT = 0) THEN
543 RAISE FND_API.G_EXC_ERROR;
544 END IF;
545
546 /* End API body */
547
548 /* Calculate the total input and output qty and update the formula header table */
549 GMD_COMMON_VAL.calculate_total_qty(
550 FORMULA_ID => p_formula_detail_rec.formula_id,
551 X_PRODUCT_QTY => l_product_qty ,
552 X_INGREDIENT_QTY => l_ing_qty ,
553 X_UOM => l_uom ,
554 X_RETURN_STATUS => x_return_status ,
555 X_MSG_COUNT => X_msg_cnt ,
556 X_MSG_DATA => x_msg_dat );
557
558
559 update fm_form_mst_b
560 set total_output_qty = l_product_qty,
561 total_input_qty = l_ing_qty,
562 yield_uom = l_uom
563 where formula_id = p_formula_detail_rec.formula_id;
564
565 /* Check if p_commit is set to TRUE */
566 IF FND_API.To_Boolean( p_commit ) THEN
567 Commit;
568 END IF;
569
570 /* Get the message count and information */
571 FND_MSG_PUB.Count_And_Get (
572 p_count => x_msg_count,
573 p_data => x_msg_data );
574
575
576 EXCEPTION
577 WHEN FND_API.G_EXC_ERROR THEN
578 ROLLBACK to Delete_FormulaDetail_PVT;
579 x_return_status := FND_API.G_RET_STS_ERROR;
580 FND_MSG_PUB.Count_And_Get (
581 p_count => x_msg_count,
582 p_data => x_msg_data );
583
584 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
585 ROLLBACK to Delete_FormulaDetail_PVT;
586 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
587 FND_MSG_PUB.Count_And_Get (
588 p_count => x_msg_count,
589 p_data => x_msg_data );
590
591 WHEN OTHERS THEN
592 ROLLBACK to Delete_FormulaDetail_PVT;
593 fnd_msg_pub.add_exc_msg (G_pkg_name, l_api_name);
594 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
595
596 END Delete_FormulaDetail;
597
598 END GMD_FORMULA_DETAIL_PVT;