シンプルなsalesforceにリスト内のすべてのフィールド名を渡す方法を見つけようとしていました。私は、SQLでSelect *と同じことをするsoqlクエリを作成したいと思います。オブジェクト内のOBJのためのQ:シンプルセールスフォースで動的なsoqlクエリを作成
:。
fields = [x["name"] for x in sf[obj].describe()["fields"]]
おかげ
シンプルなsalesforceにリスト内のすべてのフィールド名を渡す方法を見つけようとしていました。私は、SQLでSelect *と同じことをするsoqlクエリを作成したいと思います。オブジェクト内のOBJのためのQ:シンプルセールスフォースで動的なsoqlクエリを作成
:。
fields = [x["name"] for x in sf[obj].describe()["fields"]]
おかげ
に渡されたオブジェクトのすべてのフィールドを持つクエリ文字列を返します。まあ、ユーザがアクセス権を持つすべてのフィールドをこの方法。
public static string getFullObjectQuery(String sObjectName){
Schema.SObjectType convertType = Schema.getGlobalDescribe().get(sObjectName);
Map<String,Schema.sObjectField> fieldMap = convertType.getDescribe().Fields.getMap();
Set<String> fields = fieldMap.keySet();
String Query = 'SELECT ';
for(String field: fields){
Schema.DescribeFieldResult dfr = fieldMap.get(field).getDescribe();
if(dfr.isAccessible()){
Query += field + ',';
}
}
Query = query.SubString(0,Query.length() - 1);
Query += ' FROM ' + sObjectName;
return Query;
}
本当にすべてのフィールドを選択する必要がありますか?これは通常、悪い習慣とみなされ、パフォーマンスに影響する可能性があります(Salesforceの場合、到達限界につながる可能性があります)。 –
すべてのフィールドでデータレイクを作成したいので、それぞれのSobjectのすべてのフィールドを選択したい。 – oharr