Consultando o Active Directory com a tarefa Script
Aplicativos de processamento de dados corporativos, como pacotes do Integration Services, muitas vezes precisam processar dados de forma diferente com base na classificação, no nome do cargo ou em outras características dos funcionários armazenadas no Active Directory. O Active Directory é um serviço de diretório do Windows Microsoft que fornece um armazenamento centralizado de metadados, não apenas sobre usuários, mas também sobre outros ativos organizacionais, como computadores e impressoras. O namespace System.DirectoryServices no Microsoft .NET Framework fornece classes para trabalhar com o Active Directory, a fim de ajudar você a direcionar o fluxo de processamento de dados com base nas informações que ele armazena.
Observação |
---|
Se desejar criar uma tarefa mais fácil de ser reutilizada em vários pacotes, procure utilizar o código desse exemplo de tarefa Script como o ponto inicial de uma tarefa personalizada. Para obter mais informações, consulte Desenvolvendo uma tarefa personalizada. |
Descrição
O exemplo seguinte recupera nome, cargo e número de telefone de um funcionário no Active Directory, com base no valor da variável email, que contém o endereço de email desse funcionário. As restrições de precedência no pacote podem usar as informações recuperadas para determinar, por exemplo, se ele deve enviar uma mensagem de email de baixa prioridade ou uma página de alta prioridade, baseando-se no nome do cargo do funcionário.
Para configurar esse exemplo de tarefa Script
Crie as três variáveis de cadeia de caracteres email, name e title. Digite um endereço de email corporativo válido como o valor da variável email.
Na página Script do Editor da Tarefa Script, adicione a variável email à propriedade ReadOnlyVariables.
Acrescente as variáveis name e title à propriedade ReadWriteVariables.
No projeto de script, acrescente uma referência ao namespace System.DirectoryServices.
. Em seu código, use uma instrução Imports para importar o namespace DirectoryServices.
Observação |
---|
Para executar esse script com sucesso, sua empresa deve usar o Active Directory em sua rede e armazenar as informações do funcionário que este exemplo usa. |
Código
Public Sub Main()
Dim directory As DirectoryServices.DirectorySearcher
Dim result As DirectoryServices.SearchResult
Dim email As String
email = Dts.Variables("email").Value.ToString
Try
directory = New _
DirectoryServices.DirectorySearcher("(mail=" & email & ")")
result = directory.FindOne
Dts.Variables("name").Value = _
result.Properties("displayname").ToString
Dts.Variables("title").Value = _
result.Properties("title").ToString
Dts.TaskResult = ScriptResults.Success
Catch ex As Exception
Dts.Events.FireError(0, _
"Script Task Example", _
ex.Message & ControlChars.CrLf & ex.StackTrace, _
String.Empty, 0)
Dts.TaskResult = ScriptResults.Failure
End Try
End Sub
public void Main()
{
//
DirectorySearcher directory;
SearchResult result;
string email;
email = (string)Dts.Variables["email"].Value;
try
{
directory = new DirectorySearcher("(mail=" + email + ")");
result = directory.FindOne();
Dts.Variables["name"].Value = result.Properties["displayname"].ToString();
Dts.Variables["title"].Value = result.Properties["title"].ToString();
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
Dts.Events.FireError(0, "Script Task Example", ex.Message + "\n" + ex.StackTrace, String.Empty, 0);
Dts.TaskResult = (int)ScriptResults.Failure;
}
}
Recursos externos
- Artigo técnico, Processing Active Directory Information in SSIS (em inglês) em social.technet.microsoft.com
|