def retrieveSfdcContactHistory(user_id=None, company_id=None, job_id=None, run_type=None, sinceDateTime=None): #needs to be changed - satya try: #delete later #job_id_new = job_id #job_id = ObjectId("56a690e98afb006883048e7e") #set variables sfdc = Salesforce() #for leads if run_type == 'initial': contacts = TempData.objects(Q(record_type='contact') & Q(source_system='sfdc') & Q(job_id=job_id)) #Q(job_id=job_id) & else: contacts = TempDataDelta.objects(Q(record_type='contact') & Q(source_system='sfdc') & Q(job_id=job_id)) #Q(job_id=job_id) & contactListTemp = list(contacts) if not contactListTemp: print 'no contacts found' return contactList = [i['source_record'] for i in contactListTemp] batch_size = 500 #10 Activity Types at a time activitiesList = [] for i in range(0, len(contactList), batch_size): contact_list = '(' for lead in contactList[i:i+batch_size]: contact_list += '\'' + lead['Id'] + '\'' + ', ' contact_list = contact_list[:-2] contact_list += ')' activitiesList.extend(sfdc.get_history_for_contact(user_id, company_id, contact_list, _str_from_date(sinceDateTime))) print 'got back history for SFDC contacts ' + str(len(activitiesList)) #delete later #job_id = job_id_new saveSfdcContactHistory(user_id=user_id, company_id=company_id, activityList=activitiesList, job_id=job_id, run_type=run_type) try: message = 'Contact history retrieved from Salesforce' notification = Notification() #notification.company_id = company_id notification.owner = user_id notification.module = 'Contacts' notification.type = 'Background task' notification.method = os.path.basename(__file__) notification.message = message notification.success = True notification.read = False notification.save() except Exception as e: send_notification(dict( type='error', success=False, message=str(e) )) return contactList except Exception as e: print 'exception while retrieving SFDC contact history: ' + str(e) send_notification(dict(type='error', success=False, message=str(e)))