首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3简单的Salesforce测试,用于查看对象是否存在以及是否包含数据

Python 3简单的Salesforce测试,用于查看对象是否存在以及是否包含数据
EN

Stack Overflow用户
提问于 2019-03-19 09:09:00
回答 2查看 309关注 0票数 3

有没有一种简单的方法来测试一个对象是否存在并且不是空的?我有一些用于获取记录的代码,我需要确保从其他人生成的文件中获取的对象存在并且不为空。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-11 04:55:14

假设“空”对象指的是没有记录的对象,我建议这样做:

代码语言:javascript
复制
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')将返回类似于{'IsObject': True, 'Records': 21}的内容

checkSalesforceObject('Contct')将返回{'IsObject': False, 'Records': None}

如果已经存在的对象与没有记录的对象之间的细微差别不是问题,那么可以进一步修改此函数,以便为任何不存在或没有记录的对象返回true

代码语言:javascript
复制
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
票数 2
EN

Stack Overflow用户

发布于 2019-03-23 09:53:01

这是我最终要做的,它不处理“空”对象,但它至少验证了一个对象是否存在:

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55232266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档