Manipulação de usuários e grupo em runtime por script

Criei um formulário para criar e editar os usuários e os grupos na minha aplicação, para restringir o que o adm pode acessar, porém tenho a particularidade de inserir no cadastro do usuário, no campo do nome, o número de matrícula do operador, porém quando tento associar esse usuário a um grupo pelo comando : Application.GetObject("[?Server].Security.Users.[]").AddToGroup(GroupName), o Elipse retoran erro, mas se eu utilizar um caracter que não seja número, junto do nome do usuário, a lógica funciona. No entanto quando utilizo a ferramenta padrão do E3 para gerenciamento de usuários, não tenho esse problema, pois é possivel atribuir o usuário a um grupo mesmo nomeado com números. Estou utilizando a versão 6.5 do E3.

segue o codigo:

Sub CommandButton5_Click()
me.Setfocus()

Dim usr_cod, grupo, usr_exist

usr_cod = Cstr(Screen.Item(“ComboBox2”).Value)
grupo = Screen.Item(“ComboBox1”).Value

'verifica se usuário já foi cadastrado
set usr = Application.GetObject("[?Server].Security.Users")
usr_exist = usr.UserExists(usr_cod)

If usr_exist = True Then
Application.GetObject("[?Server].Security.Users."&usr_cod).AddToGroup(grupo)
Else
MsgBox “Usuário não cadastrado”, vbExclamation
End If
End Sub

Olá, amigo, coloque colchetes ao redor do nome do usuário no script que deve funcionar:
Application.GetObject("[?Server].Security.Users.["&usr_cod&"]").AddToGroup(grupo)

@Johen , perfeito! funcionou, muito obrigado!

1 Like