Страница 1 из 1
Привязка подразделений к NetBIOS-имени
Добавлено:
Ср мар 18, 2015 1:21 pm
switchman
Я уже предлагал это, еще в новостарой поддержке.
Суть в том, что сотрудники, часто бывает, мигрируют между подразделениями. В таком режиме было бы очень удобно, чтобы и в чате миграция отображалась по-факту. Это можно реализовать, привязав подразделения кампании к NetBIOS -именам компьютеров, установленных в подразделении. Вошедший, в чат, на этом компьютере пользователь, автоматом переводится в текущее подразделение и руководство счастливо! Сейчас, чтобы гарантированно написать в нужное подразделение, смотрим в свойства пользователя. Раз в два месяца - перелопачивание базу, дабы распихать всех по-факту.
ЗЫ: Ждем ФОРУМА, поэтому сидим на 4.14. Если, то, что выше, уже реализовано, прошу прощения!
Re: Привязка подразделений к NetBIOS-имени
Добавлено:
Ср мар 18, 2015 6:56 pm
Алексей Пикуров
День добрый.
switchman писал(а):Я уже предлагал это, еще в новостарой поддержке.
Все сообщения сохранены, можно поискать тему здесь.
Суть в том, что сотрудники, часто бывает, мигрируют между подразделениями.
Люди физически пересаживаются с компьютера на компьютер? Или ходят по подразделениям компании со своими ноутбуками? Поясните подробнее, я не совсем точно вас понял.
Re: Привязка подразделений к NetBIOS-имени
Добавлено:
Чт мар 19, 2015 1:07 pm
switchman
Именно пересаживаются... Никаких ноутбуков. Проще говоря, подразделения, это магазины сети. Продавцы часто гоняются из магазин в магазин и это большая работа - отслеживать ротацию и оперативно вносить изменения. Сами они никогда этого не сделают.
Re: Привязка подразделений к NetBIOS-имени
Добавлено:
Чт мар 19, 2015 1:12 pm
switchman
Кстати говоря, при миграции с ноутбуками предложение не имело бы смысла. У меня все нетбиос-имена - это идентификаторы магазинов + номер компьютера, у кого-то это могли быть номера кабинетов, названия департаментов.... Если-б я мог, по этим признакам, добавлять компьютеры в подразделения, а пользователей бы по ним раскидывало автоматом, при логине, было-бы ТО, ЧТО НАДО!
Re: Привязка подразделений к NetBIOS-имени
Добавлено:
Чт мар 19, 2015 1:25 pm
Алексей Пикуров
Насколько я понимаю решение проблемы, если бы на сервере был скрипт, который будет сам заниматься этим делом, то было бы круто.
Вопрос только в написании самого скрипта и в технической возможности. Техническую возможность реализовать можно, первичный вариант скрипта я напишу, а дальнейшее его сопровождение уже будет на вас.
Такой вариант вас устроит?
Re: Привязка подразделений к NetBIOS-имени
Добавлено:
Чт мар 19, 2015 1:32 pm
switchman
Безусловно. Спасибо!
Re: Привязка подразделений к NetBIOS-имени
Добавлено:
Чт мар 19, 2015 1:33 pm
Алексей Пикуров
Тогда вам придётся обновиться на последнюю версию. Обновитесь, и совместно с вами сделаем то, что вам нужно.
Re: Привязка подразделений к NetBIOS-имени
Добавлено:
Ср мар 25, 2015 8:27 pm
Алексей Пикуров
Покажите пожалуйста примеры именования ваших компьютеров, несколько разных NETBOIS-имён и соответствия подразделениям, чтобы было ясно, как писать логику скрипта.
Я сейчас как раз занялся этой задачей.
Re: Привязка подразделений к NetBIOS-имени
Добавлено:
Чт мар 26, 2015 6:53 pm
Алексей Пикуров
Итак, функции готовы, скрипт тоже. На его основе вы сможете сделать то, что вам нужно.
Скрипт вешается на событие
OnUserLogin (не забудьте галку "Включить скрипт"):
netbiosnamestocompanydepartments.png (50.16 КБ) Просмотров: 2280
Исходный текст скрипта:
Код: Выделить всёfunction OnClientLogin(iCID, iLoginUIN, iLoginState: integer; sLoginIP, sLoginMAC,
sLoginHardwareID, sLoginCompName, sLoginVersion: string): boolean;
var
sNewCompName, sOldCompName: string;
iDeptID: integer;
begin
sNewCompName := sLoginCompName;
sOldCompName := mGetUserAttribute(iLoginUIN, 'COMPUTER_NET_NAME');
if sNewCompName <> sOldCompName then begin
if pos('TOSHIBA', sNewCompName) > 0 then iDeptID := mGetDepartmentIDByTextPath('Developers\Notebooks') else
if pos('BUHGALT', sNewCompName) > 0 then iDeptID := mGetDepartmentIDByTextPath('Finance') else
if pos('MARKET', sNewCompName) > 0 then iDeptID := mGetDepartmentIDByTextPath('External\Freelance\Marketing');
if iDeptID <> -1 then mUpdateUserDepartment(iLoginUIN, iDeptID);
end;
result := true;
end;
begin
end.
Логика такая:
- после успешного логина юзера смотрим его NETBIOS имя и сравниваем с тем, что было в прошлый раз (функция mGetUserAttribute);
- если имена не совпадают, это означает, что пользователь пересел на другой компьютер, а значит, надо сменить ему департамент;
- смотрим, чему равно название компьютера и подбираем по нему то подразделение, которому он должен соответствовать, получаем ID департамента;
- назначаем пользователю этот новый департамент.
Обычно, после смены департамента, новый общий список контактов обновляется у всех пользователей в течение 2-3 минут, автоматически, а на сервере в WEB-админке — мгновенно.
Вложенные подразделения указываются через слеш "\", без лишних символов и пробелов.
Скрипт будет работать в версии 5.10 и выше.