373: open_past_period => l_openPastPeriod);
374:
375: if(l_acctPeriodID is null or
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;
1127: and bp.organization_id = msi.organization_id
1128: and msi.inventory_item_id = p_itemID;
1129: exception
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;
1185: if (l_logLevel <= wip_constants.full_logging) then
1186: wip_logger.log(l_errCode,l_returnStatus);
1187: end if;
1188: if(l_errCode <> 0) then
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;
1186: wip_logger.log(l_errCode,l_returnStatus);
1187: end if;
1188: if(l_errCode <> 0) then
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;
1197: select count(1) into l_errCode from bom_explosion_temp
1198: where group_id = l_grpID and loop_flag=1;
1199:
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;
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
1518: wip_logger.exitPoint(p_procName => 'wip_bflProc_priv.explodeRequirements',
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
1518: wip_logger.exitPoint(p_procName => 'wip_bflProc_priv.explodeRequirements',
1519: p_procReturnStatus => x_returnStatus,
1830: x_returnStatus => l_returnStatus);
1831: END IF;
1832:
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
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');
1842: fnd_msg_pub.add;
1843: l_errMsg := 'available qty is not enough to fullfill move txn';
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');
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;
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');
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
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;
1886: END IF;
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;
1886: END IF;
1887:
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;
1961: END IF;
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;
1961: END IF;
1962:
2053: x_returnStatus => l_returnStatus);
2054: END IF;
2055:
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
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');
2065: fnd_msg_pub.add;
2066: l_errMsg := 'available qty is not enough to fullfill move txn';
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');
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;
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');
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
2186: x_returnStatus => l_returnStatus);
2187: END IF;
2188:
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
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');
2198: fnd_msg_pub.add;
2199: l_errMsg := 'available qty is not enough to fullfill move txn';
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');
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;
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');
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
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;
2238: END IF;
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;
2238: END IF;
2239: IF(l_first_bf_op <> -1) THEN
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;
2311: END IF;
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;
2311: END IF;
2312:
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;
2387: END IF;
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;
2387: END IF;
2388: IF(l_first_bf_op <> -1) THEN
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;
2448: END IF;
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;
2448: END IF;
2449: IF(l_first_bf_op <> -1) THEN
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;
2574: END IF;
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;
2574: END IF;
2575: IF(l_first_bf_op <> -1) THEN
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;
2647: END IF;
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;
2647: END IF;
2648: IF(l_first_bf_op <> -1) THEN
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;
3190: END IF;
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;
3190: END IF;
3191: IF(l_first_bf_op <> -1) THEN
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;
3244: END IF;
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;
3244: END IF;
3245: IF(l_first_bf_op <> -1) THEN
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;
3349: END IF;
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;
3349: END IF;
3350: IF(l_first_bf_op <> -1) THEN
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;
3403: END IF;
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;
3403: END IF;
3404: IF(l_first_bf_op <> -1) THEN