Pular para o conteúdo principal

Postagem em destaque

🚀 Oferecendo Serviços Remotos de Desenvolvedor AdvPL e Mais 🖥️

🚀 Oferecendo Serviços Remotos de Desenvolvedor AdvPL e Mais 🖥️ Olá pessoal, Espero que este post encontre todos vocês bem! É com grande entusiasmo que compartilho que estou expandindo meus serviços como Desenvolvedor AdvPL para novos desafios e colaborações. Com mais de duas décadas de experiência sólida, minha jornada profissional tem sido enriquecedora, com a oportunidade de participar de projetos empolgantes ao longo dos anos. Agora, estou ansioso para trazer minha experiência e habilidades para novas equipes e projetos, trabalhando de forma remota. Minha expertise abrange não apenas AdvPL, mas também outras tecnologias-chave, incluindo JS, SQL, Infraestrutura e Otimização de Processos. Acredito que essa combinação de conhecimentos me permite oferecer soluções abrangentes e eficazes para uma variedade de necessidades de desenvolvimento. Acredito que a tecnologia tem o poder de transformar negócios e impulsionar o sucesso, e estou comprometido em ajudar meus clientes a alcançar seu

Protheus :: Recuperando o Usuário Administrador no Protheus 10

São muitos os motivos que levam a "perda" da senha do Administrador do Protheus. Esquecimento, saída do Administrador da empresa, dentre outros. Para minimizar o impacto e as consequências dessa perda, uma pequena dica de como recuperar o usuário Administrador e redefinir a sua senha.

1 - Antes de entrar no sistema, renomeie o arquivo sigapss.spf  de forma a fazer com que o sistema não o encontre forçando a sua recriação ( para que isso ocorra, faz-se necessária a existência do arquivo sigaadv.pss no diretório "root", normalmente o system, do Protheus bem como acesso exclusivo ao sistema. Se o arquivo sigaadv.pss não existir o sistema irá gerar um erro.);

2 - Entrar no sistema, módulo configurador, para forçar o sistema a criar um novo arquivo de senhas (sigapss.spf) baseado no sigaadv.pss. Esse arquivo será criado apenas com o Administrador (se o arquivo sigaadv.pss estiver vazio, ou com outros usuários se possuir conteúdo);

3 - Após a abertura do sistema, vá na opção Ambiente\Cadastro\Fórmulas e inclua uma nova fórmula em que o conteúdo do campo fórmula será: SPF_CLOSE("SIGAPSS.SPF") e clique em OK. Ao fazer isso, forçaremos o sistema a "fechar" o arquivo de senhas atualmente aberto possibilitando o passo seguinte;

4 ) Sem sair do sistema, apague o arquivo sigapss.spf criado pelo sistema e restaure o arquivo renomeado no passo 1 ao seu nome de origem;

5 ) Entre na opção senhas e/ou usuários, escolha o usuário Administrador e clique no botão "Alterar/Editar". Defina a nova senha para o usuário administrador e salve as alterações.

Pronto, o usuário Administrador foi recuperado com sucesso.

Um documento, baseado nas instruções acima, está disponível para download aqui.

Obs.:

1 ) O arquivo sigaadv.pss é o formato antigo de armazenamento de senhas dos usuários do Protheus em versões anteriores a 7.10 (se não me falha a memória).

2 ) Se não possuir o sigaadv.pss poderá baixá-lo clicando aqui.

[]s
иαldσ dj

Comentários

  1. Grato pela dica. Salvou meu dia. Funcionou como uma luva... Uso o Protheus versão 10.3 e o procedimento funcionou sem falhas.

    ResponderExcluir
  2. Boa noite Naldo.

    Como essa a unica forma de contato com vc, gostaria de dizer que sou seu fã.

    Não só pelo seu conhecimento, mas lendo seus posts, sua historia. Você me parece uma pessoa muito sensata, e uma boa pessoa para se ter como amigo. Tem outras percepções, mas como nao posso afirmar..

    Só posso te dar os parabéns e dizer que mesmo sem conhece-lo sou seu fã.

    Abs,
    Continue assim,

    ResponderExcluir
  3. Boa tarde Naldo.

    Fiz o procedimento indicado por você, mas não deu certo. Aparece o erro abaixo:

    ERRO THREAD (Herbert, ATMAELFA-02) 16/02/2011 13:54:55
    sigaadv.pss: SuperFile Open error 13 - File: c:\protheus10treino\system\sigaadv.pss - Unknown file type on _APPSWIMPORT(SIGAPSW.PRG) 20/07/2010 17:01:04 line : 1689

    ResponderExcluir
  4. Naldo !
    Sou seu fã cara !
    Obrigado.

    ResponderExcluir
  5. Naldo
    Preciso de uma ajuda, no momento de incluir a fórmula SPF_CLOSE("SIGAPSS.SPF") e clicar pra confirmar, aparece a msg "Improper function Use : CLOSE" queria saber se existe outra forma de fechar o arquivo de senhas (talvez pelo DOS) pra continuar com o procedimento

    att.

    Pierry Guedes

    ResponderExcluir
  6. Pierry,


    De uns Rpos/Updates pra cá a Totvs programou uma validação em expressões advpl passiveis de serem executadas via fórmula retornando a mensagem "Improper function Use" caso o algoritmo de validação "identifique" uma função imprópria. O Critério não está bem definido do que seja impróprio ou não a ser executado. ABS é uma função imprópria? A meu ver não. Mas torna-se imprópria na avaliação do algoritmo. IF(a>b,a,b) é impróprio? Para o algoritmo sim. Acredito que programaram essa verificação por Falha de segurança no sistema. Poder-se-ia executar um TCDelFile( "SRA010" ) e "Dropar" a Tabela SRA se esta não estivesse em uso, ou outras coisas. Acredito que este "POST" também contribuiu para isso. De qualquer forma, uma User Function não Pode Ser Imprópria. Mas, dependendo de sua declaração se torna. Por Exemplo se programar a User Function SPF_CLOSE e tentar executar U_SPF_CLOSE o sistema retornará como uma função imprópria pela palavra CLOSE. END também é impróprio. O conceito do que é "próprio" (entenda-se permitido) ou "impróprio" (entenda-se negado) vai da "cabeça" de quem programou. De qualquer forma, existe uma solução simples para o seu problema. Proceda da seguinte forma:

    Crie uma User Function com as Características abaixo:

    User Function FinalSPF()
    Return( _SPF_CLOSE( "SIGAPSS.SPF" ) )
    Static Function _SPF_CLOSE( cSPFFile )
    Return( SPF_CLOSE( cSPFFile ) )

    E chame-a no lugar de SPF_CLOSE("SIGAPSS.SPF" ) da seguinte forma U_FInalSPF(). Irá funcionar. Até quando, não sei. Este Blog é MONITORADO 24 horas e, provavelmente, vai sair um "patch" emergencial ou uma Nova "FrameWork" impedindo isso e esse que vos escreve terá que imaginar outra maneira de ajudá-los a recuperar a senha do Administrador. Melhor seria se a própria TOTVS implementasse isso.

    []s
    иαldσ dj

    ResponderExcluir
    Respostas
    1. Como diria Bela Gil: Você pode trocar esta function por IIF(SPF_CLOSE("SIGAPSS.SPF" )=1,.F.,.F.) direto na fórmula, por exemplo.

      Excluir
  7. e quando a empresa trabalha com datacenter???

    ResponderExcluir
  8. E isso lhe é empecilho?

    Acredito que não.

    Vejo ums solução clara em minha mente.

    Vamos pensar um pouco...

    Se está no DataCenter e "não" tenho acesso como proceder?

    Simples!

    No mínimo duas soluções possíveis:

    Primeira:

    A solução é copiar o arquivo de senhas do DataCenter para o Client.

    Mas como?!?!?!??! Se "não" tenho acesso!!!

    De fato não o tem mas, o Protheus.... esse tem.

    Então:

    1 ) utilize __CopyFile() para trazer o arquivo de senhas do servidor para a estação;
    2 ) Efetue o Procedimento de Recuperação de Senha do Administrador ; e, finalmente;
    3 ) Retorne o arquivo de Senhas ao DataCenter usando, novamente, __CopyFile().

    Segunda:

    Faça o Processo direto no DataCenter.

    Mas como?!?!?!??! Se "não" tenho acesso!!!

    De fato não o tem mas, o Protheus.... esse tem.

    Então:

    1 ) utilize __CopyFile() para fazer uma cópia do o arquivo de senhas no DataCenter;
    2 ) Siga os Passos 1 a 4 e utilize, novamente __CopyFile() para restaurar o arquivo antigo
    3 ) Continue do passo 5 em diante.

    Simples assim....

    []s
    иαldσ dj

    ResponderExcluir
  9. Vai... mexe mais.. tenta desafiar o Mestre Cuca (иαldσ).

    Sem me gabar, também ja pensei nesse 'problema' contornavel e cheguei a mesma solução, to chegando no seu nivel 'quem me dera'!

    ResponderExcluir
  10. Boa tarde.
    Por favor, se for possível me ajudar eu agradeço.
    Tive que reinstalar o Protheus 5 ( !!!!!! ) para atender o fisco. Não tenho mais as senhas da época e também não tenho o arquivo sigapss.sfp, somente tenho o sigaadv.pss. Tem alguma maneira de recuperar a senha do administrador ???
    Obrigado a todos.
    Olair

    ResponderExcluir
  11. Protheus 5. Uma relíquia! Já tentou renomear o arquivo de senhas para forçar o sistema recriá-lo? Se o sistema conseguir recriá-lo a senha do administrador será em branco.

    ResponderExcluir
  12. Cara adorei a dica. Então a Totvs monitora o blog 24 horas ? Legal, então quero ver eles lançarem um patch pra bloquear uma pessoa que só tem uma licença do módulo do faturamento utilizar qualquer módulo do sistema apenas brincando com as tags . Por exemplo quem tem licença corporativa não acessa alguns módulos como Medicina e segurança do trabalho. Vá lá, mexa nas tags e seja feliz ! Haha !

    ResponderExcluir
  13. Bom dia,


    Este processo de recuperação de senha está funcionando para a versão 11?

    ResponderExcluir
  14. IIF(SPF_CLOSE("SIGAPSS.SPF" )=1,.F.,.F.)

    funciona para mim digitando diretamente no campo da fórmula sem a necessidade de compilar nada (pois até para compilar precisa da senha)

    ResponderExcluir
  15. Bom dia! Dica complementar: No valid do campo Formula do SM4, troque para o valid do campo da CT5, assim não exibe a mensagem Invalid Function.

    ResponderExcluir
  16. No Protheus 11 funciona perfeitamente, criando uma User Function.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

BlackTDN :: RLeg ~ Desvendando a Função ParamBox

Para quem precisar desenvolver uma interface de entrada de dados, coisa rápida, e não quer ter aquele trabalhão danado que todos já sabemos, o Protheus tem uma função que ajuda muito, é uma interface semelhante a função Pergunte, porém com muito mais opção de objeto de entrada de dados, alias até colocar o scrollbox desta interface com todos os objetos em outra MsDialog ou Wizard é simples. Vejam o exemplo abaixo, boa sorte! Rleg. //---------------------------------------------------------- // Função exemplo utilizando a função ParamBox() //---------------------------------------------------------- User Function xParamBox() Local aRet := {} Local aParamBox := {} Local aCombo := {"Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"} Local i := 0 Private cCadastro := "xParambox" // ---------------

BlackTDN :: Customizando a interface de Login no Protheus e by You

A publicação “ BlackTDN :: By You e sua nova tela de login ”  de nosso amigo OBona deu o que falar e, em função disso, esse que a muito não vos escreve resolveu criar uma versão onde será possível personalizar, “por completo”, a tela de login no Protheus/by You. Considerando que OBona já havia “mapeado, identificado e customizado” as imagens peguei-as emprestadas para o exemplo que se segue: O primeiro passo para a customização “total” da interface de login do Protheus/by You será implementar o “Ponto de Entrada” ChgPrDir (Diretório de impressão) . Usaremos esse PE juntamente como programa U_FindMsObject.prg (apresentado pela primeira vez em: Protheus :: ADVPL : The Container : Presents Pandora's box ). Diferente do exemplo proposto por OBona, que substitui, durante o processo de compilação, as imagens padrões do sistema (excluindo-as) por imagens customizadas (com o mesmo nome) este novo exemplo mantém, no RPO, as imagens padrões adicionando novas imagens customizadas que serã

Protheus :: Chamando Funções do Menu Diretamente e sem a Necessidade de Login

Ferne$ perguntou: "...é possível abrir alguma rotina do sistema sem solicitar login ao usuário, como por exemplo a rotina MATA010..." Sim Ferne$, é possível sim. Abaixo um Exemplo para a Chamada à função MATA010 sem a necessidade de Login no sistema. #INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" /*/ Funcao: MATA010Ex Data: 30/04/2011 Autor: Marinaldo de Jesus Descricao: Executar a Funcao MATA010 diretamente sem a necessidade de LOGIN no Protheus Sintaxe: 1 ) U_MATA010Ex ( Chamada diretamente na Tela de Entrada do Sistema ) ; ou 2 ) totvsclient.exe -q -p=u_MATA010Ex -a=01;01 -c=rnp_local -e=rnp -m -l ( Chamada Via Linha de Comando ) /*/ User Function MATA010Ex( cEmpFil ) Local aEmpFil Local bWindowInit := { || __Execute( "MATA010()" , "xxxxxxxxxxxxxxxxxxxx" , "MATA010" , "SIGAFAT" , "SIGAFAT", 1 , .T. ) } Local cEmp Local cFil Local cMod Local cModName := "SIGAFAT" DEFA