Prezados,
É possível obter uma relação do que cada usuário acessa no Protheus? Se sim que funções vocês recomendam utilizar para obter tais informações?
Prezados,
É possível obter uma relação do que cada usuário acessa no Protheus? Se sim que funções vocês recomendam utilizar para obter tais informações?
Luciano, o que você deseja saber exatamente? Um usuário tem diversos tipos de acessos.
@Daniel Preciso saber quais rotinas cada usuário acesso de forma resumida, a principio estou me virando com o relatório que o configurador oferece, mas a quantidade de informações mesmo filtrando o dados é bem grande. Não preciso de todas aquelas informações.
@Luciano, é mais fácil fazer isso por ADVPL. É uma opção para você? Se sim, eu compartilho aqui um código fonte. Estamos falando dos menus e módulos que o usuário acessa, correto?
Abrhaão, por favor se possível poderia me enviar por gentileza. Agradeço.
Olá Luciano, segue uma Query que pode te auxiliar.
SELECT M_ID,
I_ID,
I_TP_MENU,
I_ITEMID,
I_FATHER,
F_FUNCTION,
I_STATUS,
I_ORDER,
I_TABLES,
I_ACCESS,
I_DEFAULT,
I_RESNAME,
I_TYPE,
I_OWNER,
F_DEFAULT ,
I_MODULE,
I18N1.N_DESC N_PT,
I18N2.N_DESC N_ES,
I18N3.N_DESC N_EN,
KW1.K_DESC K_PT,
KW2.K_DESC K_ES,
KW3.K_DESC K_EN
FROM MPMENU_MENU MPN
INNER JOIN MPMENU_ITEM MPI ON I_ID_MENU = M_ID
AND MPI.D_E_L_E_T_ = ' '
LEFT JOIN MPMENU_FUNCTION MPF ON F_ID = I_ID_FUNC
AND MPF.D_E_L_E_T_ = ' '
INNER JOIN MPMENU_I18N I18N1 ON I18N1.N_PAREN_ID = I_ID
AND I18N1.N_LANG = '1'
AND I18N1.D_E_L_E_T_ = ' '
INNER JOIN MPMENU_I18N I18N2 ON I18N2.N_PAREN_ID = I_ID
AND I18N2.N_LANG = '2'
AND I18N2.D_E_L_E_T_ = ' '
INNER JOIN MPMENU_I18N I18N3 ON I18N3.N_PAREN_ID = I_ID
AND I18N3.N_LANG = '3'
AND I18N3.D_E_L_E_T_ = ' '
LEFT JOIN MPMENU_KEY_WORDS KW1 ON KW1.K_ID_ITEM = I_ID
AND KW1.K_LANG = '1'
AND KW1.D_E_L_E_T_ = ' '
LEFT JOIN MPMENU_KEY_WORDS KW2 ON KW2.K_ID_ITEM = I_ID
AND KW2.K_LANG = '2'
AND KW2.D_E_L_E_T_ = ' '
LEFT JOIN MPMENU_KEY_WORDS KW3 ON KW3.K_ID_ITEM = I_ID
AND KW3.K_LANG = '3'
AND KW3.D_E_L_E_T_ = ' '
WHERE M_ID in
(SELECT I_ID_MENU
FROM MPMENU_ITEM
WHERE I_ID_MENU in
(SELECT TRIM(UPPER(MDL.GR__ARQMENU)) AS MOD_ARQ
FROM SYS_USR USR
INNER JOIN SYS_GRP_GROUP GRP ON GRP.GR__ID = USR.USR_ID
AND GRP.D_E_L_E_T_ = ' '
INNER JOIN SYS_GRP_MODULE MDL ON MDL.GR__ID = GRP.GR__ID
AND MDL.D_E_L_E_T_ = ' '
WHERE USR.D_E_L_E_T_ = ' '
AND MDL.GR__ACESSO = 'T' --SOMENTE ACESSO HABILITADO = T
AND USR.USR_ID = '000000' --PASSAR CODIGO DO USUÁRIO DESEJADO
AND GR__ARQMENU <> '')
GROUP BY I_ID_MENU)
AND MPN.D_E_L_E_T_ = ' '
AND F_FUNCTION IS NOT NULL
ORDER BY F_FUNCTION,I_ORDER