Nesta página5 seções
A mesma rotina, na mesma filial, funciona para todo mundo e dá erro para uma pessoa só. Antes de reinstalar o SmartClient dela, olhe o profile. A própria TOTVS orienta assim: problema pontual de um usuário só pode ser “sujeira” no perfil dele, e a saída é recriar o profile daquele usuário, sem tocar no dos outros.
A ferramenta é a Manutenção de Profile (programa PROFMGR), em
Ambiente > Cadastros > Manutenção de Profile no Configurador.
O que o profile guarda
Profile é o que o Protheus lembra de um usuário entre uma sessão e outra. Com
o dicionário no banco, esses registros ficam na tabela MP_SYSTEM_PROFILE.
A chave única da tabela é usuário, programa, tarefa, tipo, empresa e filial
(colunas P_NAME, P_PROG, P_TASK, P_TYPE, P_EMPANT e P_FILANT).
Então o mesmo usuário tem registros diferentes por rotina e por
empresa/filial.
Num ambiente real, aparecem combinações como estas (programa / tarefa / tipo):
MTA410/PERGUNTE/MV_PAR: as últimas respostas às perguntas do grupoMTA410, daSX1. Aqui o “programa” é o nome do grupo de perguntas.CONPAD/CONFIG/BRWPOSeSAVESEEK: chaves ligadas e desligadas das consultas padrão. O conteúdo é só.T.ou.F., e não uma posição ou uma pesquisa gravada.MATA410/PROTHEUS/BROWSESC5eMATA410/FWFILTER/SC5: registros do pedido de venda ligados à tabelaSC5. Pelos nomes, indicam o browse e os filtros da rotina. É leitura dos nomes: a documentação não descreve esses tipos.MATA410/05/LAST: um registro do pedido de venda no módulo 05, o Faturamento. O conteúdo não traz data nem hora.
Por isso o sintoma costuma ser de uma tela só: cada rotina tem as próprias linhas, de cada usuário. Uma preferência com problema atrapalha a tela a que pertence, e só para o dono dela.
Dá para ler parte do conteúdo
O conteúdo de cada preferência fica na coluna P_DEFS, que é binária. Mas
boa parte é texto. Convertendo para varchar, as chaves aparecem como .T.
e .F., e as respostas de perguntas aparecem uma linha por pergunta do
grupo, na ordem, começando pelo tipo da pergunta como na SX1 (C#C#2,
N#C#1…):
SELECT P_NAME, P_PROG, P_TASK, P_TYPE,
CAST(P_DEFS AS varchar(max)) AS CONTEUDO
FROM MP_SYSTEM_PROFILE
WHERE P_PROG = 'MTA410'
AND P_TASK = 'PERGUNTE'
AND D_E_L_E_T_ = ' 'Útil no diagnóstico: se o relatório “lembra” uma resposta que o usuário jura que não deu, ela está ali. Nem tudo converte limpo. Alguns registros guardam estruturas binárias e mostram caracteres de controle.
Vendo o profile de alguém antes de apagar
A MP_SYSTEM_PROFILE não leva sufixo de empresa no nome: é uma tabela só
para o ambiente, com a empresa e a filial em colunas próprias. Na maior parte
das linhas, P_NAME guarda o código do usuário, que se liga ao
cadastro de usuários do dicionário no banco (SYS_USR). Para achar pelo
login:
SELECT P.P_NAME, P.P_PROG, P.P_TASK, P.P_TYPE, P.P_EMPANT, P.P_FILANT
FROM MP_SYSTEM_PROFILE P
JOIN SYS_USR U
ON U.USR_ID = P.P_NAME
AND U.D_E_L_E_T_ = ' '
WHERE U.USR_CODIGO = 'mariana.costa'
AND P.D_E_L_E_T_ = ' '
ORDER BY P.P_PROG, P.P_TASK, P.P_TYPETroque mariana.costa pelo login de quem está com o problema.
SELECT P_NAME, P_PROG, P_TASK, P_TYPE, P_EMPANT, P_FILANT
FROM MP_SYSTEM_PROFILE
WHERE P_PROG = 'MATA410'
AND D_E_L_E_T_ = ' '
ORDER BY P_NAME, P_TASK, P_TYPESe o erro é numa rotina que nem aparece no profile do usuário, o profile provavelmente não é o culpado. Vale procurar em outro lugar antes de apagar qualquer coisa.
Guarde uma cópia antes de apagar
Antes de excluir, a documentação da TOTVS manda fazer backup. No profile em arquivo, o backup é da pasta Profile,
dentro da Protheus_Data, com os serviços parados. Com o dicionário no
banco, peça ao responsável pelo banco uma cópia das linhas do usuário, por
exemplo:
SELECT *
INTO MP_SYSTEM_PROFILE_BKP
FROM MP_SYSTEM_PROFILE
WHERE P_NAME = '000123'Troque 000123 pelo código do usuário. É uma operação de escrita no banco:
deve ser feita por quem tem permissão para isso, e não por um usuário de
consulta.
Limpando pela rotina
- Abra Ambiente > Cadastros > Manutenção de Profile.
- Localize o usuário pelo código.
- Posicione no registro e use Excluir. O sistema pergunta se deve apagar só o registro posicionado ou todos os registros do usuário.
- Peça ao usuário para entrar de novo na rotina e testar.
Comece pelo pontual. Se o erro é na tela do pedido de venda, apague as
linhas do MATA410 e teste. Só parta para “todos os registros” se o
problema não for de uma tela só, ou se o pontual não resolver.
A exclusão se faz pela Manutenção de Profile, que é o caminho documentado.
Um DELETE escrito à mão nessa tabela, com o filtro errado, apaga o profile
de todo mundo de uma vez.
Se a tela continua quebrando depois de limpar o profile, o problema está em outro lugar: acesso, menu ou dicionário. O cadastro de usuários é o próximo lugar a olhar.
Referências
TDNtdn.totvs.com
TDN — Manutenção de Perfil de Usuário (Profile)Central de Atendimentocentraldeatendimento.totvs.com
Central de Atendimento TOTVS — Manutenção de Profile de UsuáriosCentral de Atendimentocentraldeatendimento.totvs.com
Central de Atendimento TOTVS — Limpar Dados do Profile
Continue por aqui
- Vídeo
ProtheusTutorial
Repositório de imagens: como levar fotos para dentro do Protheus
Repositório de Imagens do Configurador: como incluir fotos, limites de formato e tamanho e o que decide se elas ficam em arquivo ou no banco.