Este documento fornece instruções para configurar e testar o desenvolvimento de aplicações web usando ADVPL e a extensão .APW no Protheus. Detalha como configurar o servidor totvsappserver.ini, compilar pontos de entrada e criar um arquivo .APH para acessar informações do navegador.
Este documento fornece instruções para configurar e testar o desenvolvimento de aplicações web usando ADVPL e a extensão .APW no Protheus. Detalha como configurar o servidor totvsappserver.ini, compilar pontos de entrada e criar um arquivo .APH para acessar informações do navegador.
Este documento fornece instruções para configurar e testar o desenvolvimento de aplicações web usando ADVPL e a extensão .APW no Protheus. Detalha como configurar o servidor totvsappserver.ini, compilar pontos de entrada e criar um arquivo .APH para acessar informações do navegador.
Pessoal, seguem algumas dicas de um teste que realizamos, para quem quer
comear a trabalhar com ADVPL ASP.
Primeiramente vale a pena ler e entender um pouco sobre a diferena entre as extenses .APL e .APW, que se encontram disponveis no portal TDN: http://tdn.totvs.com.br/pages/viewpage.action?pageId=6064073 http://tdn.totvs.com.br/pages/viewpage.action?pageId=6064074
Entendendo a diferena bsica entre os dois tipos, optamos por testar arquivos com extenso .APW, que apresentam ganho de performance. Primeiramente devemos configurar o servidor do Protheus para atender as requisies deste tipo de pgina. Seguem as diretivas inseridas no totvsappserver.ini: [HTTP] ENABLE=1 PATH=C:\Filipe\Protheus_Data\web\ PORT=8080 ENVIRONMENT=P10_LOCAL UPLOADPATH=\Protheus_Data\web\ RESPONSEJOB=ERP_APWEBEX
/* ============================================================== ====================== Exemplo de Arquivo de Lib de Projeto APWEBEX , utilizando os pontos de entrada da lib para preparao de ambiente , reset de ambiente e tratamento de erro utilizando APWEBEX em conjunto com o ERP Microsiga ============================================================== ====================== */
/* ---------------------------------------------------------------------------- Ponto de Entrada StartWebEx( NIL ) => .T. ou .F.
Ponto de entrada executado na inicializao de cada Working Thread ( ONSTART ) a responsvel por preparar o ambiente para atender s requisies WEB de links .apw No recebe parmetro algum da lib , e deve retornar .T. caso tenha inicialziado com sucesso ou .F. em caso de falha de inicializao . ---------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------------- Ponto de Entrada ResetWebEx(cFnName) => cHtml ou "" Funo chamada imediatamente Apos a execuo de uma requisio .APW Recebe como parmetro o nome da funo executada, e permite tambm que seja acrescentado algo a mais no Html a ser retornado ao Browser. ------------------------------------------------------------------------------- */ User Function ResetWebEx(cFnName) Local cHtmlConn := ''
If Type("cFnName") <> "U" conout('Fim de execuo de: '+cFnName) EndIf
Return cHtmlConn
#INCLUDE "PROTHEUS.CH" #INCLUDE "APWEBEX.CH"
/* ------------------------------------------------------------------------------- Ponto de Entrada FINISHWEBEX() Funo chamada no fechamendo do ambiente de uma working Thread. Apos a execuo deste , a Thread utilizada eliminada da memria . ------------------------------------------------------------------------------- */ User Function FINISHWEBEX() conout('Finalizando a Working Thread.') Return
#INCLUDE "PROTHEUS.CH" #INCLUDE "APWEBEX.CH"
/* ------------------------------------------------------------------------------- Ponto de Entrada ENDSESSION(cSessionId) => NIL Ponto de entrada chamado em uma working Thread quando a session de um usurio ser eliminada da memria por time-out. Recebe como parametro o Id de sessions de usuario que est sendo finalizado. ------------------------------------------------------------------------------- */ User Function ENDSESSION(cSessionId) Conout("Sesssion "+cSessionId+" limpa da memria...") Return
#INCLUDE "PROTHEUS.CH" #INCLUDE "APWEBEX.CH"
/* ------------------------------------------------------------------------------- Ponto de Entrada ConnectWebEx(cFnName) => cHtml ou "" Ponto de entrada executado imediatamente antes do processamento de uma requisio de um link .APW Recebe como parmetro o nome da funo a ser executada, passada no link. Deve retornar uma String, que ser retornada ao ao Browser solicitante. Caso retorne uma string em branco (vazia) , a funo originalmente solicitada executada pela lib. Caso contrrio, a funo original no executada , e a string retornada enviada ao Browser. ------------------------------------------------------------------------------- */ User Function ConnectWebEx(cFnName) Local cHtmlConn := '' conout('Executando: '+cFnName) Return cHtmlConn
#INCLUDE "PROTHEUS.CH" #INCLUDE "APWEBEX.CH"
/* ---------------------------------------------------------------------------- Ponto de Entrada WebExError(e,cErrorLog,cHtml) => cCustomHtml ou ""
Esta funcao chamada pela rotina de tratamento de erro WEBEX , quando ocorre um erro fatal , e permite que seja retornado um Html de tratamento de erro diferenciado. Ela recebe como parametro o objeto do erro , a mensagem ASCII que foi acrescentada ao arquivo error.log , e o Html original montado pela rotina de tratamento de erro default . IMPORTANTE : Por sem um ponto de entrada executado em um momento crtico (tratamento de erro ) , esta funo deve ser o mais suscinta e simples possvel , no utilizando sessions, banco de dados , etc.... ---------------------------------------------------------------------------- */
User Function WebExError(oError,cErrorLog,cHtml) Local cCustomHtml := ''
// Monta mensagem de erro mais amigavel ...
cCustomHtml += '<br>' cCustomHtml += 'Ocorreu um erro inesperado no <br>' cCustomHtml += 'processamento desta pgina. O Administrador do sistema ser notificado desta <br>' cCustomHtml += 'ocorrncia . Recomendamos fortemente que esta janela do navegador seja <br>' cCustomHtml += 'fechada, e uma nova janela seja aberta para retornar navegao do site. <br>' cCustomHtml += '<br>' cCustomHtml += cErrorLog
Return cCustomHtml
Agora devemos criar o arquivo que poder acessar as chamadas aos Alias virtuais. No teste efetuado, foi utilizado o Alias virtual HTTPHeadIn para acessar o contedo do parmetro REMOTE_ADDR que retorna o IP do usurio que estiver acessando a pgina. Abaixo segue o rdmake criado e salvo com a extenso .APH
Seu IP : <%=HttpHeadIn->REMOTE_ADDR%>
Arquivo: tgetip.aph Chamada no navegador: http://localhost:8080/h_tgetip.apw
Mais informaes e detalhes sobre todo o processo envolvido podem ser obtidos em: http://tdn.totvs.com.br/pages/viewpage.action?pageId=6063975