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

Глюк или не глюк с Global Picklist

Сегодня столкнулся с интересной проблемой.

Есть кастомная логика которая достает значение из multipicklist поля (которое привязано к глобальному пиклисту) и делает из него List<String>.
Логика примитивная, но клиент пожаловался что с некоторыми значениями не работает.
И вот какое значение он прислал
Spanish; Castillian
Я сначала подумал что это значение пиклиста которое содержит 2 значение, но оказывается что это само 1 значение которое просто внутри себя содержит символ ";"
и к примеру если в поле будет "English; Spanish; Castillian", то это не 3 значения, а 2.
Что самое прикольное сам SF это спокойно переваривает и позволяет корректно редактировать сам мультипиклист.
Но я попробовал просто открыть и сохранить само значение в глобальном пиклисте и SF ругнулся что значение невалидное.
Интересно каким образом SF позволил создавать такие значения в пиклисте?

Сегодня столкнулся с интересной проблемой.

Есть кастомная логика которая достает значение из multipicklist поля (которое привязано к глобальному пиклисту) и делает из него List<String>.
Логика примитивная, но клиент пожаловался что с некоторыми значениями не работает. 
И вот какое значение он прислал
[b]Spanish; Castillian[/b]
Я сначала подумал что это значение пиклиста которое содержит 2 значение, но оказывается что это само 1 значение которое просто внутри себя содержит символ ";"
и к примеру если в поле будет "English; Spanish; Castillian", то это не 3 значения, а 2.
Что самое прикольное сам SF это спокойно переваривает и позволяет корректно редактировать сам мультипиклист.
Но я попробовал просто открыть и сохранить само значение в глобальном пиклисте и SF ругнулся что значение невалидное.
Интересно каким образом SF позволил создавать такие значения в пиклисте?

НУ глобал Global Picklist довольно новая тема. Может еще не все откатали? Экранироваться же значение должно. Какая разница какое значение я хочу ввести. Может a;;;;;;s;;;h?

НУ глобал Global Picklist довольно новая тема. Может еще не все откатали? Экранироваться же значение должно. Какая разница какое значение я хочу ввести. Может a;;;;;;s;;;h?

Ну для того чтобы можно было бы использовать a;;;;;;s;;;h SF тогда должен работать с Multipicklist не как со стрингой со значениями разделенными ";" А пока у них ";" является управляющим спецсимволом то как бы позволять сохранять значения которые содержат этот символ нелогично.

Ну для того чтобы можно было бы использовать a;;;;;;s;;;h SF тогда должен работать с Multipicklist не как со стрингой со значениями разделенными ";" А пока у них ";" является управляющим спецсимволом то как бы позволять сохранять значения которые содержат этот символ нелогично.

DevNull
НУ глобал Global Picklist довольно новая тема.

Это уже устарело. Сейчас модно в Global Picklist Value Set. Логичное продолжение обычных листов.
Типа ассоциативного массива: key => value

[quote="DevNull"]НУ глобал Global Picklist довольно новая тема.[/quote]
Это уже устарело. Сейчас модно в Global Picklist Value Set. Логичное продолжение обычных листов.
Типа ассоциативного массива: key => value

А разве это не одно и то же? Global Picklist и Global Picklist Value Set?

А разве это не одно и то же? Global Picklist и Global Picklist Value Set?

Нет

Пиклист обычный это просто стринга где value(English)=label(English)
Value Set это мапка где value/api_name(English) != label(АНГЛИЦКИЙ С РУССКИМ ИНГЛИШ ОЛОЛО, лапки кусь)
API Name в общем полявился для значений

Нет :)

Пиклист обычный это просто стринга где value(English)=label(English)
Value Set это мапка где value/api_name(English) != label(АНГЛИЦКИЙ С РУССКИМ ИНГЛИШ ОЛОЛО, лапки кусь)
API Name в общем полявился для значений

Так вроде ж стандартные picklist поддерживают label и value уже сто лет.
Сколько себя помню можно было зайти в поле picklist и возле любого значения нажать Edit. Там будет 2 поля: value и label. Другое дело что они создаются изначально из одного значения что ты ввел (отдельно или списком)

Так вроде ж стандартные picklist поддерживают label и value уже сто лет.
Сколько себя помню можно было зайти в поле picklist и возле любого значения нажать Edit. Там будет 2 поля: value и label. Другое дело что они создаются изначально из одного значения что ты ввел (отдельно или списком)

Dmitry Shnyrev
Так вроде ж стандартные picklist поддерживают label и value уже сто лет.
Сколько себя помню можно было зайти в поле picklist и возле любого значения нажать Edit. Там будет 2 поля: value и label. Другое дело что они создаются изначально из одного значения что ты ввел (отдельно или списком)

Ну на секундочку если 38 версия апи это 100 лет назад, то 37(когда поддреживались Global Picklist метадата это вообще старье как гавно мамонта :))

https://developer.salesforce.com/blogs/developer-relations/2017/01/keeping-picklist-integrations-safe-using-api-names.html

[quote="Dmitry Shnyrev"]Так вроде ж стандартные picklist поддерживают label и value уже сто лет.
Сколько себя помню можно было зайти в поле picklist и возле любого значения нажать Edit. Там будет 2 поля: value и label. Другое дело что они создаются изначально из одного значения что ты ввел (отдельно или списком)[/quote]
Ну на секундочку если 38 версия апи это 100 лет назад, то 37(когда поддреживались Global Picklist метадата это вообще старье как гавно мамонта :))

https://developer.salesforce.com/blogs/developer-relations/2017/01/keeping-picklist-integrations-safe-using-api-names.html

o_O Да шо за мистика?
Я что ли из будущего прилетел?
Я вот это использовал еще 100 лет назад
for( Schema.PicklistEntry v : values) {
System.debug('Picklist Value Label:' + v.getLabel());
System.debug('Picklist API Name:' + v.getValue());
}

o_O Да шо за мистика?
Я что ли из будущего прилетел? :D
Я вот это использовал еще 100 лет назад
for( Schema.PicklistEntry v : values) {
      System.debug('Picklist Value Label:' + [b]v.getLabel()[/b]);
      System.debug('Picklist API Name:' + [b]v.getValue()[/b]);
}



Помню когда-то именно с этим были связаны проблемы когда клиент редактировал picklist value и label не совпадал с value. Тогда еще была проблема что нельзя было вводить value с пробелом (потом разрешили).
Или это опять не то?

Помню когда-то именно с этим были связаны проблемы когда клиент редактировал picklist value и label не совпадал с value. Тогда еще была проблема что нельзя было вводить value с пробелом (потом разрешили).
Или это опять не то? :D 

И кстати напомнил ты интересный хук. Когда еще не было api names (когда я еще работал в одной компании) чтобы привязать label к picklist value использовали Translation Workbench (English to English) - вот это был вывих мозга. Помню еще был зеленым жуниором. Полдня просидел ничего не понимая - в пиклисте вижу одно, а на UI выводится другое. Пришел к лидам такой, мол глюк тут в SF . Смеялся потом долго над решением.

И кстати напомнил ты интересный хук. Когда еще не было api names (когда я еще работал в одной компании) чтобы привязать label к picklist value использовали Translation Workbench (English to English) - вот это был вывих мозга. Помню еще был зеленым жуниором. Полдня просидел ничего не понимая - в пиклисте вижу одно, а на UI выводится другое. Пришел к лидам такой, мол глюк тут в SF :D . Смеялся потом долго над решением.