Регистрация  |  Вход

Кверим label-значение пик-листа, а не API-значение: toLabel(My_Picklist__c)

как вы знаете у каждого значения пиклиста есть label и API-имя, которые обычно одинаковы, но не всегда.

ну так вот, если просто кверить значение пиклиста, то приходит его API-значение, что может вызвать удивление так как это не то, что видно на лейауте. И если вам нужно получить именно label-значение то нужно использовать в квери toLabel(My_Picklist__c)

как вы знаете у каждого значения пиклиста есть label и  API-имя, которые обычно одинаковы, но не всегда.

ну так вот, если просто кверить значение пиклиста, то приходит его API-значение, что может вызвать удивление так как это не то, что видно на лейауте. И если вам нужно получить именно label-значение то нужно использовать в квери [b]toLabel([/b]My_Picklist__c[b])[/b]

А можно одновременно достать и API Name и Label в одном запросе? "квери" я так понимаю это SOQL?

Давно уже не сталкивался, но помню гемора с этими пиклистами достаточно в SF. Вспоминаю некоторые подсмотренные у коллег костыли когда-то взрывали мозг. Особенно что касается связанных пиклистов.

Но вот toLabel() никогда не использовал.

А можно одновременно достать и API Name и Label в одном запросе? "квери" я так понимаю это SOQL?

Давно уже не сталкивался, но помню гемора с этими пиклистами достаточно в SF. Вспоминаю некоторые подсмотренные у коллег костыли когда-то взрывали мозг. Особенно что касается связанных пиклистов.

Но вот toLabel() никогда не использовал.

А еще данная штука выведет значение пиклиста в правильно переводе.

А еще данная штука выведет значение пиклиста в правильно переводе.

В одном SOQL одновременно достать и API Name и Label нельзя, но можно так:

Schema.DescribeFieldResult fieldResult = Account.PicklistField__c.getDescribe();
List<Schema.PicklistEntry> values = fieldResult.getPicklistValues();

for( Schema.PicklistEntry v : values) {
System.debug('Picklist Value Label:' + v.getLabel());
System.debug('Picklist API Name:' + v.getValue());
}

В одном SOQL одновременно достать и API Name и Label нельзя, но можно так:
[code]
Schema.DescribeFieldResult fieldResult = Account.PicklistField__c.getDescribe();
List<Schema.PicklistEntry> values = fieldResult.getPicklistValues();

for( Schema.PicklistEntry v : values) {
      System.debug('Picklist Value Label:' + v.getLabel());
      System.debug('Picklist API Name:' + v.getValue());
}
[/code]