Таблица описания Salesforce SOQL

есть ли способ получить список всех полей в таблице в Salesforce? DESCRIBE myTable не работает, а SELECT * FROM myTable не работает.

4 ответов


из Apex вы можете получить это, выполнив следующий фрагмент кода Apex. Если ваша таблица / объект называется MyObject__c, то это даст вам набор имен API всех полей на том объекте, к которому у вас есть доступ (это важно - - - даже как системный администратор, если некоторые поля в вашей таблице / объекте не видны через уровень безопасности поля для вас, они не будут отображаться здесь):

// Get a map of all fields available to you on the MyObject__c table/object
// keyed by the API name of each field
Map<String,Schema.SObjectField> myObjectFields 
   = MyObject__c.SObjectType.getDescribe().fields.getMap();

// Get a Set of the field names
Set<String> myObjectFieldAPINames = myObjectFields.keyset();

// Print out the names to the debug log
 String allFields = 'ALL ACCESSIBLE FIELDS on MyObject__c:\n\n';
for (String s : myObjectFieldAPINames) {
    allFields += s + '\n';
}
System.debug(allFields);

чтобы закончить это, и добиться SELECT * FROM MYTABLE функциональность, вы бы необходимо построить динамический запрос SOQL, используя следующие поля:

List<String> fieldsList = new List<String>(myObjectFieldAPINames);
String query = 'SELECT ';
// Add in all but the last field, comma-separated
for (Integer i = 0; i < fieldsList.size()-1; i++) {
   query += fieldsList + ',';
}
// Add in the final field
query += fieldsList[fieldsList.size()-1];
// Complete the query
query += ' FROM MyCustomObject__c';
// Perform the query (perform the SELECT *)
List<SObject> results = Database.query(query);

вызов API describeSObject возвращает все метаданные о данном объекте / таблице, включая его поля. Его можно найти в SOAP, REST & Apex APIs.


попробуйте использовать схемы.Полей

Schema.DescribeSObjectResult d =   Account.sObjectType.getDescribe();
Map<String, Schema.FieldSet> FsMap = d.fieldSets.getMap();

заполнение документации


ты пробовал DESC myTable?

для меня он отлично работает,он также находится в базовых подсказках курсивом. Смотри:

enter image description here