583: l_msg_data VARCHAR2(4000);
584: l_module CONSTANT VARCHAR2(100) := 'dpp.plsql.DPP_BUSINESSEVENTS_PVT.RAISE_BUSINESS_EVENT';
585:
586: l_input_xml CLOB;
587: l_queryCtx dbms_xmlquery.ctxType;
588: l_table_count NUMBER;
589: l_row_count NUMBER := 0;
590: l_exe_dtl_id NUMBER;
591: l_user_id NUMBER := FND_GLOBAL.USER_ID;
792: END IF;
793:
794: IF p_txn_hdr_rec.process_code = 'UPDTLP' THEN
795: --Generate the Input Xml required for the Business Event -- UpdateListPrice
796: l_queryCtx := dbms_xmlquery.newContext('SELECT Transaction_header_id,
797: transaction_number,
798: org_id,
799: Vendor_id,'
800: ||l_user_name|| ' user_name, '
814: FROM dpp_transaction_lines_all
815: WHERE Transaction_header_id = '||p_txn_hdr_rec.Transaction_Header_ID||'
816: AND nvl(UPDATE_ITEM_LIST_PRICE,''N'') = ''N'')'
817: );
818: dbms_xmlquery.setRowTag(l_queryCtx
819: , 'HEADER'
820: );
821: dbms_xmlquery.setRowSetTag(l_queryCtx
822: ,'TRANSACTION'
817: );
818: dbms_xmlquery.setRowTag(l_queryCtx
819: , 'HEADER'
820: );
821: dbms_xmlquery.setRowSetTag(l_queryCtx
822: ,'TRANSACTION'
823: );
824: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
825: --Check if the query returns any rows
820: );
821: dbms_xmlquery.setRowSetTag(l_queryCtx
822: ,'TRANSACTION'
823: );
824: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
825: --Check if the query returns any rows
826: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
827: dbms_xmlquery.closeContext(l_queryCtx);
828:
822: ,'TRANSACTION'
823: );
824: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
825: --Check if the query returns any rows
826: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
827: dbms_xmlquery.closeContext(l_queryCtx);
828:
829: IF l_row_count >0 THEN
830: --Update the line status to PENDING in the DPP_TRANSACTION_LINES_ALL table
823: );
824: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
825: --Check if the query returns any rows
826: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
827: dbms_xmlquery.closeContext(l_queryCtx);
828:
829: IF l_row_count >0 THEN
830: --Update the line status to PENDING in the DPP_TRANSACTION_LINES_ALL table
831: UPDATE DPP_TRANSACTION_LINES_ALL
845:
846: END IF;
847: ELSIF p_txn_hdr_rec.process_code = 'OUTPL' OR p_txn_hdr_rec.process_code = 'CNCL_OUTPL' THEN
848: --Generate the Input Xml required for the Business-- Event Send Notification for Outbound Price lists
849: l_queryCtx := dbms_xmlquery.newContext('SELECT Transaction_header_id,
850: '''||L_CANCEL||''' CANCEL_TXN,
851: Transaction_number,
852: to_char(Effective_start_date,''YYYY-MM-DD'') Effectivity_date,
853: org_id,
869: FROM dpp_transaction_lines_all
870: WHERE Transaction_header_id = '||p_txn_hdr_rec.Transaction_Header_ID||'
871: AND nvl(NOTIFY_OUTBOUND_PRICELIST,''N'') <> ''D'')'
872: );
873: dbms_xmlquery.setRowTag(l_queryCtx
874: , 'HEADER'
875: );
876: dbms_xmlquery.setRowSetTag(l_queryCtx
877: ,'TRANSACTION'
872: );
873: dbms_xmlquery.setRowTag(l_queryCtx
874: , 'HEADER'
875: );
876: dbms_xmlquery.setRowSetTag(l_queryCtx
877: ,'TRANSACTION'
878: );
879: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
880: --Check if the query returns any rows
875: );
876: dbms_xmlquery.setRowSetTag(l_queryCtx
877: ,'TRANSACTION'
878: );
879: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
880: --Check if the query returns any rows
881: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
882: dbms_xmlquery.closeContext(l_queryCtx);
883:
877: ,'TRANSACTION'
878: );
879: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
880: --Check if the query returns any rows
881: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
882: dbms_xmlquery.closeContext(l_queryCtx);
883:
884: IF l_row_count >0 THEN
885: --Update the line status to PENDING in the DPP_TRANSACTION_LINES_ALL table
878: );
879: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
880: --Check if the query returns any rows
881: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
882: dbms_xmlquery.closeContext(l_queryCtx);
883:
884: IF l_row_count >0 THEN
885: --Update the line status to PENDING in the DPP_TRANSACTION_LINES_ALL table
886: UPDATE DPP_TRANSACTION_LINES_ALL
936: END IF;
937: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
938: END;
939: --Generate the Input Xml required for the Business Event --Update Claim
940: l_queryCtx := dbms_xmlquery.newContext('SELECT Transaction_header_id,
941: Transaction_number,
942: Vendor_id,
943: org_id,
944: Vendor_site_id,'
961: AND lines.supp_dist_claim_id = '||p_txn_hdr_rec.claim_id||') LINES
962: FROM dpp_transaction_headers_all headers
963: WHERE headers.Transaction_header_id = ' ||p_txn_hdr_rec.Transaction_Header_ID
964: );
965: dbms_xmlquery.setRowTag(l_queryCtx
966: , 'HEADER'
967: );
968: dbms_xmlquery.setRowSetTag(l_queryCtx
969: ,'TRANSACTION'
964: );
965: dbms_xmlquery.setRowTag(l_queryCtx
966: , 'HEADER'
967: );
968: dbms_xmlquery.setRowSetTag(l_queryCtx
969: ,'TRANSACTION'
970: );
971: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
972: --Check if the query returns any rows
967: );
968: dbms_xmlquery.setRowSetTag(l_queryCtx
969: ,'TRANSACTION'
970: );
971: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
972: --Check if the query returns any rows
973: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
974: dbms_xmlquery.closeContext(l_queryCtx);
975:
969: ,'TRANSACTION'
970: );
971: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
972: --Check if the query returns any rows
973: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
974: dbms_xmlquery.closeContext(l_queryCtx);
975:
976: ELSIF p_txn_hdr_rec.process_code = 'INPL' OR p_txn_hdr_rec.process_code = 'CNCL_INPL' THEN
977: --Generate the Input Xml required for the Business Event -- Send Notification for Inbound Price lists
970: );
971: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
972: --Check if the query returns any rows
973: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
974: dbms_xmlquery.closeContext(l_queryCtx);
975:
976: ELSIF p_txn_hdr_rec.process_code = 'INPL' OR p_txn_hdr_rec.process_code = 'CNCL_INPL' THEN
977: --Generate the Input Xml required for the Business Event -- Send Notification for Inbound Price lists
978: l_queryCtx := dbms_xmlquery.newContext('SELECT Transaction_header_id,
974: dbms_xmlquery.closeContext(l_queryCtx);
975:
976: ELSIF p_txn_hdr_rec.process_code = 'INPL' OR p_txn_hdr_rec.process_code = 'CNCL_INPL' THEN
977: --Generate the Input Xml required for the Business Event -- Send Notification for Inbound Price lists
978: l_queryCtx := dbms_xmlquery.newContext('SELECT Transaction_header_id,
979: '''||L_CANCEL||''' CANCEL_TXN,
980: Transaction_number,
981: to_char(Effective_start_date,''YYYY-MM-DD'') Effectivity_date,
982: org_id,
998: FROM dpp_transaction_lines_all
999: WHERE Transaction_header_id = '||p_txn_hdr_rec.Transaction_Header_ID||'
1000: AND nvl(NOTIFY_INBOUND_PRICELIST,''N'') <> ''D'')'
1001: );
1002: dbms_xmlquery.setRowTag(l_queryCtx
1003: , 'HEADER'
1004: );
1005: dbms_xmlquery.setRowSetTag(l_queryCtx
1006: ,'TRANSACTION'
1001: );
1002: dbms_xmlquery.setRowTag(l_queryCtx
1003: , 'HEADER'
1004: );
1005: dbms_xmlquery.setRowSetTag(l_queryCtx
1006: ,'TRANSACTION'
1007: );
1008: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1009: --Check if the query returns any rows
1004: );
1005: dbms_xmlquery.setRowSetTag(l_queryCtx
1006: ,'TRANSACTION'
1007: );
1008: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1009: --Check if the query returns any rows
1010: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1011: dbms_xmlquery.closeContext(l_queryCtx);
1012:
1006: ,'TRANSACTION'
1007: );
1008: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1009: --Check if the query returns any rows
1010: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1011: dbms_xmlquery.closeContext(l_queryCtx);
1012:
1013: IF l_row_count >0 THEN
1014: --Update the line status to PENDING in the DPP_TRANSACTION_LINES_ALL table
1007: );
1008: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1009: --Check if the query returns any rows
1010: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1011: dbms_xmlquery.closeContext(l_queryCtx);
1012:
1013: IF l_row_count >0 THEN
1014: --Update the line status to PENDING in the DPP_TRANSACTION_LINES_ALL table
1015: UPDATE DPP_TRANSACTION_LINES_ALL
1029: END IF;
1030:
1031: ELSIF p_txn_hdr_rec.process_code = 'PROMO' OR p_txn_hdr_rec.process_code = 'CNCL_PROMO' THEN
1032: --Generate the Input Xml required for the Business Event -- Send Notification for Offers
1033: l_queryCtx := dbms_xmlquery.newContext('SELECT Transaction_header_id,
1034: '''||L_CANCEL||''' CANCEL_TXN,
1035: Transaction_number,
1036: to_char(Effective_start_date,''YYYY-MM-DD'') Effectivity_date,
1037: org_id,
1053: FROM dpp_transaction_lines_all
1054: WHERE Transaction_header_id = '||p_txn_hdr_rec.Transaction_Header_ID||'
1055: AND nvl(NOTIFY_PROMOTIONS_PRICELIST,''N'') <> ''D'')'
1056: );
1057: dbms_xmlquery.setRowTag(l_queryCtx
1058: , 'HEADER'
1059: );
1060: dbms_xmlquery.setRowSetTag(l_queryCtx
1061: ,'TRANSACTION'
1056: );
1057: dbms_xmlquery.setRowTag(l_queryCtx
1058: , 'HEADER'
1059: );
1060: dbms_xmlquery.setRowSetTag(l_queryCtx
1061: ,'TRANSACTION'
1062: );
1063: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1064: --Check if the query returns any rows
1059: );
1060: dbms_xmlquery.setRowSetTag(l_queryCtx
1061: ,'TRANSACTION'
1062: );
1063: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1064: --Check if the query returns any rows
1065: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1066: dbms_xmlquery.closeContext(l_queryCtx);
1067:
1061: ,'TRANSACTION'
1062: );
1063: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1064: --Check if the query returns any rows
1065: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1066: dbms_xmlquery.closeContext(l_queryCtx);
1067:
1068: IF l_row_count >0 THEN
1069: --Update the line status to PENDING in the DPP_TRANSACTION_LINES_ALL table
1062: );
1063: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1064: --Check if the query returns any rows
1065: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1066: dbms_xmlquery.closeContext(l_queryCtx);
1067:
1068: IF l_row_count >0 THEN
1069: --Update the line status to PENDING in the DPP_TRANSACTION_LINES_ALL table
1070: UPDATE DPP_TRANSACTION_LINES_ALL
1146: IF l_cost_adj_acct IS NOT NULL THEN
1147: DPP_UTILITY_PVT.debug_message(FND_LOG.LEVEL_STATEMENT, l_module, 'Cost Adjustment Account : ' ||l_cost_adj_acct);
1148:
1149: --Generate the Input Xml required for the Business Event -- Update Inventory Costing
1150: l_queryCtx := dbms_xmlquery.newContext('SELECT Transaction_header_id,
1151: Transaction_number,
1152: org_id,'
1153: ||l_user_name|| ' user_name, '
1154: ||l_user_id||'user_id,'
1169: FROM dpp_transaction_lines_all
1170: WHERE Transaction_header_id = '||p_txn_hdr_rec.Transaction_Header_ID||'
1171: AND nvl(UPDATE_INVENTORY_COSTING,''N'') = ''N'')'
1172: );
1173: dbms_xmlquery.setRowTag(l_queryCtx
1174: , 'HEADER'
1175: );
1176: dbms_xmlquery.setRowSetTag(l_queryCtx
1177: ,'TRANSACTION'
1172: );
1173: dbms_xmlquery.setRowTag(l_queryCtx
1174: , 'HEADER'
1175: );
1176: dbms_xmlquery.setRowSetTag(l_queryCtx
1177: ,'TRANSACTION'
1178: );
1179: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1180: --Check if the query returns any rows
1175: );
1176: dbms_xmlquery.setRowSetTag(l_queryCtx
1177: ,'TRANSACTION'
1178: );
1179: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1180: --Check if the query returns any rows
1181: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1182: dbms_xmlquery.closeContext(l_queryCtx);
1183:
1177: ,'TRANSACTION'
1178: );
1179: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1180: --Check if the query returns any rows
1181: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1182: dbms_xmlquery.closeContext(l_queryCtx);
1183:
1184: IF l_row_count >0 THEN
1185: --Update the line status to PENDING in the DPP_TRANSACTION_LINES_ALL table
1178: );
1179: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1180: --Check if the query returns any rows
1181: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1182: dbms_xmlquery.closeContext(l_queryCtx);
1183:
1184: IF l_row_count >0 THEN
1185: --Update the line status to PENDING in the DPP_TRANSACTION_LINES_ALL table
1186: UPDATE DPP_TRANSACTION_LINES_ALL
1211: END IF;
1212:
1213: ELSIF p_txn_hdr_rec.process_code = 'NTFYPO' OR p_txn_hdr_rec.process_code = 'CNCL_NTFYPO' THEN
1214: --Generate the Input Xml required for the Business-- Event Send Notifications for Purchase Orders
1215: l_queryCtx := dbms_xmlquery.newContext('SELECT Transaction_header_id,
1216: '''||L_CANCEL||''' CANCEL_TXN,
1217: Transaction_number,
1218: org_id,
1219: to_char(Effective_start_date,''YYYY-MM-DD'') Effectivity_date,
1236: FROM dpp_transaction_lines_all
1237: WHERE Transaction_header_id = '||p_txn_hdr_rec.Transaction_Header_ID||'
1238: AND nvl(NOTIFY_PURCHASING_DOCS,''N'') <> ''D'')'
1239: );
1240: dbms_xmlquery.setRowTag(l_queryCtx
1241: , 'HEADER'
1242: );
1243: dbms_xmlquery.setRowSetTag(l_queryCtx
1244: ,'TRANSACTION'
1239: );
1240: dbms_xmlquery.setRowTag(l_queryCtx
1241: , 'HEADER'
1242: );
1243: dbms_xmlquery.setRowSetTag(l_queryCtx
1244: ,'TRANSACTION'
1245: );
1246: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1247: --Check if the query returns any rows
1242: );
1243: dbms_xmlquery.setRowSetTag(l_queryCtx
1244: ,'TRANSACTION'
1245: );
1246: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1247: --Check if the query returns any rows
1248: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1249: dbms_xmlquery.closeContext(l_queryCtx);
1250:
1244: ,'TRANSACTION'
1245: );
1246: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1247: --Check if the query returns any rows
1248: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1249: dbms_xmlquery.closeContext(l_queryCtx);
1250:
1251: IF l_row_count >0 THEN
1252: --Update the line status to PENDING in the DPP_TRANSACTION_LINES_ALL table
1245: );
1246: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1247: --Check if the query returns any rows
1248: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1249: dbms_xmlquery.closeContext(l_queryCtx);
1250:
1251: IF l_row_count >0 THEN
1252: --Update the line status to PENDING in the DPP_TRANSACTION_LINES_ALL table
1253: UPDATE DPP_TRANSACTION_LINES_ALL
1266: END IF;
1267: END IF;
1268: ELSIF p_txn_hdr_rec.process_code = 'UPDTPO' THEN
1269: --Generate the Input Xml required for the Business Event -- Update Purchasing - Purchase Orders
1270: l_queryCtx := dbms_xmlquery.newContext('SELECT Transaction_header_id,
1271: Transaction_number,
1272: org_id,
1273: Vendor_id,'
1274: ||l_user_name|| ' user_name, '
1288: FROM dpp_transaction_lines_all
1289: WHERE Transaction_header_id = '||p_txn_hdr_rec.Transaction_Header_ID||'
1290: AND nvl(UPDATE_PURCHASING_DOCS,''N'') = ''N'')'
1291: );
1292: dbms_xmlquery.setRowTag(l_queryCtx
1293: , 'HEADER'
1294: );
1295: dbms_xmlquery.setRowSetTag(l_queryCtx
1296: ,'TRANSACTION'
1291: );
1292: dbms_xmlquery.setRowTag(l_queryCtx
1293: , 'HEADER'
1294: );
1295: dbms_xmlquery.setRowSetTag(l_queryCtx
1296: ,'TRANSACTION'
1297: );
1298: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1299: --Check if the query returns any rows
1294: );
1295: dbms_xmlquery.setRowSetTag(l_queryCtx
1296: ,'TRANSACTION'
1297: );
1298: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1299: --Check if the query returns any rows
1300: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1301: dbms_xmlquery.closeContext(l_queryCtx);
1302:
1296: ,'TRANSACTION'
1297: );
1298: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1299: --Check if the query returns any rows
1300: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1301: dbms_xmlquery.closeContext(l_queryCtx);
1302:
1303: IF l_row_count >0 THEN
1304: --Update the line status to PENDING in the DPP_TRANSACTION_LINES_ALL table
1297: );
1298: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1299: --Check if the query returns any rows
1300: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1301: dbms_xmlquery.closeContext(l_queryCtx);
1302:
1303: IF l_row_count >0 THEN
1304: --Update the line status to PENDING in the DPP_TRANSACTION_LINES_ALL table
1305: UPDATE DPP_TRANSACTION_LINES_ALL
1361: dtla_price_change := 'nvl(dtla.price_change,0) <> 0';
1362: END IF;
1363:
1364: --Generate the Input Xml required for the Business Event -- Create On-Hand Inventory claim
1365: l_queryCtx := dbms_xmlquery.newContext('SELECT headers.Transaction_header_id,
1366: headers.Transaction_number,
1367: headers.Vendor_id,
1368: headers.org_id,
1369: headers.Vendor_site_id,'
1395: AND nvl(dtla.SUPP_DIST_CLAIM_STATUS,''N'') = ''N''
1396: AND '||dtla_price_change||'
1397: AND nvl(dtla.approved_inventory,0) > 0)'
1398: );
1399: dbms_xmlquery.setRowTag(l_queryCtx
1400: , 'HEADER'
1401: );
1402: dbms_xmlquery.setRowSetTag(l_queryCtx
1403: ,'TRANSACTION'
1398: );
1399: dbms_xmlquery.setRowTag(l_queryCtx
1400: , 'HEADER'
1401: );
1402: dbms_xmlquery.setRowSetTag(l_queryCtx
1403: ,'TRANSACTION'
1404: );
1405: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1406: --Check if the query returns any rows
1401: );
1402: dbms_xmlquery.setRowSetTag(l_queryCtx
1403: ,'TRANSACTION'
1404: );
1405: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1406: --Check if the query returns any rows
1407: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1408: dbms_xmlquery.closeContext(l_queryCtx);
1409:
1403: ,'TRANSACTION'
1404: );
1405: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1406: --Check if the query returns any rows
1407: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1408: dbms_xmlquery.closeContext(l_queryCtx);
1409:
1410: IF l_row_count >0 THEN
1411: IF p_txn_hdr_rec.claim_creation_source = 'EXEDTLS' THEN
1404: );
1405: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1406: --Check if the query returns any rows
1407: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1408: dbms_xmlquery.closeContext(l_queryCtx);
1409:
1410: IF l_row_count >0 THEN
1411: IF p_txn_hdr_rec.claim_creation_source = 'EXEDTLS' THEN
1412:
1470: END IF; --p_txn_hdr_rec.claim_creation_source = 'EXEDTLS'
1471: END IF;
1472: ELSIF p_txn_hdr_rec.process_code = 'CUSTINVCL' THEN
1473: --Generate the Input Xml required for the Business Event -- Create Customer Inventory claim for distributor
1474: l_queryCtx := dbms_xmlquery.newContext('SELECT headers.Transaction_header_id,
1475: headers.Transaction_number,
1476: headers.org_id,
1477: headers.Vendor_id,
1478: headers.Vendor_site_id,'
1505: AND nvl(dcca.supplier_claim_created,''N'') = ''N''
1506: AND nvl(dcca.reported_inventory,0) > 0
1507: AND nvl(dcca.supp_claim_amt,0) > 0)'
1508: );
1509: dbms_xmlquery.setRowTag(l_queryCtx
1510: , 'HEADER'
1511: );
1512: dbms_xmlquery.setRowSetTag(l_queryCtx
1513: ,'TRANSACTION'
1508: );
1509: dbms_xmlquery.setRowTag(l_queryCtx
1510: , 'HEADER'
1511: );
1512: dbms_xmlquery.setRowSetTag(l_queryCtx
1513: ,'TRANSACTION'
1514: );
1515: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1516: --Check if the query returns any rows
1511: );
1512: dbms_xmlquery.setRowSetTag(l_queryCtx
1513: ,'TRANSACTION'
1514: );
1515: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1516: --Check if the query returns any rows
1517: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1518: dbms_xmlquery.closeContext(l_queryCtx);
1519:
1513: ,'TRANSACTION'
1514: );
1515: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1516: --Check if the query returns any rows
1517: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1518: dbms_xmlquery.closeContext(l_queryCtx);
1519:
1520: IF l_row_count >0 THEN
1521: IF p_txn_hdr_rec.claim_creation_source = 'EXEDTLS' THEN
1514: );
1515: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1516: --Check if the query returns any rows
1517: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1518: dbms_xmlquery.closeContext(l_queryCtx);
1519:
1520: IF l_row_count >0 THEN
1521: IF p_txn_hdr_rec.claim_creation_source = 'EXEDTLS' THEN
1522: --Update the line status to PENDING in the DPP_customer_claims_all table
1550: END IF; --IF p_txn_hdr_rec.claim_creation_source = 'EXEDTLS' THEN
1551: END IF;
1552: ELSIF p_txn_hdr_rec.process_code = 'CUSTCL' THEN
1553: --Generate the Input Xml required for the Business Event -- Create Customer Inventory claim for customer
1554: l_queryCtx := dbms_xmlquery.newContext('SELECT headers.Transaction_header_id,
1555: headers.Transaction_number,
1556: headers.org_id,
1557: headers.Vendor_id,
1558: headers.Vendor_site_id,'
1585: AND nvl(dcca.customer_claim_created,''N'') = ''N''
1586: AND nvl(dcca.reported_inventory,0) > 0
1587: AND nvl(dcca.cust_claim_amt,0) > 0)'
1588: );
1589: dbms_xmlquery.setRowTag(l_queryCtx
1590: , 'HEADER'
1591: );
1592: dbms_xmlquery.setRowSetTag(l_queryCtx
1593: ,'TRANSACTION'
1588: );
1589: dbms_xmlquery.setRowTag(l_queryCtx
1590: , 'HEADER'
1591: );
1592: dbms_xmlquery.setRowSetTag(l_queryCtx
1593: ,'TRANSACTION'
1594: );
1595: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1596: --Check if the query returns any rows
1591: );
1592: dbms_xmlquery.setRowSetTag(l_queryCtx
1593: ,'TRANSACTION'
1594: );
1595: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1596: --Check if the query returns any rows
1597: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1598: dbms_xmlquery.closeContext(l_queryCtx);
1599:
1593: ,'TRANSACTION'
1594: );
1595: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1596: --Check if the query returns any rows
1597: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1598: dbms_xmlquery.closeContext(l_queryCtx);
1599:
1600: ELSIF p_txn_hdr_rec.process_code = 'POPCUSTCLAIM' THEN
1601: --Generate the Input Xml required for the Business Event -- Populate Customer Claim lines details
1594: );
1595: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1596: --Check if the query returns any rows
1597: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1598: dbms_xmlquery.closeContext(l_queryCtx);
1599:
1600: ELSIF p_txn_hdr_rec.process_code = 'POPCUSTCLAIM' THEN
1601: --Generate the Input Xml required for the Business Event -- Populate Customer Claim lines details
1602: l_queryCtx := dbms_xmlquery.newContext('SELECT Transaction_header_id,
1598: dbms_xmlquery.closeContext(l_queryCtx);
1599:
1600: ELSIF p_txn_hdr_rec.process_code = 'POPCUSTCLAIM' THEN
1601: --Generate the Input Xml required for the Business Event -- Populate Customer Claim lines details
1602: l_queryCtx := dbms_xmlquery.newContext('SELECT Transaction_header_id,
1603: Transaction_number,
1604: org_id,
1605: nvl(to_char(effective_start_date-days_covered,''YYYY-MM-DD''),''1900-01-01'' ) EFFECTIVE_START_DATE,
1606: to_char(Effective_start_date,''YYYY-MM-DD'') effective_end_date,
1620: FROM dpp_transaction_lines_all
1621: WHERE price_change > 0
1622: AND Transaction_header_id = '||p_txn_hdr_rec.Transaction_Header_ID||')'
1623: );
1624: dbms_xmlquery.setRowTag(l_queryCtx
1625: , 'HEADER'
1626: );
1627: dbms_xmlquery.setRowSetTag(l_queryCtx
1628: ,'TRANSACTION'
1623: );
1624: dbms_xmlquery.setRowTag(l_queryCtx
1625: , 'HEADER'
1626: );
1627: dbms_xmlquery.setRowSetTag(l_queryCtx
1628: ,'TRANSACTION'
1629: );
1630: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1631: --Check if the query returns any rows
1626: );
1627: dbms_xmlquery.setRowSetTag(l_queryCtx
1628: ,'TRANSACTION'
1629: );
1630: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1631: --Check if the query returns any rows
1632: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1633: dbms_xmlquery.closeContext(l_queryCtx);
1634:
1628: ,'TRANSACTION'
1629: );
1630: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1631: --Check if the query returns any rows
1632: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1633: dbms_xmlquery.closeContext(l_queryCtx);
1634:
1635: ELSIF p_txn_hdr_rec.process_code = 'POPINVDTLS' THEN
1636: --Generate the Input Xml required for the Business Event --Populate Inventory Details
1629: );
1630: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1631: --Check if the query returns any rows
1632: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1633: dbms_xmlquery.closeContext(l_queryCtx);
1634:
1635: ELSIF p_txn_hdr_rec.process_code = 'POPINVDTLS' THEN
1636: --Generate the Input Xml required for the Business Event --Populate Inventory Details
1637: l_queryCtx := dbms_xmlquery.newContext('SELECT Transaction_header_id,
1633: dbms_xmlquery.closeContext(l_queryCtx);
1634:
1635: ELSIF p_txn_hdr_rec.process_code = 'POPINVDTLS' THEN
1636: --Generate the Input Xml required for the Business Event --Populate Inventory Details
1637: l_queryCtx := dbms_xmlquery.newContext('SELECT Transaction_header_id,
1638: Transaction_number,
1639: org_id,
1640: nvl(to_char(effective_start_date-days_covered,''YYYY-MM-DD''),''1900-01-01'' ) EFFECTIVE_START_DATE,
1641: to_char(Effective_start_date,''YYYY-MM-DD'') effective_end_date,'
1651: 'AND EXISTS (SELECT Transaction_header_id
1652: FROM dpp_transaction_lines_all
1653: WHERE Transaction_header_id = '||p_txn_hdr_rec.Transaction_Header_ID||')'
1654: );
1655: dbms_xmlquery.setRowTag(l_queryCtx
1656: , 'HEADER'
1657: );
1658: dbms_xmlquery.setRowSetTag(l_queryCtx
1659: ,'TRANSACTION'
1654: );
1655: dbms_xmlquery.setRowTag(l_queryCtx
1656: , 'HEADER'
1657: );
1658: dbms_xmlquery.setRowSetTag(l_queryCtx
1659: ,'TRANSACTION'
1660: );
1661: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1662: --Check if the query returns any rows
1657: );
1658: dbms_xmlquery.setRowSetTag(l_queryCtx
1659: ,'TRANSACTION'
1660: );
1661: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1662: --Check if the query returns any rows
1663: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1664: dbms_xmlquery.closeContext(l_queryCtx);
1665: ELSE
1659: ,'TRANSACTION'
1660: );
1661: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1662: --Check if the query returns any rows
1663: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1664: dbms_xmlquery.closeContext(l_queryCtx);
1665: ELSE
1666: FND_MESSAGE.set_name('DPP', 'DPP_BUSEVT_INVALID_PRO_CODE');
1667: fnd_message.set_token('PROCESS_CODE', p_txn_hdr_rec.process_code);
1660: );
1661: l_input_xml := dbms_xmlquery.getXml(l_queryCtx);
1662: --Check if the query returns any rows
1663: l_row_count := dbms_xmlquery.getNumRowsProcessed(l_queryCtx);
1664: dbms_xmlquery.closeContext(l_queryCtx);
1665: ELSE
1666: FND_MESSAGE.set_name('DPP', 'DPP_BUSEVT_INVALID_PRO_CODE');
1667: fnd_message.set_token('PROCESS_CODE', p_txn_hdr_rec.process_code);
1668: FND_MSG_PUB.add;