试图想办法让简单的salesforce给我一个列表中的所有字段名称。我想创建soql查询,它几乎与sql中的Select *相同。
对象中的obj:
fields = [x["name"] for x in sf[obj].describe()["fields"]]
感谢
答案 0 :(得分:0)
此方法将返回一个查询字符串,其中包含传入的对象的所有字段。以及用户有权访问的所有字段。
@Bean
public BatchConfigurer configurer(){
return new CustomBatchConfigurer();
}
答案 1 :(得分:0)
#!/usr/bin/env python3
import argparse
import os
import simple_salesforce
parser = argparse.ArgumentParser()
parser.add_argument('--sandbox', action='store_true',
help='Use a sandbox')
parser.add_argument('sfobject', nargs='+', action='store',
help=('Salesforce object to query (e.g. Contact)'))
args = parser.parse_args()
sf = simple_salesforce.Salesforce(
username = os.getenv('USERNAME'),
password = os.getenv('PASSWORD'),
security_token = os.getenv('SECURITY_TOKEN'),
sandbox = args.sandbox)
for sfobject in args.sfobject:
print(sfobject)
fields = [x['name'] for x in getattr(sf, sfobject).describe()['fields']]
print(fields)
答案 2 :(得分:0)
可以通过以下方式获得对象中字段名称的列表:
def getObjectFields(obj):
fields = getattr(sf,obj).describe()['fields']
flist = [i['name'] for i in fields]
return flist
getObjectFields('Contact')
您要获得SELECT *
效果的查询将如下所示:
sf.query_all('SELECT {} FROM Contact LIMIT 10'.format(','.join(getObjectFields('Contact'))))
相关说明:
如果有帮助,可以按以下方式获得标签/名称对的字典:
def getObjectFieldsDict(obj):
fields = getattr(sf,obj).describe()['fields']
fdict = {}
for i in fields:
fdict[i['label']] = i['name']
return fdict
getObjectFieldsDict('Contact')
我发现这对于找出带有不符合标准格式的标签的字段名称很有用(例如,“ Favorite_Website__c”字段名称为“我的最爱网站”字段标签)