简单的 Salesforce 日期上传
Simple Salesforce Date upload
我正在尝试使用 openpyxl 和 simplesfoce 将机会上传到 Salesforce。以下是我为使上传工作所做的当前尝试。我试过了,一个普通的 excel 日期对象,excel 日期对象作为一个字符串,excel 日期对象作为一个字符串,时间部分被截断。
ws = wb["Opportunities"] # Gets the Opportunities sheet
recordTypeMap = getRecordTypes(sf, ws, 1, "Opportunity")
insertOpportunities = []
try:
logInfo("Reading Opportunities")
for row in ws.iter_rows(min_row=2, values_only=True):
insertOpportunities.append(
{'RecordTypeId': recordTypeMap.get(row[0]), 'OwnerId': users.get(row[1]), 'AccountId': accounts.get(row[2]),
'Name': row[3], 'Type': row[4], 'Budget_Confirmed__c': row[5], 'Discovery_Completed__c': row[6],
'ROI_Analysis_Completed__c': row[7], 'EEP_Loss_Reason__c': row[8], 'CloseDate': str(datetime.datetime.now(pytz.UTC)), 'StageName': row[10],
'LeadSource': row[13], 'EEP_Producer_CBU__c': row[14],
'EEP_Producer_Distribution_Channel__c': row[15], 'EEP_Restricted_Access__c': row[16]})
logging.info(insertOpportunities)
except Exception as ex:
logError("Could not read Opportunities", ex)
try:
logInfo("Creating Opportunities")
Opportunities = sf.bulk.Lead.insert(insertOpportunities, batch_size=100)
logInfo("Created Opportunities")
logging.info(Opportunities)
except Exception as ex:
logError("Could not create Opportunities", ex)
Date 对象收到无法 JSON 序列化的错误,所有其他对象收到以下错误。以下信息是试图发送给 Salesforce 的信息,错误是发回的错误消息。
INFO: [{'RecordTypeId': '0124W000001lDpAQAU', 'OwnerId': '0056t000000ENvxAAG', 'AccountId': '0016t000002tw3UAAQ', 'Name': 'Test op 1', 'Type': 'Existing Business', 'Budget_Confirmed__c': True, 'Discovery_Completed__c': True, 'ROI_Analysis_Completed__c': True, 'EEP_Loss_Reason__c': None, 'CloseDate': '2021-06-02 14:08:36.995182+00:00', 'StageName': 'Closed Won', 'LeadSource': 'Purchased List', 'EEP_Producer_CBU__c': None, 'EEP_Producer_Distribution_Channel__c': None, 'EEP_Restricted_Access__c': False}]
ERROR: Malformed request Response content: {'exceptionCode': 'InvalidBatch', 'exceptionMessage': 'Records not processed'}
我已经获取了这些准确的数据并手动创建了一个机会,所以我看到错误的唯一原因是日期的格式。
正确的日期格式如 eyescream 所述,“2021-06-02”。这里的错误只是指的是这些项目之一中的错误自定义字段。如果您遇到此类错误,请尝试删除不需要的字段以查找导致错误的字段。
我正在尝试使用 openpyxl 和 simplesfoce 将机会上传到 Salesforce。以下是我为使上传工作所做的当前尝试。我试过了,一个普通的 excel 日期对象,excel 日期对象作为一个字符串,excel 日期对象作为一个字符串,时间部分被截断。
ws = wb["Opportunities"] # Gets the Opportunities sheet
recordTypeMap = getRecordTypes(sf, ws, 1, "Opportunity")
insertOpportunities = []
try:
logInfo("Reading Opportunities")
for row in ws.iter_rows(min_row=2, values_only=True):
insertOpportunities.append(
{'RecordTypeId': recordTypeMap.get(row[0]), 'OwnerId': users.get(row[1]), 'AccountId': accounts.get(row[2]),
'Name': row[3], 'Type': row[4], 'Budget_Confirmed__c': row[5], 'Discovery_Completed__c': row[6],
'ROI_Analysis_Completed__c': row[7], 'EEP_Loss_Reason__c': row[8], 'CloseDate': str(datetime.datetime.now(pytz.UTC)), 'StageName': row[10],
'LeadSource': row[13], 'EEP_Producer_CBU__c': row[14],
'EEP_Producer_Distribution_Channel__c': row[15], 'EEP_Restricted_Access__c': row[16]})
logging.info(insertOpportunities)
except Exception as ex:
logError("Could not read Opportunities", ex)
try:
logInfo("Creating Opportunities")
Opportunities = sf.bulk.Lead.insert(insertOpportunities, batch_size=100)
logInfo("Created Opportunities")
logging.info(Opportunities)
except Exception as ex:
logError("Could not create Opportunities", ex)
Date 对象收到无法 JSON 序列化的错误,所有其他对象收到以下错误。以下信息是试图发送给 Salesforce 的信息,错误是发回的错误消息。
INFO: [{'RecordTypeId': '0124W000001lDpAQAU', 'OwnerId': '0056t000000ENvxAAG', 'AccountId': '0016t000002tw3UAAQ', 'Name': 'Test op 1', 'Type': 'Existing Business', 'Budget_Confirmed__c': True, 'Discovery_Completed__c': True, 'ROI_Analysis_Completed__c': True, 'EEP_Loss_Reason__c': None, 'CloseDate': '2021-06-02 14:08:36.995182+00:00', 'StageName': 'Closed Won', 'LeadSource': 'Purchased List', 'EEP_Producer_CBU__c': None, 'EEP_Producer_Distribution_Channel__c': None, 'EEP_Restricted_Access__c': False}]
ERROR: Malformed request Response content: {'exceptionCode': 'InvalidBatch', 'exceptionMessage': 'Records not processed'}
我已经获取了这些准确的数据并手动创建了一个机会,所以我看到错误的唯一原因是日期的格式。
正确的日期格式如 eyescream 所述,“2021-06-02”。这里的错误只是指的是这些项目之一中的错误自定义字段。如果您遇到此类错误,请尝试删除不需要的字段以查找导致错误的字段。