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

Public Groups Users

День добрый.
Как из apex кода можно получить айдишки юзверей из Public Groups?

День добрый.
Как из apex кода можно получить айдишки юзверей из Public Groups?

Вот нашел сам же решение:
SELECT UserOrGroupId FROM GroupMember WHERE GroupId = <Some group id>

Вот нашел сам же решение:
SELECT UserOrGroupId FROM GroupMember WHERE GroupId = <Some group id>

Не разу я еще не смог ответь на твои вопросы.
Кажется, что вы в основном работаете с кастомизацией базового функционала SF - для меня до сих пор большинство стандартных объектов - темный лес, так как в основном занимаюсь "запиливанием" кастомных объектов с их собственным функционалом - пока по минимумому связанных со стандартными объектами.

Не разу я еще не смог ответь на твои вопросы.
Кажется, что вы в основном работаете с кастомизацией базового функционала SF - для меня до сих пор большинство стандартных объектов - темный лес, так как в основном занимаюсь "запиливанием" кастомных объектов с их собственным функционалом - пока по минимумому связанных со стандартными объектами.

Den Brown
Не разу я еще не смог ответь на твои вопросы.
Кажется, что вы в основном работаете с кастомизацией базового функционала SF - для меня до сих пор большинство стандартных объектов - темный лес, так как в основном занимаюсь "запиливанием" кастомных объектов с их собственным функционалом - пока по минимумому связанных со стандартными объектами.

Плохая практика иногда salesforce наказывает за точто кто копирует стандартный функционал в кастомыный,хотя может тебя это не касается.

[quote="Den Brown"]Не разу я еще не смог ответь на твои вопросы.
Кажется, что вы в основном работаете с кастомизацией базового функционала SF - для меня до сих пор большинство стандартных объектов - темный лес, так как в основном занимаюсь "запиливанием" кастомных объектов с их собственным функционалом - пока по минимумому связанных со стандартными объектами.[/quote]
Плохая практика иногда salesforce наказывает за точто кто копирует стандартный функционал в кастомыный,хотя может тебя это не касается.

Sergey Prichepo
Плохая практика иногда salesforce наказывает за точто кто копирует стандартный функционал в кастомыный,хотя может тебя это не касается.

речи нет о копировании стандартного функционала. Просто функционал расширяется так, что это больше не только CRM.
Это CRM с чем-то еще.
CRM остается как ядро, связывающее разные проекты в единое целое. Но у частного проекта может быть не много связи собственно с стандартными CRM объектами.

Но это тоже может быть до поры до времени. Как распробуют фукционал стнадартных объектов - так понесется их кастомизация...

[quote="Sergey Prichepo"]
Плохая практика иногда salesforce наказывает за точто кто копирует стандартный функционал в кастомыный,хотя может тебя это не касается.[/quote]

речи нет о копировании стандартного функционала. Просто функционал расширяется так, что это больше не только CRM. 
Это CRM с чем-то еще. 
CRM остается как ядро, связывающее разные проекты в единое целое. Но у частного проекта может быть не много связи собственно с стандартными CRM объектами. 

Но это тоже может быть до поры до времени. Как распробуют фукционал стнадартных объектов - так понесется их кастомизация...

В использовании стандартных объектов тоже может крыться проблема, если вы делаете приложение для AppExchange.

Во первых нельзя быть уверенным, что на стандартные объекты у одного из заказчиков не будет навешен кастомный validation rule или просто required field. Тут вы просто теряете заказчика, если не получится договориться.

Даже как-то участвовал в одном проекте, которые выкладывали в AppExchange - 90% вопросов и тупого обсуждения со стороны salesforce было по поводу всего одного стандартного объекта Product который мы решили использовать. Спрашивали "реально ли он нам так необходим для нашего приложения". Вот и думай, что лучше: копирование salesforce функционала или использование.

Я пока склоняюсь к копированию.

В использовании стандартных объектов тоже может крыться проблема, если вы делаете приложение для AppExchange.

Во первых нельзя быть уверенным, что на стандартные объекты у одного из заказчиков не будет навешен кастомный validation rule или просто required field. Тут вы просто теряете заказчика, если не получится договориться.

Даже как-то участвовал в одном проекте, которые выкладывали в AppExchange - 90% вопросов и тупого обсуждения со стороны salesforce было по поводу всего одного стандартного объекта Product который мы решили использовать. Спрашивали "реально ли он нам так необходим для нашего приложения". Вот и думай, что лучше: копирование salesforce функционала или использование.

Я пока склоняюсь к копированию.

Dmitry Shnyrev
В использовании стандартных объектов тоже может крыться проблема, если вы делаете приложение для AppExchange.

Во первых нельзя быть уверенным, что на стандартные объекты у одного из заказчиков не будет навешен кастомный validation rule или просто required field. Тут вы просто теряете заказчика, если не получится договориться.

Даже как-то участвовал в одном проекте, которые выкладывали в AppExchange - 90% вопросов и тупого обсуждения со стороны salesforce было по поводу всего одного стандартного объекта Product который мы решили использовать. Спрашивали "реально ли он нам так необходим для нашего приложения". Вот и думай, что лучше: копирование salesforce функционала или использование.

Я пока склоняюсь к копированию.


Интересно я слышал другое мнение буду иметь виду.

[quote="Dmitry Shnyrev"]В использовании стандартных объектов тоже может крыться проблема, если вы делаете приложение для AppExchange.

Во первых нельзя быть уверенным, что на стандартные объекты у одного из заказчиков не будет навешен кастомный validation rule или просто required field. Тут вы просто теряете заказчика, если не получится договориться.

Даже как-то участвовал в одном проекте, которые выкладывали в AppExchange - 90% вопросов и тупого обсуждения со стороны salesforce было по поводу всего одного стандартного объекта Product который мы решили использовать. Спрашивали "реально ли он нам так необходим для нашего приложения". Вот и думай, что лучше: копирование salesforce функционала или использование.

Я пока склоняюсь к копированию.[/quote]
Интересно я слышал другое мнение буду иметь виду.

Dmitry Shnyrev
Во первых нельзя быть уверенным, что на стандартные объекты у одного из заказчиков не будет навешен кастомный validation rule или просто required field. Тут вы просто теряете заказчика, если не получится договориться.

Одна из самых верных причин копировать функционал)

По моему же вопросу.
Это всё верно отрабатывает если ты знаешь Id паблик группы. Интересно как найти бы ее по имени...

[quote="Dmitry Shnyrev"]
Во первых нельзя быть уверенным, что на стандартные объекты у одного из заказчиков не будет навешен кастомный validation rule или просто required field. Тут вы просто теряете заказчика, если не получится договориться.
[/quote]
Одна из самых верных причин копировать функционал)

По моему же вопросу.
Это всё верно отрабатывает если ты знаешь Id паблик группы. Интересно как найти бы ее по имени...

SELECT Id, Name, DeveloperName, Type
FROM Group

Это не поможет ?

SELECT Id, Name, DeveloperName, Type
FROM Group

Это не поможет ?

SELECT UserOrGroupId FROM GroupMember WHERE GroupId = <Some group id>

Там еще проблемка в том что Public Groups имеют древовидную структуру и если тебе нужный все пользователи из группы, то нужно раскручивать всю структуру вглубь - UserOrGroupId, в этом загвоздка.
Когда-то сталкивался с этой задачей, вот только не могу вспомнить где.

Это всё верно отрабатывает если ты знаешь Id паблик группы. Интересно как найти бы ее по имени...

SELECT UserOrGroupId FROM GroupMember WHERE Group.DeveloperName = 'some name'

[quote]SELECT UserOrGroupId FROM GroupMember WHERE GroupId = <Some group id>[/quote]
Там еще проблемка в том что Public Groups имеют древовидную структуру и если тебе нужный все пользователи из группы, то нужно раскручивать всю структуру вглубь - UserOrGroupId, в этом загвоздка.
Когда-то сталкивался с этой задачей, вот только не могу вспомнить где.

[quote]Это всё верно отрабатывает если ты знаешь Id паблик группы. Интересно как найти бы ее по имени...[/quote]
SELECT UserOrGroupId FROM GroupMember WHERE Group.DeveloperName = 'some name'

Dmitry Shnyrev
SELECT UserOrGroupId FROM GroupMember WHERE GroupId = <Some group id>

Там еще проблемка в том что Public Groups имеют древовидную структуру и если тебе нужный все пользователи из группы, то нужно раскручивать всю структуру вглубь - UserOrGroupId, в этом загвоздка.
Когда-то сталкивался с этой задачей, вот только не могу вспомнить где.

Это всё верно отрабатывает если ты знаешь Id паблик группы. Интересно как найти бы ее по имени...

SELECT UserOrGroupId FROM GroupMember WHERE Group.DeveloperName = 'some name'

Благодарю!

[quote="Dmitry Shnyrev"][quote]SELECT UserOrGroupId FROM GroupMember WHERE GroupId = <Some group id>[/quote]
Там еще проблемка в том что Public Groups имеют древовидную структуру и если тебе нужный все пользователи из группы, то нужно раскручивать всю структуру вглубь - UserOrGroupId, в этом загвоздка.
Когда-то сталкивался с этой задачей, вот только не могу вспомнить где.

[quote]Это всё верно отрабатывает если ты знаешь Id паблик группы. Интересно как найти бы ее по имени...[/quote]
SELECT UserOrGroupId FROM GroupMember WHERE Group.DeveloperName = 'some name'[/quote]
Благодарю!

Тут вопрос про эти группы. Я с ними столкнулся. Мой вопрос про тесты.
Когда объект создается пользователем, то этот объект шарится в группу. Это как-то делается автоматом или настраивается?
Я хоче тест написать. Два пользователя. Один создает, другой пытается удалить. Но меня смущает то, что мне надо делать

mySObject__Share s01 = new mySObject__Share(
ParentID = mySO01.Id,
AccessLevel = 'Edit',
UserOrGroupId = g01.Id
);
insert s01 ;

Мое смущение в том, что, создавая объект через браузер или приложение, объект уде расшарен с группой. И я его дополнительно не шарю.
Как-то можно через код настроить автоматическое расшаривание объектов в группу пользователя, создавшего объект?

Тут вопрос про эти группы. Я с ними столкнулся. Мой вопрос про тесты.
Когда объект создается пользователем, то этот объект шарится в группу. Это как-то делается автоматом или настраивается?
Я хоче тест написать. Два пользователя. Один создает, другой пытается удалить. Но меня смущает то, что мне надо делать

[code]mySObject__Share s01 = new mySObject__Share(
 ParentID = mySO01.Id,
 AccessLevel = 'Edit',
 UserOrGroupId = g01.Id
);
insert s01 ;[/code]

Мое смущение в том, что, создавая объект через браузер или приложение, объект уде расшарен с группой. И я его дополнительно не шарю.
Как-то можно через код настроить автоматическое расшаривание объектов в группу пользователя, создавшего объект?

эээ что? Бери нужного юзера и создавай объект от его лица, потом пытайся удалить от лица юзера не в группе
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_testing_tools_runas.htm
Или я что-то не так понял?

эээ что? Бери нужного юзера и создавай объект от его лица, потом пытайся удалить от лица юзера не в группе
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_testing_tools_runas.htm
Или я что-то не так понял?

RasMisha
эээ что? Бери нужного юзера и создавай объект от его лица, потом пытайся удалить от лица юзера не в группе
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_testing_tools_runas.htm
Или я что-то не так понял?

Да, не так понял.
Мне надо было код проверить. Два пользователя в одной группе. Один создает, а другой удаляет. Другой видит, но не может удалить.
Я уже разобрался.

[quote="RasMisha"]эээ что? Бери нужного юзера и создавай объект от его лица, потом пытайся удалить от лица юзера не в группе
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_testing_tools_runas.htm
Или я что-то не так понял?[/quote]
Да, не так понял.
Мне надо было код проверить. Два пользователя в одной группе. Один создает, а другой удаляет. Другой видит, но не может удалить.
Я уже разобрался.

Chiz
Я уже разобрался.

Поделись тогда своим рецептом, для истории.

[quote="Chiz"]Я уже разобрался.[/quote]
Поделись тогда своим рецептом, для истории.

Dmitry Shnyrev
Chiz
Я уже разобрался.

Поделись тогда своим рецептом, для истории.

Та я просто с этим не сталкивался никогда, вот и не знал, что делать.
Надо было создать группу, создать пользователей с разными правами и добавить в эту группу. Ну и дальше запускать тесты из под определенных пользователей.

[quote="Dmitry Shnyrev"][quote="Chiz"]Я уже разобрался.[/quote]
Поделись тогда своим рецептом, для истории.[/quote]
Та я просто с этим не сталкивался никогда, вот и не знал, что делать.
Надо было создать группу, создать пользователей с разными правами и добавить в эту группу. Ну и дальше запускать тесты из под определенных пользователей.