Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/327912/newLayout.css



Descrição

Para fazer um filtro no retorno, é necessário passar um array como parâmetro com o código dos usuários a serem retornados. Esse parâmetro é opcional, se não for passado à função retornará todos os usuários.


Programa Fonte

FWSFALLUSERS                  


Parametros


NomeTipoDescriçãoDefaultObrigatórioReferência
aUserListArrayInforme a lista de usuários que deverão ser filtrados.


aKeyValuesArrayLista com os campos que serão retornados, dentro da lista de permitidos.



Retorno

aUsers - Array com os usuários do sistema no seguinte formato:

Bloco de código
languagetext
linenumberstrue
[n][1] Id da tabela de usuários (r_e_c_n_o_)
[n][2] Id do usuário
[n][3] Login do Usuário
[n][4] Nome do usuário
[n][5] email do usuário
[n][6] departamento do usuário
[n][7] cargo do usuário


Obs.: se passado o segundo parâmetro aKeyValues, o array de retorno ira conter a seguinte estrutura:

Bloco de código
languagetext
linenumberstrue
[n][1] Id da tabela de usuários (r_e_c_n_o_)
[n][2] Id do usuário
[n][x]... os dados pedidos pelo aKeyValues


Exemplo
Bloco de código
languagetext
linenumberstrue
User Function LeEmail()
Local nx
Local aAllusers := FWSFALLUSERS()
For nx := 1 To Len(aAllusers)
    conout(aAllusers[nx][4] + " -" + aAllusers[nx][5])
Next
Return


Exemplo especificando o aUserList ( filtro é feito pelo ID do usuário e não pelo login)

Bloco de código
languagetext
linenumberstrue
User Function LeEmail()
Local nx
Local aAllusers := FWSFALLUSERS({"000001"})
For nx := 1 To Len(aAllusers)
    conout(aAllusers[nx][4] + " -" + aAllusers[nx][5])
Next
Return


Exemplo com o parâmetro aKeyValues

Bloco de código
languagetext
linenumberstrue
User Function LeEmail() 
Local nx 
Local aAllusers := FWSFALLUSERS(,{"USR_CARGO"})
For nx := 1 To Len(aAllusers) 
	conout(aAllusers[nx][4] + " -" + aAllusers[nx][5]) 
Next 
Return


Obs.: Se o aKeyValues foi especificado como no exemplo acima, independente se você solicitou ou não, ele sempre trará nas duas primeiras posições do array, o RecNo e o ID do usuário, seguido dos campos solicitados, logo se eu pedi somente o e-mail:
Bloco de código
languagetext
linenumberstrue
FWSFAllUsers(,{"USR_EMAIL"})


Ele retornará um array da seguinte forma:
Bloco de código
languagetext
linenumberstrue
{
  {1, "000000", "[email protected]"},

  {2, "000001", "[email protected]"}
}


Outro ponto importante, os campos que são solicitados, não podem constar nos grids, ou seja, precisam ser campos de 1 para 1 no relacionamento das tabelas de usuário, imagina que você pede o grupo do usuário, mas um usuário pode ter vários grupos, logo não é um campo que será retornado, talvez sem o dicionário no banco ele até retorne, mas só retornará o primeiro encontrado, no banco de dados isso não acontece!Quais campos então eu posso pedir?
Todos os campos de 1 para 1, sendo dos seguintes alias:
  • MPUSR_USR
  • MPUSR_PRITER
  • MPUSR_LOGCFG
  • MPUSR_VINCFUNC
  • MPUSR_PANEIS
  • MPUSR_ACESSIB

Obs.: Isso pode acabar sendo alterado, pois ficamos de verificar a demanda do que as pessoas iam querer como retorno.
Existem exceções quanto a essas tabelas, são os campos USR_ID, R_E_C_N_O_,  R_E_C_D_E_L_, D_E_L_E_T_ e USR_CHKSUM.
Esses campos não podem ser retornados quando informados, pois eles têm o mesmo nome em todas as tabelas, isso gera um erro de duplicidade de nomes/campos na query, fora que eu não teria como distinguir de qual tabela ele por exemplo deseja que seja retornado o USR_CHKSUM, vale ressaltar que não é necessário solicitar o USR_ID e R_E_C_N_O_ do usuários, nós sempre devolvemos esses campos.