Как извлечь список пользователей, которые забрали элемент списка с тегом «Мне нравится»
-
16-10-2019 - |
Вопрос
Я хочу программатически извлекать всех пользователей (список пользователей), у которых есть помеченный элемент SharePoint 2010 пользовательский список «мне это нравится».
Но я хочу, чтобы список пользователей // SharePoint предоставил эту функциональность из коробки в центральном администраторе Для этого перейдите по этой ссылке
Есть ли способ получить эту информацию программатически ??
заранее спасибо!!
Решение
Хотя я уверен, что люди утверждают, что запрос базы данных в любой форме не допускается (т.е. повлияет на вашу поддержку Microsoft), я буду оспаривать их заранее, чтобы официально произвести что -либо из Microsoft с таким заявлением. Все виды вещей при вставке/изменении/удалении строк в таблицы и изменение схемы, но ничего при выполнении оператора SELECT или выполнении хранимой процедуры, которая никоим образом не обновляет таблицу.
Я скажу, что непосредственное запрос базы данных - это то, что люди должны делать, что а) понимать SQL и как он оптимизирует запросы и б) понимать SharePoint DM. Вы не хотите, чтобы люди писали запросы, которые окажут измеримое негативное влияние на производительность фермы.
С этим отказом от ответственности, нет никаких средств добраться до этих данных через опубликованный и поддерживаемый API, о котором я знаю. Вы могли бы добраться до этого, собрав несколько сохраненных процедур социального DB, но это довольно громоздко. Ниже приведен выбор, который принесет вам большую часть пути. Вам по -прежнему нужно будет связать его с вашим профилем DB, чтобы разрешить GUID с именем профиля ... вы можете поочередно использовать GUID и позвонить userProfilEmanager.getUserProfile, чтобы вернуть ссылку на профиль и получить имя таким образом.
SELECT UserId
FROM [Social DB].[dbo].[SocialTags] st
Inner Join [Social DB].[dbo].[Urls] u
On u.UrlId = st.UrlId
and u.Url = 'http://sharepointdev:9000/Shared%20Documents/Content_viewing_2011-07-26T131806.xlsx' -- the encoded URL of the file you want to retrieve Like It info on
Inner Join [Social DB].[dbo].[UserProfile_Validation] uv
On uv.User_RecordID = st.User_RecordID
Where
InputTermLabel = 'I like it' -- or you can get the TermID for the "I Like It" tag and query against TermID
Не идеальное решение при каком-либо воображении, и это, очевидно, потребует повторной сертификации, если будут установлены какие-либо горячие постройки, Cu или SPS.
Другие советы
В первом посте вы пробовали перечислять List<SocialTermDetail>
Список, чтобы увидеть, что в каждом объекте в списке?
В этом журнале: http://www.diwug.nl/e-magazines/pages/default.aspx Emagazine #4 Я написал статью о SocialdataService, UserProfile, пользователях и группах и поисковой веб -службе. Я думаю, это вам поможет.