239: xref_key3_source_column = iKey3,
240: xref_key4_source_column = iKey4,
241: xref_key5_source_column = iKey5
242: WHERE interface_column_id = xInterface_Column_ID_Upg;
243: ec_debug.pl(0,'*Code Conversion Assignment found for this column and reconciled.');
244: ELSE
245: ec_debug.pl(0,'*No Code Conversion Assignment found for this column.');
246: END IF;
247:
241: xref_key5_source_column = iKey5
242: WHERE interface_column_id = xInterface_Column_ID_Upg;
243: ec_debug.pl(0,'*Code Conversion Assignment found for this column and reconciled.');
244: ELSE
245: ec_debug.pl(0,'*No Code Conversion Assignment found for this column.');
246: END IF;
247:
248: EXCEPTION
249: WHEN OTHERS THEN
272: UPDATE ece_column_rules
273: SET interface_column_id = xInterface_Column_ID_Upg
274: WHERE column_rule_id = v_column_rules.column_rule_id;
275: --v_column_rules.interface_column_id := xInterface_Column_ID_Upg;
276: ec_debug.pl(0,'*Column Rule Sequence: ' || v_column_rules.sequence || ', Rule Type: ' ||
277: v_column_rules.rule_type || ', Action Code: ' || v_column_rules.action_code ||
278: ' found and reconciled for this column.');
279: iCount := iCount + 1;
280: END LOOP;
279: iCount := iCount + 1;
280: END LOOP;
281:
282: IF iCount = 0 THEN
283: ec_debug.pl(0,'*This column has no Column Rules assigned.');
284: END IF;
285:
286: END ec_upgrade_column_rules;
287:
370: eit.output_level = v_interface_columns_layout_upg.output_level AND
371: eic.interface_column_name = v_interface_columns_layout_upg.interface_column_name;
372: --AND ROWNUM = 2;
373:
374: ec_debug.pl(0,'*****Column: "' || v_interface_columns_layout_upg.interface_column_name || '"');
375:
376: --Reconcile Column Rules?
377: IF xUpgrade_Column_Rules_Flag = 'Y' THEN
378: ec_debug.pl(0,'*Checking to see if any Column Rules need to be reconciled...');
374: ec_debug.pl(0,'*****Column: "' || v_interface_columns_layout_upg.interface_column_name || '"');
375:
376: --Reconcile Column Rules?
377: IF xUpgrade_Column_Rules_Flag = 'Y' THEN
378: ec_debug.pl(0,'*Checking to see if any Column Rules need to be reconciled...');
379: ec_upgrade_column_rules(v_layout_record.interface_column_id,v_interface_columns_layout_upg.interface_column_id); --(Main,Upgrade)
380: ELSE
381: ec_debug.pl(0,'*Column Rule Reconciliation not enabled.');
382: END IF;
377: IF xUpgrade_Column_Rules_Flag = 'Y' THEN
378: ec_debug.pl(0,'*Checking to see if any Column Rules need to be reconciled...');
379: ec_upgrade_column_rules(v_layout_record.interface_column_id,v_interface_columns_layout_upg.interface_column_id); --(Main,Upgrade)
380: ELSE
381: ec_debug.pl(0,'*Column Rule Reconciliation not enabled.');
382: END IF;
383:
384: --Reconcile Code Conversion Categories?
385: IF xUpgrade_Code_Cat_Flag = 'Y' THEN
382: END IF;
383:
384: --Reconcile Code Conversion Categories?
385: IF xUpgrade_Code_Cat_Flag = 'Y' THEN
386: ec_debug.pl(0,'*Checking to see if any Code Conversion Assignments need to be reconciled...');
387: ec_upgrade_code_cat(v_layout_record.interface_column_id,v_interface_columns_layout_upg.interface_column_id); --(Main,Upgrade)
388: ELSE
389: ec_debug.pl(0,'*Code Conversion Assignment Reconciliation not enabled.');
390: END IF;
385: IF xUpgrade_Code_Cat_Flag = 'Y' THEN
386: ec_debug.pl(0,'*Checking to see if any Code Conversion Assignments need to be reconciled...');
387: ec_upgrade_code_cat(v_layout_record.interface_column_id,v_interface_columns_layout_upg.interface_column_id); --(Main,Upgrade)
388: ELSE
389: ec_debug.pl(0,'*Code Conversion Assignment Reconciliation not enabled.');
390: END IF;
391:
392: --Do the Record Number and Position match?
393: IF v_layout_record.record_number = v_interface_columns_layout_upg.record_number AND
391:
392: --Do the Record Number and Position match?
393: IF v_layout_record.record_number = v_interface_columns_layout_upg.record_number AND
394: v_layout_record.position = v_interface_columns_layout_upg.position THEN
395: ec_debug.pl(0,'*Record Number and Position for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
396: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' unchanged.');
397: ELSE
398: ec_debug.pl(0,'*Record Number and Position for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
399: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' changed to ' ||
394: v_layout_record.position = v_interface_columns_layout_upg.position THEN
395: ec_debug.pl(0,'*Record Number and Position for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
396: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' unchanged.');
397: ELSE
398: ec_debug.pl(0,'*Record Number and Position for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
399: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' changed to ' ||
400: v_interface_columns_layout_upg.record_number || '/' || v_interface_columns_layout_upg.position ||
401: '. old Record Number and Position: ' || v_layout_record.record_number || '/' || v_layout_record.position ||
402: ' will be preserved.');
410: END IF;
411:
412: --Does the Width Match?
413: IF v_layout_record.width = v_interface_columns_layout_upg.width THEN
414: ec_debug.pl(0,'*Width for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
415: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' unchanged.');
416: ELSE
417: ec_debug.pl(0,'*Width for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
418: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' changed to ' ||
413: IF v_layout_record.width = v_interface_columns_layout_upg.width THEN
414: ec_debug.pl(0,'*Width for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
415: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' unchanged.');
416: ELSE
417: ec_debug.pl(0,'*Width for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
418: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' changed to ' ||
419: v_interface_columns_layout_upg.width || '. old Width: ' || v_layout_record.width || ' will be preserved.');
420: UPDATE ece_interface_cols_upg
421: SET width = v_layout_record.width
424: END IF;
425:
426: --Does Conversion Sequence Match?
427: IF v_layout_record.conversion_sequence= v_interface_columns_layout_upg.conversion_sequence THEN
428: ec_debug.pl(0,'*Conversion Sequence for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
429: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' unchanged.');
430: ELSE
431: ec_debug.pl(0,'*Conversion Sequence for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
432: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' changed to ' ||
427: IF v_layout_record.conversion_sequence= v_interface_columns_layout_upg.conversion_sequence THEN
428: ec_debug.pl(0,'*Conversion Sequence for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
429: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' unchanged.');
430: ELSE
431: ec_debug.pl(0,'*Conversion Sequence for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
432: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' changed to ' ||
433: v_interface_columns_layout_upg.conversion_sequence || '. old Conversion Sequence: ' ||
434: v_layout_record.conversion_sequence || ' will be preserved.');
435: UPDATE ece_interface_cols_upg
439: END IF;
440:
441: --Does Record Layout Code Match?
442: IF v_layout_record.record_layout_code= v_interface_columns_layout_upg.record_layout_code THEN
443: ec_debug.pl(0,'*Record Layout Code for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
444: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' unchanged.');
445: ELSE
446: ec_debug.pl(0,'*Record Layout Code for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
447: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' changed to ' ||
442: IF v_layout_record.record_layout_code= v_interface_columns_layout_upg.record_layout_code THEN
443: ec_debug.pl(0,'*Record Layout Code for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
444: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' unchanged.');
445: ELSE
446: ec_debug.pl(0,'*Record Layout Code for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
447: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' changed to ' ||
448: v_interface_columns_layout_upg.record_layout_code || '. old Record Layout Code: ' ||
449: v_layout_record.record_layout_code || ' will be preserved.');
450: UPDATE ece_interface_cols_upg
454: END IF;
455:
456: --Does Record Layout Qualifier Match?
457: IF v_layout_record.record_layout_qualifier= v_interface_columns_layout_upg.record_layout_qualifier THEN
458: ec_debug.pl(0,'*Record Layout Qualifier for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
459: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' unchanged.');
460: ELSE
461: ec_debug.pl(0,'*Record Layout Qualifier for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
462: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' changed to ' ||
457: IF v_layout_record.record_layout_qualifier= v_interface_columns_layout_upg.record_layout_qualifier THEN
458: ec_debug.pl(0,'*Record Layout Qualifier for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
459: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' unchanged.');
460: ELSE
461: ec_debug.pl(0,'*Record Layout Qualifier for Column: "' || v_interface_columns_layout_upg.interface_column_name ||
462: '" at Output Level: ' || v_interface_columns_layout_upg.output_level || ' changed to ' ||
463: v_interface_columns_layout_upg.record_layout_qualifier || '. old Record Layout Qualifier: ' ||
464: v_layout_record.record_layout_qualifier || ' will be preserved.');
465: UPDATE ece_interface_cols_upg
471: EXCEPTION
472: WHEN NO_DATA_FOUND THEN
473: --This must be a new column in new seed data since no matching column name was found in
474: --old seed data.
475: ec_debug.pl(0,'*New column found: "' || v_interface_columns_layout_upg.interface_column_name || '".');
476:
477: END;
478:
479: END LOOP;
495: from ece_interface_columns
496: where record_number like '_9__'
497: and map_id = iMap_ID_Main;
498:
499: ec_debug.pl(0,'xExt_Col_Count',xExt_Col_Count);
500:
501: IF xExt_Col_Count >0 THEN
502: FOR v_interface_tables_upg IN c_interface_tables_upg2(xMap_ID_Upg)
503: LOOP
572: from ece_interface_cols_upg
573: where record_number like '_9__'
574: and map_id=v_interface_tables_upg.map_id);
575: END LOOP;
576: ec_debug.pl(0,'Custom Columns are presevered');
577: ELSE
578: ec_debug.pl(0,'No Custom Columns are present');
579: END IF;
580:
574: and map_id=v_interface_tables_upg.map_id);
575: END LOOP;
576: ec_debug.pl(0,'Custom Columns are presevered');
577: ELSE
578: ec_debug.pl(0,'No Custom Columns are present');
579: END IF;
580:
581: END IF;
582: EXCEPTION
580:
581: END IF;
582: EXCEPTION
583: WHEN others THEN
584: ec_debug.pl(0,'EC','ECE_ERROR_MESSAGE','ERROR_MESSAGE',SQLERRM);
585: END;
586:
587: --Now that we're done looping through ece_interface_cols_upg table, let's check to see what Record Number
588: --and Positions are now duplicated because of Reconciliation Process
585: END;
586:
587: --Now that we're done looping through ece_interface_cols_upg table, let's check to see what Record Number
588: --and Positions are now duplicated because of Reconciliation Process
589: ec_debug.pl(0,'*****Following Record Numbers and Positions are duplicated due to reconciliation process.');
590: FOR v_interface_columns_dups_upg IN c_interface_columns_dups_upg(xMap_ID_Upg) LOOP
591: ec_debug.pl(0,'Output Level: ' || v_interface_columns_dups_upg.output_level ||
592: ', Record Number: ' || v_interface_columns_dups_upg.record_number ||
593: ', Position: ' || v_interface_columns_dups_upg.position || '.');
587: --Now that we're done looping through ece_interface_cols_upg table, let's check to see what Record Number
588: --and Positions are now duplicated because of Reconciliation Process
589: ec_debug.pl(0,'*****Following Record Numbers and Positions are duplicated due to reconciliation process.');
590: FOR v_interface_columns_dups_upg IN c_interface_columns_dups_upg(xMap_ID_Upg) LOOP
591: ec_debug.pl(0,'Output Level: ' || v_interface_columns_dups_upg.output_level ||
592: ', Record Number: ' || v_interface_columns_dups_upg.record_number ||
593: ', Position: ' || v_interface_columns_dups_upg.position || '.');
594: iCount := iCount + 1;
595: END LOOP;
594: iCount := iCount + 1;
595: END LOOP;
596:
597: IF iCount = 0 THEN
598: ec_debug.pl(0,'*****There were no duplicate Record Numbers and Positions.');
599: END IF;
600:
601: END ec_upgrade_layout;
602:
1258:
1259: stage_doc_exception EXCEPTION;
1260:
1261: BEGIN
1262: ec_debug.enable_debug(v_debug_mode);
1263: ec_debug.push('ec_mapping_utils.ec_reconcile_seed');
1264: ec_debug.pl(0,'transaction_type: ',transaction_type);
1265: ec_debug.pl(0,'preserve_layout: ',preserve_layout);
1266: ec_debug.pl(0,'preserve_proc_rules: ',preserve_proc_rules);
1259: stage_doc_exception EXCEPTION;
1260:
1261: BEGIN
1262: ec_debug.enable_debug(v_debug_mode);
1263: ec_debug.push('ec_mapping_utils.ec_reconcile_seed');
1264: ec_debug.pl(0,'transaction_type: ',transaction_type);
1265: ec_debug.pl(0,'preserve_layout: ',preserve_layout);
1266: ec_debug.pl(0,'preserve_proc_rules: ',preserve_proc_rules);
1267: ec_debug.pl(0,'preserve_col_rules: ',preserve_col_rules);
1260:
1261: BEGIN
1262: ec_debug.enable_debug(v_debug_mode);
1263: ec_debug.push('ec_mapping_utils.ec_reconcile_seed');
1264: ec_debug.pl(0,'transaction_type: ',transaction_type);
1265: ec_debug.pl(0,'preserve_layout: ',preserve_layout);
1266: ec_debug.pl(0,'preserve_proc_rules: ',preserve_proc_rules);
1267: ec_debug.pl(0,'preserve_col_rules: ',preserve_col_rules);
1268: ec_debug.pl(0,'preserve_cc_cat: ',preserve_cc_cat);
1261: BEGIN
1262: ec_debug.enable_debug(v_debug_mode);
1263: ec_debug.push('ec_mapping_utils.ec_reconcile_seed');
1264: ec_debug.pl(0,'transaction_type: ',transaction_type);
1265: ec_debug.pl(0,'preserve_layout: ',preserve_layout);
1266: ec_debug.pl(0,'preserve_proc_rules: ',preserve_proc_rules);
1267: ec_debug.pl(0,'preserve_col_rules: ',preserve_col_rules);
1268: ec_debug.pl(0,'preserve_cc_cat: ',preserve_cc_cat);
1269: ec_debug.pl(0,'v_debug_mode: ',v_debug_mode);
1262: ec_debug.enable_debug(v_debug_mode);
1263: ec_debug.push('ec_mapping_utils.ec_reconcile_seed');
1264: ec_debug.pl(0,'transaction_type: ',transaction_type);
1265: ec_debug.pl(0,'preserve_layout: ',preserve_layout);
1266: ec_debug.pl(0,'preserve_proc_rules: ',preserve_proc_rules);
1267: ec_debug.pl(0,'preserve_col_rules: ',preserve_col_rules);
1268: ec_debug.pl(0,'preserve_cc_cat: ',preserve_cc_cat);
1269: ec_debug.pl(0,'v_debug_mode: ',v_debug_mode);
1270:
1263: ec_debug.push('ec_mapping_utils.ec_reconcile_seed');
1264: ec_debug.pl(0,'transaction_type: ',transaction_type);
1265: ec_debug.pl(0,'preserve_layout: ',preserve_layout);
1266: ec_debug.pl(0,'preserve_proc_rules: ',preserve_proc_rules);
1267: ec_debug.pl(0,'preserve_col_rules: ',preserve_col_rules);
1268: ec_debug.pl(0,'preserve_cc_cat: ',preserve_cc_cat);
1269: ec_debug.pl(0,'v_debug_mode: ',v_debug_mode);
1270:
1271: FOR v_maps_upg IN c_maps_upg(transaction_type,NULL) LOOP --Loop through each map for this transaction.
1264: ec_debug.pl(0,'transaction_type: ',transaction_type);
1265: ec_debug.pl(0,'preserve_layout: ',preserve_layout);
1266: ec_debug.pl(0,'preserve_proc_rules: ',preserve_proc_rules);
1267: ec_debug.pl(0,'preserve_col_rules: ',preserve_col_rules);
1268: ec_debug.pl(0,'preserve_cc_cat: ',preserve_cc_cat);
1269: ec_debug.pl(0,'v_debug_mode: ',v_debug_mode);
1270:
1271: FOR v_maps_upg IN c_maps_upg(transaction_type,NULL) LOOP --Loop through each map for this transaction.
1272: ec_debug.pl(0,'Processing Map: ' || v_maps_upg.map_code);
1265: ec_debug.pl(0,'preserve_layout: ',preserve_layout);
1266: ec_debug.pl(0,'preserve_proc_rules: ',preserve_proc_rules);
1267: ec_debug.pl(0,'preserve_col_rules: ',preserve_col_rules);
1268: ec_debug.pl(0,'preserve_cc_cat: ',preserve_cc_cat);
1269: ec_debug.pl(0,'v_debug_mode: ',v_debug_mode);
1270:
1271: FOR v_maps_upg IN c_maps_upg(transaction_type,NULL) LOOP --Loop through each map for this transaction.
1272: ec_debug.pl(0,'Processing Map: ' || v_maps_upg.map_code);
1273:
1268: ec_debug.pl(0,'preserve_cc_cat: ',preserve_cc_cat);
1269: ec_debug.pl(0,'v_debug_mode: ',v_debug_mode);
1270:
1271: FOR v_maps_upg IN c_maps_upg(transaction_type,NULL) LOOP --Loop through each map for this transaction.
1272: ec_debug.pl(0,'Processing Map: ' || v_maps_upg.map_code);
1273:
1274: --Let's check to see if map exists in main tables...
1275: SELECT COUNT(*) INTO n_map_count
1276: FROM ece_mappings
1296: END IF;
1297:
1298: IF preserve_layout = 'N' OR b_trans_exists = FALSE THEN --Do a straight copy if map doesn't already exist
1299: IF (preserve_col_rules = 'Y' OR preserve_cc_cat = 'Y') AND b_trans_exists = TRUE THEN
1300: ec_debug.pl(0,'*****Column Rules and Code Conversion Categories cannot be reconciled if Column Layout is not reconciled.');
1301: END IF;
1302: ELSE --Do preserve layout
1303: ec_upgrade_layout(
1304: v_maps_upg.map_id,
1322: ec_migrate_map_to_production(v_maps_upg.map_code,b_trans_exists);
1323:
1324: END LOOP;
1325:
1326: ec_debug.pop('ec_mapping_utils.ec_reconcile_seed');
1327: ec_debug.disable_debug;
1328: retcode := '0';
1329: COMMIT;
1330:
1323:
1324: END LOOP;
1325:
1326: ec_debug.pop('ec_mapping_utils.ec_reconcile_seed');
1327: ec_debug.disable_debug;
1328: retcode := '0';
1329: COMMIT;
1330:
1331: EXCEPTION
1329: COMMIT;
1330:
1331: EXCEPTION
1332: WHEN stage_doc_exception THEN
1333: ec_debug.pl(0,'*****There are still documents in staging table for this map. Aborting Reconciliation.');
1334: retcode := 1;
1335: ec_debug.disable_debug;
1336: ROLLBACK;
1337:
1331: EXCEPTION
1332: WHEN stage_doc_exception THEN
1333: ec_debug.pl(0,'*****There are still documents in staging table for this map. Aborting Reconciliation.');
1334: retcode := 1;
1335: ec_debug.disable_debug;
1336: ROLLBACK;
1337:
1338: WHEN OTHERS THEN
1339: --ec_debug.pl(0,'EC','ECE_PROGRAM_ERROR','PROGRESS_LEVEL',xProgress);
1335: ec_debug.disable_debug;
1336: ROLLBACK;
1337:
1338: WHEN OTHERS THEN
1339: --ec_debug.pl(0,'EC','ECE_PROGRAM_ERROR','PROGRESS_LEVEL',xProgress);
1340: ec_debug.pl(0,'EC','ECE_ERROR_MESSAGE','ERROR_MESSAGE',SQLERRM);
1341:
1342: retcode := 2;
1343: ec_debug.disable_debug;
1336: ROLLBACK;
1337:
1338: WHEN OTHERS THEN
1339: --ec_debug.pl(0,'EC','ECE_PROGRAM_ERROR','PROGRESS_LEVEL',xProgress);
1340: ec_debug.pl(0,'EC','ECE_ERROR_MESSAGE','ERROR_MESSAGE',SQLERRM);
1341:
1342: retcode := 2;
1343: ec_debug.disable_debug;
1344: ROLLBACK;
1339: --ec_debug.pl(0,'EC','ECE_PROGRAM_ERROR','PROGRESS_LEVEL',xProgress);
1340: ec_debug.pl(0,'EC','ECE_ERROR_MESSAGE','ERROR_MESSAGE',SQLERRM);
1341:
1342: retcode := 2;
1343: ec_debug.disable_debug;
1344: ROLLBACK;
1345:
1346: END ec_reconcile_seed;
1347: