Importando usuários via arquivo CSV no Elipse E3 (criar, alterar e remover via script).

Descrição:

Como realizar a importação de usuários no Elipse E3 a partir de um arquivo CSV, permitindo criar, atualizar e remover usuários automaticamente?

Solução

É possível implementar a importação de usuários via script no Elipse E3 utilizando leitura de arquivos texto (CSV) e manipulação do nó Security do objeto [?Server].

O processo envolve basicamente três etapas:

  1. Leitura do arquivo CSV
  2. Tratamento dos dados
  3. Execução das ações (criar, atualizar ou remover usuários)

1. Leitura do arquivo CSV

Para leitura do arquivo, recomenda-se utilizar o objeto FileSystemObject, conforme descrito no artigo:

https://kb.elipse.com.br/kb12658-como-lerescrever-em-arquivos-texto-txt-pelo-e3/


2. Manipulação de usuários no E3

Os usuários são gerenciados através do objeto:

[?Server].Security.Users

Criação de usuários

A partir da versão 6.5, é possível utilizar o método CreateUser:

Exemplo:

Set Users = Application.GetObject("[?Server].Security.Users")

Users.CreateUser "User01", 0, False, "Teste001", "User01"
MsgBox "FullName: " & Application.GetObject("[?Server].Security.Users.[User01]").FullName

Users.CreateUser "User02", 0, False, "Teste002", "User02"
MsgBox "FullName: " & Application.GetObject("[?Server].Security.Users.[User02]").FullName

Referência:
https://kb.elipse.com.br/kb-30905-como-criar-novos-usuarios-durante-execucao-do-e3/


Alteração de usuários

Para alterar um usuário existente, basta acessar o objeto e modificar suas propriedades:

Set userObj = Application.GetObject("[?Server].Security.Users.[User01]")
userObj.FullName = "Novo Nome"
userObj.Password = "NovaSenha"

Remoção de usuários

Para remover um usuário:

Application.GetObject("[?Server].Security.Users").RemoveUser "User01"

Associação a grupos

Para adicionar um usuário a um grupo:

Application.GetObject("[?Server].Security.Users.[User01]").AddToGroup "Operadores"

3. Exemplo completo (CSV → criação/alteração/remoção)

Formato do arquivo CSV

Exemplo:

Acao;Login;NomeCompleto;Senha;Grupo
C;user01;Usuário 01;123;Operadores
U;user02;Usuário 02;456;Administradores
D;user03;;;

Onde:

  • C = Criar
  • U = Atualizar
  • D = Deletar

Script de exemplo

Dim fso, file, linha, dados
Dim Users, userObj
Dim acao, login, nome, senha, grupo

Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\Temp\usuarios.csv", 1)

' Pula o cabeçalho
file.SkipLine

Set Users = Application.GetObject("[?Server].Security.Users")

Do While Not file.AtEndOfStream

    linha = file.ReadLine
    dados = Split(linha, ";")

    acao = Trim(dados(0))
    login = Trim(dados(1))
    nome  = Trim(dados(2))
    senha = Trim(dados(3))
    grupo = Trim(dados(4))

    On Error Resume Next
    Set userObj = Users.Item(login)

    If Err.Number <> 0 Then
        Set userObj = Nothing
        Err.Clear
    End If
    On Error GoTo 0

    Select Case acao

        Case "C" ' Criar
            If userObj Is Nothing Then
                Users.CreateUser login, 0, False, nome, senha
            End If

        Case "U" ' Atualizar
            If Not userObj Is Nothing Then
                userObj.FullName = nome

                If senha <> "" Then
                    userObj.Password = senha
                End If
            End If

        Case "D" ' Remover
            If Not userObj Is Nothing Then
                Users.RemoveUser login
            End If

    End Select

    ' Associação ao grupo
   If grupo <> "" And acao <> "D" And Not userObj Is Nothing Then
        Application.GetObject("[?Server].Security.Users.[" & login & "]").AddToGroup grupo
    End If

Loop

file.Close

Detalhamento do script

O script percorre o arquivo CSV linha a linha e executa ações nos usuários do E3 conforme definido em cada registro.

  1. Leitura do arquivo
    • Utiliza FileSystemObject para abrir o CSV.
    • Ignora a primeira linha (cabeçalho) com SkipLine.
  2. Separação dos dados
    • Cada linha é dividida pelo caractere ; usando Split.
    • Os campos são atribuídos às variáveis:
      • acao (C, U ou D)
      • login
      • nome
      • senha
      • grupo
  3. Verificação do usuário
    • Tenta obter o usuário com Users.Item(login).
    • Caso não exista, a variável userObj fica como Nothing.
  4. Execução da ação
    • C (Criar): cria o usuário se ele ainda não existir (CreateUser).
    • U (Atualizar): altera nome e senha (se informada).
    • D (Deletar): remove o usuário (RemoveUser).
  5. Associação a grupo
    • Se houver grupo informado e a ação não for exclusão, o usuário é adicionado ao grupo com AddToGroup.
  6. Loop até o final
    • O processo se repete até o fim do arquivo (AtEndOfStream).

Observações importantes

  • O usuário logado deve possuir permissões para gerenciamento de usuários e grupos.
  • O método CreateUser está disponível apenas a partir da versão 6.5.
  • Recomenda-se validar os dados do CSV antes da execução (ex.: campos obrigatórios, duplicidades, etc.).
  • Em ambientes produtivos, evite o uso de On Error Resume Next sem tratamento adequado.

Artigos Relacionados


 

Anexos:

usuarios.csv

 

Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

Classificação média - Average rating 0 / 5. Count: 0

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *