Python 3 简单的 Salesforce 测试以查看对象是否存在并包含数据
Python 3 Simple Salesforce Testing to see if an object exists and contains data
是否有一种简单的方法可以使用简单的 salesforce 来测试对象是否存在且不为空?我有一些用于获取记录的代码,我需要确保我从其他人生成的文件中获取的对象存在并且不为空。
这是我最后做的事情,它不处理 "empty" 个对象,但它至少验证了一个对象是否存在:
try :
getattr(sf,nextObj).describe()
except (SalesforceGeneralError, SalesforceMoreThanOneRecord, SalesforceMalformedRequest, SalesforceExpiredSession, SalesforceRefusedRequest, SalesforceResourceNotFound) as e :
print(e.content[0]['message'] +', writing next object and ending')
updateNextObj(nextObj, s3NextObjDestination)
sys.exit(1)
假设 "empty" object 表示一个没有记录的对象,我建议如下:
def checkSalesforceObject(objName):
try:
getattr(sf,objName).metadata()
a = len(sf.query_all('SELECT Id FROM {}'.format(objName))['records'])
return {'IsObject':True,'Records':a}
except:
a = sys.exc_info()
return {'IsObject':not("Resource {} Not Found".format(objName) in str(a[1])),'Records':None}
所以 checkSalesforceObject('Contact')
会 return 像 {'IsObject': True, 'Records': 21}
和checkSalesforceObject('Contct')
会return{'IsObject': False, 'Records': None}
如果不关心存在的对象与没有记录的对象之间的细微差别,则可以进一步修改此函数以简单地 return true
对于任何不存在的对象不存在或没有记录。
def objectInUse(objName):
try:
getattr(sf,objName).metadata()
if len(sf.query('SELECT Id FROM {} LIMIT 1'.format(objName))['records']) == 0:
return False
else:
return True
except:
a = sys.exc_info()
if "Resource {} Not Found".format(objName) in str(a[1]):
return False
是否有一种简单的方法可以使用简单的 salesforce 来测试对象是否存在且不为空?我有一些用于获取记录的代码,我需要确保我从其他人生成的文件中获取的对象存在并且不为空。
这是我最后做的事情,它不处理 "empty" 个对象,但它至少验证了一个对象是否存在:
try :
getattr(sf,nextObj).describe()
except (SalesforceGeneralError, SalesforceMoreThanOneRecord, SalesforceMalformedRequest, SalesforceExpiredSession, SalesforceRefusedRequest, SalesforceResourceNotFound) as e :
print(e.content[0]['message'] +', writing next object and ending')
updateNextObj(nextObj, s3NextObjDestination)
sys.exit(1)
假设 "empty" object 表示一个没有记录的对象,我建议如下:
def checkSalesforceObject(objName):
try:
getattr(sf,objName).metadata()
a = len(sf.query_all('SELECT Id FROM {}'.format(objName))['records'])
return {'IsObject':True,'Records':a}
except:
a = sys.exc_info()
return {'IsObject':not("Resource {} Not Found".format(objName) in str(a[1])),'Records':None}
所以 checkSalesforceObject('Contact')
会 return 像 {'IsObject': True, 'Records': 21}
和checkSalesforceObject('Contct')
会return{'IsObject': False, 'Records': None}
如果不关心存在的对象与没有记录的对象之间的细微差别,则可以进一步修改此函数以简单地 return true
对于任何不存在的对象不存在或没有记录。
def objectInUse(objName):
try:
getattr(sf,objName).metadata()
if len(sf.query('SELECT Id FROM {} LIMIT 1'.format(objName))['records']) == 0:
return False
else:
return True
except:
a = sys.exc_info()
if "Resource {} Not Found".format(objName) in str(a[1]):
return False