[Home] [Help]
1: PACKAGE BODY INV_CONSUMPTION_ADVICE_PROC AS
2: -- $Header: INVRCADB.pls 120.29.12020000.5 2013/01/23 06:31:00 ksaripal ship $
3: --+=======================================================================+
4: --| Copyright (c) 2002 Oracle Corporation |
5: --| Redwood Shores, CA, USA |
63: --===================
64: -- GLOBALS
65: --===================
66:
67: G_PKG_NAME CONSTANT VARCHAR2(30) := 'INV_CONSUMPTION_ADVICE_PROC';
68: g_user_id NUMBER := FND_PROFILE.value('USER_ID');
69: g_resp_id NUMBER := FND_PROFILE.value('RESP_ID');
70: g_appl_id NUMBER;
71: -- Bug 5092489, commented becasue not used
130:
131: IF (l_debug = 1)
132: THEN
133: INV_LOG_UTIL.trace
134: ( '>> Update po_distrubution_id','INV_CONSUMPTION_ADVICE_PROC'
135: , 9
136: );
137: END IF;
138: OPEN txn_csr_type;
281: END IF;
282:
283: IF (l_debug = 1) THEN
284: INV_LOG_UTIL.trace
285: ( SQLCODE || ' : ' || SQLERRM ,'INV_CONSUMPTION_ADVICE_PROC'
286: , 9
287: );
288: END IF;
289:
293: END IF;
294:
295: IF (l_debug = 1) THEN
296: INV_LOG_UTIL.trace
297: ( SQLCODE || ' : ' || SQLERRM ,'INV_CONSUMPTION_ADVICE_PROC'
298: , 9
299: );
300: END IF;
301:
309:
310: IF (l_debug = 1)
311: THEN
312: INV_LOG_UTIL.trace
313: ( '<< Update po_distrubution_id','INV_CONSUMPTION_ADVICE_PROC'
314: , 9
315: );
316: END IF;
317:
366:
367: IF (l_debug = 1)
368: THEN
369: INV_LOG_UTIL.trace
370: ( '>> Update Consumption','INV_CONSUMPTION_ADVICE_PROC'
371: , 9
372: );
373: END IF;
374:
401:
402: IF (l_debug = 1)
403: THEN
404: INV_LOG_UTIL.trace
405: ( ' consumption_po_header_id : '||p_consumption_po_header_id,'INV_CONSUMPTION_ADVICE_PROC'
406: , 9
407: );
408: END IF;
409:
409:
410: IF (l_debug = 1)
411: THEN
412: INV_LOG_UTIL.trace
413: ( ' consumption_release_id : '||p_consumption_release_id,'INV_CONSUMPTION_ADVICE_PROC'
414: , 9
415: );
416: END IF;
417:
417:
418: IF (l_debug = 1)
419: THEN
420: INV_LOG_UTIL.trace
421: ( ' consumption_processed_flag : '||p_consumption_processed_flag,'INV_CONSUMPTION_ADVICE_PROC'
422: , 9
423: );
424: END IF;
425:
425:
426: IF (l_debug = 1)
427: THEN
428: INV_LOG_UTIL.trace
429: ( ' error_code : '||p_error_code,'INV_CONSUMPTION_ADVICE_PROC'
430: , 9
431: );
432: END IF;
433:
433:
434: IF (l_debug = 1)
435: THEN
436: INV_LOG_UTIL.trace
437: ( ' charge_account_id : '||p_charge_account_id,'INV_CONSUMPTION_ADVICE_PROC'
438: , 9
439: );
440: END IF;
441:
441:
442: IF (l_debug = 1)
443: THEN
444: INV_LOG_UTIL.trace
445: ( ' variance_account_id : '||p_variance_account_id,'INV_CONSUMPTION_ADVICE_PROC'
446: , 9
447: );
448: END IF;
449:
449:
450: IF (l_debug = 1)
451: THEN
452: INV_LOG_UTIL.trace
453: ( ' transaction_source_id : '||p_transaction_source_id,'INV_CONSUMPTION_ADVICE_PROC'
454: , 9
455: );
456: END IF;
457:
458:
459: IF (l_debug = 1)
460: THEN
461: INV_LOG_UTIL.trace
462: ( ' distribution_account_id : '||p_accrual_account_id,'INV_CONSUMPTION_ADVICE_PROC'
463: , 9
464: );
465: END IF;
466:
466:
467: IF (l_debug = 1)
468: THEN
469: INV_LOG_UTIL.trace
470: ( ' transaction_date : '||p_transaction_date,'INV_CONSUMPTION_ADVICE_PROC'
471: , 9
472: );
473: END IF;
474:
557:
558: IF (l_debug = 1)
559: THEN
560: INV_LOG_UTIL.trace
561: ( '<< Update Consumption','INV_CONSUMPTION_ADVICE_PROC'
562: , 9
563: );
564: END IF;
565:
591:
592: IF (l_debug = 1)
593: THEN
594: INV_LOG_UTIL.trace
595: ( '>> Load Combination(p_batch_id):'||p_batch_id,'INV_CONSUMPTION_ADVICE_PROC'
596: , 9
597: );
598: END IF;
599:
692:
693: IF (l_debug = 1)
694: THEN
695: INV_LOG_UTIL.trace
696: ( 'temp table count: ' || l_count ,'INV_CONSUMPTION_ADVICE_PROC'
697: , 9
698: );
699:
700: INV_LOG_UTIL.trace
697: , 9
698: );
699:
700: INV_LOG_UTIL.trace
701: ( '<< Load Combination','INV_CONSUMPTION_ADVICE_PROC'
702: , 9
703: );
704: END IF;
705: EXCEPTION
706:
707: WHEN OTHERS THEN
708: IF (l_debug = 1) THEN
709: INV_LOG_UTIL.trace
710: ( SQLCODE || ' : ' || SQLERRM ,'INV_CONSUMPTION_ADVICE_PROC'
711: , 9
712: );
713: END IF;
714:
744:
745: IF (l_debug = 1)
746: THEN
747: INV_LOG_UTIL.trace
748: ( '>> Load Combination_prf(p_batch_id)'||p_batch_id,'INV_CONSUMPTION_ADVICE_PROC'
749: , 9
750: );
751: END IF;
752:
955:
956: IF (l_debug = 1)
957: THEN
958: INV_LOG_UTIL.trace
959: ( 'temp table count: ' || l_count ,'INV_CONSUMPTION_ADVICE_PROC'
960: , 9
961: );
962:
963: INV_LOG_UTIL.trace
960: , 9
961: );
962:
963: INV_LOG_UTIL.trace
964: ( '<< Load Combination_prf','INV_CONSUMPTION_ADVICE_PROC'
965: , 9
966: );
967: END IF;
968:
970:
971: WHEN OTHERS THEN
972: IF (l_debug = 1) THEN
973: INV_LOG_UTIL.trace
974: ( SQLCODE || ' : ' || SQLERRM ,'INV_CONSUMPTION_ADVICE_PROC'
975: , 9
976: );
977: END IF;
978:
1028:
1029: IF (l_debug = 1)
1030: THEN
1031: INV_LOG_UTIL.trace
1032: ( '>> Validate Blanket','INV_CONSUMPTION_ADVICE_PROC'
1033: , 9
1034: );
1035: END IF;
1036:
1091: AND valid_flag IS NULL;
1092: INV_LOG_UTIL.trace
1093: ( 'VALID line : item - '
1094: ||l_item_id || ', source - '|| l_header_id || ', org - '|| l_org_id,
1095: 'INV_CONSUMPTION_ADVICE_PROC'
1096: , 9
1097: );
1098:
1099: ELSE
1136: /* bug 5113064 - End */
1137: INV_LOG_UTIL.trace
1138: ( '**** INVALID line : item - '
1139: ||l_item_id || ', source - '|| l_header_id || ', org - '|| l_org_id,
1140: 'INV_CONSUMPTION_ADVICE_PROC'
1141: , 9
1142: );
1143:
1144: END IF;
1149:
1150: IF (l_debug = 1)
1151: THEN
1152: INV_LOG_UTIL.trace
1153: ( '<< Validate Blanket','INV_CONSUMPTION_ADVICE_PROC'
1154: , 9
1155: );
1156: END IF;
1157:
1376:
1377: IF (l_debug = 1)
1378: THEN
1379: INV_LOG_UTIL.trace
1380: ( '>> Load Interface Tables','INV_CONSUMPTION_ADVICE_PROC'
1381: , 9
1382: );
1383: END IF;
1384:
1392: /* bug 5200436 - End */
1393:
1394: l_curr_asl_index := l_asl_cons_tab.COUNT;
1395:
1396: INV_CONSUMPTION_ADVICE_PROC.validate_blanket(p_batch_id);
1397:
1398: l_document_type_code := 'PO';
1399:
1400: -- Get the header info
1423:
1424: IF (l_debug = 1)
1425: THEN
1426: INV_LOG_UTIL.trace
1427: ( '>> No valid BPO:'||l_blanket_id,'INV_CONSUMPTION_ADVICE_PROC'
1428: , 9
1429: );
1430: END IF;
1431:
1428: , 9
1429: );
1430: END IF;
1431:
1432: INV_CONSUMPTION_ADVICE_PROC.update_consumption
1433: (p_consumption_po_header_id => NULL
1434: ,p_consumption_release_id => NULL
1435: ,p_error_code => l_error_msg
1436: ,p_batch_id => p_batch_id
1672:
1673: IF (l_debug = 1)
1674: THEN
1675: INV_LOG_UTIL.trace
1676: ( '>> Load Interface Tables'||l_asl_id,'INV_CONSUMPTION_ADVICE_PROC'
1677: , 9
1678: );
1679: END IF;
1680:
1683:
1684: IF (l_debug = 1)
1685: THEN
1686: INV_LOG_UTIL.trace
1687: ( '>> Load Interface Tables:','INV_CONSUMPTION_ADVICE_PROC'
1688: , 9
1689: );
1690: END IF;
1691:
1709: );
1710: IF (l_debug = 1)
1711: THEN
1712: INV_LOG_UTIL.trace
1713: ( '>> Load Interface Tables_prf(UOM):'||l_primary_uom,'INV_CONSUMPTION_ADVICE_PROC'
1714: , 9
1715: );
1716: END IF;
1717:
1722: THEN
1723: IF (l_debug = 1)
1724: THEN
1725: INV_LOG_UTIL.trace
1726: ( '>> Load Interface Tables_prf:(UOM differ)','INV_CONSUMPTION_ADVICE_PROC'
1727: , 9
1728: );
1729: INV_LOG_UTIL.trace
1730: ( 'Primary,Purchasing UOM is '||l_primary_uom||' '||l_purchasing_uom,'INV_CONSUMPTION_ADVICE_PROC'
1726: ( '>> Load Interface Tables_prf:(UOM differ)','INV_CONSUMPTION_ADVICE_PROC'
1727: , 9
1728: );
1729: INV_LOG_UTIL.trace
1730: ( 'Primary,Purchasing UOM is '||l_primary_uom||' '||l_purchasing_uom,'INV_CONSUMPTION_ADVICE_PROC'
1731: , 9
1732: );
1733: END IF;
1734:
1755: );
1756: IF (l_debug = 1)
1757: THEN
1758: INV_LOG_UTIL.trace
1759: ( '>> UOM conversion '||l_conv_qty,'INV_CONSUMPTION_ADVICE_PROC'
1760: , 9
1761: );
1762: END IF;
1763:
1778:
1779: IF (l_debug = 1)
1780: THEN
1781: INV_LOG_UTIL.trace
1782: ( '>> From UOM '||l_from_uom_code,'INV_CONSUMPTION_ADVICE_PROC'
1783: , 9
1784: );
1785: INV_LOG_UTIL.trace
1786: ( '>> To UOM '||l_to_uom_code,'INV_CONSUMPTION_ADVICE_PROC'
1782: ( '>> From UOM '||l_from_uom_code,'INV_CONSUMPTION_ADVICE_PROC'
1783: , 9
1784: );
1785: INV_LOG_UTIL.trace
1786: ( '>> To UOM '||l_to_uom_code,'INV_CONSUMPTION_ADVICE_PROC'
1787: , 9
1788: );
1789: END IF;
1790:
1797:
1798: IF (l_debug = 1)
1799: THEN
1800: INV_LOG_UTIL.trace
1801: ( '>>UOM Rate '||l_uom_rate,'INV_CONSUMPTION_ADVICE_PROC'
1802: , 9
1803: );
1804: INV_LOG_UTIL.trace
1805: ( '>> Qty '||l_conv_qty,'INV_CONSUMPTION_ADVICE_PROC'
1801: ( '>>UOM Rate '||l_uom_rate,'INV_CONSUMPTION_ADVICE_PROC'
1802: , 9
1803: );
1804: INV_LOG_UTIL.trace
1805: ( '>> Qty '||l_conv_qty,'INV_CONSUMPTION_ADVICE_PROC'
1806: , 9
1807: );
1808: END IF;
1809:
1820:
1821: IF (l_debug = 1)
1822: THEN
1823: INV_LOG_UTIL.trace
1824: ( '>> Load Interface Tables_prf(Price):'||l_po_price,'INV_CONSUMPTION_ADVICE_PROC'
1825: , 9
1826: );
1827: END IF;
1828: */
1846:
1847: IF (l_debug = 1)
1848: THEN
1849: INV_LOG_UTIL.trace
1850: ( '>> Outside Loop(Qty):'||l_conv_qty,'INV_CONSUMPTION_ADVICE_PROC'
1851: , 9
1852: );
1853: INV_LOG_UTIL.trace
1854: ( '>> Outside Loop(Price):'||l_po_price,'INV_CONSUMPTION_ADVICE_PROC'
1850: ( '>> Outside Loop(Qty):'||l_conv_qty,'INV_CONSUMPTION_ADVICE_PROC'
1851: , 9
1852: );
1853: INV_LOG_UTIL.trace
1854: ( '>> Outside Loop(Price):'||l_po_price,'INV_CONSUMPTION_ADVICE_PROC'
1855: , 9
1856: );
1857: INV_LOG_UTIL.trace
1858: ( '>> Outside Loop(error):'||l_error_msg,'INV_CONSUMPTION_ADVICE_PROC'
1854: ( '>> Outside Loop(Price):'||l_po_price,'INV_CONSUMPTION_ADVICE_PROC'
1855: , 9
1856: );
1857: INV_LOG_UTIL.trace
1858: ( '>> Outside Loop(error):'||l_error_msg,'INV_CONSUMPTION_ADVICE_PROC'
1859: , 9
1860: );
1861: END IF;
1862:
1880: l_po_price := l_po_price - NVL(l_nonrecoverable_tax,0);
1881: IF (l_debug = 1)
1882: THEN
1883: INV_LOG_UTIL.trace
1884: ( '>> PO Price (no conv):'||l_po_price,'INV_CONSUMPTION_ADVICE_PROC'
1885: , 9
1886: );
1887: END IF;
1888: ELSE
1891:
1892: IF (l_debug = 1)
1893: THEN
1894: INV_LOG_UTIL.trace
1895: ( '>> PO Price (conv):'||l_po_price||' '||l_nonrecoverable_tax,'INV_CONSUMPTION_ADVICE_PROC'
1896: , 9
1897: );
1898: END IF;
1899:
1911:
1912: IF (l_debug = 1)
1913: THEN
1914: INV_LOG_UTIL.trace
1915: ( '>> PO Price (fnd_curr):'||l_po_price,'INV_CONSUMPTION_ADVICE_PROC'
1916: , 9
1917: );
1918: END IF;
1919: END IF;
1933: l_inv_org_location:= INV_THIRD_PARTY_STOCK_UTIL.get_location(l_organization_id);
1934: IF (l_debug = 1)
1935: THEN
1936: INV_LOG_UTIL.trace
1937: ( '>> Location :'||l_location_id,'INV_CONSUMPTION_ADVICE_PROC'
1938: , 9
1939: );
1940: INV_LOG_UTIL.trace
1941: ( '>> Blanket /Item :'||l_blanket_id||' '||l_item_id,'INV_CONSUMPTION_ADVICE_PROC'
1937: ( '>> Location :'||l_location_id,'INV_CONSUMPTION_ADVICE_PROC'
1938: , 9
1939: );
1940: INV_LOG_UTIL.trace
1941: ( '>> Blanket /Item :'||l_blanket_id||' '||l_item_id,'INV_CONSUMPTION_ADVICE_PROC'
1942: , 9
1943: );
1944: INV_LOG_UTIL.trace
1945: ( '>> Owning org is :'||l_owning_organization_id,'INV_CONSUMPTION_ADVICE_PROC'
1941: ( '>> Blanket /Item :'||l_blanket_id||' '||l_item_id,'INV_CONSUMPTION_ADVICE_PROC'
1942: , 9
1943: );
1944: INV_LOG_UTIL.trace
1945: ( '>> Owning org is :'||l_owning_organization_id,'INV_CONSUMPTION_ADVICE_PROC'
1946: , 9
1947: );
1948: END IF;
1949:
2037:
2038: IF (l_debug = 1)
2039: THEN
2040: INV_LOG_UTIL.trace
2041: ( 'Populated Lines Interface','INV_CONSUMPTION_ADVICE_PROC'
2042: , 9
2043: );
2044: END IF;
2045:
2052:
2053: IF (l_debug = 1)
2054: THEN
2055: INV_LOG_UTIL.trace
2056: ( '>> interface_header_id :'|| l_dist_interface_header_id,'INV_CONSUMPTION_ADVICE_PROC'
2057: , 9
2058: );
2059: END IF ;
2060:
2148:
2149: IF (l_debug = 1)
2150: THEN
2151: INV_LOG_UTIL.trace
2152: ( 'Populated Distributions Interface','INV_CONSUMPTION_ADVICE_PROC'
2153: , 9
2154: );
2155: END IF;
2156: END LOOP; -- line
2164:
2165: IF (l_debug = 1)
2166: THEN
2167: INV_LOG_UTIL.trace
2168: ( '>> Create Documents ','INV_CONSUMPTION_ADVICE_PROC'
2169: , 9
2170: );
2171: END IF;
2172:
2172:
2173: IF (l_debug = 1)
2174: THEN
2175: INV_LOG_UTIL.trace
2176: ( 'Batch Id : '||p_batch_id,'INV_CONSUMPTION_ADVICE_PROC'
2177: , 9
2178: );
2179: END IF;
2180:
2180:
2181: IF (l_debug = 1)
2182: THEN
2183: INV_LOG_UTIL.trace
2184: ( 'Document Id : '||l_document_id,'INV_CONSUMPTION_ADVICE_PROC'
2185: , 9
2186: );
2187: END IF;
2188:
2188:
2189: IF (l_debug = 1)
2190: THEN
2191: INV_LOG_UTIL.trace
2192: ( 'Document Number : '||l_document_number,'INV_CONSUMPTION_ADVICE_PROC'
2193: , 9
2194: );
2195: END IF;
2196:
2196:
2197: IF (l_debug = 1)
2198: THEN
2199: INV_LOG_UTIL.trace
2200: ( 'Line : '||l_lines,'INV_CONSUMPTION_ADVICE_PROC'
2201: , 9
2202: );
2203: END IF;
2204:
2212:
2213: IF (l_debug = 1)
2214: THEN
2215: INV_LOG_UTIL.trace
2216: ( 'Error Code : '||l_error_code,'INV_CONSUMPTION_ADVICE_PROC'
2217: , 9
2218: );
2219: END IF;
2220:
2220:
2221: IF (l_debug = 1)
2222: THEN
2223: INV_LOG_UTIL.trace
2224: ( '<< Create Documents ','INV_CONSUMPTION_ADVICE_PROC'
2225: , 9
2226: );
2227: END IF;
2228:
2239:
2240: IF (l_debug = 1)
2241: THEN
2242: INV_LOG_UTIL.trace
2243: ( '>> Update ASL ' ,'INV_CONSUMPTION_ADVICE_PROC'
2244: , 9
2245: );
2246: END IF;
2247:
2247:
2248: IF (l_debug = 1)
2249: THEN
2250: INV_LOG_UTIL.trace
2251: ( ' ASL_ID : '||l_asl_id,'INV_CONSUMPTION_ADVICE_PROC'
2252: , 9
2253: );
2254: END IF;
2255:
2260:
2261: IF (l_debug = 1)
2262: THEN
2263: INV_LOG_UTIL.trace
2264: ( '<< Update ASL ','INV_CONSUMPTION_ADVICE_PROC'
2265: , 9
2266: );
2267: END IF;
2268:
2296:
2297: IF (l_debug = 1)
2298: THEN
2299: INV_LOG_UTIL.trace
2300: ( '>> Archive PO ','INV_CONSUMPTION_ADVICE_PROC'
2301: , 9
2302: );
2303: END IF;
2304:
2304:
2305: IF (l_debug = 1)
2306: THEN
2307: INV_LOG_UTIL.trace
2308: ( ' api version : '||l_api_version,'INV_CONSUMPTION_ADVICE_PROC'
2309: , 9
2310: );
2311: END IF;
2312:
2312:
2313: IF (l_debug = 1)
2314: THEN
2315: INV_LOG_UTIL.trace
2316: ( ' document id : '||l_document_id,'INV_CONSUMPTION_ADVICE_PROC'
2317: , 9
2318: );
2319: END IF;
2320:
2320:
2321: IF (l_debug = 1)
2322: THEN
2323: INV_LOG_UTIL.trace
2324: ( ' document_type : '||l_archive_type,'INV_CONSUMPTION_ADVICE_PROC'
2325: , 9
2326: );
2327: END IF;
2328:
2328:
2329: IF (l_debug = 1)
2330: THEN
2331: INV_LOG_UTIL.trace
2332: ( ' document subtype : '||l_archive_subtype,'INV_CONSUMPTION_ADVICE_PROC'
2333: , 9
2334: );
2335: END IF;
2336:
2345:
2346: IF (l_debug = 1)
2347: THEN
2348: INV_LOG_UTIL.trace
2349: ( ' return status : '||l_archive_status,'INV_CONSUMPTION_ADVICE_PROC'
2350: , 9
2351: );
2352: END IF;
2353:
2353:
2354: IF (l_debug = 1)
2355: THEN
2356: INV_LOG_UTIL.trace
2357: ( ' msg data : '||l_msg_data,'INV_CONSUMPTION_ADVICE_PROC'
2358: , 9
2359: );
2360: END IF;
2361:
2361:
2362: IF (l_debug = 1)
2363: THEN
2364: INV_LOG_UTIL.trace
2365: ( '<< Archive PO : ','INV_CONSUMPTION_ADVICE_PROC'
2366: , 9
2367: );
2368: END IF;
2369:
2382: l_consumption_processed_flag := 'E';
2383: END IF;
2384: END IF;
2385:
2386: INV_CONSUMPTION_ADVICE_PROC.Update_Consumption
2387: (p_consumption_po_header_id => l_consumption_po_header_id
2388: ,p_consumption_release_id => l_consumption_release_id
2389: ,p_error_code => l_error_msg
2390: ,p_batch_id => p_batch_id
2400:
2401: IF (l_debug = 1)
2402: THEN
2403: INV_LOG_UTIL.trace
2404: ('Release created :'||l_consumption_release_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2405: INV_LOG_UTIL.trace
2406: ('PO created :'||l_consumption_po_header_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2407: INV_LOG_UTIL.trace
2408: ('Batch :'||p_batch_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2402: THEN
2403: INV_LOG_UTIL.trace
2404: ('Release created :'||l_consumption_release_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2405: INV_LOG_UTIL.trace
2406: ('PO created :'||l_consumption_po_header_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2407: INV_LOG_UTIL.trace
2408: ('Batch :'||p_batch_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2409: INV_LOG_UTIL.trace
2410: ('Blanket is :'||l_blanket_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2404: ('Release created :'||l_consumption_release_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2405: INV_LOG_UTIL.trace
2406: ('PO created :'||l_consumption_po_header_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2407: INV_LOG_UTIL.trace
2408: ('Batch :'||p_batch_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2409: INV_LOG_UTIL.trace
2410: ('Blanket is :'||l_blanket_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2411: INV_LOG_UTIL.trace
2412: ('Site is :'||l_vendor_site_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2406: ('PO created :'||l_consumption_po_header_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2407: INV_LOG_UTIL.trace
2408: ('Batch :'||p_batch_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2409: INV_LOG_UTIL.trace
2410: ('Blanket is :'||l_blanket_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2411: INV_LOG_UTIL.trace
2412: ('Site is :'||l_vendor_site_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2413: INV_LOG_UTIL.trace
2414: ('Txn Date is :'||l_transaction_date,'INV_CONSUMPTION_ADVICE_PROC',9);
2408: ('Batch :'||p_batch_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2409: INV_LOG_UTIL.trace
2410: ('Blanket is :'||l_blanket_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2411: INV_LOG_UTIL.trace
2412: ('Site is :'||l_vendor_site_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2413: INV_LOG_UTIL.trace
2414: ('Txn Date is :'||l_transaction_date,'INV_CONSUMPTION_ADVICE_PROC',9);
2415: END IF;
2416:
2410: ('Blanket is :'||l_blanket_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2411: INV_LOG_UTIL.trace
2412: ('Site is :'||l_vendor_site_id,'INV_CONSUMPTION_ADVICE_PROC',9);
2413: INV_LOG_UTIL.trace
2414: ('Txn Date is :'||l_transaction_date,'INV_CONSUMPTION_ADVICE_PROC',9);
2415: END IF;
2416:
2417: l_error_msg := NULL;
2418: l_consumption_processed_flag := NULL;
2425:
2426: IF (l_debug = 1)
2427: THEN
2428: INV_LOG_UTIL.trace
2429: ( '<< Load Interface Tables','INV_CONSUMPTION_ADVICE_PROC'
2430: , 9
2431: );
2432: END IF;
2433:
2446: END IF;
2447:
2448: IF (l_debug = 1) THEN
2449: INV_LOG_UTIL.trace
2450: ( SQLCODE || ' : ' || SQLERRM ,'INV_CONSUMPTION_ADVICE_PROC'
2451: , 9
2452: );
2453: END IF;
2454:
2499:
2500: IF (l_debug = 1)
2501: THEN
2502: INV_LOG_UTIL.trace
2503: ( '>> Load Summarized Quantity','INV_CONSUMPTION_ADVICE_PROC'
2504: , 9
2505: );
2506: END IF;
2507:
2522:
2523: IF (l_debug = 1)
2524: THEN
2525: INV_LOG_UTIL.trace
2526: ( 'First is :'||l_txn_first,'INV_CONSUMPTION_ADVICE_PROC'
2527: , 9
2528: );
2529: INV_LOG_UTIL.trace
2530: ( 'Last is :'||l_txn_ct,'INV_CONSUMPTION_ADVICE_PROC'
2526: ( 'First is :'||l_txn_first,'INV_CONSUMPTION_ADVICE_PROC'
2527: , 9
2528: );
2529: INV_LOG_UTIL.trace
2530: ( 'Last is :'||l_txn_ct,'INV_CONSUMPTION_ADVICE_PROC'
2531: , 9
2532: );
2533: END IF;
2534: */
2535:
2536: IF (l_debug = 1)
2537: THEN
2538: INV_LOG_UTIL.trace
2539: ( 'Last is :'||p_txn_source_tab.COUNT,'INV_CONSUMPTION_ADVICE_PROC'
2540: , 9
2541: );
2542: END IF;
2543:
2604: ELSE
2605: IF (l_debug = 1)
2606: THEN
2607: INV_LOG_UTIL.trace
2608: ( '<< Load Summarized Quantity null index','INV_CONSUMPTION_ADVICE_PROC' , 9
2609: );
2610: END IF;
2611: END IF;
2612:
2612:
2613: IF (l_debug = 1)
2614: THEN
2615: INV_LOG_UTIL.trace
2616: ( '<< Load Summarized Quantity','INV_CONSUMPTION_ADVICE_PROC'
2617: , 9
2618: );
2619: END IF;
2620:
2622:
2623: WHEN OTHERS THEN
2624: IF (l_debug = 1) THEN
2625: INV_LOG_UTIL.trace
2626: ( SQLCODE || ' : ' || SQLERRM ,'INV_CONSUMPTION_ADVICE_PROC'
2627: , 9
2628: );
2629: END IF;
2630:
2675:
2676: IF (l_debug = 1)
2677: THEN
2678: INV_LOG_UTIL.trace
2679: ( '>> Load Summarized Quantity Prf','INV_CONSUMPTION_ADVICE_PROC'
2680: , 9
2681: );
2682: END IF;
2683:
2698:
2699: IF (l_debug = 1)
2700: THEN
2701: INV_LOG_UTIL.trace
2702: ( 'First is :'||l_txn_first,'INV_CONSUMPTION_ADVICE_PROC'
2703: , 9
2704: );
2705: INV_LOG_UTIL.trace
2706: ( 'Last is :'||l_txn_last||' '||l_txn_ct,'INV_CONSUMPTION_ADVICE_PROC'
2702: ( 'First is :'||l_txn_first,'INV_CONSUMPTION_ADVICE_PROC'
2703: , 9
2704: );
2705: INV_LOG_UTIL.trace
2706: ( 'Last is :'||l_txn_last||' '||l_txn_ct,'INV_CONSUMPTION_ADVICE_PROC'
2707: , 9
2708: );
2709: END IF;
2710: */
2711:
2712: IF (l_debug = 1)
2713: THEN
2714: INV_LOG_UTIL.trace
2715: ( 'Last is :'||p_txn_source_tab.COUNT,'INV_CONSUMPTION_ADVICE_PROC'
2716: , 9
2717: );
2718: END IF;
2719:
2824: ELSE
2825: IF (l_debug = 1)
2826: THEN
2827: INV_LOG_UTIL.trace
2828: ( '<< Load Summarized Quantity null index','INV_CONSUMPTION_ADVICE_PROC' , 9
2829: );
2830: END IF;
2831: END IF;
2832:
2832:
2833: IF (l_debug = 1)
2834: THEN
2835: INV_LOG_UTIL.trace
2836: ( '<< Load Summarized Quantity_prf','INV_CONSUMPTION_ADVICE_PROC'
2837: , 9
2838: );
2839: END IF;
2840:
2842:
2843: WHEN OTHERS THEN
2844: IF (l_debug = 1) THEN
2845: INV_LOG_UTIL.trace
2846: ( SQLCODE || ' : ' || SQLERRM ,'INV_CONSUMPTION_ADVICE_PROC'
2847: , 9
2848: );
2849: END IF;
2850:
2887:
2888: IF (l_debug = 1)
2889: THEN
2890: INV_LOG_UTIL.trace
2891: ( '>> Delete Record','INV_CONSUMPTION_ADVICE_PROC'
2892: , 9
2893: );
2894: END IF;
2895:
2934:
2935: IF (l_debug = 1)
2936: THEN
2937: INV_LOG_UTIL.trace
2938: ( '<< Delete Record','INV_CONSUMPTION_ADVICE_PROC'
2939: , 9
2940: );
2941: END IF;
2942:
2944:
2945: WHEN OTHERS THEN
2946: IF (l_debug = 1) THEN
2947: INV_LOG_UTIL.trace
2948: ( SQLCODE || ' : ' || SQLERRM ,'INV_CONSUMPTION_ADVICE_PROC'
2949: , 9
2950: );
2951: END IF;
2952:
2968:
2969: IF (l_debug = 1)
2970: THEN
2971: INV_LOG_UTIL.trace
2972: ( '>> Log Initialize','INV_CONSUMPTION_ADVICE_PROC'
2973: , 9
2974: );
2975: END IF;
2976:
2987:
2988: IF (l_debug = 1)
2989: THEN
2990: INV_LOG_UTIL.trace
2991: ( '<< Log Initialize','INV_CONSUMPTION_ADVICE_PROC'
2992: , 9
2993: );
2994: END IF;
2995:
3013:
3014: IF (l_debug = 1)
3015: THEN
3016: INV_LOG_UTIL.trace
3017: ( '>> Log','INV_CONSUMPTION_ADVICE_PROC'
3018: , 9
3019: );
3020: END IF;
3021:
3037:
3038: IF (l_debug = 1)
3039: THEN
3040: INV_LOG_UTIL.trace
3041: ( '<< Log','INV_CONSUMPTION_ADVICE_PROC'
3042: , 9
3043: );
3044: END IF;
3045:
3087:
3088: IF (l_debug = 1)
3089: THEN
3090: INV_LOG_UTIL.trace
3091: ( '>> Generate Log','INV_CONSUMPTION_ADVICE_PROC'
3092: , 9
3093: );
3094: END IF;
3095:
3092: , 9
3093: );
3094: END IF;
3095:
3096: INV_CONSUMPTION_ADVICE_PROC.LOG
3097: ( INV_CONSUMPTION_ADVICE_PROC.G_LOG_PROCEDURE
3098: , '< Consumption Advice Error'
3099: );
3100:
3093: );
3094: END IF;
3095:
3096: INV_CONSUMPTION_ADVICE_PROC.LOG
3097: ( INV_CONSUMPTION_ADVICE_PROC.G_LOG_PROCEDURE
3098: , '< Consumption Advice Error'
3099: );
3100:
3101: OPEN con_ad_err_cur;
3112: END LOOP;
3113:
3114: CLOSE con_ad_err_cur;
3115:
3116: INV_CONSUMPTION_ADVICE_PROC.LOG
3117: ( INV_CONSUMPTION_ADVICE_PROC.G_LOG_PROCEDURE
3118: , '> Consumption Advice Error'
3119: );
3120:
3113:
3114: CLOSE con_ad_err_cur;
3115:
3116: INV_CONSUMPTION_ADVICE_PROC.LOG
3117: ( INV_CONSUMPTION_ADVICE_PROC.G_LOG_PROCEDURE
3118: , '> Consumption Advice Error'
3119: );
3120:
3121: IF (l_debug = 1)
3120:
3121: IF (l_debug = 1)
3122: THEN
3123: INV_LOG_UTIL.trace
3124: ( '<< Generate Log','INV_CONSUMPTION_ADVICE_PROC'
3125: , 9
3126: );
3127: END IF;
3128:
3170: 'E')
3171: AND PO_LINE_ID IS NULL ;
3172:
3173: BEGIN
3174: INV_LOG_UTIL.trace('Starting datafix for missing po_line_id','INV_CONSUMPTION_ADVICE_PROC',9);
3175: OPEN csr_null_po_line_id ;
3176: LOOP -- loop through each bulk of 100 records
3177: FETCH csr_null_po_line_id
3178: BULK COLLECT
3185: l_transaction_date
3186: LIMIT 100;
3187: EXIT WHEN l_transaction_id.Count = 0;
3188:
3189: INV_LOG_UTIL.trace('there are '||l_inventory_item_id.Count ||' more unprocessed record(s) with missing po_line_id','INV_CONSUMPTION_ADVICE_PROC',9);
3190: IF(l_inventory_item_id.Count >0) THEN
3191:
3192: FOR i IN l_inventory_item_id.first .. l_inventory_item_id.last
3193: LOOP -- loop through each transaction in the bulk
3200: || l_vendor_site_id(i)
3201: || ' , '
3202: || l_organization_id(i)
3203: || ' , '
3204: || l_transaction_date(i),'INV_CONSUMPTION_ADVICE_PROC',9 );
3205:
3206: INV_PO_THIRD_PARTY_STOCK_MDTR.Get_Blanket_Number
3207: ( p_inventory_item_id => l_inventory_item_id(i)
3208: , p_item_revision => l_item_revision(i)
3219: || l_document_line_id
3220: || ' , '
3221: || l_global_flag
3222: || ' , '
3223: || l_transaction_id(i),'INV_CONSUMPTION_ADVICE_PROC',9
3224: );
3225: -- start of bug 9539634
3226: IF l_transaction_source_id(i) <> l_header_id THEN
3227: -- if the derived po_line_id does not belong to the blanket header of the transaction
3225: -- start of bug 9539634
3226: IF l_transaction_source_id(i) <> l_header_id THEN
3227: -- if the derived po_line_id does not belong to the blanket header of the transaction
3228: l_document_line_id := null;
3229: INV_LOG_UTIL.trace('fetched blanket header is not equal to that of the transaction','INV_CONSUMPTION_ADVICE_PROC',9);
3230: BEGIN
3231: -- Since now the current eligible blanket has changed to newer one
3232: -- fetching the po_line of the blanket which was associated with the transaction.
3233: -- If there was more than one line for the same item in the old blanket
3239: from po_lines_All
3240: where po_header_id = l_transaction_source_id(i)
3241: and item_id = l_inventory_item_id(i)
3242: and rownum = 1 ;
3243: INV_LOG_UTIL.trace('Derived po_line_id is '||l_document_line_id,'INV_CONSUMPTION_ADVICE_PROC',9);
3244: EXCEPTION
3245: WHEN OTHERS THEN
3246: INV_LOG_UTIL.trace('Unable to derive po_line_id , setting back to null ','INV_CONSUMPTION_ADVICE_PROC',9);
3247: END;
3242: and rownum = 1 ;
3243: INV_LOG_UTIL.trace('Derived po_line_id is '||l_document_line_id,'INV_CONSUMPTION_ADVICE_PROC',9);
3244: EXCEPTION
3245: WHEN OTHERS THEN
3246: INV_LOG_UTIL.trace('Unable to derive po_line_id , setting back to null ','INV_CONSUMPTION_ADVICE_PROC',9);
3247: END;
3248: END IF;
3249: -- End of bug 9539634
3250: /* update the po line id and make it ready to be processed */
3255: AND transaction_id = l_transaction_id(i)
3256: AND po_line_id IS NULL;
3257:
3258: IF(SQL%ROWCOUNT = 1) THEN
3259: INV_LOG_UTIL.trace('Updated the Trx id '||l_transaction_id(i)||' with po_line_id '||l_document_line_id ,'INV_CONSUMPTION_ADVICE_PROC',9);
3260: END IF;
3261:
3262: END LOOP; -- loop through each transaction in the bulk
3263: END IF;
3262: END LOOP; -- loop through each transaction in the bulk
3263: END IF;
3264: END LOOP; -- loop through each bul of 100 records
3265: EXCEPTION WHEN OTHERS THEN
3266: INV_LOG_UTIL.trace('Something went wrong with populate_po_line_id still proceeding with consumption advice','INV_CONSUMPTION_ADVICE_PROC',9);
3267: END populate_po_line_id;
3268:
3269:
3270: --========================================================================
3361:
3362: IF (l_debug = 1)
3363: THEN
3364: INV_LOG_UTIL.trace
3365: ( '>> Consumption Txn Worker(p_batch_id)'||p_batch_id,'INV_CONSUMPTION_ADVICE_PROC'
3366: , 9
3367: );
3368: END IF;
3369:
3372: -- with records that belong to the specified batch
3373:
3374: IF NVL(FND_PROFILE.value('INV_SUPPLIER_CONSIGNED_GROUPING'),'N') = 'N'
3375: THEN
3376: INV_CONSUMPTION_ADVICE_PROC.load_combination_prf
3377: (p_batch_id => p_batch_id
3378: ,p_vendor_id => NULL
3379: ,p_vendor_site_id => NULL
3380: ,p_inventory_item_id => NULL
3379: ,p_vendor_site_id => NULL
3380: ,p_inventory_item_id => NULL
3381: ,p_organization_id => NULL);
3382: ELSE
3383: INV_CONSUMPTION_ADVICE_PROC.load_combination
3384: (p_batch_id => p_batch_id
3385: ,p_vendor_id => NULL
3386: ,p_vendor_site_id => NULL
3387: ,p_inventory_item_id => NULL
3451:
3452: /* BUg 5092489. Following IF block is commented becasue quantity is populated during insert
3453: IF NVL(FND_PROFILE.value('INV_SUPPLIER_CONSIGNED_GROUPING'),'N') = 'N'
3454: THEN
3455: INV_CONSUMPTION_ADVICE_PROC.load_summarized_quantity_prf
3456: (p_txn_source_tab => l_txn_source_tab
3457: ,p_inventory_item_tab => l_item_tab
3458: ,p_organization_tab => l_org_tab
3459: ,p_own_org_tab => l_owning_org_tab
3469: ,p_date_tab => l_date_tab
3470: ,p_batch_id => l_batch_id
3471: ,p_tax_rec_rate_tab => l_tax_rec_rate_tab); -- Bug 4969421
3472: ELSE
3473: INV_CONSUMPTION_ADVICE_PROC.load_summarized_quantity
3474: (p_txn_source_tab => l_txn_source_tab
3475: ,p_inventory_item_tab => l_item_tab
3476: ,p_organization_tab => l_org_tab
3477: ,p_own_org_tab => l_owning_org_tab
3500:
3501: IF (l_debug = 1)
3502: THEN
3503: INV_LOG_UTIL.trace
3504: ( 'Consumption Txn Worker(l_loop_count)'||l_loop_count,'INV_CONSUMPTION_ADVICE_PROC'
3505: , 9
3506: );
3507: END IF;
3508:
3519:
3520: IF (l_debug = 1)
3521: THEN
3522: INV_LOG_UTIL.trace
3523: ( 'Consumption Worker(l_current_txn_source_id)'||l_current_txn_source_id,'INV_CONSUMPTION_ADVICE_PROC'
3524: , 9
3525: );
3526: INV_LOG_UTIL.trace
3527: ( 'Cons Worker(l_organization_id)'||l_organization_id,'INV_CONSUMPTION_ADVICE_PROC'
3523: ( 'Consumption Worker(l_current_txn_source_id)'||l_current_txn_source_id,'INV_CONSUMPTION_ADVICE_PROC'
3524: , 9
3525: );
3526: INV_LOG_UTIL.trace
3527: ( 'Cons Worker(l_organization_id)'||l_organization_id,'INV_CONSUMPTION_ADVICE_PROC'
3528: , 9
3529: );
3530: INV_LOG_UTIL.trace
3531: ( 'Cons Worker(l_inventory_item_id)'||l_inventory_item_id,'INV_CONSUMPTION_ADVICE_PROC'
3527: ( 'Cons Worker(l_organization_id)'||l_organization_id,'INV_CONSUMPTION_ADVICE_PROC'
3528: , 9
3529: );
3530: INV_LOG_UTIL.trace
3531: ( 'Cons Worker(l_inventory_item_id)'||l_inventory_item_id,'INV_CONSUMPTION_ADVICE_PROC'
3532: , 9
3533: );
3534: END IF;
3535:
3543:
3544: IF (l_debug = 1)
3545: THEN
3546: INV_LOG_UTIL.trace
3547: ( 'Consumption Txn Worker(l_vendor_id)'||l_vendor_id,'INV_CONSUMPTION_ADVICE_PROC'
3548: , 9
3549: );
3550: END IF;
3551:
3565:
3566: IF (l_debug = 1)
3567: THEN
3568: INV_LOG_UTIL.trace
3569: ( 'Consumption Txn Worker(l_asl_id)'||l_asl_id,'INV_CONSUMPTION_ADVICE_PROC'
3570: , 9
3571: );
3572: END IF;
3573:
3601:
3602: IF (l_debug = 1)
3603: THEN
3604: INV_LOG_UTIL.trace
3605: ( 'Consumption Txn Worker(l_elapsed)'||l_bill_date_elapsed,'INV_CONSUMPTION_ADVICE_PROC'
3606: , 9
3607: );
3608: INV_LOG_UTIL.trace
3609: ( 'Consumption Txn Worker(l_org_tab)'||l_org_tab(i),'INV_CONSUMPTION_ADVICE_PROC'
3605: ( 'Consumption Txn Worker(l_elapsed)'||l_bill_date_elapsed,'INV_CONSUMPTION_ADVICE_PROC'
3606: , 9
3607: );
3608: INV_LOG_UTIL.trace
3609: ( 'Consumption Txn Worker(l_org_tab)'||l_org_tab(i),'INV_CONSUMPTION_ADVICE_PROC'
3610: , 9
3611: );
3612: END IF;
3613:
3623: -- delete the record from the temporary table
3624: IF (l_debug = 1)
3625: THEN
3626: INV_LOG_UTIL.trace
3627: ( 'Consumption Txn Worker:Inside delete record','INV_CONSUMPTION_ADVICE_PROC'
3628: , 9
3629: );
3630: END IF;
3631:
3628: , 9
3629: );
3630: END IF;
3631:
3632: INV_CONSUMPTION_ADVICE_PROC.delete_record
3633: (p_txn_source_id => l_txn_source_tab(i)
3634: ,p_inventory_item_id => l_item_tab(i)
3635: ,p_organization_id => l_org_tab(i)
3636: ,p_own_org_id => l_owning_org_tab(i)
3652:
3653: IF (l_debug = 1)
3654: THEN
3655: INV_LOG_UTIL.trace
3656: ( 'Consumption Txn Worker(l_bulk_count)'||l_bulk_count,'INV_CONSUMPTION_ADVICE_PROC'
3657: , 9
3658: );
3659: END IF;
3660: EXIT WHEN l_loop_count < 1000;
3668:
3669: /* Bug 4599072 - Start */
3670: /* The Load_Interface_Tables_prf procedure will no longer be used */
3671:
3672: INV_CONSUMPTION_ADVICE_PROC.load_interface_tables
3673: (p_batch_id => l_batch_id
3674: ,x_return_status => l_return_status);
3675: /* Bug 4599072 - Start */
3676: /* bug 5113064 - Start */
3685: /* bug 5113064 - Start */
3686:
3687: IF l_return_status <> 'S' THEN
3688:
3689: INV_CONSUMPTION_ADVICE_PROC.generate_log(l_batch_id);
3690:
3691: END IF;
3692:
3693: IF (l_debug = 1)
3692:
3693: IF (l_debug = 1)
3694: THEN
3695: INV_LOG_UTIL.trace
3696: ( '<< Consumption Txn Worker','INV_CONSUMPTION_ADVICE_PROC'
3697: , 9
3698: );
3699: END IF;
3700:
3716:
3717: IF (l_debug = 1)
3718: THEN
3719: INV_LOG_UTIL.trace
3720: ( '>> Generate Batch Id','INV_CONSUMPTION_ADVICE_PROC'
3721: , 9
3722: );
3723: END IF;
3724:
3734:
3735: IF (l_debug = 1)
3736: THEN
3737: INV_LOG_UTIL.trace
3738: ( '<< Generate Batch Id','INV_CONSUMPTION_ADVICE_PROC'
3739: , 9
3740: );
3741: END IF;
3742:
3761:
3762: IF (l_debug = 1)
3763: THEN
3764: INV_LOG_UTIL.trace
3765: ( '>> Has Worker Completed','INV_CONSUMPTION_ADVICE_PROC'
3766: , 9
3767: );
3768: END IF;
3769:
3783:
3784: IF (l_debug = 1)
3785: THEN
3786: INV_LOG_UTIL.trace
3787: ( '<< Has Worker Completed','INV_CONSUMPTION_ADVICE_PROC'
3788: , 9
3789: );
3790: END IF;
3791:
3811:
3812: IF (l_debug = 1)
3813: THEN
3814: INV_LOG_UTIL.trace
3815: ( '>> Wait For Worker','INV_CONSUMPTION_ADVICE_PROC'
3816: , 9
3817: );
3818: END IF;
3819:
3822: WHILE (NOT l_done) LOOP
3823:
3824: FOR l_Idx IN 1..p_workers.COUNT LOOP
3825:
3826: IF INV_CONSUMPTION_ADVICE_PROC.has_worker_completed(p_workers(l_Idx))
3827: THEN
3828: l_done := TRUE;
3829: x_worker_idx := l_Idx;
3830: EXIT;
3840:
3841: IF (l_debug = 1)
3842: THEN
3843: INV_LOG_UTIL.trace
3844: ( '<< Wait For Worker','INV_CONSUMPTION_ADVICE_PROC'
3845: , 9
3846: );
3847: END IF;
3848:
3865:
3866: IF (l_debug = 1)
3867: THEN
3868: INV_LOG_UTIL.trace
3869: ( '>> Wait For All Workers','INV_CONSUMPTION_ADVICE_PROC'
3870: , 9
3871: );
3872: END IF;
3873:
3879:
3880: FOR l_Idx IN 1..p_workers.COUNT LOOP
3881:
3882: IF NOT
3883: INV_CONSUMPTION_ADVICE_PROC.has_worker_completed(p_workers(l_Idx))
3884: THEN
3885: l_done := FALSE;
3886: EXIT;
3887: END IF;
3896:
3897: IF (l_debug = 1)
3898: THEN
3899: INV_LOG_UTIL.trace
3900: ( '<< Wait For All Workers','INV_CONSUMPTION_ADVICE_PROC'
3901: , 9
3902: );
3903: END IF;
3904:
3931:
3932: IF (l_debug = 1)
3933: THEN
3934: INV_LOG_UTIL.trace
3935: ( '>> Submit Worker','INV_CONSUMPTION_ADVICE_PROC'
3936: , 9
3937: );
3938: END IF;
3939:
3942: -- number of workers allowed
3943: l_worker_idx := x_workers.COUNT + 1;
3944: ELSE
3945: -- need to wait for a submitted worker to finish
3946: INV_CONSUMPTION_ADVICE_PROC.wait_for_worker
3947: ( p_workers => x_workers
3948: , x_worker_idx => l_worker_idx
3949: );
3950: END IF;
3973:
3974: IF (l_debug = 1)
3975: THEN
3976: INV_LOG_UTIL.trace
3977: ( '<< Submit Worker','INV_CONSUMPTION_ADVICE_PROC'
3978: , 9
3979: );
3980: END IF;
3981:
4062:
4063: IF (l_debug = 1)
4064: THEN
4065: INV_LOG_UTIL.trace
4066: ( '>> Batch Allocation','INV_CONSUMPTION_ADVICE_PROC'
4067: , 9
4068: );
4069: END IF;
4070:
4104:
4105: IF (l_debug = 1)
4106: THEN
4107: INV_LOG_UTIL.trace
4108: ( '>> Batch Allocation(p_batch_size)'||p_batch_size,'INV_CONSUMPTION_ADVICE_PROC'
4109: , 9
4110: );
4111: INV_LOG_UTIL.trace
4112: ( '>> Batch Allocation(l_batch_size)'||l_batch_size,'INV_CONSUMPTION_ADVICE_PROC'
4108: ( '>> Batch Allocation(p_batch_size)'||p_batch_size,'INV_CONSUMPTION_ADVICE_PROC'
4109: , 9
4110: );
4111: INV_LOG_UTIL.trace
4112: ( '>> Batch Allocation(l_batch_size)'||l_batch_size,'INV_CONSUMPTION_ADVICE_PROC'
4113: , 9
4114: );
4115: INV_LOG_UTIL.trace
4116: ( '>> Batch Allocation(l_max_workers)'||l_max_workers,'INV_CONSUMPTION_ADVICE_PROC'
4112: ( '>> Batch Allocation(l_batch_size)'||l_batch_size,'INV_CONSUMPTION_ADVICE_PROC'
4113: , 9
4114: );
4115: INV_LOG_UTIL.trace
4116: ( '>> Batch Allocation(l_max_workers)'||l_max_workers,'INV_CONSUMPTION_ADVICE_PROC'
4117: , 9
4118: );
4119: INV_LOG_UTIL.trace
4120: ( '>> Batch Allocation(p_max_workers)'||p_max_workers,'INV_CONSUMPTION_ADVICE_PROC'
4116: ( '>> Batch Allocation(l_max_workers)'||l_max_workers,'INV_CONSUMPTION_ADVICE_PROC'
4117: , 9
4118: );
4119: INV_LOG_UTIL.trace
4120: ( '>> Batch Allocation(p_max_workers)'||p_max_workers,'INV_CONSUMPTION_ADVICE_PROC'
4121: , 9
4122: );
4123: END IF;
4124:
4173:
4174: IF (l_debug = 1)
4175: THEN
4176: INV_LOG_UTIL.trace
4177: ( '>> Batch Alloc (l_current_batch_id)'||l_current_batch_id,'INV_CONSUMPTION_ADVICE_PROC'
4178: , 9
4179: );
4180: INV_LOG_UTIL.trace
4181: ( '>> Batch Alloc (l_remain_batch_count)'||l_remain_batch_count,'INV_CONSUMPTION_ADVICE_PROC'
4177: ( '>> Batch Alloc (l_current_batch_id)'||l_current_batch_id,'INV_CONSUMPTION_ADVICE_PROC'
4178: , 9
4179: );
4180: INV_LOG_UTIL.trace
4181: ( '>> Batch Alloc (l_remain_batch_count)'||l_remain_batch_count,'INV_CONSUMPTION_ADVICE_PROC'
4182: , 9
4183: );
4184: INV_LOG_UTIL.trace
4185: ( '>> Batch Alloc (l_current_cons_index)'||l_current_cons_index,'INV_CONSUMPTION_ADVICE_PROC'
4181: ( '>> Batch Alloc (l_remain_batch_count)'||l_remain_batch_count,'INV_CONSUMPTION_ADVICE_PROC'
4182: , 9
4183: );
4184: INV_LOG_UTIL.trace
4185: ( '>> Batch Alloc (l_current_cons_index)'||l_current_cons_index,'INV_CONSUMPTION_ADVICE_PROC'
4186: , 9
4187: );
4188: END IF;
4189:
4205:
4206: IF (l_debug = 1)
4207: THEN
4208: INV_LOG_UTIL.trace
4209: ( '>> Batch Alloc(l_group_count)'||l_group_count,'INV_CONSUMPTION_ADVICE_PROC'
4210: , 9
4211: );
4212: INV_LOG_UTIL.trace
4213: ( '>> Batch Alloc(l_group_size)'||l_group_size,'INV_CONSUMPTION_ADVICE_PROC'
4209: ( '>> Batch Alloc(l_group_count)'||l_group_count,'INV_CONSUMPTION_ADVICE_PROC'
4210: , 9
4211: );
4212: INV_LOG_UTIL.trace
4213: ( '>> Batch Alloc(l_group_size)'||l_group_size,'INV_CONSUMPTION_ADVICE_PROC'
4214: , 9
4215: );
4216: END IF;
4217:
4223:
4224: IF (l_debug = 1)
4225: THEN
4226: INV_LOG_UTIL.trace
4227: ( '>> Batch Alloc(l_next_cons_index)'||l_next_cons_index,'INV_CONSUMPTION_ADVICE_PROC'
4228: , 9
4229: );
4230: INV_LOG_UTIL.trace
4231: ( '>> Batch Alloc(l_current_cons_index)'||l_current_cons_index,'INV_CONSUMPTION_ADVICE_PROC'
4227: ( '>> Batch Alloc(l_next_cons_index)'||l_next_cons_index,'INV_CONSUMPTION_ADVICE_PROC'
4228: , 9
4229: );
4230: INV_LOG_UTIL.trace
4231: ( '>> Batch Alloc(l_current_cons_index)'||l_current_cons_index,'INV_CONSUMPTION_ADVICE_PROC'
4232: , 9
4233: );
4234: END IF;
4235:
4254:
4255: IF (l_debug = 1)
4256: THEN
4257: INV_LOG_UTIL.trace
4258: ( '>> Batch Alloc....group_count>group_size' ,'INV_CONSUMPTION_ADVICE_PROC'
4259: , 9
4260: );
4261: INV_LOG_UTIL.trace
4262: ( '>> Batch Alloc (l_group_size)'||l_group_size,'INV_CONSUMPTION_ADVICE_PROC'
4258: ( '>> Batch Alloc....group_count>group_size' ,'INV_CONSUMPTION_ADVICE_PROC'
4259: , 9
4260: );
4261: INV_LOG_UTIL.trace
4262: ( '>> Batch Alloc (l_group_size)'||l_group_size,'INV_CONSUMPTION_ADVICE_PROC'
4263: , 9
4264: );
4265: INV_LOG_UTIL.trace
4266: ( '>> Batch Alloc (l_remain_batch_count)'||l_remain_batch_count,'INV_CONSUMPTION_ADVICE_PROC'
4262: ( '>> Batch Alloc (l_group_size)'||l_group_size,'INV_CONSUMPTION_ADVICE_PROC'
4263: , 9
4264: );
4265: INV_LOG_UTIL.trace
4266: ( '>> Batch Alloc (l_remain_batch_count)'||l_remain_batch_count,'INV_CONSUMPTION_ADVICE_PROC'
4267: , 9
4268: );
4269: INV_LOG_UTIL.trace
4270: ( '>> Batch Alloc (l_batch_size)'||l_batch_size,'INV_CONSUMPTION_ADVICE_PROC'
4266: ( '>> Batch Alloc (l_remain_batch_count)'||l_remain_batch_count,'INV_CONSUMPTION_ADVICE_PROC'
4267: , 9
4268: );
4269: INV_LOG_UTIL.trace
4270: ( '>> Batch Alloc (l_batch_size)'||l_batch_size,'INV_CONSUMPTION_ADVICE_PROC'
4271: , 9
4272: );
4273: INV_LOG_UTIL.trace
4274: ( '>> Batch Alloc (l_batch_ct)'||l_batch_count,'INV_CONSUMPTION_ADVICE_PROC'
4270: ( '>> Batch Alloc (l_batch_size)'||l_batch_size,'INV_CONSUMPTION_ADVICE_PROC'
4271: , 9
4272: );
4273: INV_LOG_UTIL.trace
4274: ( '>> Batch Alloc (l_batch_ct)'||l_batch_count,'INV_CONSUMPTION_ADVICE_PROC'
4275: , 9
4276: );
4277: INV_LOG_UTIL.trace
4278: ( '>> Batch Alloc....' ,'INV_CONSUMPTION_ADVICE_PROC'
4274: ( '>> Batch Alloc (l_batch_ct)'||l_batch_count,'INV_CONSUMPTION_ADVICE_PROC'
4275: , 9
4276: );
4277: INV_LOG_UTIL.trace
4278: ( '>> Batch Alloc....' ,'INV_CONSUMPTION_ADVICE_PROC'
4279: , 9
4280: );
4281: END IF;
4282:
4344: AND mct.consumption_processed_flag IN ('N', 'E');
4345:
4346: -- Call concurrent worker
4347:
4348: INV_CONSUMPTION_ADVICE_PROC.submit_worker( l_current_batch_id
4349: , l_max_workers
4350: , l_workers_tbl);
4351:
4352: -- the size of the group can only be a maximum of the batch size
4353:
4354: IF (l_debug = 1)
4355: THEN
4356: INV_LOG_UTIL.trace
4357: ( 'After submit worker'||l_group_size,'INV_CONSUMPTION_ADVICE_PROC'
4358: , 9
4359: );
4360: INV_LOG_UTIL.trace
4361: ( 'Batch Alloc(l_group_size)'||l_group_size,'INV_CONSUMPTION_ADVICE_PROC'
4357: ( 'After submit worker'||l_group_size,'INV_CONSUMPTION_ADVICE_PROC'
4358: , 9
4359: );
4360: INV_LOG_UTIL.trace
4361: ( 'Batch Alloc(l_group_size)'||l_group_size,'INV_CONSUMPTION_ADVICE_PROC'
4362: , 9
4363: );
4364: INV_LOG_UTIL.trace
4365: ( 'Batch Alloc(l_batch_size)'||l_batch_size,'INV_CONSUMPTION_ADVICE_PROC'
4361: ( 'Batch Alloc(l_group_size)'||l_group_size,'INV_CONSUMPTION_ADVICE_PROC'
4362: , 9
4363: );
4364: INV_LOG_UTIL.trace
4365: ( 'Batch Alloc(l_batch_size)'||l_batch_size,'INV_CONSUMPTION_ADVICE_PROC'
4366: , 9
4367: );
4368: END IF;
4369:
4373:
4374: IF (l_debug = 1)
4375: THEN
4376: INV_LOG_UTIL.trace
4377: ( 'Batch Alloc(l_group_size)'||l_group_size,'INV_CONSUMPTION_ADVICE_PROC'
4378: , 9
4379: );
4380: END IF;
4381:
4391:
4392: IF (l_debug = 1)
4393: THEN
4394: INV_LOG_UTIL.trace
4395: ( 'Batch Alloc(l_current_batch_id)'||l_current_batch_id,'INV_CONSUMPTION_ADVICE_PROC'
4396: , 9
4397: );
4398: INV_LOG_UTIL.trace
4399: ( 'Batch Alloc(l_remain_batch_count)'||l_remain_batch_count,'INV_CONSUMPTION_ADVICE_PROC'
4395: ( 'Batch Alloc(l_current_batch_id)'||l_current_batch_id,'INV_CONSUMPTION_ADVICE_PROC'
4396: , 9
4397: );
4398: INV_LOG_UTIL.trace
4399: ( 'Batch Alloc(l_remain_batch_count)'||l_remain_batch_count,'INV_CONSUMPTION_ADVICE_PROC'
4400: , 9
4401: );
4402: END IF;
4403:
4412:
4413: IF (l_debug = 1)
4414: THEN
4415: INV_LOG_UTIL.trace
4416: ( 'Batch Alloc(l_current_cons_index)'||l_current_cons_index,'INV_CONSUMPTION_ADVICE_PROC'
4417: , 9
4418: );
4419: INV_LOG_UTIL.trace
4420: ( 'Batch Alloc(l_batch_count)'||l_batch_count,'INV_CONSUMPTION_ADVICE_PROC'
4416: ( 'Batch Alloc(l_current_cons_index)'||l_current_cons_index,'INV_CONSUMPTION_ADVICE_PROC'
4417: , 9
4418: );
4419: INV_LOG_UTIL.trace
4420: ( 'Batch Alloc(l_batch_count)'||l_batch_count,'INV_CONSUMPTION_ADVICE_PROC'
4421: , 9
4422: );
4423: END IF;
4424:
4425: END LOOP;
4426:
4427: -- Return control when all concurrent programs have completed
4428:
4429: INV_CONSUMPTION_ADVICE_PROC.wait_for_all_workers
4430: ( p_workers => l_workers_tbl
4431: );
4432:
4433: IF (l_debug = 1)
4432:
4433: IF (l_debug = 1)
4434: THEN
4435: INV_LOG_UTIL.trace
4436: ( '<< Batch Allocation','INV_CONSUMPTION_ADVICE_PROC'
4437: , 9
4438: );
4439: END IF;
4440:
4443:
4444: WHEN OTHERS THEN
4445: IF (l_debug = 1) THEN
4446: INV_LOG_UTIL.trace
4447: ( SQLCODE || ' : ' || SQLERRM ,'INV_CONSUMPTION_ADVICE_PROC'
4448: , 9
4449: );
4450: END IF;
4451:
4511:
4512: IF (l_debug = 1)
4513: THEN
4514: INV_LOG_UTIL.trace
4515: ( '>> Consumption Txn Manager','INV_CONSUMPTION_ADVICE_PROC'
4516: , 9
4517: );
4518: INV_LOG_UTIL.trace
4519: ( '>> p_batch_size: '|| p_batch_size,'INV_CONSUMPTION_ADVICE_PROC'
4515: ( '>> Consumption Txn Manager','INV_CONSUMPTION_ADVICE_PROC'
4516: , 9
4517: );
4518: INV_LOG_UTIL.trace
4519: ( '>> p_batch_size: '|| p_batch_size,'INV_CONSUMPTION_ADVICE_PROC'
4520: , 9
4521: );
4522: INV_LOG_UTIL.trace
4523: ( '>> p_max_workers: '||p_max_workers,'INV_CONSUMPTION_ADVICE_PROC'
4519: ( '>> p_batch_size: '|| p_batch_size,'INV_CONSUMPTION_ADVICE_PROC'
4520: , 9
4521: );
4522: INV_LOG_UTIL.trace
4523: ( '>> p_max_workers: '||p_max_workers,'INV_CONSUMPTION_ADVICE_PROC'
4524: , 9
4525: );
4526: INV_LOG_UTIL.trace
4527: ( '>> p_vendor_id: '||p_vendor_id,'INV_CONSUMPTION_ADVICE_PROC'
4523: ( '>> p_max_workers: '||p_max_workers,'INV_CONSUMPTION_ADVICE_PROC'
4524: , 9
4525: );
4526: INV_LOG_UTIL.trace
4527: ( '>> p_vendor_id: '||p_vendor_id,'INV_CONSUMPTION_ADVICE_PROC'
4528: , 9
4529: );
4530: INV_LOG_UTIL.trace
4531: ( '>> p_vendor_site_id: '||p_vendor_site_id,'INV_CONSUMPTION_ADVICE_PROC'
4527: ( '>> p_vendor_id: '||p_vendor_id,'INV_CONSUMPTION_ADVICE_PROC'
4528: , 9
4529: );
4530: INV_LOG_UTIL.trace
4531: ( '>> p_vendor_site_id: '||p_vendor_site_id,'INV_CONSUMPTION_ADVICE_PROC'
4532: , 9
4533: );
4534: INV_LOG_UTIL.trace
4535: ( '>> p_inventory_item_id: '||p_inventory_item_id,'INV_CONSUMPTION_ADVICE_PROC'
4531: ( '>> p_vendor_site_id: '||p_vendor_site_id,'INV_CONSUMPTION_ADVICE_PROC'
4532: , 9
4533: );
4534: INV_LOG_UTIL.trace
4535: ( '>> p_inventory_item_id: '||p_inventory_item_id,'INV_CONSUMPTION_ADVICE_PROC'
4536: , 9
4537: );
4538: INV_LOG_UTIL.trace
4539: ( '>> p_organization_id: '||p_organization_id,'INV_CONSUMPTION_ADVICE_PROC'
4535: ( '>> p_inventory_item_id: '||p_inventory_item_id,'INV_CONSUMPTION_ADVICE_PROC'
4536: , 9
4537: );
4538: INV_LOG_UTIL.trace
4539: ( '>> p_organization_id: '||p_organization_id,'INV_CONSUMPTION_ADVICE_PROC'
4540: , 9
4541: );
4542:
4543: END IF;
4554: );
4555: END IF;
4556:
4557: -- Bug 11900144
4558: INV_CONSUMPTION_ADVICE_PROC.populate_po_line_id();
4559:
4560: /* Bug 14036045. Performance issue. Modified below query and checking whether record exists or not.*/
4561: begin
4562: select 1 into l_count from dual
4581:
4582: IF (l_debug = 1)
4583: THEN
4584: INV_LOG_UTIL.trace
4585: ( '<< CA Mgr , l_count exists :'||l_count,'INV_CONSUMPTION_ADVICE_PROC'
4586: , 9
4587: );
4588: INV_LOG_UTIL.trace
4589: ( '<< CA Mgr(batch_id):'||l_batch_id,'INV_CONSUMPTION_ADVICE_PROC'
4585: ( '<< CA Mgr , l_count exists :'||l_count,'INV_CONSUMPTION_ADVICE_PROC'
4586: , 9
4587: );
4588: INV_LOG_UTIL.trace
4589: ( '<< CA Mgr(batch_id):'||l_batch_id,'INV_CONSUMPTION_ADVICE_PROC'
4590: , 9
4591: );
4592: END IF;
4593:
4628: -- Deleted unused commeneted code as part of bug 11900144
4629:
4630: IF NVL(FND_PROFILE.value('INV_SUPPLIER_CONSIGNED_GROUPING'),'N') = 'N'
4631: THEN
4632: INV_CONSUMPTION_ADVICE_PROC.load_combination_prf
4633: (p_batch_id => l_batch_id
4634: ,p_vendor_id => p_vendor_id
4635: ,p_vendor_site_id => p_vendor_site_id
4636: ,p_inventory_item_id => p_inventory_item_id
4635: ,p_vendor_site_id => p_vendor_site_id
4636: ,p_inventory_item_id => p_inventory_item_id
4637: ,p_organization_id => p_organization_id);
4638: ELSE
4639: INV_CONSUMPTION_ADVICE_PROC.load_combination
4640: (p_batch_id => l_batch_id
4641: ,p_vendor_id => p_vendor_id
4642: ,p_vendor_site_id => p_vendor_site_id
4643: ,p_inventory_item_id => p_inventory_item_id
4651:
4652: IF (l_debug = 1)
4653: THEN
4654: INV_LOG_UTIL.trace
4655: ( 'Calling Batch Allocation(size) '||p_batch_size,'INV_CONSUMPTION_ADVICE_PROC'
4656: , 9
4657: );
4658: INV_LOG_UTIL.trace
4659: ( 'Workers '||p_max_workers,'INV_CONSUMPTION_ADVICE_PROC'
4655: ( 'Calling Batch Allocation(size) '||p_batch_size,'INV_CONSUMPTION_ADVICE_PROC'
4656: , 9
4657: );
4658: INV_LOG_UTIL.trace
4659: ( 'Workers '||p_max_workers,'INV_CONSUMPTION_ADVICE_PROC'
4660: , 9
4661: );
4662: END IF;
4663:
4660: , 9
4661: );
4662: END IF;
4663:
4664: INV_CONSUMPTION_ADVICE_PROC.batch_allocation
4665: (p_batch_size => p_batch_size
4666: ,p_max_workers => p_max_workers);
4667:
4668: IF (l_debug = 1)
4679:
4680: IF (l_debug = 1)
4681: THEN
4682: INV_LOG_UTIL.trace
4683: ( '<< Consumption Txn Manager','INV_CONSUMPTION_ADVICE_PROC'
4684: , 9
4685: );
4686: END IF;
4687:
4689:
4690: WHEN OTHERS THEN
4691: IF (l_debug = 1) THEN
4692: INV_LOG_UTIL.trace
4693: ( SQLCODE || ' : ' || SQLERRM ,'INV_CONSUMPTION_ADVICE_PROC'
4694: , 9
4695: );
4696: END IF;
4697:
4700: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4701:
4702: END consumption_txn_manager;
4703:
4704: END INV_CONSUMPTION_ADVICE_PROC;