Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
SSIS Integration Runtime em Azure Data Factory
Aplicações empresariais de processamento de dados, como os pacotes de Serviços de Integração, muitas vezes precisam de processar os dados de forma diferente consoante a patente, o título do cargo ou outras características dos colaboradores armazenados no Active Directory. Active Directory é um serviço de diretório Microsoft Windows que fornece um armazenamento centralizado de metadados, não só sobre utilizadores, mas também sobre outros ativos organizacionais, como computadores e impressoras. O espaço de nomes System.DirectoryServices no Microsoft .NET Framework fornece classes para trabalhar com Active Directory, para ajudar a direcionar o fluxo de trabalho de processamento de dados com base na informação que armazena.
Note
Se quiser criar uma tarefa que possa reutilizar mais facilmente em vários pacotes, considere usar o código deste exemplo de tarefa Script como ponto de partida para uma tarefa personalizada. Para obter mais informações, consulte Desenvolvendo uma tarefa personalizada.
Description
O exemplo seguinte recupera o nome, cargo e número de telefone de um funcionário do Active Directory com base no valor da email variável, que contém o endereço de e-mail do colaborador. As restrições de precedência no pacote podem usar a informação recuperada para determinar, por exemplo, se enviam uma mensagem de e-mail de baixa prioridade ou uma página de alta prioridade, com base no cargo do empregado.
Para configurar este exemplo de Tarefa de Script
Crie as três variáveis
emailstring ,name, etitle. Insira um endereço de email corporativo válido como valor daemailvariável.Na página Script do Editor de Tarefas de Script, adicione a
emailvariável à propriedade ReadOnlyVariables .Adicione as
namevariáveis etitleà propriedade ReadWriteVariables .No projeto de script, adicione uma referência ao espaço de nomes System.DirectoryServices .
. No seu código, use uma instrução Imports para importar o espaço de nomes DirectoryServices .
Note
Para executar este script com sucesso, a sua empresa deve estar a usar o Active Directory na sua rede e a armazenar a informação do funcionário que este exemplo utiliza.
Code
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;
}
}