RSS Подписка на статьи RSS Подписка на комментарии Панель инструментов

Блог профессионалов стал частью сайта технической поддержки DocsVision http://support.docsvision.com. Новые материалы будут появляться уже на этом сайте.

Поиск

Ярлыки

авто генерация кода (1) Администрирование DocsVision (60) Атрибутивный поиск (3) База данных (24) Базы знаний (1) Безопасность (1) Бизнес-процессы (20) Блог (2) Вы увидите это первыми (1) Групповые политики (1) Диаграммы (2) Задания (2) Интеграция (2) Карточки DocsVision (14) Конструктор Решений (11) Маркетинг и продажи (4) Навигатор (3) Новое (3) Новости (32) Опрос (4) Опросы DocsVision (4) Оптимизация (3) Отчеты (2) Ошибки (1) Поддержка (14) Полезные ссылки (1) Представления (4) Производительность (5) Разбор полетов (18) Разработка для Workflow (7) разработка карточек (2) Разработка на платформе DocsVision (41) Разработка решений (43) Расширение платформы (1) Расширенные отчеты (9) Решения на платформе DocsVision (6) Сервисы DocsVision (3) Сканеры (3) Справочник сотрудников (1) Справочник типов (1) Установка (1) Утилиты (13) Шлюз в SharePoint (8) Штрихкод (2) Cкрипты карточек (7) DocsVision внутри (1) DocsVision Live (1) FileStream (1) FireFox (2) Opera (1) Powershell (5) Safari (1) SharePoint2007 (1) SharePoint2010 (2) Silverlight (1) UltraViews (1) Vista (1)

Получение идентификатора пользователя, который открыл карточку

Пример скрипта, который получает идентификатор пользователя из справочника сотрудников, который открыл карточку


Function DoEvent(UserSession, CardFrame, CardData, ActivateFlags, ModeID, FolderID)

        'ID Справочника сотрудников и секции "Сотрудники"
        Const DIC_STAFF = "6710B92A-E148-4363-8A6F-1AA0EB18936C"
        Const SEC_STAFF = "DBC8AE9D-C1D2-4D5E-978B-339D22B32482"
        
        Dim Groups, oRows, FindUserID

        'Получаем пользователя, который открыл карточку
        Set RefStaff = UserSession.CardManager.DictionaryData(DIC_STAFF)
        Set oRows = RefStaff.Sections.Item(SEC_STAFF).FindRows( _
         "AccountNameSTREQ'" & _
         UserSession.Properties("AccountName") & "'")

        If oRows.Count = 0 Then
            'Не найден
            MsgBox ("ОШИБКА! Невозможно найти вашу учетную запись в справочнике")
            Exit Function
        End If
    
        'Это ID пользователя, открывшего карточку
        FindUserID = oRows.Item(0).ID
End Function



Развитие темы. Определение, входит ли пользователь в определенную группу.
Function DoEvent(UserSession, CardFrame, CardData, ActivateFlags, ModeID, FolderID)
'ID Справочника сотрудников и секции "Сотрудники"
Const DIC_STAFF = "6710B92A-E148-4363-8A6F-1AA0EB18936C"
Const SEC_STAFF = "DBC8AE9D-C1D2-4D5E-978B-339D22B32482"

Dim Groups, oRows, FindUserID

'Получаем пользователя, который открыл карточку
Set RefStaff = UserSession.CardManager.DictionaryData(DIC_STAFF)
'Поиск по справочнику сотрудников
Set oRows = RefStaff.Sections.Item(SEC_STAFF).FindRows( _
"AccountNameSTREQ'" & _
UserSession.Properties("AccountName") & "'")
If oRows.Count = 0 Then
'Не найден
MsgBox ("ОШИБКА! Невозможно найти вашу учетную запись в справочнике")
Exit Function
End If

'Это ID пользователя, открывшего карточку
FindUserID = oRows.Item(0).ID

'Поиск в группах
Dim StaffObject
Set StaffObject = CreateObject("TOHelperObjects.StaffObject")
Set StaffObject.UserSession = UserSession

Const GROUPID = "ID группы"
If StaffObject.IsEmployeeInGroup(FindUserID, GROUPID) = True Then
'Пользователь, открывающий карточку - в группе.
End If
Set StaffObject = Nothing
End Function

Читать дальше

7 коммент.:

Александр комментирует...

Я как понимаю, это просто пример работы со Справочником сотрудников, так как задача получения идентификатора пользователя решается вроде чуть по проще :-)

Для это можно просто использовать свойства сессии:

UserSession.Properties("CurrentUserID")

Вообще в свойствах текущей сессии можно много что узнать :-)

sergejh комментирует...

Хочется получить ФИО пользователя в скрипте XSLT по его ID...

Михаил Захаров комментирует...

Свойство CurrentUserID появилось только в 4.1, когда стало возможно выбирать учетную запись при входе.

"sergejh" - Выложу пример в одной из статей.

Александр комментирует...

Михаил, гарантирую, что свойство CurrentUserID было ещё в 3.6 SR1, мы сами его активно используем

Михаил Захаров комментирует...

Действительно, проверил. Есть такое свойство. Ну можно использовать как пример поиска по справочнику :)

Nelly комментирует...

А как узнать из скрипта, заблокирована ли карточка и кем?

Михаил Захаров комментирует...

Посмотрите в сторону свойства UserSession.LockManager.LockedResources. Оно возвращает список заблокированных объектов

Отправить комментарий