288: l_batch_id NUMBER := null; /*Fix bug 9968707 (FP of 9765009)*/
289: l_batch_seq NUMBER := null; /*Fix bug 9968707 (FP of 9765009)*/
290: begin
291: savepoint wipbflpb20;
292: if(fnd_api.to_boolean(p_initMsgList)) then
293: fnd_msg_pub.initialize;
294: end if;
295:
296: if (l_logLevel <= wip_constants.trace_logging) then
340: l_params(22).paramValue := p_mtlTxnMode;
341: wip_logger.entryPoint(p_procName => 'wip_bflProc_priv.processRequirements',
342: p_params => l_params,
343: x_returnStatus => x_returnStatus);
344: if(x_returnStatus <> fnd_api.g_ret_sts_success) then
345: raise fnd_api.g_exc_unexpected_error;
346: end if;
347: end if;
348:
341: wip_logger.entryPoint(p_procName => 'wip_bflProc_priv.processRequirements',
342: p_params => l_params,
343: x_returnStatus => x_returnStatus);
344: if(x_returnStatus <> fnd_api.g_ret_sts_success) then
345: raise fnd_api.g_exc_unexpected_error;
346: end if;
347: end if;
348:
349: /* Fix for bug # 5160604/5004291:
376: l_acctPeriodID <= 0) then
377: fnd_message.set_name('INV', 'INV_NO_OPEN_PERIOD');
378: fnd_msg_pub.add;
379: l_errMsg := 'acct period id could not be derived.';
380: x_returnStatus := fnd_api.g_ret_sts_unexp_error;
381: raise fnd_api.g_exc_unexpected_error;
382: end if;
383:
384: if(x_compTbl is not null) then
377: fnd_message.set_name('INV', 'INV_NO_OPEN_PERIOD');
378: fnd_msg_pub.add;
379: l_errMsg := 'acct period id could not be derived.';
380: x_returnStatus := fnd_api.g_ret_sts_unexp_error;
381: raise fnd_api.g_exc_unexpected_error;
382: end if;
383:
384: if(x_compTbl is not null) then
385: l_index := nvl(x_compTbl.last, 0) + 1;
549: if(l_popRec.itemID = l_reqRec.itemID) then
550: if (l_logLevel <= wip_constants.full_logging) then
551: wip_logger.log('found existing requirement',l_returnStatus);
552: end if;
553: if(fnd_api.to_boolean(p_mergeMode)) then
554: --user wants to merge requirements. Update the txn qty
555: update mtl_transactions_interface
556: set last_update_date = sysdate,
557: last_updated_by = fnd_global.user_id,
813: if(c_repReqs%ISOPEN) then
814: close c_repReqs;
815: end if;
816:
817: x_returnStatus := fnd_api.g_ret_sts_success;
818: if (l_logLevel <= wip_constants.trace_logging) then
819: wip_logger.exitPoint(p_procName => 'wip_bflProc_priv.processRequirements',
820: p_procReturnStatus => x_returnStatus,
821: p_msg => 'procedure succeeded',
821: p_msg => 'procedure succeeded',
822: x_returnStatus => l_returnStatus); --discard logging return status
823: end if;
824:
825: if(fnd_api.to_boolean(p_endDebug)) then
826: wip_logger.cleanUp(x_returnStatus => l_returnStatus); --discard logging return status
827: end if;
828: exception
829: when fnd_api.g_exc_unexpected_error then
825: if(fnd_api.to_boolean(p_endDebug)) then
826: wip_logger.cleanUp(x_returnStatus => l_returnStatus); --discard logging return status
827: end if;
828: exception
829: when fnd_api.g_exc_unexpected_error then
830: rollback to wipbflpb20;
831: if (l_logLevel <= wip_constants.trace_logging) then
832: wip_logger.exitPoint(p_procName => 'wip_bflProc_priv.processRequirements',
833: p_procReturnStatus => x_returnStatus,
834: p_msg => l_errMsg,
835: x_returnStatus => l_returnStatus); --discard logging return status
836: end if;
837:
838: if(fnd_api.to_boolean(p_endDebug)) then
839: wip_logger.cleanUp(x_returnStatus => l_returnStatus); --discard logging return status
840: end if;
841: when others then
842: rollback to wipbflpb20;
839: wip_logger.cleanUp(x_returnStatus => l_returnStatus); --discard logging return status
840: end if;
841: when others then
842: rollback to wipbflpb20;
843: x_returnStatus := fnd_api.g_ret_sts_unexp_error;--unexpec error if exception occurs
844: fnd_msg_pub.add_exc_msg(p_pkg_name => 'wip_bflProc_priv',
845: p_procedure_name => 'processRequirements',
846: p_error_text => SQLERRM);
847: if (l_logLevel <= wip_constants.trace_logging) then
850: p_msg => 'unexpected error: ' || SQLERRM,
851: x_returnStatus => l_returnStatus); --discard logging return status
852: end if;
853:
854: if(fnd_api.to_boolean(p_endDebug)) then
855: wip_logger.cleanUp(x_returnStatus => l_returnStatus); --discard logging return status
856: end if;
857: end processRequirements;
858:
1013:
1014: begin
1015: savepoint wipbflpb30;
1016:
1017: if(fnd_api.to_boolean(p_initMsgList)) then
1018: fnd_msg_pub.initialize;
1019: end if;
1020:
1021: if (l_logLevel <= wip_constants.trace_logging) then
1039:
1040: wip_logger.entryPoint(p_procName => 'wip_bflProc_priv.explodeRequirements',
1041: p_params => l_params,
1042: x_returnStatus => x_returnStatus);
1043: if(x_returnStatus <> fnd_api.g_ret_sts_success) then
1044: raise fnd_api.g_exc_unexpected_error;
1045: end if;
1046: end if;
1047:
1040: wip_logger.entryPoint(p_procName => 'wip_bflProc_priv.explodeRequirements',
1041: p_params => l_params,
1042: x_returnStatus => x_returnStatus);
1043: if(x_returnStatus <> fnd_api.g_ret_sts_success) then
1044: raise fnd_api.g_exc_unexpected_error;
1045: end if;
1046: end if;
1047:
1048: begin
1091: );
1092: end if;
1093: exception
1094: when no_data_found then
1095: x_returnStatus := fnd_api.g_ret_sts_success;
1096: x_compTbl := system.wip_component_tbl_t();
1097:
1098: if (l_logLevel <= wip_constants.trace_logging) then
1099: wip_logger.exitPoint(p_procName => 'wip_bflProc_priv.explodeRequirements',
1101: p_msg => 'no bom for this item!',
1102: x_returnStatus => l_returnStatus); --discard logging return status
1103: end if;
1104:
1105: if(fnd_api.to_boolean(p_endDebug)) then
1106: wip_logger.cleanUp(x_returnStatus => l_returnStatus); --discard logging return status
1107: end if;
1108: return;
1109: end;
1130: when no_data_found then --assume bom parameters not defined. the item_id should be valid.
1131: fnd_message.set_name('BOM', 'BOM_PARAMETER_SETUP');
1132: fnd_msg_pub.add;
1133: l_errMsg := 'no bom parameters';
1134: raise fnd_api.g_exc_unexpected_error;
1135: end;
1136:
1137: /* Fix for bug 5383135. To honour the profile 'WIP:Exclude ECOs',
1138: pass its value to bom exploder */
1189: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
1190: fnd_message.set_token('MESSAGE', l_msgData);
1191: fnd_msg_pub.add;
1192: l_errMsg := 'BOM exploder failed';
1193: raise fnd_api.g_exc_unexpected_error;
1194: end if;
1195:
1196: /* Fix for Bug 5646262. Added code to check if there are any LOOP in BOM */
1197: select count(1) into l_errCode from bom_explosion_temp
1200: if(l_errCode <> 0) then
1201: fnd_message.set_name('WIP', 'WIP_BOM_LOOP');
1202: fnd_msg_pub.add;
1203: l_errMsg := 'Loop In BOM Encountered';
1204: raise fnd_api.g_exc_unexpected_error;
1205: end if;
1206:
1207: --don't explode, just delete all exploded components
1208: if(l_bomItemType in (wip_constants.option_class_type, wip_constants.model_type)) then
1382: p_item_id => l_compRec.itemID,
1383: p_org_loc_control => null); --unused
1384: if(not l_success) then
1385: l_errMsg := 'PJM locator logic failed';
1386: raise fnd_api.g_exc_unexpected_error;
1387: end if;
1388:
1389: --if we are using a project/task locator, then set the project/task IDs
1390: if(p_projectID is not null and
1402: l_returnStatus,
1403: l_msgCount,
1404: l_msgData,
1405: l_locatorControl);
1406: if ( l_returnStatus <> fnd_api.g_ret_sts_success ) then
1407: l_errMsg := substr(l_msgData, 1, 240);
1408: raise fnd_api.g_exc_unexpected_error;
1409: end if;
1410:
1404: l_msgData,
1405: l_locatorControl);
1406: if ( l_returnStatus <> fnd_api.g_ret_sts_success ) then
1407: l_errMsg := substr(l_msgData, 1, 240);
1408: raise fnd_api.g_exc_unexpected_error;
1409: end if;
1410:
1411: if ( l_locatorControl = 1 ) then
1412: l_locID := null;
1480:
1481: delete bom_explosion_temp
1482: where group_id = l_grpID;
1483:
1484: x_returnStatus := fnd_api.g_ret_sts_success;
1485: if (l_logLevel <= wip_constants.trace_logging) then
1486: wip_logger.exitPoint(p_procName => 'wip_bflProc_priv.explodeRequirements',
1487: p_procReturnStatus => x_returnStatus,
1488: p_msg => 'procedure success',
1488: p_msg => 'procedure success',
1489: x_returnStatus => l_returnStatus); --discard logging return status
1490: end if;
1491:
1492: if(fnd_api.to_boolean(p_endDebug)) then
1493: wip_logger.cleanUp(x_returnStatus => l_returnStatus); --discard logging return status
1494: end if;
1495:
1496: exception
1493: wip_logger.cleanUp(x_returnStatus => l_returnStatus); --discard logging return status
1494: end if;
1495:
1496: exception
1497: when fnd_api.g_exc_unexpected_error then
1498: rollback to wipbflpb30;
1499: x_returnStatus := fnd_api.g_ret_sts_unexp_error;
1500: if (l_logLevel <= wip_constants.trace_logging) then
1501: wip_logger.exitPoint(p_procName => 'wip_bflProc_priv.explodeRequirements',
1495:
1496: exception
1497: when fnd_api.g_exc_unexpected_error then
1498: rollback to wipbflpb30;
1499: x_returnStatus := fnd_api.g_ret_sts_unexp_error;
1500: if (l_logLevel <= wip_constants.trace_logging) then
1501: wip_logger.exitPoint(p_procName => 'wip_bflProc_priv.explodeRequirements',
1502: p_procReturnStatus => x_returnStatus,
1503: p_msg => l_errMsg,
1503: p_msg => l_errMsg,
1504: x_returnStatus => l_returnStatus); --discard logging return status
1505: end if;
1506:
1507: if(fnd_api.to_boolean(p_endDebug)) then
1508: wip_logger.cleanUp(x_returnStatus => l_returnStatus); --discard logging return status
1509: end if;
1510:
1511: when others then
1509: end if;
1510:
1511: when others then
1512: rollback to wipbflpb30;
1513: x_returnStatus := fnd_api.g_ret_sts_unexp_error;
1514: fnd_message.set_name('WIP', 'WIP_UNEXPECTED_ERROR');
1515: fnd_message.set_token('ERROR_TEXT', SQLERRM);
1516: fnd_msg_pub.add;
1517: if (l_logLevel <= wip_constants.trace_logging) then
1520: p_msg => 'unexpected error: ' || SQLERRM,
1521: x_returnStatus => l_returnStatus); --discard logging return status
1522: end if;
1523:
1524: if(fnd_api.to_boolean(p_endDebug)) then
1525: wip_logger.cleanUp(x_returnStatus => l_returnStatus); --discard logging return status
1526: end if;
1527: end explodeRequirements;
1528:
1771: p_firstMoveOp => null,
1772: p_lastMoveOp => null,
1773: p_lockFlag => p_lockFlag,
1774: p_batchSeq => l_batch_seq,
1775: p_mergeMode => fnd_api.g_true,
1776: p_reasonID => p_reasonID,
1777: p_reference => p_reference,
1778: p_initMsgList => fnd_api.g_false,
1779: p_endDebug => fnd_api.g_false,
1774: p_batchSeq => l_batch_seq,
1775: p_mergeMode => fnd_api.g_true,
1776: p_reasonID => p_reasonID,
1777: p_reference => p_reference,
1778: p_initMsgList => fnd_api.g_false,
1779: p_endDebug => fnd_api.g_false,
1780: p_mtlTxnMode => p_mtlTxnMode,
1781: x_compTbl => l_compTbl,
1782: x_returnStatus => l_returnStatus);
1775: p_mergeMode => fnd_api.g_true,
1776: p_reasonID => p_reasonID,
1777: p_reference => p_reference,
1778: p_initMsgList => fnd_api.g_false,
1779: p_endDebug => fnd_api.g_false,
1780: p_mtlTxnMode => p_mtlTxnMode,
1781: x_compTbl => l_compTbl,
1782: x_returnStatus => l_returnStatus);
1783:
1780: p_mtlTxnMode => p_mtlTxnMode,
1781: x_compTbl => l_compTbl,
1782: x_returnStatus => l_returnStatus);
1783:
1784: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
1785: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
1786: raise fnd_api.g_exc_unexpected_error;
1787: END IF;
1788: END LOOP;
1782: x_returnStatus => l_returnStatus);
1783:
1784: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
1785: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
1786: raise fnd_api.g_exc_unexpected_error;
1787: END IF;
1788: END LOOP;
1789:
1790: ELSE
1833: IF(l_proc_status = TVE_OVERCOMPLETION_MISMATCH) THEN
1834: fnd_message.set_name('WIP', 'WIP_OVERCOMPLETION_MISMATCH');
1835: fnd_msg_pub.add;
1836: l_errMsg := 'parent txn is not really overcompletion txn';
1837: raise fnd_api.g_exc_unexpected_error;
1838: ELSIF(l_proc_status = TVE_NO_MOVE_ALLOC) THEN
1839: fnd_message.set_name('WIP', 'WIP_LESS_OR_EQUAL');
1840: fnd_message.set_token('ENTITY1', 'transaction quantity');
1841: fnd_message.set_token('ENTITY2', 'quantity available to move');
1840: fnd_message.set_token('ENTITY1', 'transaction quantity');
1841: fnd_message.set_token('ENTITY2', 'quantity available to move');
1842: fnd_msg_pub.add;
1843: l_errMsg := 'available qty is not enough to fullfill move txn';
1844: raise fnd_api.g_exc_unexpected_error;
1845: ELSIF(l_proc_status = WIP_CONSTANTS.ERROR) THEN
1846: l_errMsg := 'wip_movProc_priv.schedule_alloc failed';
1847: raise fnd_api.g_exc_unexpected_error;
1848: END IF; -- check l_proc_status
1843: l_errMsg := 'available qty is not enough to fullfill move txn';
1844: raise fnd_api.g_exc_unexpected_error;
1845: ELSIF(l_proc_status = WIP_CONSTANTS.ERROR) THEN
1846: l_errMsg := 'wip_movProc_priv.schedule_alloc failed';
1847: raise fnd_api.g_exc_unexpected_error;
1848: END IF; -- check l_proc_status
1849: END IF; -- check p_fmMoveProcessor
1850:
1851: IF (l_logLevel <= wip_constants.full_logging) THEN
1877: x_last_bf_op => l_last_bf_op,
1878: x_bf_qty => l_bf_qty,
1879: x_returnStatus => l_returnStatus,
1880: x_errMessage => l_errMsg);
1881: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
1882: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
1883: fnd_message.set_token('MESSAGE', l_errMsg);
1884: fnd_msg_pub.add;
1885: raise fnd_api.g_exc_unexpected_error;
1881: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
1882: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
1883: fnd_message.set_token('MESSAGE', l_errMsg);
1884: fnd_msg_pub.add;
1885: raise fnd_api.g_exc_unexpected_error;
1886: END IF;
1887:
1888: IF(l_first_bf_op <> -1) THEN
1889: -- check forward transactions
1916: p_firstMoveOp => l_fm_op,
1917: p_lastMoveOp => l_to_op,
1918: p_lockFlag => p_lockFlag,
1919: p_batchSeq => l_batch_seq,
1920: p_mergeMode => fnd_api.g_true,
1921: p_reasonID => p_reasonID,
1922: p_reference => p_reference,
1923: p_initMsgList => fnd_api.g_false,
1924: p_endDebug => fnd_api.g_false,
1919: p_batchSeq => l_batch_seq,
1920: p_mergeMode => fnd_api.g_true,
1921: p_reasonID => p_reasonID,
1922: p_reference => p_reference,
1923: p_initMsgList => fnd_api.g_false,
1924: p_endDebug => fnd_api.g_false,
1925: p_mtlTxnMode => p_mtlTxnMode,
1926: x_compTbl => l_compTbl,
1927: x_returnStatus => l_returnStatus);
1920: p_mergeMode => fnd_api.g_true,
1921: p_reasonID => p_reasonID,
1922: p_reference => p_reference,
1923: p_initMsgList => fnd_api.g_false,
1924: p_endDebug => fnd_api.g_false,
1925: p_mtlTxnMode => p_mtlTxnMode,
1926: x_compTbl => l_compTbl,
1927: x_returnStatus => l_returnStatus);
1928:
1925: p_mtlTxnMode => p_mtlTxnMode,
1926: x_compTbl => l_compTbl,
1927: x_returnStatus => l_returnStatus);
1928:
1929: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
1930: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
1931: raise fnd_api.g_exc_unexpected_error;
1932: END IF;
1933: END LOOP;
1927: x_returnStatus => l_returnStatus);
1928:
1929: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
1930: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
1931: raise fnd_api.g_exc_unexpected_error;
1932: END IF;
1933: END LOOP;
1934: END IF; -- l_first_bf_op <> -1
1935:
1952: x_bf_qty => l_bf_qty,
1953: x_returnStatus => l_returnStatus,
1954: x_errMessage => l_errMsg);
1955:
1956: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
1957: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
1958: fnd_message.set_token('MESSAGE', l_errMsg);
1959: fnd_msg_pub.add;
1960: raise fnd_api.g_exc_unexpected_error;
1956: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
1957: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
1958: fnd_message.set_token('MESSAGE', l_errMsg);
1959: fnd_msg_pub.add;
1960: raise fnd_api.g_exc_unexpected_error;
1961: END IF;
1962:
1963: IF(l_first_bf_op <> -1) THEN
1964: -- check forward transactions
1991: p_firstMoveOp => l_fm_op,
1992: p_lastMoveOp => l_to_op,
1993: p_lockFlag => p_lockFlag,
1994: p_batchSeq => l_batch_seq,
1995: p_mergeMode => fnd_api.g_true,
1996: p_reasonID => p_reasonID,
1997: p_reference => p_reference,
1998: p_initMsgList => fnd_api.g_false,
1999: p_endDebug => fnd_api.g_false,
1994: p_batchSeq => l_batch_seq,
1995: p_mergeMode => fnd_api.g_true,
1996: p_reasonID => p_reasonID,
1997: p_reference => p_reference,
1998: p_initMsgList => fnd_api.g_false,
1999: p_endDebug => fnd_api.g_false,
2000: p_mtlTxnMode => p_mtlTxnMode,
2001: x_compTbl => l_compTbl,
2002: x_returnStatus => l_returnStatus);
1995: p_mergeMode => fnd_api.g_true,
1996: p_reasonID => p_reasonID,
1997: p_reference => p_reference,
1998: p_initMsgList => fnd_api.g_false,
1999: p_endDebug => fnd_api.g_false,
2000: p_mtlTxnMode => p_mtlTxnMode,
2001: x_compTbl => l_compTbl,
2002: x_returnStatus => l_returnStatus);
2003:
2000: p_mtlTxnMode => p_mtlTxnMode,
2001: x_compTbl => l_compTbl,
2002: x_returnStatus => l_returnStatus);
2003:
2004: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2005: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2006: raise fnd_api.g_exc_unexpected_error;
2007: END IF;
2008: END LOOP;
2002: x_returnStatus => l_returnStatus);
2003:
2004: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2005: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2006: raise fnd_api.g_exc_unexpected_error;
2007: END IF;
2008: END LOOP;
2009: END IF; -- l_first_bf_op <> -1
2010: END IF; -- call from Move form
2056: IF(l_proc_status = TVE_OVERCOMPLETION_MISMATCH) THEN
2057: fnd_message.set_name('WIP', 'WIP_OVERCOMPLETION_MISMATCH');
2058: fnd_msg_pub.add;
2059: l_errMsg := 'parent txn is not really overcompletion txn';
2060: raise fnd_api.g_exc_unexpected_error;
2061: ELSIF(l_proc_status = TVE_NO_MOVE_ALLOC) THEN
2062: fnd_message.set_name('WIP', 'WIP_LESS_OR_EQUAL');
2063: fnd_message.set_token('ENTITY1', 'transaction quantity');
2064: fnd_message.set_token('ENTITY2', 'quantity available to move');
2063: fnd_message.set_token('ENTITY1', 'transaction quantity');
2064: fnd_message.set_token('ENTITY2', 'quantity available to move');
2065: fnd_msg_pub.add;
2066: l_errMsg := 'available qty is not enough to fullfill move txn';
2067: raise fnd_api.g_exc_unexpected_error;
2068: ELSIF(l_proc_status = WIP_CONSTANTS.ERROR) THEN
2069: l_errMsg := 'wip_movProc_priv.schedule_alloc failed';
2070: raise fnd_api.g_exc_unexpected_error;
2071: END IF; -- check l_proc_status
2066: l_errMsg := 'available qty is not enough to fullfill move txn';
2067: raise fnd_api.g_exc_unexpected_error;
2068: ELSIF(l_proc_status = WIP_CONSTANTS.ERROR) THEN
2069: l_errMsg := 'wip_movProc_priv.schedule_alloc failed';
2070: raise fnd_api.g_exc_unexpected_error;
2071: END IF; -- check l_proc_status
2072: END IF; -- check p_fmMoveProcessor
2073:
2074: IF (l_logLevel <= wip_constants.full_logging) THEN
2115: p_firstMoveOp => null,
2116: p_lastMoveOp => null,
2117: p_lockFlag => p_lockFlag,
2118: p_batchSeq => l_batch_seq,
2119: p_mergeMode => fnd_api.g_true,
2120: p_reasonID => p_reasonID,
2121: p_reference => p_reference,
2122: p_initMsgList => fnd_api.g_false,
2123: p_endDebug => fnd_api.g_false,
2118: p_batchSeq => l_batch_seq,
2119: p_mergeMode => fnd_api.g_true,
2120: p_reasonID => p_reasonID,
2121: p_reference => p_reference,
2122: p_initMsgList => fnd_api.g_false,
2123: p_endDebug => fnd_api.g_false,
2124: p_mtlTxnMode => p_mtlTxnMode,
2125: x_compTbl => l_compTbl,
2126: x_returnStatus => l_returnStatus);
2119: p_mergeMode => fnd_api.g_true,
2120: p_reasonID => p_reasonID,
2121: p_reference => p_reference,
2122: p_initMsgList => fnd_api.g_false,
2123: p_endDebug => fnd_api.g_false,
2124: p_mtlTxnMode => p_mtlTxnMode,
2125: x_compTbl => l_compTbl,
2126: x_returnStatus => l_returnStatus);
2127:
2124: p_mtlTxnMode => p_mtlTxnMode,
2125: x_compTbl => l_compTbl,
2126: x_returnStatus => l_returnStatus);
2127:
2128: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2129: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2130: raise fnd_api.g_exc_unexpected_error;
2131: END IF;
2132: END LOOP;
2126: x_returnStatus => l_returnStatus);
2127:
2128: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2129: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2130: raise fnd_api.g_exc_unexpected_error;
2131: END IF;
2132: END LOOP;
2133: END IF; -- Completion/return txns
2134: END IF; -- call from completion form
2189: IF(l_proc_status = TVE_OVERCOMPLETION_MISMATCH) THEN
2190: fnd_message.set_name('WIP', 'WIP_OVERCOMPLETION_MISMATCH');
2191: fnd_msg_pub.add;
2192: l_errMsg := 'parent txn is not really overcompletion txn';
2193: raise fnd_api.g_exc_unexpected_error;
2194: ELSIF(l_proc_status = TVE_NO_MOVE_ALLOC) THEN
2195: fnd_message.set_name('WIP', 'WIP_LESS_OR_EQUAL');
2196: fnd_message.set_token('ENTITY1', 'transaction quantity');
2197: fnd_message.set_token('ENTITY2', 'quantity available to move');
2196: fnd_message.set_token('ENTITY1', 'transaction quantity');
2197: fnd_message.set_token('ENTITY2', 'quantity available to move');
2198: fnd_msg_pub.add;
2199: l_errMsg := 'available qty is not enough to fullfill move txn';
2200: raise fnd_api.g_exc_unexpected_error;
2201: ELSIF(l_proc_status = WIP_CONSTANTS.ERROR) THEN
2202: l_errMsg := 'wip_movProc_priv.schedule_alloc failed';
2203: raise fnd_api.g_exc_unexpected_error;
2204: END IF; -- check l_proc_status
2199: l_errMsg := 'available qty is not enough to fullfill move txn';
2200: raise fnd_api.g_exc_unexpected_error;
2201: ELSIF(l_proc_status = WIP_CONSTANTS.ERROR) THEN
2202: l_errMsg := 'wip_movProc_priv.schedule_alloc failed';
2203: raise fnd_api.g_exc_unexpected_error;
2204: END IF; -- check l_proc_status
2205: END IF; -- check p_fmMoveProcessor
2206:
2207: IF (l_logLevel <= wip_constants.full_logging) THEN
2229: x_last_bf_op => l_last_bf_op,
2230: x_bf_qty => l_bf_qty,
2231: x_returnStatus => l_returnStatus,
2232: x_errMessage => l_errMsg);
2233: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2234: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
2235: fnd_message.set_token('MESSAGE', l_errMsg);
2236: fnd_msg_pub.add;
2237: raise fnd_api.g_exc_unexpected_error;
2233: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2234: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
2235: fnd_message.set_token('MESSAGE', l_errMsg);
2236: fnd_msg_pub.add;
2237: raise fnd_api.g_exc_unexpected_error;
2238: END IF;
2239: IF(l_first_bf_op <> -1) THEN
2240: -- check forward transactions
2241: IF(l_bf_qty > 0) THEN
2267: p_firstMoveOp => l_fm_op,
2268: p_lastMoveOp => l_to_op,
2269: p_batchSeq => l_batch_seq,
2270: p_lockFlag => p_lockFlag,
2271: p_mergeMode => fnd_api.g_true,
2272: p_reasonID => p_reasonID,
2273: p_reference => p_reference,
2274: p_initMsgList => fnd_api.g_false,
2275: p_endDebug => fnd_api.g_false,
2270: p_lockFlag => p_lockFlag,
2271: p_mergeMode => fnd_api.g_true,
2272: p_reasonID => p_reasonID,
2273: p_reference => p_reference,
2274: p_initMsgList => fnd_api.g_false,
2275: p_endDebug => fnd_api.g_false,
2276: p_mtlTxnMode => p_mtlTxnMode,
2277: x_compTbl => l_compTbl,
2278: x_returnStatus => l_returnStatus);
2271: p_mergeMode => fnd_api.g_true,
2272: p_reasonID => p_reasonID,
2273: p_reference => p_reference,
2274: p_initMsgList => fnd_api.g_false,
2275: p_endDebug => fnd_api.g_false,
2276: p_mtlTxnMode => p_mtlTxnMode,
2277: x_compTbl => l_compTbl,
2278: x_returnStatus => l_returnStatus);
2279:
2276: p_mtlTxnMode => p_mtlTxnMode,
2277: x_compTbl => l_compTbl,
2278: x_returnStatus => l_returnStatus);
2279:
2280: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2281: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2282: raise fnd_api.g_exc_unexpected_error;
2283: END IF;
2284: END LOOP;
2278: x_returnStatus => l_returnStatus);
2279:
2280: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2281: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2282: raise fnd_api.g_exc_unexpected_error;
2283: END IF;
2284: END LOOP;
2285: END IF; -- l_first_bf_op <> -1
2286: -- Call assy_pull_bf to derive first_bf_op, last_bf_op,
2302: x_bf_qty => l_bf_qty,
2303: x_returnStatus => l_returnStatus,
2304: x_errMessage => l_errMsg);
2305:
2306: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2307: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
2308: fnd_message.set_token('MESSAGE', l_errMsg);
2309: fnd_msg_pub.add;
2310: raise fnd_api.g_exc_unexpected_error;
2306: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2307: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
2308: fnd_message.set_token('MESSAGE', l_errMsg);
2309: fnd_msg_pub.add;
2310: raise fnd_api.g_exc_unexpected_error;
2311: END IF;
2312:
2313: IF(l_first_bf_op <> -1) THEN
2314: -- check forward transactions
2341: p_firstMoveOp => l_fm_op,
2342: p_lastMoveOp => l_to_op,
2343: p_lockFlag => p_lockFlag,
2344: p_batchSeq => l_batch_seq,
2345: p_mergeMode => fnd_api.g_true,
2346: p_reasonID => p_reasonID,
2347: p_reference => p_reference,
2348: p_initMsgList => fnd_api.g_false,
2349: p_endDebug => fnd_api.g_false,
2344: p_batchSeq => l_batch_seq,
2345: p_mergeMode => fnd_api.g_true,
2346: p_reasonID => p_reasonID,
2347: p_reference => p_reference,
2348: p_initMsgList => fnd_api.g_false,
2349: p_endDebug => fnd_api.g_false,
2350: p_mtlTxnMode => p_mtlTxnMode,
2351: x_compTbl => l_compTbl,
2352: x_returnStatus => l_returnStatus);
2345: p_mergeMode => fnd_api.g_true,
2346: p_reasonID => p_reasonID,
2347: p_reference => p_reference,
2348: p_initMsgList => fnd_api.g_false,
2349: p_endDebug => fnd_api.g_false,
2350: p_mtlTxnMode => p_mtlTxnMode,
2351: x_compTbl => l_compTbl,
2352: x_returnStatus => l_returnStatus);
2353:
2350: p_mtlTxnMode => p_mtlTxnMode,
2351: x_compTbl => l_compTbl,
2352: x_returnStatus => l_returnStatus);
2353:
2354: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2355: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2356: raise fnd_api.g_exc_unexpected_error;
2357: END IF;
2358: END LOOP;
2352: x_returnStatus => l_returnStatus);
2353:
2354: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2355: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2356: raise fnd_api.g_exc_unexpected_error;
2357: END IF;
2358: END LOOP;
2359: END IF; -- l_first_bf_op <> -1
2360: END IF;-- -- overmove/overcomplete
2378: x_last_bf_op => l_last_bf_op,
2379: x_bf_qty => l_bf_qty,
2380: x_returnStatus => l_returnStatus,
2381: x_errMessage => l_errMsg);
2382: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2383: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
2384: fnd_message.set_token('MESSAGE', l_errMsg);
2385: fnd_msg_pub.add;
2386: raise fnd_api.g_exc_unexpected_error;
2382: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2383: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
2384: fnd_message.set_token('MESSAGE', l_errMsg);
2385: fnd_msg_pub.add;
2386: raise fnd_api.g_exc_unexpected_error;
2387: END IF;
2388: IF(l_first_bf_op <> -1) THEN
2389: wip_bflProc_priv.processRequirements
2390: (p_wipEntityID => p_wipEntityID,
2404: p_firstMoveOp => l_fm_op,
2405: p_lastMoveOp => l_to_op,
2406: p_batchSeq => l_batch_seq,
2407: p_lockFlag => p_lockFlag,
2408: p_mergeMode => fnd_api.g_false,
2409: p_reasonID => p_reasonID,
2410: p_reference => p_reference,
2411: p_initMsgList => fnd_api.g_false,
2412: p_endDebug => fnd_api.g_false,
2407: p_lockFlag => p_lockFlag,
2408: p_mergeMode => fnd_api.g_false,
2409: p_reasonID => p_reasonID,
2410: p_reference => p_reference,
2411: p_initMsgList => fnd_api.g_false,
2412: p_endDebug => fnd_api.g_false,
2413: p_mtlTxnMode => p_mtlTxnMode,
2414: x_compTbl => l_compTbl,
2415: x_returnStatus => l_returnStatus);
2408: p_mergeMode => fnd_api.g_false,
2409: p_reasonID => p_reasonID,
2410: p_reference => p_reference,
2411: p_initMsgList => fnd_api.g_false,
2412: p_endDebug => fnd_api.g_false,
2413: p_mtlTxnMode => p_mtlTxnMode,
2414: x_compTbl => l_compTbl,
2415: x_returnStatus => l_returnStatus);
2416:
2413: p_mtlTxnMode => p_mtlTxnMode,
2414: x_compTbl => l_compTbl,
2415: x_returnStatus => l_returnStatus);
2416:
2417: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2418: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2419: raise fnd_api.g_exc_unexpected_error;
2420: END IF;
2421: END IF; -- l_first_bf_op <> -1
2415: x_returnStatus => l_returnStatus);
2416:
2417: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2418: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2419: raise fnd_api.g_exc_unexpected_error;
2420: END IF;
2421: END IF; -- l_first_bf_op <> -1
2422:
2423: -- Call assy_pull_bf to derive first_bf_op, last_bf_op,
2439: x_bf_qty => l_bf_qty,
2440: x_returnStatus => l_returnStatus,
2441: x_errMessage => l_errMsg);
2442:
2443: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2444: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
2445: fnd_message.set_token('MESSAGE', l_errMsg);
2446: fnd_msg_pub.add;
2447: raise fnd_api.g_exc_unexpected_error;
2443: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2444: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
2445: fnd_message.set_token('MESSAGE', l_errMsg);
2446: fnd_msg_pub.add;
2447: raise fnd_api.g_exc_unexpected_error;
2448: END IF;
2449: IF(l_first_bf_op <> -1) THEN
2450:
2451: /**
2471: p_firstMoveOp => l_fm_op,
2472: p_lastMoveOp => l_to_op,
2473: p_batchSeq => l_batch_seq,
2474: p_lockFlag => p_lockFlag,
2475: p_mergeMode => fnd_api.g_false,
2476: p_reasonID => p_reasonID,
2477: p_reference => p_reference,
2478: p_initMsgList => fnd_api.g_false,
2479: p_endDebug => fnd_api.g_false,
2474: p_lockFlag => p_lockFlag,
2475: p_mergeMode => fnd_api.g_false,
2476: p_reasonID => p_reasonID,
2477: p_reference => p_reference,
2478: p_initMsgList => fnd_api.g_false,
2479: p_endDebug => fnd_api.g_false,
2480: p_mtlTxnMode => p_mtlTxnMode,
2481: x_compTbl => l_compTbl,
2482: x_returnStatus => l_returnStatus);
2475: p_mergeMode => fnd_api.g_false,
2476: p_reasonID => p_reasonID,
2477: p_reference => p_reference,
2478: p_initMsgList => fnd_api.g_false,
2479: p_endDebug => fnd_api.g_false,
2480: p_mtlTxnMode => p_mtlTxnMode,
2481: x_compTbl => l_compTbl,
2482: x_returnStatus => l_returnStatus);
2483:
2480: p_mtlTxnMode => p_mtlTxnMode,
2481: x_compTbl => l_compTbl,
2482: x_returnStatus => l_returnStatus);
2483:
2484: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2485: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2486: raise fnd_api.g_exc_unexpected_error;
2487: END IF;
2488: END IF; -- l_first_bf_op <> -1
2482: x_returnStatus => l_returnStatus);
2483:
2484: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2485: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2486: raise fnd_api.g_exc_unexpected_error;
2487: END IF;
2488: END IF; -- l_first_bf_op <> -1
2489: END IF; -- call from Move form
2490:
2518: p_firstMoveOp => null,
2519: p_lastMoveOp => null,
2520: p_lockFlag => p_lockFlag,
2521: p_batchSeq => l_batch_seq,
2522: p_mergeMode => fnd_api.g_false,
2523: p_reasonID => p_reasonID,
2524: p_reference => p_reference,
2525: p_initMsgList => fnd_api.g_false,
2526: p_endDebug => fnd_api.g_false,
2521: p_batchSeq => l_batch_seq,
2522: p_mergeMode => fnd_api.g_false,
2523: p_reasonID => p_reasonID,
2524: p_reference => p_reference,
2525: p_initMsgList => fnd_api.g_false,
2526: p_endDebug => fnd_api.g_false,
2527: p_mtlTxnMode => p_mtlTxnMode,
2528: x_compTbl => l_compTbl,
2529: x_returnStatus => l_returnStatus);
2522: p_mergeMode => fnd_api.g_false,
2523: p_reasonID => p_reasonID,
2524: p_reference => p_reference,
2525: p_initMsgList => fnd_api.g_false,
2526: p_endDebug => fnd_api.g_false,
2527: p_mtlTxnMode => p_mtlTxnMode,
2528: x_compTbl => l_compTbl,
2529: x_returnStatus => l_returnStatus);
2530:
2527: p_mtlTxnMode => p_mtlTxnMode,
2528: x_compTbl => l_compTbl,
2529: x_returnStatus => l_returnStatus);
2530:
2531: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2532: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2533: raise fnd_api.g_exc_unexpected_error;
2534: END IF;
2535: END IF; -- Completion/Return/EZ Completion/EZ Return
2529: x_returnStatus => l_returnStatus);
2530:
2531: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2532: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2533: raise fnd_api.g_exc_unexpected_error;
2534: END IF;
2535: END IF; -- Completion/Return/EZ Completion/EZ Return
2536:
2537: -- Check whether overcompletion
2565: x_last_bf_op => l_last_bf_op,
2566: x_bf_qty => l_bf_qty,
2567: x_returnStatus => l_returnStatus,
2568: x_errMessage => l_errMsg);
2569: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2570: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
2571: fnd_message.set_token('MESSAGE', l_errMsg);
2572: fnd_msg_pub.add;
2573: raise fnd_api.g_exc_unexpected_error;
2569: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2570: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
2571: fnd_message.set_token('MESSAGE', l_errMsg);
2572: fnd_msg_pub.add;
2573: raise fnd_api.g_exc_unexpected_error;
2574: END IF;
2575: IF(l_first_bf_op <> -1) THEN
2576: /**
2577: * Call backflush processor to insert record into MMTT
2596: p_firstMoveOp => l_fm_op,
2597: p_lastMoveOp => l_to_op,
2598: p_batchSeq => l_batch_seq,
2599: p_lockFlag => p_lockFlag,
2600: p_mergeMode => fnd_api.g_false,
2601: p_reasonID => p_reasonID,
2602: p_reference => p_reference,
2603: p_initMsgList => fnd_api.g_false,
2604: p_endDebug => fnd_api.g_false,
2599: p_lockFlag => p_lockFlag,
2600: p_mergeMode => fnd_api.g_false,
2601: p_reasonID => p_reasonID,
2602: p_reference => p_reference,
2603: p_initMsgList => fnd_api.g_false,
2604: p_endDebug => fnd_api.g_false,
2605: p_mtlTxnMode => p_mtlTxnMode,
2606: x_compTbl => l_compTbl,
2607: x_returnStatus => l_returnStatus);
2600: p_mergeMode => fnd_api.g_false,
2601: p_reasonID => p_reasonID,
2602: p_reference => p_reference,
2603: p_initMsgList => fnd_api.g_false,
2604: p_endDebug => fnd_api.g_false,
2605: p_mtlTxnMode => p_mtlTxnMode,
2606: x_compTbl => l_compTbl,
2607: x_returnStatus => l_returnStatus);
2608: --Bug#16315556(FP of bug#16343002): Transaction_Batch_id is set for overcompletion as it is set to null in processRequirements
2612: WHERE TRANSACTION_HEADER_ID=p_txnHdrID and transaction_source_type_id=5 and transaction_source_id=p_wipEntityID
2613: AND transaction_action_id in (wip_constants.isscomp_action, wip_constants.retcomp_action,
2614: wip_constants.issnegc_action, wip_constants.retnegc_action);
2615:
2616: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2617: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2618: raise fnd_api.g_exc_unexpected_error;
2619: END IF;
2620: END IF; -- l_first_bf_op <> -1
2614: wip_constants.issnegc_action, wip_constants.retnegc_action);
2615:
2616: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2617: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2618: raise fnd_api.g_exc_unexpected_error;
2619: END IF;
2620: END IF; -- l_first_bf_op <> -1
2621:
2622: -- Call assy_pull_bf to derive first_bf_op, last_bf_op,
2638: x_bf_qty => l_bf_qty,
2639: x_returnStatus => l_returnStatus,
2640: x_errMessage => l_errMsg);
2641:
2642: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2643: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
2644: fnd_message.set_token('MESSAGE', l_errMsg);
2645: fnd_msg_pub.add;
2646: raise fnd_api.g_exc_unexpected_error;
2642: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2643: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
2644: fnd_message.set_token('MESSAGE', l_errMsg);
2645: fnd_msg_pub.add;
2646: raise fnd_api.g_exc_unexpected_error;
2647: END IF;
2648: IF(l_first_bf_op <> -1) THEN
2649: /**
2650: * Call backflush processor to insert record into MMTT
2669: p_firstMoveOp => l_fm_op,
2670: p_lastMoveOp => l_to_op,
2671: p_lockFlag => p_lockFlag,
2672: p_batchSeq => l_batch_seq,
2673: p_mergeMode => fnd_api.g_false,
2674: p_reasonID => p_reasonID,
2675: p_reference => p_reference,
2676: p_initMsgList => fnd_api.g_false,
2677: p_endDebug => fnd_api.g_false,
2672: p_batchSeq => l_batch_seq,
2673: p_mergeMode => fnd_api.g_false,
2674: p_reasonID => p_reasonID,
2675: p_reference => p_reference,
2676: p_initMsgList => fnd_api.g_false,
2677: p_endDebug => fnd_api.g_false,
2678: p_mtlTxnMode => p_mtlTxnMode,
2679: x_compTbl => l_compTbl,
2680: x_returnStatus => l_returnStatus);
2673: p_mergeMode => fnd_api.g_false,
2674: p_reasonID => p_reasonID,
2675: p_reference => p_reference,
2676: p_initMsgList => fnd_api.g_false,
2677: p_endDebug => fnd_api.g_false,
2678: p_mtlTxnMode => p_mtlTxnMode,
2679: x_compTbl => l_compTbl,
2680: x_returnStatus => l_returnStatus);
2681:
2678: p_mtlTxnMode => p_mtlTxnMode,
2679: x_compTbl => l_compTbl,
2680: x_returnStatus => l_returnStatus);
2681:
2682: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2683: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2684: raise fnd_api.g_exc_unexpected_error;
2685: END IF;
2686: END IF; -- l_first_bf_op <> -1
2680: x_returnStatus => l_returnStatus);
2681:
2682: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
2683: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
2684: raise fnd_api.g_exc_unexpected_error;
2685: END IF;
2686: END IF; -- l_first_bf_op <> -1
2687: END IF; -- Overmove/ Overcompletion
2688: END IF; -- Repetive schedule
2790: p_txnHdrID => p_txnHdrID,
2791: p_cplTxnID => p_cplTxnID,
2792: p_movTxnID => p_movTxnID,
2793: p_childMovTxnID => p_childMovTxnID,
2794: p_initMsgList => fnd_api.g_false,
2795: p_endDebug => fnd_api.g_false,
2796: x_returnStatus => l_returnStatus);
2797: IF(l_returnStatus = fnd_api.g_ret_sts_unexp_error) THEN
2798: l_errMsg := 'wip_autoLotProc_priv.deriveLotsFromMTI failed';
2791: p_cplTxnID => p_cplTxnID,
2792: p_movTxnID => p_movTxnID,
2793: p_childMovTxnID => p_childMovTxnID,
2794: p_initMsgList => fnd_api.g_false,
2795: p_endDebug => fnd_api.g_false,
2796: x_returnStatus => l_returnStatus);
2797: IF(l_returnStatus = fnd_api.g_ret_sts_unexp_error) THEN
2798: l_errMsg := 'wip_autoLotProc_priv.deriveLotsFromMTI failed';
2799: raise fnd_api.g_exc_unexpected_error;
2793: p_childMovTxnID => p_childMovTxnID,
2794: p_initMsgList => fnd_api.g_false,
2795: p_endDebug => fnd_api.g_false,
2796: x_returnStatus => l_returnStatus);
2797: IF(l_returnStatus = fnd_api.g_ret_sts_unexp_error) THEN
2798: l_errMsg := 'wip_autoLotProc_priv.deriveLotsFromMTI failed';
2799: raise fnd_api.g_exc_unexpected_error;
2800: ELSIF(l_returnStatus = fnd_api.g_ret_sts_error) THEN
2801: x_bfRequired := WIP_CONSTANTS.WBF_BF_PAGE;
2795: p_endDebug => fnd_api.g_false,
2796: x_returnStatus => l_returnStatus);
2797: IF(l_returnStatus = fnd_api.g_ret_sts_unexp_error) THEN
2798: l_errMsg := 'wip_autoLotProc_priv.deriveLotsFromMTI failed';
2799: raise fnd_api.g_exc_unexpected_error;
2800: ELSIF(l_returnStatus = fnd_api.g_ret_sts_error) THEN
2801: x_bfRequired := WIP_CONSTANTS.WBF_BF_PAGE;
2802: x_lotSerRequired := WIP_CONSTANTS.YES;
2803: ELSE -- succesfully derived lot
2796: x_returnStatus => l_returnStatus);
2797: IF(l_returnStatus = fnd_api.g_ret_sts_unexp_error) THEN
2798: l_errMsg := 'wip_autoLotProc_priv.deriveLotsFromMTI failed';
2799: raise fnd_api.g_exc_unexpected_error;
2800: ELSIF(l_returnStatus = fnd_api.g_ret_sts_error) THEN
2801: x_bfRequired := WIP_CONSTANTS.WBF_BF_PAGE;
2802: x_lotSerRequired := WIP_CONSTANTS.YES;
2803: ELSE -- succesfully derived lot
2804: IF(l_lot_entry_type IN (WIP_CONSTANTS.RECDATE_FULL,
2819: IF(p_tblName = WIP_CONSTANTS.MMTT_TBL) THEN
2820: -- Move record from mti to mmtt
2821: wip_mtlTempProc_priv.validateInterfaceTxns(
2822: p_txnHdrID => p_txnHdrID,
2823: p_addMsgToStack => fnd_api.g_true,
2824: p_initMsgList => fnd_api.g_true, /* Bug 5017345/5079379 - to initialize the message stack. */
2825: p_rollbackOnErr => fnd_api.g_false,
2826: x_returnStatus => x_returnStatus);
2827:
2820: -- Move record from mti to mmtt
2821: wip_mtlTempProc_priv.validateInterfaceTxns(
2822: p_txnHdrID => p_txnHdrID,
2823: p_addMsgToStack => fnd_api.g_true,
2824: p_initMsgList => fnd_api.g_true, /* Bug 5017345/5079379 - to initialize the message stack. */
2825: p_rollbackOnErr => fnd_api.g_false,
2826: x_returnStatus => x_returnStatus);
2827:
2828: IF(x_returnStatus <> fnd_api.g_ret_sts_success) THEN
2821: wip_mtlTempProc_priv.validateInterfaceTxns(
2822: p_txnHdrID => p_txnHdrID,
2823: p_addMsgToStack => fnd_api.g_true,
2824: p_initMsgList => fnd_api.g_true, /* Bug 5017345/5079379 - to initialize the message stack. */
2825: p_rollbackOnErr => fnd_api.g_false,
2826: x_returnStatus => x_returnStatus);
2827:
2828: IF(x_returnStatus <> fnd_api.g_ret_sts_success) THEN
2829: l_errMsg := 'wip_mtlTempProc_priv.validateInterfaceTxns failed' ;
2824: p_initMsgList => fnd_api.g_true, /* Bug 5017345/5079379 - to initialize the message stack. */
2825: p_rollbackOnErr => fnd_api.g_false,
2826: x_returnStatus => x_returnStatus);
2827:
2828: IF(x_returnStatus <> fnd_api.g_ret_sts_success) THEN
2829: l_errMsg := 'wip_mtlTempProc_priv.validateInterfaceTxns failed' ;
2830: raise fnd_api.g_exc_unexpected_error;
2831: END IF;
2832:
2826: x_returnStatus => x_returnStatus);
2827:
2828: IF(x_returnStatus <> fnd_api.g_ret_sts_success) THEN
2829: l_errMsg := 'wip_mtlTempProc_priv.validateInterfaceTxns failed' ;
2830: raise fnd_api.g_exc_unexpected_error;
2831: END IF;
2832:
2833: -- Insert all necessary info that need to be used by inventory form to
2834: -- gather lot/serial from the user
2983: */
2984: END IF; -- x_bfRequired = WIP_CONSTANTS.WBF_BF_PAGE
2985: END IF; -- WIP_CONSTANTS.MMTT_TBL
2986:
2987: x_returnStatus := fnd_api.g_ret_sts_success;
2988: IF (l_logLevel <= wip_constants.trace_logging) THEN
2989: wip_logger.exitPoint(p_procName => 'wip_bflProc_priv.backflush',
2990: p_procReturnStatus => x_returnStatus,
2991: p_msg => 'Succesfully inserted components into MMTT',
2991: p_msg => 'Succesfully inserted components into MMTT',
2992: x_returnStatus => l_returnStatus);
2993: END IF;
2994: EXCEPTION
2995: WHEN fnd_api.g_exc_unexpected_error THEN
2996: ROLLBACK TO SAVEPOINT s_backflush;
2997: x_returnStatus := fnd_api.g_ret_sts_error;
2998: IF (l_logLevel <= wip_constants.trace_logging) THEN
2999: wip_logger.exitPoint(p_procName => 'wip_bflProc_priv.backflush',
2993: END IF;
2994: EXCEPTION
2995: WHEN fnd_api.g_exc_unexpected_error THEN
2996: ROLLBACK TO SAVEPOINT s_backflush;
2997: x_returnStatus := fnd_api.g_ret_sts_error;
2998: IF (l_logLevel <= wip_constants.trace_logging) THEN
2999: wip_logger.exitPoint(p_procName => 'wip_bflProc_priv.backflush',
3000: p_procReturnStatus => x_returnStatus,
3001: p_msg => l_errMsg,
3002: x_returnStatus => l_returnStatus);
3003: END IF;
3004: WHEN others THEN
3005: ROLLBACK TO SAVEPOINT s_backflush;
3006: x_returnStatus := fnd_api.g_ret_sts_error;
3007: IF (l_logLevel <= wip_constants.trace_logging) THEN
3008: wip_logger.exitPoint(p_procName => 'wip_bflProc_priv.backflush',
3009: p_procReturnStatus => x_returnStatus,
3010: p_msg => 'Unexpected error : ' || SQLERRM,
3181: x_last_bf_op => l_last_bf_op,
3182: x_bf_qty => l_bf_qty,
3183: x_returnStatus => l_returnStatus,
3184: x_errMessage => l_errMsg);
3185: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3186: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
3187: fnd_message.set_token('MESSAGE', l_errMsg);
3188: fnd_msg_pub.add;
3189: raise fnd_api.g_exc_unexpected_error;
3185: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3186: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
3187: fnd_message.set_token('MESSAGE', l_errMsg);
3188: fnd_msg_pub.add;
3189: raise fnd_api.g_exc_unexpected_error;
3190: END IF;
3191: IF(l_first_bf_op <> -1) THEN
3192: wip_bflProc_priv.processRequirements
3193: (p_wipEntityID => p_wipEntityID,
3202: p_firstOp => l_first_bf_op,
3203: p_lastOP => l_last_bf_op,
3204: p_firstMoveOp => l_fm_op,
3205: p_lastMoveOp => l_to_op,
3206: p_mergeMode => fnd_api.g_false,
3207: p_initMsgList => fnd_api.g_false,
3208: p_endDebug => fnd_api.g_false,
3209: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3210: x_compTbl => l_compTbl,
3203: p_lastOP => l_last_bf_op,
3204: p_firstMoveOp => l_fm_op,
3205: p_lastMoveOp => l_to_op,
3206: p_mergeMode => fnd_api.g_false,
3207: p_initMsgList => fnd_api.g_false,
3208: p_endDebug => fnd_api.g_false,
3209: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3210: x_compTbl => l_compTbl,
3211: x_returnStatus => l_returnStatus);
3204: p_firstMoveOp => l_fm_op,
3205: p_lastMoveOp => l_to_op,
3206: p_mergeMode => fnd_api.g_false,
3207: p_initMsgList => fnd_api.g_false,
3208: p_endDebug => fnd_api.g_false,
3209: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3210: x_compTbl => l_compTbl,
3211: x_returnStatus => l_returnStatus);
3212:
3209: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3210: x_compTbl => l_compTbl,
3211: x_returnStatus => l_returnStatus);
3212:
3213: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3214: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
3215: raise fnd_api.g_exc_unexpected_error;
3216: END IF;
3217: END IF; -- l_first_bf_op <> -1
3211: x_returnStatus => l_returnStatus);
3212:
3213: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3214: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
3215: raise fnd_api.g_exc_unexpected_error;
3216: END IF;
3217: END IF; -- l_first_bf_op <> -1
3218:
3219: -- Call assy_pull_bf to derive first_bf_op, last_bf_op,
3235: x_bf_qty => l_bf_qty,
3236: x_returnStatus => l_returnStatus,
3237: x_errMessage => l_errMsg);
3238:
3239: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3240: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
3241: fnd_message.set_token('MESSAGE', l_errMsg);
3242: fnd_msg_pub.add;
3243: raise fnd_api.g_exc_unexpected_error;
3239: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3240: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
3241: fnd_message.set_token('MESSAGE', l_errMsg);
3242: fnd_msg_pub.add;
3243: raise fnd_api.g_exc_unexpected_error;
3244: END IF;
3245: IF(l_first_bf_op <> -1) THEN
3246: wip_bflProc_priv.processRequirements
3247: (p_wipEntityID => p_wipEntityID,
3256: p_firstOp => l_first_bf_op,
3257: p_lastOP => l_last_bf_op,
3258: p_firstMoveOp => l_fm_op,
3259: p_lastMoveOp => l_to_op,
3260: p_mergeMode => fnd_api.g_false,
3261: p_initMsgList => fnd_api.g_false,
3262: p_endDebug => fnd_api.g_false,
3263: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3264: x_compTbl => l_compTbl,
3257: p_lastOP => l_last_bf_op,
3258: p_firstMoveOp => l_fm_op,
3259: p_lastMoveOp => l_to_op,
3260: p_mergeMode => fnd_api.g_false,
3261: p_initMsgList => fnd_api.g_false,
3262: p_endDebug => fnd_api.g_false,
3263: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3264: x_compTbl => l_compTbl,
3265: x_returnStatus => l_returnStatus);
3258: p_firstMoveOp => l_fm_op,
3259: p_lastMoveOp => l_to_op,
3260: p_mergeMode => fnd_api.g_false,
3261: p_initMsgList => fnd_api.g_false,
3262: p_endDebug => fnd_api.g_false,
3263: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3264: x_compTbl => l_compTbl,
3265: x_returnStatus => l_returnStatus);
3266:
3263: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3264: x_compTbl => l_compTbl,
3265: x_returnStatus => l_returnStatus);
3266:
3267: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3268: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
3269: raise fnd_api.g_exc_unexpected_error;
3270: END IF;
3271: END IF; -- l_first_bf_op <> -1
3265: x_returnStatus => l_returnStatus);
3266:
3267: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3268: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
3269: raise fnd_api.g_exc_unexpected_error;
3270: END IF;
3271: END IF; -- l_first_bf_op <> -1
3272: END IF; -- Move related transactions
3273:
3295: p_firstOp => -1,
3296: p_lastOP => l_last_op,
3297: p_firstMoveOp => null,
3298: p_lastMoveOp => null,
3299: p_mergeMode => fnd_api.g_false,
3300: p_initMsgList => fnd_api.g_false,
3301: p_endDebug => fnd_api.g_false,
3302: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3303: x_compTbl => l_compTbl,
3296: p_lastOP => l_last_op,
3297: p_firstMoveOp => null,
3298: p_lastMoveOp => null,
3299: p_mergeMode => fnd_api.g_false,
3300: p_initMsgList => fnd_api.g_false,
3301: p_endDebug => fnd_api.g_false,
3302: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3303: x_compTbl => l_compTbl,
3304: x_returnStatus => l_returnStatus);
3297: p_firstMoveOp => null,
3298: p_lastMoveOp => null,
3299: p_mergeMode => fnd_api.g_false,
3300: p_initMsgList => fnd_api.g_false,
3301: p_endDebug => fnd_api.g_false,
3302: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3303: x_compTbl => l_compTbl,
3304: x_returnStatus => l_returnStatus);
3305:
3302: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3303: x_compTbl => l_compTbl,
3304: x_returnStatus => l_returnStatus);
3305:
3306: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3307: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
3308: raise fnd_api.g_exc_unexpected_error;
3309: END IF;
3310: END IF; -- Completion/Return/EZ Completion/EZ Return
3304: x_returnStatus => l_returnStatus);
3305:
3306: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3307: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
3308: raise fnd_api.g_exc_unexpected_error;
3309: END IF;
3310: END IF; -- Completion/Return/EZ Completion/EZ Return
3311:
3312: -- Check whether overcompletion
3340: x_last_bf_op => l_last_bf_op,
3341: x_bf_qty => l_bf_qty,
3342: x_returnStatus => l_returnStatus,
3343: x_errMessage => l_errMsg);
3344: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3345: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
3346: fnd_message.set_token('MESSAGE', l_errMsg);
3347: fnd_msg_pub.add;
3348: raise fnd_api.g_exc_unexpected_error;
3344: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3345: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
3346: fnd_message.set_token('MESSAGE', l_errMsg);
3347: fnd_msg_pub.add;
3348: raise fnd_api.g_exc_unexpected_error;
3349: END IF;
3350: IF(l_first_bf_op <> -1) THEN
3351: wip_bflProc_priv.processRequirements
3352: (p_wipEntityID => p_wipEntityID,
3361: p_firstOp => l_first_bf_op,
3362: p_lastOP => l_last_bf_op,
3363: p_firstMoveOp => l_fm_op,
3364: p_lastMoveOp => l_to_op,
3365: p_mergeMode => fnd_api.g_false,
3366: p_initMsgList => fnd_api.g_false,
3367: p_endDebug => fnd_api.g_false,
3368: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3369: x_compTbl => l_compTbl,
3362: p_lastOP => l_last_bf_op,
3363: p_firstMoveOp => l_fm_op,
3364: p_lastMoveOp => l_to_op,
3365: p_mergeMode => fnd_api.g_false,
3366: p_initMsgList => fnd_api.g_false,
3367: p_endDebug => fnd_api.g_false,
3368: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3369: x_compTbl => l_compTbl,
3370: x_returnStatus => l_returnStatus);
3363: p_firstMoveOp => l_fm_op,
3364: p_lastMoveOp => l_to_op,
3365: p_mergeMode => fnd_api.g_false,
3366: p_initMsgList => fnd_api.g_false,
3367: p_endDebug => fnd_api.g_false,
3368: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3369: x_compTbl => l_compTbl,
3370: x_returnStatus => l_returnStatus);
3371:
3368: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3369: x_compTbl => l_compTbl,
3370: x_returnStatus => l_returnStatus);
3371:
3372: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3373: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
3374: raise fnd_api.g_exc_unexpected_error;
3375: END IF;
3376: END IF; -- l_first_bf_op <> -1
3370: x_returnStatus => l_returnStatus);
3371:
3372: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3373: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
3374: raise fnd_api.g_exc_unexpected_error;
3375: END IF;
3376: END IF; -- l_first_bf_op <> -1
3377:
3378: -- Call assy_pull_bf to derive first_bf_op, last_bf_op,
3394: x_bf_qty => l_bf_qty,
3395: x_returnStatus => l_returnStatus,
3396: x_errMessage => l_errMsg);
3397:
3398: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3399: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
3400: fnd_message.set_token('MESSAGE', l_errMsg);
3401: fnd_msg_pub.add;
3402: raise fnd_api.g_exc_unexpected_error;
3398: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3399: fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
3400: fnd_message.set_token('MESSAGE', l_errMsg);
3401: fnd_msg_pub.add;
3402: raise fnd_api.g_exc_unexpected_error;
3403: END IF;
3404: IF(l_first_bf_op <> -1) THEN
3405: wip_bflProc_priv.processRequirements
3406: (p_wipEntityID => p_wipEntityID,
3415: p_firstOp => l_first_bf_op,
3416: p_lastOP => l_last_bf_op,
3417: p_firstMoveOp => l_fm_op,
3418: p_lastMoveOp => l_to_op,
3419: p_mergeMode => fnd_api.g_false,
3420: p_initMsgList => fnd_api.g_false,
3421: p_endDebug => fnd_api.g_false,
3422: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3423: x_compTbl => l_compTbl,
3416: p_lastOP => l_last_bf_op,
3417: p_firstMoveOp => l_fm_op,
3418: p_lastMoveOp => l_to_op,
3419: p_mergeMode => fnd_api.g_false,
3420: p_initMsgList => fnd_api.g_false,
3421: p_endDebug => fnd_api.g_false,
3422: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3423: x_compTbl => l_compTbl,
3424: x_returnStatus => l_returnStatus);
3417: p_firstMoveOp => l_fm_op,
3418: p_lastMoveOp => l_to_op,
3419: p_mergeMode => fnd_api.g_false,
3420: p_initMsgList => fnd_api.g_false,
3421: p_endDebug => fnd_api.g_false,
3422: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3423: x_compTbl => l_compTbl,
3424: x_returnStatus => l_returnStatus);
3425:
3422: p_mtlTxnMode => WIP_CONSTANTS.ONLINE,
3423: x_compTbl => l_compTbl,
3424: x_returnStatus => l_returnStatus);
3425:
3426: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3427: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
3428: raise fnd_api.g_exc_unexpected_error;
3429: END IF;
3430: END IF; -- l_first_bf_op <> -1
3424: x_returnStatus => l_returnStatus);
3425:
3426: IF(l_returnStatus <> fnd_api.g_ret_sts_success) THEN
3427: l_errMsg := 'wip_bflProc_priv.procesRequirements failed' ;
3428: raise fnd_api.g_exc_unexpected_error;
3429: END IF;
3430: END IF; -- l_first_bf_op <> -1
3431: END IF; -- Overmove/ Overcompletion
3432:
3454: -- Derive lot control only from genealogy
3455: wip_autoLotProc_priv.deriveLotsFromMOG(x_compLots => x_compInfo,
3456: p_orgID => p_orgID,
3457: p_objectID => p_objectID,
3458: p_initMsgList => fnd_api.g_true,
3459: x_returnStatus => x_returnStatus);
3460:
3461: IF(x_returnStatus = fnd_api.g_ret_sts_unexp_error) THEN
3462: raise fnd_api.g_exc_unexpected_error;
3457: p_objectID => p_objectID,
3458: p_initMsgList => fnd_api.g_true,
3459: x_returnStatus => x_returnStatus);
3460:
3461: IF(x_returnStatus = fnd_api.g_ret_sts_unexp_error) THEN
3462: raise fnd_api.g_exc_unexpected_error;
3463: END IF;
3464: -- Derive serial, and lot and serial from genealogy
3465: wip_autoSerialProc_priv.deriveSerial(x_compLots => x_compInfo,
3458: p_initMsgList => fnd_api.g_true,
3459: x_returnStatus => x_returnStatus);
3460:
3461: IF(x_returnStatus = fnd_api.g_ret_sts_unexp_error) THEN
3462: raise fnd_api.g_exc_unexpected_error;
3463: END IF;
3464: -- Derive serial, and lot and serial from genealogy
3465: wip_autoSerialProc_priv.deriveSerial(x_compLots => x_compInfo,
3466: p_orgID => p_orgID,
3464: -- Derive serial, and lot and serial from genealogy
3465: wip_autoSerialProc_priv.deriveSerial(x_compLots => x_compInfo,
3466: p_orgID => p_orgID,
3467: p_objectID => p_objectID,
3468: p_initMsgList => fnd_api.g_true,
3469: x_returnStatus => x_returnStatus);
3470:
3471: IF(x_returnStatus = fnd_api.g_ret_sts_unexp_error) THEN
3472: raise fnd_api.g_exc_unexpected_error;
3467: p_objectID => p_objectID,
3468: p_initMsgList => fnd_api.g_true,
3469: x_returnStatus => x_returnStatus);
3470:
3471: IF(x_returnStatus = fnd_api.g_ret_sts_unexp_error) THEN
3472: raise fnd_api.g_exc_unexpected_error;
3473: END IF;
3474:
3475: IF(NegLSCompExist(p_compInfo => x_compInfo) = WIP_CONSTANTS.YES) THEN
3468: p_initMsgList => fnd_api.g_true,
3469: x_returnStatus => x_returnStatus);
3470:
3471: IF(x_returnStatus = fnd_api.g_ret_sts_unexp_error) THEN
3472: raise fnd_api.g_exc_unexpected_error;
3473: END IF;
3474:
3475: IF(NegLSCompExist(p_compInfo => x_compInfo) = WIP_CONSTANTS.YES) THEN
3476: x_lotSerRequired := WIP_CONSTANTS.YES;
3484: wip_autoLotProc_priv.deriveLots(
3485: x_compLots => x_compInfo,
3486: p_orgID => p_orgID,
3487: p_wipEntityID => p_wipEntityID,
3488: p_initMsgList => fnd_api.g_true,
3489: p_endDebug => fnd_api.g_false,
3490: p_destroyTrees => fnd_api.g_true,
3491: p_treeMode => inv_quantity_tree_pvt.g_reservation_mode,
3492: p_treeSrcName => null,
3485: x_compLots => x_compInfo,
3486: p_orgID => p_orgID,
3487: p_wipEntityID => p_wipEntityID,
3488: p_initMsgList => fnd_api.g_true,
3489: p_endDebug => fnd_api.g_false,
3490: p_destroyTrees => fnd_api.g_true,
3491: p_treeMode => inv_quantity_tree_pvt.g_reservation_mode,
3492: p_treeSrcName => null,
3493: x_returnStatus => x_returnStatus);
3486: p_orgID => p_orgID,
3487: p_wipEntityID => p_wipEntityID,
3488: p_initMsgList => fnd_api.g_true,
3489: p_endDebug => fnd_api.g_false,
3490: p_destroyTrees => fnd_api.g_true,
3491: p_treeMode => inv_quantity_tree_pvt.g_reservation_mode,
3492: p_treeSrcName => null,
3493: x_returnStatus => x_returnStatus);
3494:
3491: p_treeMode => inv_quantity_tree_pvt.g_reservation_mode,
3492: p_treeSrcName => null,
3493: x_returnStatus => x_returnStatus);
3494:
3495: IF(x_returnStatus = fnd_api.g_ret_sts_unexp_error) THEN
3496: l_errMsg := 'wip_autoLotProc_priv.deriveLots failed';
3497: raise fnd_api.g_exc_unexpected_error;
3498: ELSIF(x_returnStatus = fnd_api.g_ret_sts_error) THEN
3499: x_lotSerRequired := WIP_CONSTANTS.YES;
3493: x_returnStatus => x_returnStatus);
3494:
3495: IF(x_returnStatus = fnd_api.g_ret_sts_unexp_error) THEN
3496: l_errMsg := 'wip_autoLotProc_priv.deriveLots failed';
3497: raise fnd_api.g_exc_unexpected_error;
3498: ELSIF(x_returnStatus = fnd_api.g_ret_sts_error) THEN
3499: x_lotSerRequired := WIP_CONSTANTS.YES;
3500: ELSE -- succesfully derived lot
3501: x_lotSerRequired := WIP_CONSTANTS.NO;
3494:
3495: IF(x_returnStatus = fnd_api.g_ret_sts_unexp_error) THEN
3496: l_errMsg := 'wip_autoLotProc_priv.deriveLots failed';
3497: raise fnd_api.g_exc_unexpected_error;
3498: ELSIF(x_returnStatus = fnd_api.g_ret_sts_error) THEN
3499: x_lotSerRequired := WIP_CONSTANTS.YES;
3500: ELSE -- succesfully derived lot
3501: x_lotSerRequired := WIP_CONSTANTS.NO;
3502: END IF;-- check return status
3501: x_lotSerRequired := WIP_CONSTANTS.NO;
3502: END IF;-- check return status
3503: END IF; -- check serialized return or serialized backward move
3504:
3505: x_returnStatus := fnd_api.g_ret_sts_success;
3506: IF (l_logLevel <= wip_constants.trace_logging) THEN
3507: wip_logger.exitPoint(
3508: p_procName => 'wip_bflProc_priv.backflush',
3509: p_procReturnStatus => x_returnStatus,
3510: p_msg => 'Succesfully inserted components into PL/SQL object',
3511: x_returnStatus => l_returnStatus);
3512: END IF;
3513: EXCEPTION
3514: WHEN fnd_api.g_exc_unexpected_error THEN
3515: ROLLBACK TO SAVEPOINT s_backflush2;
3516: x_returnStatus := fnd_api.g_ret_sts_error;
3517: IF (l_logLevel <= wip_constants.trace_logging) THEN
3518: wip_logger.exitPoint(p_procName => 'wip_bflProc_priv.backflush',
3512: END IF;
3513: EXCEPTION
3514: WHEN fnd_api.g_exc_unexpected_error THEN
3515: ROLLBACK TO SAVEPOINT s_backflush2;
3516: x_returnStatus := fnd_api.g_ret_sts_error;
3517: IF (l_logLevel <= wip_constants.trace_logging) THEN
3518: wip_logger.exitPoint(p_procName => 'wip_bflProc_priv.backflush',
3519: p_procReturnStatus => x_returnStatus,
3520: p_msg => l_errMsg,
3521: x_returnStatus => l_returnStatus);
3522: END IF;
3523: WHEN others THEN
3524: ROLLBACK TO SAVEPOINT s_backflush2;
3525: x_returnStatus := fnd_api.g_ret_sts_error;
3526: IF (l_logLevel <= wip_constants.trace_logging) THEN
3527: wip_logger.exitPoint(p_procName => 'wip_bflProc_priv.backflush',
3528: p_procReturnStatus => x_returnStatus,
3529: p_msg => 'Unexpected error : ' || SQLERRM,