Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: Previsão de Horas para Customizações em ERP TOTVS

_Créditos da imagem: Gerada com auxílio do ChatGPT_ --- # **Previsão de Horas para Customizações em ERP TOTVS: Uma Abordagem Baseada em Fatores de Complexidade** No universo de customizações para o ERP da TOTVS, uma das etapas mais desafiadoras é a estimativa precisa do esforço necessário para o desenvolvimento. Muitas vezes, projetos aparentemente simples podem se tornar complexos devido a fatores como dificuldade de acesso ao ambiente ou falta de conhecimento da regra de negócio. Por isso, criamos uma metodologia de cálculo baseada em fatores de ajuste para tornar as estimativas mais precisas e confiáveis. ## **Por que uma boa estimativa é essencial?** Um orçamento mal calculado pode impactar diretamente o cronograma, os custos e até a qualidade da entrega. No caso de projetos relacionados ao ERP TOTVS, onde cada customização está ligada a regras de negócios específicas e a um ambiente muitas vezes complexo, subestimar ou superestimar o tempo necessário pode gerar problemas sign

Protheus :: Advpl :: tSocketClient e Harbour Inet Server

No post anterior, Protheus :: Advpl :: tSocketClient, demonstrei a pedido do nosso amigo Daniel, como usar a Classe tSocketClient para efetuar conexões a um serviço HTTP. Agora um exemplo mais real e de acordo com o questionamento original; provavelmente ninguém irá conectar-se a um serviço HTTP via Socket uma vez que temos os protocolos correspondentes no Protheus: Usariamos HttpGet() e HttpPost() para esse fim.

Em função disto, peguei emprestado um código do Harbour Projet (por Giancarlo Niccolai c:\hb31\tests\server.prg $Id: server.prg 16704 2011-05-01 20:22:54Z vszakats $), fiz algumas modificações, renomeei para c:\u_tSocketClient\hb_socketSrv.prg e criei o hb_socketSrv.exe.

Neste novo exemplo executaremos trocas de mensagens entre o Protheus, através da Classe tSocketClient, e o Harbour Inet server (que denonimei de hb_socketSrv). Nossa aplicação irá, primeiro, “acordar” o Harbour Inet Server e depois começarão as trocas de mensagens até que um “quit” seja enviado. Como no exemplo anterior as mensagens trocadas entre o Protheus e o Harbour serão enviadas para o Console, através da função ConOut() e, também, para Browser padrão através da classe tVarInfo. Teremos algo como:

image

Os Métodos da Classe tSocketClient são apresentados…

image

Ao executar a fução u_ptSocketC ela irá “acordar” o Harbour Inet Server de acordo com a constante:

image

que , por padrão, “escutará na porta”:

image

o Harbour Inet Server Desperta de seu sonho e , …

image

… finalmente, começarão as trocas de mensagens entre o Protheus e o Harbour Inet Server.

image

Considerando as características do exemplo, recomendo, para testes, que o Protheus Server/Client estejam na mesma máquina. O Programa de Exemplo poderá ser modificado, caso queira simular uma conexão “Client/Server”.

Se desejar alterar o programa hb_socketSrv.prg, utilize os procedimentos abaixo para compilar e gerar o executável para o seu Harbour Inet Server. Para o Download do Harbour acesse: “Harbour Project

image

image

Compacte o Executavel usando o upx.exe

image

image

O Harbour pode ser uma alternativa às limitações do Protheus no que diz respeito a criar “novas tecnologias” e/ou “integrações”. Podemos utilizá-lo como ferramenta auxíliar para “Softwares acessórios”. A Filosofia do Harbour é “write once, compile anywhere (escreva uma vez, compile em qualquer lugar)”. A integração com os Objetos COM do Harbour é muito melhor e mais intuitiva que a do protheus, então, se desejar criar um TOII customizado (HBOII), recomendo essa ferramenta.

Na realidade recomendo Harbour para quem ainda está se iniciando em C e não se sente seguro em escrever uma aplicação completa nessa linguagem (uma vez que o código final é gerado em C), para aqueles que querem que o mesmo código execute em diversas plataformas, para aqueles que queiram se sentir confortáveis ao programar (A sintaxe base do Harbour é exatamente igual à do ADVPL, dada as devidas proporçoes e particularidades) ou apenas como ferramente e/ou objeto de estudo.

Para baixar os códigos utilizados nos exemplos, clique aqui. Já para as dependências, tVarInfo, por exemplo, siga o link: Protheus :: Advpl :: Usando GetFuncArray, GetApoInfo e VarInfo.

[]s

иαldσ dj

Comentários

  1. Naldo, boa tarde.
    Sabe se ha a possibilidade de se recuperar uma classe compilada em um RPO?
    Ela foi desenvolvida por mim mesmo, porem jah nao tenho mais o fonte, mas ainda utilizo ela no RPO.

    Obrigado :)

    ResponderExcluir
  2. Valeu Naldo,

    Ajudou bastante...

    Abrass

    Daniel

    ResponderExcluir
  3. Ferne$, ter tem... mas, infelizmente, essa eu não posso divulgar... A Totvs até faria isso por você, mas a um preço bem salgado. Recomendo Reescrever.

    []s

    иαldσ dj

    ResponderExcluir
  4. aaaaaaa seria fantastico se mostrasse como, mas voce tem seus motivos, rsrs
    ja estou reescrevendo, imaginei mesmo que fosse salgado para eles fazerem isto, e como fui eu mesmo quem fez, ta facil... soh perdendo um tempinho aqui..
    Mesmo assim valeu.

    Obs.: Fiquei "curiosaço" nessa solução, voce eh foda naldo... abraços.

    ResponderExcluir
  5. bom, sei que jah falou que nao pode passar, mas como fiquei curioso... alguma dica de pesquisa e/ou leitura para chegar na solucao? :)))))

    ResponderExcluir
  6. Naldo safadao,

    cara sabe como decompilar fontes do RPO.
    Por acaso o segredo esta na classe que manipula o RPO?

    O esta no HABOUR que me da flexibilidade?

    Atualmente nao tenho tempo para me dedicar a essa pesquisa..

    'Há um caminho, nao trilhado por ninguém que leva a algum lugar e para descobrir esse lugar você mesmo deve faze-lô.'

    иαldσ, as vezes acho que sou seu fã.
    mas aí me pergunto, todos os caras que ralam/ralaram na TOTVS devem ter a moral.

    Só não leve esse conhecimento para o tumulo, deixe-o aqui mesmo onde vc o conseguiu, nem que seja com uma pessoa.

    ResponderExcluir
  7. Naldo,

    Fiz essa rotina com a sua ajuda, por acaso será que temos como melhorar ela, ou seja, passar ela inteira para o Protheus sem depender de um arquivo de lotes?

    segue link: http://danielratk.blogspot.com/2011/11/validacao-campo-de-e-mail-no-protheus.html

    Abraços

    Daniel

    ResponderExcluir

Postar um comentário

Postagens mais visitadas