BlackTDN Search

quarta-feira, 14 de janeiro de 2009

Protheus :: Personalizando o RHOnLine

Neste artigo vou demonstrar como personalizar o seu RHOnLine, deixando-o com a cara de sua empresa e no padrão W3C de forma a funcionar nos principais "browsers" (IE, Firefox, Google Chrome, etc. O RHOnLine do padrão só funciona com o IE).

Neste exemplo não teremos todas as funcionalidades do RHOnLine padrão, apenas uma tela de abertura, o Demonsrtrativo de Pagamento e a opção para alteração de senha. Mas isso não impede que as demais funcionalidades sejam implementadas, bastando seguir o modelo aqui fornecido. Nesse modelo utilizamos uma ferramenta do site BarcodesInc® para gerar o código de barras para o Demonstrativo de Pagamento de forma a dar-lhe mais "credibilidade".

A personalização do RHOnLine terá as seguintes características:

Tela de Abertura



Tela de Apresentação



Tela para escolha do período para impressão do Demonstrativo



Tela de mensagem caso não existam informações de Demonstrativo



Tela do Demonstrativo



Tela de rodapé do Demonstrativo (com código de barra)



Tela para a Alteração de Senha

Para a implementação:

  1. Descompacte os arquivos disponibilizados para download;
  2. Abra o projeto gpe_tcf.prj através da IDE do protheus e compile-o;
  3. Copie a pasta tcf para o diretório onde está configurado o módulo web tcf;
  4. Altere as imagens conforme necessidade de sua empresa;
  5. Altere o DEFAULTPAGE de sua configuração web TCF de forma que fique com DEFAULTPAGE=u_w_tcfinit.apw;
  6. Altere as configurações do Menu do RHOnLine no SIGATCF. Programa: TCFA120 - Menu:SIGATCF.XNU, Opção do Menu: &Atualizações->Configuracoes->Menu Rh-online. Desabilite as opções padrões e inclua as seguintes chamadas: Para o Demonstrativo Inclua a rotina: W_TCFDEM; Em Alterar senha, inclua a rotina W_TCFPWD; e na opção "Informativo" inclua a rotina W_TCFINF. Se desejar obter o arquivo ISAM com as opções do menu para depois efetuar um "Append" na tabela RBC, clique aqui;
  7. Execute. Obs.: Se estiver utilizando o IE8, execute em modo de compatibilidade ("Compatibility View").

Links disponibilizados:

Programas para a Personalização;

Opções do menu do SIGATCF/RHOnLine;

30 comentários:

  1. Tudo bem? Cara baixei o arquivo, fiz os procedimentos como você disse, mas não ficou como o mostrado nas imagens.
    O recibo de pagamento aponta para o padrão do Sistema. Como resolver?
    Abraços

    ResponderExcluir
  2. Realmente Ulisses, falha minha, faltou incluir o procedimento para a alteração das chamadas do Menu do RHOnline no SIGATCF. Leia o item 6 dos procedimentos que transcrevo abaixo:

    "Altere as configurações do Menu do RHOnLine no SIGATCF. Programa: TCFA120 - Menu:SIGATCF.XNU, Opção do Menu: &Atualizações->Configuracoes->Menu Rh-online. Desabilite as opções padrões e inclua as seguintes chamadas: Para o Demonstrativo Inclua a rotina: W_TCFDEM; Em Alterar senha, inclua a rotina W_TCFPWD; e na opção "Informativo" inclua a rotina W_TCFINF;"

    ResponderExcluir
  3. Pois é, não me atentei ao último item, o segui e funcionou. Parabéns pela iniciativa e se for possível gostaria de contribuir com seu blog.

    Abraços
    Ulisses

    ResponderExcluir
  4. Ulisses,

    O convite para contribuir com o blog foi enviado para o seu e-mail. Seja bem vindo.

    []s
    иαldσ dj

    ResponderExcluir
  5. Naldo, você não tem essas imagens sem o logo do São Paulo? É que aqui na empresa nem todo mundo torce pro SP e não aceitaram esse skin.

    abraços

    ResponderExcluir
  6. Ulisses,

    Basta você criar as imagens com o Logo de sua empresa, com o mesmo nome das imagens do SPFC e substituí-las. Usei as imagens do SPFC apenas como exemplo.

    []s

    ResponderExcluir
  7. Fala Naldo blz, mais uma vez peço sua ajuda.
    No codigo abaixo como faço para alterar e deixar a mensagem do site em manutenção

    User Web Function TcfInit()
    #IFDEF WEBMAN
    Return( u_w_HtmlDefault( "Site em Manutenção!!" , NIL , .T. , .F. ) )
    #ELSE
    HttpFreeSession()
    TCFSetAllOk( .F. )
    u_w_InitEmp()
    Return( H_U_TCFIDX() )
    #ENDIF

    abraços

    ResponderExcluir
  8. E ai Marinaldo, blz!

    Velinho segui o passo a passo, mas nao carrega as imagens, ate aparece o bronse com a caixa de dialogo para colocar usuario e senha, mas nda de imagens.
    Pode existir alguma incompatibilidade por ser o P10?Win7?o browse é IE8!

    abraços
    lafilho

    ResponderExcluir
  9. lafilho,

    Verifique a configuração do totvsappserver.ini em relação ao "path" onde as imagens deverão ser buscadas.

    Qualquer dúvida, encaminhe o seu arquivo totvsappserver.ini para que eu de uma olhada.

    []s
    иαldσ dj

    ResponderExcluir
    Respostas
    1. cara estou com o mesmo problema, não aperece as imagens, estou usando o chrome mais teste no ie8 e aconteceu a mesma coisa

      [HTTP]
      ENABLE=1
      PORT=8090

      [rh.dsgti.com.br:8090/tcf]
      ENABLE=1
      PATH=D:\Totvs\Protheus11\data\Protheus_Data_ofc\web\tcf\imagens\b2b
      ENVIRONMENT=DIGITAL
      INSTANCENAME=TCF
      RESPONSEJOB=JOB_TCF_H01
      DEFAULTPAGE=u_w_tcfinit.apw

      [JOB_TCF_H01]
      TYPE=WEBEX
      ENVIRONMENT=DIGITAL
      INSTANCES=1,3
      SIGAWEB=TCF
      INSTANCENAME=TCF
      ONSTART=STARTWEBEX
      ONCONNECT=CONNECTWEBEX
      ONEXIT=FINISHWEBEX

      [ONSTART]

      Excluir
    2. Bom dia Naldo,

      Cara fiz todos os procedimentos, porém ao acessar o rh onlie, não aparece imagem alguma,
      aparece o campo para digital a matricula e senha porém quando entra também não aparece não.

      [HTTP]
      ENABLE=1
      PORT=8090

      [rh.dsgti.com.br:8090/tcf]
      ENABLE=1
      PATH=D:\Totvs\Protheus11\data\Protheus_Data_ofc\web\tcf\imagens\b2b\
      ENVIRONMENT=DIGITAL
      INSTANCENAME=TCF
      RESPONSEJOB=JOB_TCF_H01
      DEFAULTPAGE=u_w_tcfinit.apw

      [JOB_TCF_H01]
      TYPE=WEBEX
      ENVIRONMENT=DIGITAL
      INSTANCES=1,3
      SIGAWEB=TCF
      INSTANCENAME=TCF
      ONSTART=STARTWEBEX
      ONCONNECT=CONNECTWEBEX
      ONEXIT=FINISHWEBEX

      [ONSTART]
      JOBS=JOB_TCF_H01

      Excluir
  10. Marinaldo, vlw

    Ficou muito bom este leiaute!

    Parabens
    Lafilho

    ResponderExcluir
  11. Marinaldo,
    blz!

    Se eu tiver 50 empresas no sigamat, todas elas serao listadas no combobox ou existe um limite?
    Consigo intercalar quais gostaria que fossem demonstradas?

    [ ]´s
    lafilho

    ResponderExcluir
  12. lafilho,

    Não existe limite para o número de empresas a serem disponibilizadas.

    Sim, é possível intercalar as que você gostaria que fossem demonstradas. Para isso trabalhe com as seguintes chaves:

    EmpSelect=NumeroDaEmpresa
    EmpSelectNumeroDaEmpresa=Filial01/Filial02/Filial03/.../FilialNN

    como no exemplo:

    empselect=01
    empselect01=01/02/03/04/05/06/07/08/09/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25

    Essas chaves deverão ser informadas no ini do server protheus na seção de configuração do JOB.

    Ex.:

    [100.0.9.123/tcf]
    enable=1
    path=d:\totvs\p10\pdata\web\tcf\empresa01\
    environment=empresa01
    instancename=tcf
    responsejob=job_tcf
    defaultpage=u_w_tcfinit.apw

    [100.0.9.5/tcf]
    enable=1
    path=d:\totvs\p10\pdata\web\tcf\empresa01\
    environment=empresa01
    instancename=tcf
    responsejob=job_tcf
    defaultpage=u_w_tcfinit.apw

    [rjnit026/tcf]
    enable=1
    path=d:\totvs\p10\pdata\web\tcf\empresa01\
    environment=empresa01
    instancename=tcf
    responsejob=job_tcf
    defaultpage=u_w_tcfinit.apw

    [dominio.com.br/tcf]
    enable=1
    path=d:\totvs\p10\pdata\web\tcf\empresa01\
    environment=empresa01
    instancename=tcf
    responsejob=job_tcf
    defaultpage=u_w_tcfinit.apw

    [job_tcf]
    type=webex
    environment=empresa01
    instances=1,999
    sigaweb=tcf
    instancename=tcf
    onstart=startwebex
    onconnect=connectwebex
    onexit=finishwebex
    empselect=01
    empselect01=01/02/03/04/05/06/07/08/09/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25

    [100.0.9.123/empresa02/tcf]
    enable=1
    path=d:\totvs\p10\pdata\web\tcf\empresa02\
    environment=empresa02
    instancename=tcf
    responsejob=job_empresa02_tcf
    defaultpage=u_w_tcfinit.apw

    [100.0.9.5/empresa02/tcf]
    enable=1
    path=d:\totvs\p10\pdata\web\tcf\empresa02\
    environment=empresa02
    instancename=tcf
    responsejob=job_empresa02_tcf
    defaultpage=u_w_tcfinit.apw

    [rjnit026/empresa02/tcf]
    enable=1
    path=d:\totvs\p10\pdata\web\tcf\empresa02\
    environment=empresa02
    instancename=tcf
    responsejob=job_empresa02_tcf
    defaultpage=u_w_tcfinit.apw

    [dominio.com.br/empresa02/tcf]
    enable=1
    path=d:\totvs\p10\pdata\web\tcf\empresa02\
    environment=empresa02
    instancename=tcf
    responsejob=job_empresa02_tcf
    defaultpage=u_w_tcfinit.apw

    [job_empresa02_tcf]
    type=webex
    environment=empresa02
    instances=1,999
    sigaweb=tcf
    instancename=tcf
    onstart=startwebex
    onconnect=connectwebex
    onexit=finishwebex
    empselect=02
    empselect02=01/02/03/04/05/06/07/08/09/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25

    []s
    иαldσ dj

    ResponderExcluir
    Respostas
    1. Olá, boa noite.
      Poderia me ajudar, fiz a configuração para mostrar somente 02 filiais da empresa na abertura do portal, porém mostra a lista completa.
      Segue exemplo do meu INI

      [192.168.16.10:1989/rafa]
      ENABLE=1
      PATH=D:\Protheus11\Protheus_Data\web\tcf
      ENVIRONMENT=JOSE
      INSTANCENAME=tcf
      RESPONSEJOB=JOB_TCF_H01
      DEFAULTPAGE=w_tcfw001.apw

      [JOB_TCF_H01]
      TYPE=WEBEX
      ENVIRONMENT=JOSE
      INSTANCES=1,999
      SIGAWEB=TCF
      INSTANCENAME=tcf
      ONSTART=STARTWEBEX
      ONCONNECT=CONNECTWEBEX
      ONEXIT=FINISHWEBEX
      empselect=01
      empselect01=06/07


      OBRIGADO.

      Excluir
  13. Marinaldo, boa noite!

    Posso fazer assim também?
    empselect=01/02
    empselect01=01/02/03/04/05/06/07/08/09/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25
    empselect02=01/02/03/04/05/06/07/08/09/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25

    Grata

    Vanessa
    vns.alves@gmail.com
    nessasalves@gmail.com

    ResponderExcluir
  14. Oi Marinaldo...
    Mais uma perguntinha... rs
    Você sabe como eu faço, para no padrão, limitar o ano de consulta aos demonstrativos de pagamento?
    Por exemplo, que todos os funcionários acessem somente o ano de 2010 e não acessem aos demonstrativos de 2009?

    Grata

    Vanessa.

    ResponderExcluir
  15. Oi Naldo

    Ficou muito bom mesmo. Parabéns! Obrigado por disponibilizá-lo.

    NO arquivo rbc.dbf, existe a rotina PTFORMS (Poupa Tempo) Fiquei curioso. Do que se trata?

    Vlw.
    Cristiano da Silva

    ResponderExcluir
  16. SALVE O CORINTHIANS!

    ResponderExcluir
  17. Que lavada.... acontece... hehehehehehe...

    Saudaç[õe]s
    São Paulinas

    []s
    иαldσ dj

    ResponderExcluir
  18. Prezado Naldo,

    como faço para que seja possível ter acesso externo ao Rh Online (tcf) no Protheus 10?

    Internamente funciona perfeitamente - sabe os procedimentos que necessito fazer?


    Atc,

    Elvis Pitanga

    ResponderExcluir
  19. Quando eu tentei compilar o projeto recebi esse erro:

    y:\gpe_tcf\u_tcfpwd(4) Error C2006 Statement not allowed outside procedure or function

    Oque estou fazendo de errado????

    ResponderExcluir
    Respostas
    1. Provavelmente algum include faltando. Verifique no cabeçalho do programa u_tcfpwd quais includes são referenciados e veja quais você não possui.

      Excluir
  20. Ja resolvi o problema da postagem, porem quando eu chamo a pagina no navegador eu tenho o erro:
    Web Services : UNKNOW COMMAND

    Por favoe, eu preciso muito disso funcionando, pode me adicionar no skype: clemilsonpena

    ResponderExcluir
  21. Prezado Senhores,

    Alguem tem um manual que explique como instalar o RH Online desde o começo, antes de personalizar.

    ResponderExcluir
  22. Bom dia Naldo
    Consegui fazer tudo funcionar, mas fiz alguma alteração que começou esse erro.
    vc pode me ajudar
    THREAD ERROR (JOB_TCF_H01, THIS) 06/02/2014 10:46:24
    Alias does not exist __KEY_ID__ on GETNEWKEY(MDJLIB23.PRG) 05/05/2012 13:18:02 line : 100

    [TOTVS build: 7.00.121227P-20130909]
    Called from U_MDJLIB23EXEC(MDJLIB23.PRG) 05/05/2012 13:18:02 line : 42
    Called from GETCRYPTKEYID(RECNEW.PRG) 12/01/2009 10:28:59 line : 2521
    Called from RODAHTML(RECNEW.PRG) 12/01/2009 10:28:59 line : 2367
    Called from FSENDDPGTO(RECNEW.PRG) 12/01/2009 10:28:59 line : 1762
    Called from R030IMP(RECNEW.PRG) 12/01/2009 10:28:59 line : 734
    Called from U_RECNEW(RECNEW.PRG) 12/01/2009 10:28:59 line : 162
    Called from U_W_SWTCFDEMO(U_TCFSWDEMO.APL) 01/12/2008 14:58:59 line : 121
    Called from H_U_TCFSWDEMO(U_TCFSWDEMO.APH) 12/01/2009 11:13:59 line : 21
    Called from U_W_TCFSWDEMO(U_TCFSWDEMO.APL) 01/12/2008 14:58:59 line : 73
    Called from CONNECTWEBEX(APWEX010.APL) 04/01/2010 08:04:50 line : 683

    Obrigada

    ResponderExcluir
  23. Marinaldo, blz ?
    Como faço para que o usuario, ao acessar o RH ON LINE, ao tentar trocar a senha inicial, o sistema faça uma validação da senha (tipo: a senha precisa conter no minimo 1 letra e tamanho 8).

    ResponderExcluir
  24. Naldo,

    Estou tendo esse erro quando tento logar algumas vezes...

    Browser name........ Netscape
    Browser version..... 5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36
    Cookie Enabled...... true
    -------------------------------------------------------------------------------
    Library ............ APWEBEX Version 3.0902051030 (HTTP)
    Protheus RPO ....... 11
    Protheus Build ..... 7.00.120420A-20120726
    Date / Time ........ 20140409 11:08:19
    Environment ........ RHONLINE ( EMP [10] FIL [10] )
    Job WebEx .......... JOB_RH_ONLINE_H01
    DataBase ........... Connected ( Thread 6828 )
    Thread ID .......... 4392
    Session ID ......... 327e5f7e637fbd7936b0959f8559a710
    Generic Code/SubCode 18 / 0
    Error description ..

    THREAD ERROR (JOB_RH_ONLINE_H01, THIS) 09/04/2014 11:08:19

    Alias already in use: XX8
    on MSOPENDBF(APLIB070.PRW) 30/12/2013 15:53:48 line : 57

    [TOTVS build: 7.00.120420A-20120726]
    Called from OPENSXS(APLIB100.PRW) 04/12/2013 11:38:33 line : 2090
    Called from OPENSM0(APLIB100.PRW) 04/12/2013 11:38:33 line : 856
    Called from FWSIZEFILIAL(FWFILIAL.PRW) 17/01/2014 18:34:56 line : 43
    Called from TCFGETPSTFIL(TCFWLIB.APL) 12/12/2012 18:29:30 line : 883
    Called from SIGATCFCONNECT(TCFWLIB.APL) 12/12/2012 18:29:30 line : 770
    Called from CONNECTWEBEX(APWEX010.APL) 04/01/2010 08:04:50 line : 663

    -------------------------------------------------------------------------------
    Sabe do que se trata... Isso ocorre com o portal padrão também.

    ResponderExcluir
    Respostas
    1. Estou com o mesmo roblema reportado pelo Naldo em 09/04, é intermitente.

      Excluir
  25. Alguém sabe como resolve o erro apresentado pela Cinthia:


    "THREAD ERROR (JOB_TCF_H01, THIS) 06/02/2014 10:46:24
    Alias does not exist __KEY_ID__ on GETNEWKEY(MDJLIB23.PRG) 05/05/2012 13:18:02 line : 100

    [TOTVS build: 7.00.121227P-20130909]
    Called from U_MDJLIB23EXEC(MDJLIB23.PRG) 05/05/2012 13:18:02 line : 42
    Called from GETCRYPTKEYID(RECNEW.PRG) 12/01/2009 10:28:59 line : 2521
    Called from RODAHTML(RECNEW.PRG) 12/01/2009 10:28:59 line : 2367
    Called from FSENDDPGTO(RECNEW.PRG) 12/01/2009 10:28:59 line : 1762
    Called from R030IMP(RECNEW.PRG) 12/01/2009 10:28:59 line : 734
    Called from U_RECNEW(RECNEW.PRG) 12/01/2009 10:28:59 line : 162
    Called from U_W_SWTCFDEMO(U_TCFSWDEMO.APL) 01/12/2008 14:58:59 line : 121
    Called from H_U_TCFSWDEMO(U_TCFSWDEMO.APH) 12/01/2009 11:13:59 line : 21
    Called from U_W_TCFSWDEMO(U_TCFSWDEMO.APL) 01/12/2008 14:58:59 line : 73
    Called from CONNECTWEBEX(APWEX010.APL) 04/01/2010 08:04:50 line : 683"


    Obrigado!

    Ednaldo Candido

    ResponderExcluir