def getEntitiesMapping(): DatabaseSchema = pickle.load(open("cache/db_schema.p","rb")); SalesforceSchema = pickle.load(open("cache/sf_schema.p","rb")); AdvisedMapping = advisor.getEntitiesMapping(config = config, sqlSchema = DatabaseSchema, sfSchema = SalesforceSchema, thesaurus = thesaurus) if 'POST' == request.method: for tbl in AdvisedMapping.keys(): AdvisedMapping[tbl]['sObject'] = request.form[tbl] AdvisedMapping = advisor.compare(config=config, sqlSfMapping = AdvisedMapping, sqlSchema = DatabaseSchema, sfSchema = SalesforceSchema, thesaurus = thesaurus) #save data to cache pickle.dump(AdvisedMapping, open("cache/mapping.p", "wb")) return redirect('/fieldsmapping') return render_template('entitiesmapping.html', entMapping = AdvisedMapping, sObjectsList = sorted(SalesforceSchema.keys()))
from modules.reporter import exportHtml if len(sys.argv) > 1: databaseName = sys.argv[1] else: databaseName = raw_input('Database: ') config = ConfigParser.RawConfigParser() config.read('config.cfg') print 'Connecting to database... \r', databaseSchema = loadDatabaseSchema(databaseName, config) print 'Retrieving salesforce objects schema ... \r', salesforceSchema = loadObjectsSchema(config) print 'Entities mapping... \r', thesaurus = Thesaurus(config.get('matching', 'thesaurus-csv')) advisedMapping = getEntitiesMapping(config, databaseSchema, salesforceSchema, thesaurus) print 'Analisys ... \r', #dialog window is opened here to manually change a mapping advisedMapping = entitiesMappingDialog(config, advisedMapping, databaseSchema, salesforceSchema) advisedMapping = compare(config, advisedMapping, databaseSchema, salesforceSchema,thesaurus) print 'Generation of report ... \r', filename = exportHtml(config, databaseName, advisedMapping, databaseSchema, salesforceSchema) subprocess.call("explorer %s" % filename, shell=True) print 'Done. '