Смысла вести дневник обо всем на свете особого не видел.
Но теперь, есть что имеет смысл выложить.
При импорте пользователя из АД в контакт копирутся его почта.
1. Необходимо выяснить ID типа средства связи для почты делается это запросом в SQL
SELECT ID
FROM tbl_CommunicationType
WHERE Name = 'E-mail'
FROM tbl_CommunicationType
WHERE Name = 'E-mail'
2. Необходимо, на сервере разрешить выполнять команды с OpenRowset.
3. Изменить scr_DomainUsersUtils следующим образом:
После
ContactsDataset.Values('Name') = UserFullName;
Добавляется
ContactsDataset.Values('Communication1TypeID') = '{EmailID}';
ContactsDataset.Values('Communication1') = GetDomainContactMail(UserFullName);
ContactsDataset.Values('Communication1') = GetDomainContactMail(UserFullName);
Где EmailID - ID типа средства связи.
4. Добавить в scr_DomainUsersUtils следующую функцию:
function GetDomainContactMail(ContactName) {
var Info = new ActiveXObject('ADSystemInfo');
var Parameters = CreateSPParameters();
var Email = CreateSPParameter(Parameters, 'Email', pdtGUID, '');
Email.ParamType = 1;
var ComputerName = Info.ComputerName;
var Index = ComputerName.match('DC').index;
var Domain = ComputerName.substr(Index,ComputerName.length-1);
var SQLCommand = 'select :Email = mail from OpenRowset(\'ADSDSOObject\' ';
SQLCommand = SQLCommand + ',\'\',\'\/\/' + Domain + '>;';
SQLCommand = SQLCommand + '(objectCategory=Person);name,mail\')';
SQLCommand = SQLCommand + ' where Name = \'' + ContactName + '\'';
Connector.DBEngine.ExecuteCustomSQL(SQLCommand,Parameters);
return Email.Value;
}
var Info = new ActiveXObject('ADSystemInfo');
var Parameters = CreateSPParameters();
var Email = CreateSPParameter(Parameters, 'Email', pdtGUID, '');
Email.ParamType = 1;
var ComputerName = Info.ComputerName;
var Index = ComputerName.match('DC').index;
var Domain = ComputerName.substr(Index,ComputerName.length-1);
var SQLCommand = 'select :Email = mail from OpenRowset(\'ADSDSOObject\' ';
SQLCommand = SQLCommand + ',\'\',\'
SQLCommand = SQLCommand + '(objectCategory=Person);name,mail\')';
SQLCommand = SQLCommand + ' where Name = \'' + ContactName + '\'';
Connector.DBEngine.ExecuteCustomSQL(SQLCommand,Parameters);
return Email.Value;
}
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать