You are on page 1of 108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Infra-Estrutura APWEBEX
Reviso: 27/04/2004
Abrangncia
Verso 8.11
A Infra-Estrutura APWEBEX
Visando o melhor aproveitamento da tecnologia de working threads, implementada no
servidor Protheus para o processamento de requisies de uma aplicao web, foram
desenvolvidas funes de apoio, miscelnea e infra-estrutura, compiladas no repositrio
padro de Infra-Estrutura do ERP Microsiga, visando simplificar e auxiliar o
desenvolvimento de uma soluo web. A este conjunto de funes , demos o nome de
"Lib de Infra-Estrutura APWEBEX", que engloba atualmente os tratamentos comuns s
funes de inicializao de ambiente e conexo ( atendimento de requisies http via
link .apw ), com seus respectivos pontos de entrada, comandos e funes de miscelnea
comuns os projetos de solues web integradas com o ERP.
Como utilizar este recurso no desenvolvimento de solues ?
As funes pertinentes Infra-Estrutura APWEBEX j esto implementadas no
repositrio padro da ferramenta Protheus 8, e os comandos especficos que envolvem
este recurso encontram-se no arquivo header 'apwebex.ch', disponibilizado tambm
jonto com a ferramenta Protheus 8.
A utilizao destes recursos para integrao de aplicaes envolve a leitura desta
documentao, onde ser visto com maiores detalhes as possibilidades de uso da
ferramenta, como a integrao de uma aplicao Web com um ambiente e
funcionalidades do ERP Microsiga.
Como usufruir desta documentao ?
Todos os tpicos pertencentes este grupo so direcionados o desenvolvimento de
solues web utilizando as funes de Infra-Estrutura APWEBEX, alm de ser
explicado com detalhes o funcionamento da tecnologia WEBEX do Protheus, e dos
recursos nativos da ferramenta, englobando os comandos e funes publicados,
exemplos de cdigos Advpl utilizando estes recursos, configurao da ferramenta e
mensagens de ocorrncias de erro das funes e comandos, com possveis causas e
solues.
fortemente recomendado que os documentos constantes neste grupo fossem
apreciados, antes de aprofundar-se nas informaes dos prximos tpicos.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

1/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

01. Recepo de parmetros por Alias


Virtuais
Reviso: 30/04/2004
Abrangncia

Verso 7.10

Verso 8.11

A recepo de parmetros vindos do Web Browser, quando utilizamos Working


Threads do tipo WEBEX, atravs de links .apw, realizada atravs de Alias Virtuais
especficos, ao invs de receber as informaes GET , POST e HEADER em array,
quando executamos a chamada atravs de link .apl. A nomenclatura de 'Alias Virtual'
foi adotada, pois a sintaxe do cdigo-fonte exatamente a mesma utilizada quando
desejamos acessar um campo de uma tabela aberta, atravs de um alias.
Em um ambiente montado para atender requisies via link .apw utilizando Working
Threads WEBEX , podemos nos utilizar dos seguintes alias virtuais :

HttpCookies
HttpGet

HttpPost

HttpHeadIn
HttpHeadOut

HttpSession

HttpCookies
Atravs do alias virtual HttpCookies, possvel consultar os Cookies do Header Http
enviados pelo Browser, e criar ou alterar o contedo de um cookie a ser devolvido o
Browser. Um cookie, visto de forma geral, um parmetro ao qual atribumos um
nome, que uma vez devolvido o Browse solicitante, re-enviado ao Protheus a partir
da prxima requisio realizada pelo Browser.
HttpGet
Para receber os parmetros enviados atravs da URL (mtodo GET do HTTP) , j
devidamente convertidos e tratados, utilizamos o alias virtual HttpGet, onde acessamos
pelo nome a propriedade desejada, e caso a mesma tenha sido enviada pelo Browser, a
mesma retornada como uma String.
HttpPost
Para receber os parmetros submetidos (enviados) pelo Browser atravs do mtodo
POST, j devidamente convertidos e tratados, utilizamos o alias virtual HttpPost, onde
acessamos pelo nome a propriedade desejada, e caso a mesma tenha sido enviada pelo
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

2/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Browser, a mesma retornada como uma String.


HttpHeadIn
Para a recepo e tratamento das informaes recebidas atravs do Header do pacote
HTTP, foi criado o alias virtual HttpHeadIn, que alm de consultar as informaes
constantes no Header HTTP proveinente da requisio do usurio, permite tambm
acesso propriedades da conexo atual do usurio, como o IP do usurio solicitante, por
exemplo.
HttpHeadOut
Atravs deste alias virtual de retorno, podemos alterar ou criar um parmetro no Header
de retorno HTTP do Protheus , a ser devolvido o Browser solicitante de uma requisio
de processamento.
HttpSession

O alias virtual HttpSession foi criado para possibilitar a criao de variveis 'session'
por usurio do site, com controle de identificao nativa da ferramenta atravs de um
cookie de identificao , chamado SESSIONID. No tpico 'Alias Virtual HttpSession'
explicado em detalhes o funcionamento deste mecanismo.
Este recurso nos permite criar , atricuir contedo e consultar contedo de uma varivel
relacionada o usurio que est realizando uma requisio http. Podemos armazenar em
uma varivel de Session os seguintes tipos de variveis : A (array) , C (character) , D
(data), L (lgica) e N (numrica) . No so suportados O (Objetos) e/ou B (Code
Blocks).
Limitaes de uso dos alias virtuais para recebimento de parmetros
Dadas as caractersticas operacionais e de acesso os alias virtuais, devemos estar
atentos nomenclatura de campos de um formulrio HTML, para serem recuperados
com sucesso pelos alias virtuais correspondentes. A nomenclatura de campos do
formulrio deve obedecer regra de criao de variveis em Advpl : O campo do
formulrio deve sempre ser iniciado com um caracter alfabtico, pode conter letras ou
algarismos no nome, e o caracter "_" ( underline ). No so permititos espas, hfen ou
caracteres acentuados como nome de um campo. Caso utilizado um nome de campo
fora do padro suportado, o contedo do mesmo no ser recupervel em Advpl.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

3/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

02. Alias virtual HttpCookies


Reviso: 08/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Atravs do alias virtual HttpCookies, possvel consultar os Cookies do Header Http


enviados pelo Browser, e criar ou alterar o contedo de um cookie a ser devolvido o
Browser. Uma varivel de Cookie retorna um tipo Advpl String , e apenas aceita uma
atruibuio de String. Vale lembrar tambm que um cookie um recurso do Browser
que est realizando a requisio, e existe um limite de tamanho para o total de Cookies
utilizados. Este limite costuma ser prximo a 1024 Bytes .
Trata-se portanto de uma propriedade de leitura e gravao, dispnvel apenas quando a
funo Advpl executada atravs de uma requisio http via link .apw utilizando a
configurao de Working Threads WEBEX.
Utilizao de Cookies
A utilizao de Cookies tm objetivo prtico restrito aplicaes onde haja a
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

4/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

necessidade implcita de termos uma informao relacionada o browser utilizado pelo


usurio atual, que devam ser interpretadas independente do usurio estar logado ou no
( isto , independam diretamente de sessions ).
Um exemplo prtico disto o desenvolvimento de um site onde o contedo dinmico
retornado ao usurio em mais de um idioma. Na entrada do site, apresentamos um
formulrio ao usurio onde o mesmo ir escolher o idioma de sua preferncia. Mesmo
que a session de login deste usurio expire no servidor, o cookie com o idioma
selecionado ainda est no Browser, de modo que a prxima requisio do usurio pode
ser codificada para direcion-lo para a pgina de login do site com as mensagens
no idioma que o mesmo j estava navegando.
Lendo o valor de um Cookie
Atravs dos exemplos abaixo , lemos o valor do Cookie de identificao do surio, e
um cookie de usurio criado para identificar no Browse qual o idioma utilizado pelo
usurio atual.
cUserId := HttpCookies->USERID // Retorna o Cookie identificador do usurio do
Protheus
cIdioma := HttpCookies->SiteLang // Retorna o contedo do cookie SiteLang , criado
Lendo todos os Cookies recebidos
O alias virtual HttpCookie possui uma propriedade chamada aCookies, criada apenas
para consulta (read-only), que retorna um Array Advpl de Strings , contendo os nomes
dos Cookies enviados pelo Browser o Protheus . Por exemplo :
aInfo := HttpCookies->aCookies
For nI := 1 to len(aInfo)
// Mostra no console do Server todos os cookies recebidos.
conout('Cookie '+str(nI,3)+' = ' + aInfo[nI])
Next
Criando um Cookie

A criao de um Cookie realizada atravs da atrubuio de um valor diretamente o


cookie desejado. Por exemplo :
HttpCookies->MeuCookie := 'TESTE'
A criao de um Cookie merece uma ateno especial, pois um Cookie retornado o
browser atravs do Header de Retorno HTTP. De modo que, para que a criao de um
cookie seja realizada com sucesso , o mesmo deve ser criado antes de haver qualquer
processamento de APH / AHU, caso este que no seria mais possvel a criao do
Cookie, pois o Header de Retorno HTTP j teria sido enviado o browser solicitante.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

5/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

03. Alias virtual HttpGet


Reviso: 08/12/2003
Abrangncia
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

6/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Verso 7.10

Verso 8.11

LIB WEBEX

Atravs do alias virtual HttpGet, podemos consultar se uma determinada propriedade


nos foi enviada atravs da URL ( mtodo GET ).
Trata-se portanto de uma propriedade de leitura (read-only), disponvel apenas quando a
funo Advpl executada atravs de uma requisio http via link .apw utilizando a
configurao de Working Threads WEBEX.
Consultando um Parmetro
O retorno da consulta de um parmetro pode ter dois tipos : NIL , caso o parmetro no
tenha sido enviado , ou String , contendo o contedo do parmetro. Por exemplo, vamos
realizar uma requisio a um link .apw , passando pela URL o parmetro IMAGEM ,
com o contdo TESTE :
http://localhost/u_TesteGet.apw?imagem=teste&cor=azul
Para recuperarmos em Advpl o contedo dos parmetros imagem e cor , utilizamos:
cImagem := HttpGet->imagem
cCor := HttpGet->cor
Podemos inserir tambm um tratamento default : Caso algum parmetro no seja
enviado ( resulte NIL ) , assumimos um valor para o mesmo
DEFAULT cImagem := 'LogoAp8'
DEFAULT cCor := 'amarelo'
Existe tambm uma propriedade do alias virtual HttpGet chamada aGets , onde
podemos recuperar um array de strings , contendo a lista com os nomes dos parmetros
enviados pelo browser solicitante . Por exemplo :
aInfo := HttpGet->aGets
For nI := 1 to len(aInfo)
conout('GET '+str(nI,3)+' = '+aInfo[nI])
Next

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

7/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

04. Alias virtual HttpPost


Reviso: 08/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Atravs do alias virtual HttpPost, podemos consultar os campos submetidos o servidor


atravs do mtodo POST.
Trata-se portanto de uma propriedade de leitura (read-only), disponvel apenas quando a
funo Advpl executada atravs de uma requisio http via link .apw utilizando a
configurao de Working Threads WEBEX.
Consultando um Parmetro
O retorno da consulta de um parmetro pode ter dois tipos : NIL , caso o parmetro no
tenha sido enviado , ou String , contendo o contedo do parmetro. Por exemplo, vamos
realizar uma requisio a um link .apw , atravs de um formulrio html com mtodo
POST, partindo do Html abaixo :
<html><body>
<form method='POST' action='http://localhost/u_TstPost.apw'>
Teste : <input type='text' name='CODIGO' size='10'>
<hr>
<input type='submit'>
</form>
</body></html>
Para recuperarmos em Advpl o contedo do campo CODIGO, utilizamos:
cCodigo := HttpPOST->Codigo
Existe tambm uma propriedade do alias virtual chamada aPost , onde podemos
recuperar um array de strings , contendo a lista com os nomes dos parmetros enviados
pelo browser solicitante . Por exemplo :
aInfo := HttpPost->aPost
For nI := 1 to len(aInfo)
conout('POST '+str(nI,3)+' = '+aInfo[nI])
Next

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

8/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

05. Alias virtual HttpHeadIn


Reviso: 08/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Atravs do alias virtual HttpHeadIn, podemos consultar os parmetros enviados pelo


Browser solicitante enviados atravs do Header HTTP ao realizar uma requisio ao
Protheus Server.
Trata-se portanto de uma propriedade de leitura (read-only), disponvel apenas quando a
funo Advpl executada atravs de uma requisio http via link .apw utilizando a
configurao de Working Threads WEBEX.
Consultando um Parmetro
O retorno da consulta de um parmetro pode ter dois tipos : NIL , caso o parmetro no
tenha sido enviado , ou String , contendo o contedo do parmetro. Por exemplo, vamos
consultar o header http User-Agent , enviado pelo Browser solicitante contendo uma
String identiificando o modelo de Browser utilizado :
cUserAgent := Httpheadin->User_Agent
Devemos obter como retorno uma string parecida com a mostra abaixo :
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)
Observao Importante :
Qualquer parmetro no Header HTTP que contenha um ou mais caracteres invlidos
para a nomenclatura de variveis Advpl , ( como por exemplo o User-Agent , que
contm um hfen ), so trocados pelo caractere '_' underline , para ser possvel a leitura
da propriedade.
Propriedades especiais
HttpHeadIn->aHeaders
Retorna um Array de Strings , contendo todas as linhas do Header HTTP da requisio.
HttpHeadIn->main
Retorna o nome da funo chamda atravs da URL , sem a extenso e sem o host. Por
exemplo , ao chamar o link http://localhost/u_tstHEader.apw , o contedo de
HttpHeadin->main ser 'u_tstHEader'
HttpHeadIn->REMOTE_ADDR
Retorna uma string , no formato nnn.nnn.nnn.nnn , o IP da estao que realizou a
requisio.
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

9/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

httpHeadIn->REMOTE_PORT
Retorna um valor Advpl numrico , informando a porta utilizada para realizar a
requisio.

06. Alias virtual HttpHeadOut

Reviso: 08/12/2003
Abrangncia
Verso 7.10

LIB WEBEX

Atravs deste alias virtual de retorno, podemos alterar ou criar um parmetro no Header
de retorno HTTP do Protheus , a ser devolvido o Browser solicitante de uma requisio
de processamento.
Trata-se portanto de uma propriedade de retorno, disponvel apenas quando a funo
Advpl executada atravs de uma requisio http via link .apw utilizando a
configurao de Working Threads WEBEX.
A criao de uma linha no Header HTTP merece uma ateno especial, pois para que a
operao realizada com sucesso , o header deve ser criado antes de haver qualquer
processamento de APH / AHU, pois neste caso o Header de Retorno HTTP j teria sido
enviado o browser solicitante.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

10/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

07. Alias virtual HttpSession


Reviso: 08/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Atravs do alias virtual httpSession, podemos criar e consultar variveis do tipo


'session', relacionadas o usurio que realizou a requisio atravs do Browser.
Para diferenciar os usurios que esto navegando num site, o Protheus busca por um
cookie identificador de usurio, retornado para o browser a cada requisio de link .
APW, chamado SESSIONID. Caso o Protheus receba este cookie, ele identifica quais
sessions pertencem a este usurio.
Quando um usurio realiza a primeira requisio http ao Protheus, o Protheus no
recebe o cookie identificador , e automaticamente inicializa um identificador de sessions
para o mesmo, retornando o identificador ao Browser via Header HTTP. Este
identificador pode ser recuperado em uma funo advpl atravs de httpSession>SESSIONID.
Quando criamos uma varivel de session, ela pode ser acessada nas prximas
requisies provenientes deste mesmo usurio. Caso uma varivel de session consultada
no exista, ela retorna o valor NIL (nulo). Vejamos os exemplos abaixo :
Criando variveis Session
HttpSession->UserId := '123'
HttpSession->UserName := U_GetUserName()
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

11/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Nas linhas acima , criamos uma session para o usurio atual , chamada UserId , com o
contedo do tipo String, e criamos outra session chamada UserName , com o retorno da
funo U_GetUserName()
Consultando variveis Session
Ao consultar uma varivel 'session', sempre devemos prever que a mesma no pode ter
sido criada, de modo que a consulta pode retornar NIL, ou caso a session j exista ,
retornar o valor do tipo que foi atribudo `a mesma.
If HttpSession->UserId = NIL
// Session ainda no foi criada ! Usurio no est logado.
conout('Usuario no est logado')
Else
// Session j criada, o usurio est logado
conout('Usuario est logado : ID = ' + HttpSession->UserId )
Endif
Exemplo de Funcionamento de Session
No exemplo abaixo, criamos uma session para identificar quantas vezes o usurio
chamou esta funo especfica. Damos o nome da session de MyCounter, que ir conter
um nmero. No primeiro acesso do usurio, a session no existe ( = NIL ), e criada
com o valor numrico 1 (um). A partir das prximas requisies realizadas ao Protheus
atravs desta pgina ( atravs do boto 'Refresh' do Browser, por exemplo ) , a session
j existe, sendo somado o valor 1 o contedo j existente, e devolvido o browser

solicitante um Html informando quantas chamadas j foram realizadas por este usurio.
#include 'rwmake.ch'
#include 'apwebex.ch'
User Function TstSession()
Local cHtml := '' , cEcho := ''
WEB EXTENDED INIT cHtml
If httpSession->mycounter = NIL
cEcho := 'Inicializando contador'
Conout(cEcho)
cHtml += cEcho
httpSession->mycounter := 1
Else
httpSession->mycounter++
cEcho := 'contador em '+str(httpSession->mycounter,3)
conout(cEcho)
Endif
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

12/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

cHtml += cEcho + '<hr>'


WEB EXTENDED END
Return cHtml
Aps compilado o fonte acima e o Server Protheus configurado e iniciado com HTTP
habilitado e as working Threads configuradas, abra um Web Browser e solicite a url
http://localhost/u_tstsession.apw . Ser mostrado no Browse a mensagem 'Inicializando
Contador'. Agora , pea um 'Refresh' desta tela ao Browser : Ser devolvida a
mensagem 'Contador em 2' ... e a cada refresh deste Browser , o contador ser
incrementado.
Uso de Sessions e Paralelismo - Comportamento do Protheus Server
O Protheus Server trata s requisies simultneas de links .APW em paralelo , desde
que estejam disponveis o numero de Working Threads necessrio para tal. Por exemplo
, em uma estrutura de Frames , onde cada um deles aponta o SRC (source) para um link
.apw , o Browser envia as trs requisies de .apw para o Protheus Server , e caso
extistam 3 working threads disponveis naquele momento , as trs requisies so
atendidas em paralelo.
Por outro lado , se em duas destas trs requisies faz-se necessria a atualizao e/ou
consulta a uma varivel de Session ( httpsession ) , este processamento em paralelo ,
caso no fosse tratado , poderia gerar perdas no contedo da session caso a mesma
session fosse atualizada simultaneamente.
Para resolver esta questo, de maneira a no sobrecarregar o Servidor com solicitaes
de Processamento Sequencial ( Critical Sessions ) , foi montado um esquema de Lock
de Session de Usurio automtico, com liberao automtica aps o processamento do
APW, ou liberao manual atravs da chamada da funo HttpLeaveSession() antes do
processamento ser terminado.

Exemplificando a aplicao prtica e funcionamento deste conceito , partimos de um


ambiente hipottico utilizando 3 frames , onde um usurio realiza uma requisio
funo que retornar o source HTML da pgina de frames, e a mesma ao chegar no
Browser, faz o mesmo realizar as trs requisies simultaneamente, todas elas referentes
ao mesmo usurio. Porm , o primeiro e o segundo frames realizam uma operao
qualquer com uma ou mais variveis da Session do usurio , e o terceiro frame realiza
um outro processamento que no depende da consulta de nenhuma varivel da Session :
As trs requisies referente a este usu;ario sero processadas simultaneamente por
working Threads diferentes ( vamos supor que naquele momento haviam trs Working
Threads disponveis) ; porm quando uma das duas working Threads que tentarem
acesso uma varivel de Session daquele usurio , o Servidor verifica se alguma outra
Thread est com o flag de acesso s sessions deste usuario : Se nenhuma outra thread
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

13/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

em uso por este usurio est com a bandeira , ento a thread atual pega a bandeira para
ela; seno o processamento da Thread congelado no aguardo da liberao da bandeira.
A liberao da bandeira ocorre automaticamente no retorno da Working Thread para o
Browser , antes da chamada do ponto de entrada para Reset do Ambiente, atravs da
chamada na KlibEx da funo HttpLeaveSession(). Caso seja vivel para o usurio
liberar as sessions antes do retorno da funo , ele pode utilizar-se da funo
httpLeaveSession() no seu fonte , sem necessariamente aguardar pelo encerramento
efetivo e reset de ambiente da Working Thread.
Logo , retornando ao exemplo acima , os Frames 1 e 2 iro concorrer pela banceira de
atualizao de contedo de sessions, onde o primeiro frame que a ser executado pegar
a bandeira para ele e atualizar a session , e o segundo frame ir esperar o primeiro
liberar a bandeira para continuar a ser processado; e o terceiro frame , como no utiliza
nenhuma varivel da session , ser processado sem depender de nenhum dos outros dois
frames anteriores.
Quando utilizamos ASP ( Microsoft Active Server Pages ) , o mesmo realiza uma
serializao de requisies de pginas ASP por usurio, de modo que , caso o mesmo
usurio solicite trs frames .asp , as requisies de processamento chegaro ao Servidor
ASP simultaneamente , mas a bandeira de processamento unica por pgina .asp ,
sendo liberada apenas apos o trmino do processamento da pgina , de modo que ,
mesmo que nenhuma das pginas faa uso de sessions , todas as pginas deste usurio
sero processadas em sequncia.

08. Envio simultneo de HTML ao


Browser
Reviso: 30/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

As aplicaes web desenhadas para utilizar a Infra-Estrutura APWEBEX contam com o


recurso de "Envio simultneo de Html ao Browser" durante o processamento de uma

pgina Advpl-ASP ( .APH e/ou .AHU ) .


Este recurso habilitado atravs do Protheus IDE, nas opes de configurao de
compilao do ambiente em questo; mais especificamente habilitado atravs do
CheckBox "[ ] Exibir contedo do Advpl ASP progressivamente no Browser".
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

14/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Ao habilitamos esta configurao, todos os arquivos APH e AHU so parseados


fazendo internamente o uso da funo HttpSend(), de modo que mesmo antes do
processamento estar concludo , o Html gerado j est sendo enviado o Browser qoe o
solicitou.
A utilizao deste recurso prov um ganho de performance subtancial na aplicao
final. Todos os projetos desenvolvidos com esta tecnologia ( Infra-Estrutura
APWEBEX ) devem ter esta configurao de compilao habilitada no IDE. Vale
lembrar que, caso este recurso no esteja habilitado; ao habilit-lo, os arquivos .aph e
.ahu do projeto necessitam ser recompilados para que esta configurao tenha o efeito
desejado.
Pode existir a necessidade de um processamento de um APH ou AHU no enviar o
script Html gerado diretamente ao Browser. Para tal situao, podemos desabilitar
temporariamente este recurso de envio de html progressivo em tempo de execuo,
permitindo assim, por exemplo, uma funo chamar em sequncia dois arquivos APH ,
um para gerar um contedo Html a ser enviado via e-mail , armazenado em uma
varivel Advpl , e outro APH para a montagem de uma tela de status, que ser enviada
o Browser solicitante.
Para habilitar e/ou desabilitar o envio simultneo do Script HTML o browser em
tempo de execuo, utilize a funo HttpSetPart()

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

15/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

09. Configuraes especficas


APWEBEX
Reviso: 26/04/2004
Abrangncia
Verso 7.10

Verso 8.11

Ao utilizarmos as funes de Infra-estrutura APWEBEX, existem recursos da lib que


exigem uma configurao adicional para serem utilizados.
Envio de e-mail automtico atravs da Rotina de Tratamento de Erro do Site
Em caso de erro fatal na aplicao Web, a prpria rotina de tratamento de erro pode ser
configurada para enviar um e-mail o Administrador do sistema. Para tal, necessrio
inserir as chaves abaixo na seo do ambiente em uso para o site :
ErrorSMTP= (endereo do servidor SMTP a ser usado para o envio do e-mail )
ErrorMail= ( um ou mais endereos de e-mail a receber op e-mail de erro, separados por
virgula )
ErrorFrom= ( um e apenas um endereo de e-mail a ser usado como remetente do aviso
de erro )
ErrorLogin = ( nome de usuario de login no servidor de SMTP, caso necessrio )
ErrorPassword= ( senha do usuario de login no servidor de SMTP, caso necessrio )
WebAdmin - Login alternativo
A infra-estrutura APWEBEX exige um usurio e senha para entrar no mdulo de
administrao WebAdmin. Para validar o login, utilizado o arquivo de senhas do ERP.
O usurio deve ser o 'Administrador' ou pertencer ao grupo de administradores para ter
acesso o WebAdmin. Caso no seja vivel usar este arquivo de senhas para validar o
login, podemos inserir uma chave adicional ( AdmLogin ) no Environment em uso pela
aplicao Web, e configurar nela a senha do usurio 'Administrador' para login no
WebAdmin. Caso esta chave seja configurada, o arquivo de senhas do ERP no ser
utilizado para validar o login no WebAdmin.
AdmLogin= ( senha do Administrador para logar no WebAdmin )
Pasta alternativa para upload de Rpo via WebAdmin
No WebAdmin , possvel utilizar uma configurao especfica para a troca do
repositrio de objetos em uso no site, sem que seja necessrio parar o servidor para isso.
Por default , a pasta de upload chama-se '\SwapRPO\', e deve existir na estrutura
de diretrio do ambiente utilizado, a partir do diretrio raiz do ambiente ( RootPath ).
RpoUpload= ( pasta de upload alternativa, a partir do RootPath do ambiente )

10. Recomendaes finais


Reviso: 17/12/2003
Abrangncia
Verso 7.10

Verso 8.11

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

LIB WEBEX
16/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Para todo o desenvolvimento de solues, temos em mos uma diversidade de recursos,


desenhados para melhor atender s necessidades e adequar-se s caracteristicas da
aplicao. Dada a flexibilidade dos recursos, recomenda-se aos desenvolvedores
adotarem um padro de desenvolvimento e ter em foco a eficincia da aplicao final,
tanto no aspecto funcional como na codificao .
Lanando mo da experincia em desenvolvimento de aplicaes web adquiridas nos
ltimos anos, nos tpicos abaixo esto relacionadas algumas medidas tomadas no
desenvolvimento de aplicaes que nos so muito teis no decorrer de um projeto.
Nomenclatura de Funes
Para o desenvolvimento de aplicaes web, foi criado o 'Statement' WEB FUNCTION
para a declarao de funes referentes projetos web. Este comando , na prtica ,
apenas prefixa a declarao da funo com W_ , porm a sua utilizao identifica que a
funo em questo foi construda nica e exclusivamente para ser chamada a partir de
uma requisio HTTP . Em adendo este, devemos utilizar os comandos WEB
EXTENDED INIT ... END , disponivels no Include 'apwebex.ch' , para proteger a
funo de ser chamada em um ambiente que no o APWEBEX.
Separando a Interface do Processamento
Ao desenvolver utilizando Advpl ASP , pginas APH / AHU, recomenda-se separar o
processamento da Interface, do seguinte modo : Criar uma Web Function para a
chamdada de umna pgina com contedo dinmico via link .apw , e um arquivo .APH
ou .AHU de mesmo nome , que ser chamado internamente , de modo que o cdigofonte escrito na Web Function seja responsvel para gerar as informaes a serem
disponibilizadas para o usurio , e o .APH contenha apenas a 'mscara' destas
informaes e o mnimo de instrues Advpl possvel para a montagem da pgina. Este
processo facilita a manuteno de amobos os cdigos, pois o Web Designer que ir
realizar um ajuste no APH no ter que 'desviar' do fonte Advpl inserido na pgina , e o
Analista / Programador que far a manuteno no cdigo Advpl preocupar-se- apenas
com o cdigo responsvel para a gerao dos dados que sero mascarados.
Utilizao das Funes de Infra-Estrutura
Atravs dos comandos e funes disponibilizadas na Infra-Estrutura APWEBEX, no
tmos a necessidade de recriar partes comuns de cdigo para todos os projetos que se
utilizem desta tecnologia, alm de permitir atravs de pontos de entrada
estrategicamente colocados na ferramenta um nvel altssimo de customizao para os
projetos desenvolvidos com esta tecnologia, de maneira prtica e objetiva.

11. Monitoramento de Sites em WEBEX


Reviso: 17/12/2003
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

17/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Abrangncia
LIB WEBEX
O Objetivo de uma funo de Monitoramento de Sites testar as funcionalidades
bsicas de um site, retornando uma mensagem HTML pr-definida , indicando que est

tudo certo , e em caso de erro , uma mensagem que procure identificar o que est de
errado.
Para sites desenvolvidos em Protheus , utilizando a tecnologia WEBEX , devemos
criar uma funo especfica para o site , que ir determinar se o mesmo est operacional
. Esta funo ser chamada atravs de link .apw
Vejamos o exemplo abaixo, escrito para um site cujas bases de dados esto num SQL ,
acessadas via TopConnect. Neste exemplo , a funo chamada ser
http://servidor/U_SiteMonitor.apw , e caso esteja tudo certo , ela retornar a string
'(SITE OK)' , seguido da data e horrio da execuo da rotina. Qualquer retorno
diferente disto poder indicar uma anomalia no funcionamento do site.
Quando hospedado um site utilizando esta tecnologia no DataCenter da Makira , esta
informao gerada pela rotina deve ser passada o depto de infra-estrutura, que
configurar um software 'Monitor de Sites', que ir realizar a cada um minuto uma
requisio url especificada , e ir emitir um alerta ao Departamento para que seja
verificado o site caso haja alguma falha na resposta.
#include "protheus.ch"
#include "apwebex.ch"
User Function SiteMonitor()
Local cQuery , nQtdRec
// Verifica se a working Thread est conectada com o TOP ...
If !TCIsConnected()
Return 'Working Thread perdeu a conexo com o TOP'
Endif
// Verifica se as tabelas principais esto abertas ....
If select('SA1')=0
Return 'Tabela SA1 no est aberta !!!'
Endif
If select('SC5')=0
Return 'Tabela SC5 no est aberta !!!'
Endif
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

18/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

// Executa uma query de contagem de registros de uma tabela do sistema


cQuery := 'SELECT count(*) as QTDREC from SA1010'
OPEN QUERY cQuery ALIAS 'TMPCOUNT'
nQtdRec := TMPCOUNT->QTDREC
CLOSE QUERY 'TMPCOUNT'
If nQtdRec=0
Return 'Falha na Contagem de registros / Query SA1'
Endif
// Se est tudo certo , retorna um HTML informando que est tudo OK
Return '(SITE OK) '+dtos(date())+' '+time()

CLOSE QUERY
Reviso: 08/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
CLOSE QUERY cAlias
Parmetros
Argumento

Tipo

Descrio

cAlias

Alias sob o qual o cursor da Query foi aberto. Caso o alias


Caracter passado como parmetro no se encontre aberto , a funo
no gera nenhuma ocorrncia de erro.

Descrio
Atravs do comando Close Query , realizamos o fechamento de uma query aberta
atravs do comando OPEN QUERY.
ATENO : Uma query aberta pelo comando OPEN QUERY deve ser fechada
pelo comando CLOSE QUERY . Poderamos fechar o alias aberto atravs de uma
Query simplesmente com a funo DbCloseArea(), porm isto deixaria em aberto
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

19/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

elementos internos de controle criados pelo comando OPEN QUERY.

OPEN QUERY
Reviso: 08/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
OPEN QUERY <cQuery> ALIAS <cAlias> [ [NOCHANGE] ]
Parmetros
Argumento

Tipo

Descrio

<cQuery>

Caracter

cQuery corresponde String contendo a Query a ser


executada no banco de dados
cAlias corresponde ao nome do alias sob o qual o cursor de
retorno dos dados pesquisados ser aberto no ambiente

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

20/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

ALIAS <cAlias>

[NOCHANGE]

Caracter Advpl. No pode ser especificado um nome de alias j em


uso, seno a aplicao ser finalizada com a ocorrncia de
erro "Alias already in Use"
Caso especificada a clusola NOCHANGE na abertura da
Caracter query , a string em cQuery no ser submetida funo
ChangeQuery()

Descrio
Atravs do comando OPEN QUERY , realizamos a abertura de uma Query de busca no
Banco de Dados atravs do RDD TOPCONN , retornando os dados consultados atravs
de um 'ALIAS' Advpl.
Caso a Query nao possa ser aberta, por erro de sintaxe , devido thread atual no estar
conectada com o TopConnect , ou outro erro , ser gerado um log de erro , informando
o Alias , o Stack ( Pilha de Chamadas ) de execuco , e o contedo da Query para
Debug.
OBSERVAES IMPORTANTES
Na montagem da string da Query , devemos especificar os comandos SQL , alias
e nomes de campos em letras maisculas.

Quando utilizamos o comando OPEN QUERY , no precisamos passar a


expresso da Query atravs da funo ChangeQuery(). Este proceduimento j
realizado internamente pelo comando OPEN QUERY. Para que a query no seja
submetida funo ChangeQuery(), devemos utilizar o parmetro
NOCHANGE.

A utilizao deste comando implcita LIB APWEBEX , e necessita da


utilizao do #include 'Apwebex.ch'

WEB EXTENDED END

Reviso: 08/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
WEB EXTENDED END <cHtml> [ START <cFnStart> ]
Parmetros
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

21/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Argumento

Tipo

Descrio

<cHtml>

cHtml corresponde variavel que ser utilizada para


armazenar a String Html que ser retornada ao Browser
Caracter
solicitante do processamento. Deve ser especificada uma
varivel String , com contedo vazio. ("")

cFnStart corresponde o nome de uma funo Advpl que


START <cFnStart> Caracter ser executada para pr-validar a execuo do resto do
cdigo. A funo deve ser passada SEM parnteses () .
Descrio
Devemos utilizar este comando para fechar uma seo aberta pelo comando WEB
EXTENDED INIT . Para cada ocorrncia do comando WEB EXTENDED INIT , devese ter um fechamento da mesma atravs do comando WEB EXTENDED END ,
devendo haver apenas uma ocorrncia desta estrutura por funo.
A utilizao deste comando implicita Working Threads inicializadas pela Lib
APWEBEX , e a definio do mesmo est no arquivo #include 'apwebex.ch' , que deve
ser declarado no incio do arquivo fonte Advpl.

WEB EXTENDED INIT


chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

22/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Reviso: 08/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
WEB EXTENDED INIT <cHtml> [ START <cFnStart> ]
Parmetros
Argumento

Tipo

Descrio

<cHtml>

cHtml corresponde variavel que ser utilizada para


armazenar a String Html que ser retornada ao Browser
Caracter
solicitante do processamento. Deve ser especificada uma
varivel String , com contedo vazio. ("")

cFnStart corresponde o nome de uma funo Advpl que


START <cFnStart> Caracter ser executada para pr-validar a execuo do resto do
cdigo. A funo deve ser passada SEM parnteses () .
Descrio
Devemos utilizar este comando , juntamente com o comando WEB EXTENDED END
quando montamos uma funco ( Web Function ) que foi construda para ser chamada a
partir de um Web Browser , quando nos utilizamos das funes de Infra-Estrutura
APWEBEX.
Atravs dele , realizada uma pr-validao que certifica que a execuo da funo
somente ser realizada caso a thread atual seja realmente uma Thread montada no
ambiente WEBEX, alm de podermos inserir uma pr-validao (START) de execuo
especfica para esta funo.
Caso seja especificada uma funo na clusula START, a mesma dever retornar uma
String. Retornando uma String em branco , o processamento da funo original ser
efetuado normalmente . Caso a funo retorne uma string no-vazia , esta string ser
retornada para a varivel cHtml , e o processamento do programa ser desviado para a
linha do cdigo-fonte imediatamente posterior o comando WEB EXTENDED END .
Para cada ocorrncia do comando WEB EXTENDED INIT , deve-se ter um fechamento
da mesma atravs do comando WEB EXTENDED END , devendo haver apenas uma
ocorrncia desta estrutura por funo.
A utilizao deste comando implicita Working Threads inicializadas pela Lib
APWEBEX , e a definio do mesmo est no arquivo #include 'apwebex.ch' , que deve
ser declarado no incio do arquivo fonte Advpl.

EnvUser.APL - Exemplo de Uso com

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

23/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

ERP
Reviso: 16/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Atravs do exemplo prtico abaixo , utilizamos em um cdigo fonte Advpl os pontos de


entrada disponibilizados na Infra-Estrutura APWEBEX para realizar a preparao de
um ambiente ERP , Reset de Ambiente , finalizao de Thread, finalizao de sessions
por time-out e customizao de mensagem de erro para o desenvolvimento de um
projeto de Web Site integrado com o ERP Microsiga.
Devemos adotar como padro para projetos que utilizam APWEBEX a criao do
arquivo "EnvUser.apl", especificamente para a definio dos pontos de entrada
utilizados pela Infra-Estrutura APWEBEX; e devemos apenas compilar os fontes
dos pontos de entrada realmente necessrios o projeto.
#INCLUDE "PROTHEUS.CH"
#INCLUDE "APWEBEX.CH"
/*
======================================================================
==============
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 .
--------------------------------------------------------------------------- */
USER Function StartWebEx()
// Prepara o Ambiente ERP
PREPARE ENVIRONMENT ;
EMPRESA '01' ;
FILIAL '01'
;
TABLES "ZX1","ZX2","ZX3","ZX4","ZZ1","ZZ2","ZZ3","ZZ4","ZZ5"
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

24/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Return .T.

/* -----------------------------------------------------------------------------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('Vou executar '+cFnName)
Return cHtmlConn
/* -----------------------------------------------------------------------------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 := ''
conout('Terminei de executar '+cFnName)
Return cHtmlConn
/* -----------------------------------------------------------------------------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
/* -----------------------------------------------------------------------------Ponto de Entrada ENDSESSION(cSessionId) => NIL
Ponto de entrada chamado em uma working Thread quando a session de um
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

25/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

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

/* --------------------------------------------------------------------------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 += ''
cCustomHtml += ''
cCustomHtml += ''
cCustomHtml += ''
cCustomHtml += ''
cCustomHtml += '
'
cCustomHtml += '
Ocorreu um erro inesperado no '
cCustomHtml += 'processamento desta pgina. O Administrador do sistema ser
notificado desta '
cCustomHtml += 'ocorrncia . Recomendamos fortemente que esta janela do
navegador seja '
cCustomHtml += 'fechada, e uma nova janela seja aberta para retornar
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

26/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

navegao do site.
'
cCustomHtml += '
'
cCustomHtml += '
'
cCustomHtml += ''
cCustomHtml += ''
Return cCustomHtml

Exemplo da funo ESCAPE


Reviso: 10/12/2003
Abrangncia

Verso 7.10

Verso 8.11

LIB WEBEX

Nos exemplo abaixo, utilizamos a funo escape() para formatar parmetros para inserir
em uma URL.
cUrl := 'http://localhost/webinfo.apw'
cPAram1 := 'Teste de Parametro 01-02'
cPAram2 := '#reserva#'
cPAram3 := '1+2+3'
cUrl += '?Par01=' + escape(cPAram1) + '&PAr02=' + escape(cPAram2) +
'&Par03=' + escape(cPAram3)
// O conteudo de cUrl dever ser "http://localhost/webinfo.apw?
Par01=Teste%20de%20Parametro%200102&PAr02=%23reserva%23&Par03=1%2B2%2B3" , prprio para a monyahem de
um link .

Exemplo da funo
GETJOBPROFSTRING
Reviso: 08/12/2003
Abrangncia
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

27/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Verso 7.10

Verso 8.11

LIB WEBEX

O exemplo abaixo , executado em uma thread iniciada a partir de um JOB WEBEX,


recupera algumas configuraes atuais em uso para este JOB.
cJobType
cInstances
cInacTime
cExpTime

:=
:=
:=
:=

GetJobProfString('type','(empty)' )
GetJobProfString('Instances','(empty)' )
GetJobProfString(InactiveTimeout','(default)' )
GetJobProfString('ExpirationTime','(default)' )

Exemplo da funo GETPARVALUE


Reviso: 08/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

No exemplo abaixo , so montados dois arrays multi-dimensionais , com 2 dimenses ,


e so realizadas buscas nos mesmos explorando todas as possibilidades de uso da
funo GetParValue()
Local aTeste1 := {}
Local aTeste2 := {}
Aadd(aTeste1,{"Alias","TMP1"})
Aadd(aTeste1,{"Relacao","2x3"})
Aadd(aTeste2,{"Alias","TMP2"})
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

28/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Aadd(aTeste2,{"Info","---Informao adicional---"})
// Busca apenas no array ateste1
cAlias := GetParValue("ALIAS",aTeste1)
cRelacao := GetParValue("RELACAO",aTeste1)
cInfo := GetParValue("INFO",aTeste1)
DEFAULT cAlias := "(nao encontrado)"
DEFAULT cRelacao := "(nao encontrado)"
DEFAULT cInfo := "(nao encontrado)"
conout(cAlias) // TMP1
conout(cRelacao) // 2x3
conout(cInfo) // (nao encontrado)
// Busca apenas no array ateste2
cAlias := GetParValue("ALIAS",aTeste2)
cRelacao := GetParValue("RELACAO",aTeste2)
cInfo := GetParValue("INFO",aTeste2)
DEFAULT cAlias := "(nao encontrado)"
DEFAULT cRelacao := "(nao encontrado)"
DEFAULT cInfo := "(nao encontrado)"
conout(cAlias) // TMP2
conout(cRelacao) // (nao encontrado)
conout(cInfo) // ---Informao Adicional--// Busca em ambos os Arrays
// Primeiro no aTeste1 e depois no aTeste2
cAlias := GetParValue("ALIAS",aTeste1,aTeste2)
cRelacao := GetParValue("RELACAO",aTeste1,aTeste2)
cInfo := GetParValue("INFO",aTeste1,aTeste2)
conout(cAlias) // TMP1
conout(cRelacao) // 2x3
conout(cInfo) // ---Informao Adicional---

Exemplo da funo HEXSTRDUMP

Reviso: 15/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Atravs do exemplo abaixo, geramos a string com o DUMP de um arquivo HTML,


salvo na pasta WEB a partir do RootPath do Environment. O Dump do arquivo ser
mostrado no Console do servidor e no Web Browser que solicitou a funo
U_DumpTest.apw .
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

29/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

#include "protheus.ch"
#include "apwebex.ch"
User Function DumpTest()
Local cHtml := ''
Local cTXTFile := ''
Local cDump := ''
WEB EXTENDED INIT cHtml
// Le o arquivo
cTTXFile := memoread('\Web\Default.htm')
// Gera a string com o Dump do arquivo
cDump := HExStrDump(cTTXFile)
// Mostra o Dump no console
conout(cDump)
// Gera HTML para a visualizao do DUMP
cHtml := VarInfo('DUMP',Htmlnotags(cDump),,.t.,.f.)
WEB EXTENDED END
Return cHtml
/*
Exemplo do Texto mostrado no Console
HexSTRDump ( String 237 / Start 1 / Length 237 )
-----------------------------------------------------------------------------3C 48 54 4D 4C 3E 3C 48 45 41 44 3E 0D 0A 3C 4D | <HTML><HEAD>__<M
45 54 41 20 48 54 54 50 2D 45 51 55 49 56 3D 22 | ETA HTTP-EQUIV="
43 6F 6E 74 65 6E 74 2D 54 79 70 65 22 20 63 6F | Content-Type" co
6E 74 65 6E 74 3D 22 74 65 78 74 2F 68 74 6D 6C | ntent="text/html
22 0D 0A 3C 4D 45 54 41 20 48 54 54 50 2D 45 51 | "__<META HTTP-EQ
55 49 56 3D 22 70 72 61 67 6D 61 22 20 63 6F 6E | UIV="pragma" con
74 65 6E 74 3D 22 6E 6F 2D 63 61 63 68 65 22 3E | tent="no-cache">
0D 0A 3C 4D 45 54 41 20 48 54 54 50 2D 45 51 55 | __<META HTTP-EQU
49 56 3D 22 45 78 70 69 72 65 73 22 20 63 6F 6E | IV="Expires" con
74 65 6E 74 3D 22 2D 31 22 3E 0D 0A 3C 4D 45 54 | tent="-1">__<MET
41 20 48 54 54 50 2D 45 51 55 49 56 3D 22 52 65 | A HTTP-EQUIV="Re
66 72 65 73 68 22 20 63 6F 6E 74 65 6E 74 3D 22 | fresh" content="

30 3B 20 75 72 6C 3D 2F 77 5F 77 45 78 30 30 30
2E 61 70 77 22 3E 3C 2F 48 45 41 44 3E 0D 0A 3C
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

| 0; url=/w_wEx000
| .apw"></HEAD>__<
30/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

2F 48 45 41 44 3E 3C 2F 48 54 4D 4C 3E
| /HEAD></HTML>
-----------------------------------------------------------------------------*/

Exemplo da funo HTMLNOTAGS


Reviso: 08/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

No exemplo abaixo , a funo HtmlNoTags utilizada para permitir a utilizao de


caracteres especiais no contedo de um input para um formulrio Html.
Local cHtml := ""
Local cInput := ""
// Conteudo do campo com tags HTML intepretveis
cInput := ''
// Ao montar o Input , aplicar a HtmlNoTags() ao conteudo do mesmo.
cHtml += '

'

Exemplo da funo REDIRPAGE


Reviso: 10/12/2003
Nos exemplos abaixo, a funo redirpage utilizada para gerar o script de
redirecionamento em duas situaes especficas.
/*
Em uma determinada funo , caso um parmetro no seja passado , o
usurio dever retornar a uma outra tela
*/
...
If empty(httpget->meuparam)
// Parmetro no informado , volta pro login
cHtml := RedirPage('/W_Login.apw')
Else
// Parametro Ok , executa o APH formteste
cHtml := ExecInpage('FormTeste')
Endif
...
/* Ao chamar uma tela de download , mostrar uma mensahem e iniciar um
download automaticamente */

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

31/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

...
cHtml += '
...mensagem de download...
'
// Devolve script de redirecionamento apontando para o arquivo
// com o target _blank , para ser aberto em uma nova janela.
cHtml += RedirPage('/downloads/arquivo.zip','_blank')
...

Exemplo da funo RETSQLACE


Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

No exemplo abaixo , utilizamos a funo RetSqlAce para montar uma query de busca
por ttulo de uma determinada informao , considerando todas as possibilidades de
acentuao , independentemente de como o banco foi alimentado e/ou a string de busca
foi digitada.
IMPORTANTE : Na expresso da Query , o campo da tabela deve ser passado pela
funo LOWER do BAnco , pois a funo retsqlace monta a string para busca com
letras minsculas.
cFind := 'acentuao'
cQuery := "SELECT * FROM " + RetSqlTab('ZZ1')
cQuery += "WHERE LOWER(ZZ1_TITULO) LIKE '%"+RetSqlAce(cFind)+"%'

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

"

32/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Exemplo da funo VALTOSQL


Reviso: 08/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

cQuery := "SELECT * FROM FA2010 "


cQuery += "WHERE FA2_FILIAL = " + ValToSql('02')
cQuery += "AND FA2_DTINC <= " + ValToSql(date())
O exemplo acima , caso escrito de forma a realizar as converses
especficas para cada tipo de contedo seria o equivalemte ao cdigo
abaixo :
cQuery := "SELECT * FROM FA2010 "
cQuery += "WHERE FA2_FILIAL = '02' "
cQuery += "AND FA2_DTINC <= " + DTOS( date() )

Exemplo da funo VARINFO


Reviso: 08/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

No exemplo abaixo , gerada uma string HTML com as informaes do retorno da


chamada de duas funes bsicas da Linguagem Advpl.
User Function InfoTeste()
Local cHtml := ''
cHtml += VarInfo(Date,date())
cHtml += VarInfo(Time,time())
Return cHtml
/* Deve ser gerado um echo no Console do Servidor parecido com este
abaixo
Date -> D (

10) [08/12/2003]

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

33/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Time -> C (
*/

8) [20:17:48]

Exemplo das funes de acentuao


ApWebEX
Reviso: 08/12/2003

Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

No exemplo abaixo, vemos a diferena de comportamento entre as funes bsicas da


Linguagem Advpl Upper() e Lower() , e a funo de Infra-estrutura Capital(), em
relao s funes da Infra-estrutura APWEBEX UpperAce() , LowerAce() e
CApitalAce() , quando utilizamos caracteres acentuados.
cRetorno := ""
cFrase
:= "no h EXPLICAES considerando excesses PARA O
inexplicvel."
cRetorno
cRetorno
cRetorno
cRetorno
cRetorno
cRetorno
cRetorno

+=
+=
+=
+=
+=
+=
+=

"Original ..........
"Upper() ...........
"Lower() ...........
"Capital() .........
"UPPERACE() ........
"LOWERACE() ........
"CAPITALACE() ......

"
"
"
"
"
"
"

+
+
+
+
+
+
+

cFrase + CRLF
upper(cFrase) + CRLF
lower(cFrase) + CRLF
capital(cFrase) + CRLF
UPPERACE(cFrase) + CRLF
LOWERACE(cFrase) + CRLF
CAPITALACE(cFrase) + CRLF

/*
Neste ponto , a varivel cRetorno dever conter :
Original .......... no h EXPLICAES considerando excesses PARA O
inexplicvel.
Upper() ........... NO H EXPLICAES CONSIDERANDO EXCESSES PARA O
INEXPLICVEL.
Lower() ........... no h explicaes considerando excesses para o
inexplicvel.
Capital() ......... No H Explicaes Considerando Excesses Para O
Inexplicvel.
UPPERACE() ........ NO H EXPLICAES CONSIDERANDO EXCESSES PARA O
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

34/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

INEXPLICVEL.
LOWERACE() ........ no h explicaes considerando excesses para o
inexplicvel.
CAPITALACE() ...... No H Explicaes Considerando Excesses Para O
Inexplicvel.
*/

Exemplos das funes NTOC e CTON


Reviso: 16/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

No exemplo abaixo , utilizamos as funes cton e ntoc para realizar converses de


nmeros em base decimal para outras bases numricas e vice-versa.
nNum1 :=
nNum2 :=

CTON('01101001',2)
CTON('00DA25FE',16)

// Converte binrio para decimal


// Converte Hexadecimal para decimal

nNum1++ // Soma 1 ao numero em nNum1


nNum2++ // Soma 1 ao numero em nNum2
cNum1 := NtoC(nNum1,2,8)
cNum2 := NtoC(nNum2,16,8)

// Converte para binrio novamente


// Converte para Hexa novamente

/* -----------------------------------------------------------------------Ao final do programa , cNum1 ser "01101010" e cNum2 ser "00DA25FF"


------------------------------------------------------------------------ */

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

35/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

APWEXADDERR
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
APWEXADDERR ( [ cTitulo ] , [ cInfo ] ) --> .T.
Parmetros
Argumento

Tipo

Descrio

cTitulo

cTitulo corresponde a um ttulo identificador da


Caracter informao. Deve ter no mximo 20 caracteres. Os

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

36/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

caracteres acima da vigsima posio sero ignorados.


cInfo

Caracter

cInfo corresponde Informao a ser acrescentada ao


ERROR.LOG em caso de erro.

Retorno
Tipo

Descrio

Lgico

Esta funo sempre retorna .T.

Descrio
Atravs da funo ApWExAddErr(), podemos acrescentar uma string de informaes
adicionais em um buffer em memria, descarregado na gerao do ERROR.LOG no
caso de uma ocorrncia de erro fatal na working thread atual.
Caso a funo seja chamada sem nenhum parmetro, a ltima ocorrncia acrescentada
pela funo eliminada da pilha interna de informaes.
ATENO : Esta funo deve ser apenas utilizada em casos de necessidade de
obteno de informaes especficas acerca de uma ocorrncia de erro no reproduzida
em ambiente de testes e/ou no depurvel, pois seu uso desnecessrio prejudica a
performance da aplicao final.

CAPITALACE
Reviso: 08/12/2003
Abrangncia
Verso 7.10

Verso 8.11

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

LIB WEBEX

37/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Sintaxe
CAPITALACE ( < cString > ) --> cStrCapital
Parmetros
Argumento

Tipo

Descrio

cString

Caracter String a ser convertida.

Retorno
Tipo

Descrio

Caracter

String resultante convertida para munsculo , com as primeiras letras das


palavras significantes em maisculo.

Descrio
Semelhante funo de Infra-estrutura Capital() , porm converte tambm caracteres
acentuados.
A funo CapitalAce() converte todos os caracteres de uma String para 'minsculo' , e a
primeira letra das palavras significantes para maisculo, semelhante funo Capital() ,
porm considera e converte tambm caracteres acentuados em OEM e/ou ANSI.

CTON
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

38/108

12/9/2014

CTON

advpl_-_webservices__-_estrutura_apwebex.doc

Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
CTON ( < cString > , < nBase > ) --> nNumero
Parmetros
Argumento

Tipo

Descrio

cString

Caracter

cString corresponde representao de um nmero em


outra base numrica, compreendida entre 2 e 36.

nBase

Numrico

nBase corresponde base numrica utilizada pelo numero


representado em cString.

Retorno
Tipo

Descrio

Numrico

Nmero recebido como parmetro em notao decimal ( Base 10 )

Descrio
Converte um nmero representado em String , de base 2 a 36 , para um nmero em base
decimal (10).
Observao Importante :
So considerados caracteres vlidos para compor um nmero de base 36 os 10
algarismos numricos de 0 a 9 e os 26 caracteres alfabticos maisculos compreendidos
entre A e Z. Quaisquer caractetes presentes na String de parmetro fora desta faixa de
dados e/ou fora da base ( por exemplo , uma converso de string base 2 - binrio - da
string '01001020' ) retornar -1 ( menos um ) .

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

39/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

ESCAPE
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
ESCAPE ( < cString > ) --> cEscaped
Parmetros
Argumento

Tipo

Descrio

cString

Caracter cString uma sequncia de caracteres a ser processada.

Retorno
Tipo

Descrio

Caracter

cEscaped corresponde string original , com os caracteres reservados


utilizando a notao %HH .

Descrio
A funo Escape() deve ser utilizada para realizar converses de caracteres especiais e
reservados quando da necessidade de passagem de parmetros via URL .
A sintaxe de uma requisio via URL para a passagem de parmetros :
(link)?param=conteudo&param2=conteudo2&...
Quando passamos parmetros via url , devemos tomar o cuidado de no utilizar
caracteres reservados e especiais nos nomes e contedos de parmetros. Para realizar
estas converses, utilizamos a funo Escape()

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

40/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

EXECINPAGE
Reviso: 12/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
EXECINPAGE ( < cAPHPage > ) --> cHTMLPage
Parmetros
Argumento

Tipo

Descrio

cAPHPage

Caracter

Corresponde o nome do APH que deve ser executado,


sem a extenso.

Retorno
Tipo

Descrio

Caracter

cHtmlPage corresponde string HTML gerada pela pgina APH / AHU.

Descrio
Atravs da funo ExecInPage(), executamos uma pgina APH passada como
parmetro. A funo dever retornar a String HTML correspondente pgina
processada.
Porm a funo ExecInPage() realiza tratamentos adicionais padro relacionaodo o
comportamento dos Projetos WEB referentes customizaes, da segunte maneira :
1. Primeiro verificado se existe uma pgina AHU compilada com o nome
cAPHPage. Caso exista , a mesma ser executada pela execinpage.
2. Caso no exista AHU com este nome , procurado pelo APH. Caso o APH
exista , o mesmo ser executado pela ExecInPage.
3. Caso no existam no RPO atual o APH nem o AHU com o nome especificado
no parmetro cAPHFile, o processamento abortado com a ocorrncia de erro
[APWEXERR_0007] APH page [<cAPHPage>] not found in .RPO
4. Antes de executar o APH ou AHU identificado nos passos anteriores,
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

41/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

verificado se existe um ponto de entrada ( User Function ) compilado com o


mesmo nome do APH. Caso exista , o ponto de entrada executado . Ele dever
retornar uma String HTML. Se for retornada alguma string , a funo retorna a
tring retornada e no processa o APH / AHU. Observao : A funo
ExecInPage no ir executar este tratamento da User Function com o nome de
cAPHPage caso a funo ExecInPage() esteja sendo executada atravs de uma
USER FUNCTION .
Observao Importante - Envio parcial de HTML o Browser.
A funo ExecInpage(), juntamente com o APH compilado, ao serem processados iro
tentar enviar o contedo HTML para o Browser solicitante durante o processamento, de

modo que a funo normalmente ir retornar uma String vazia.


Caso seja necessria a execuo de uma pgina APH ou AHU e o no-envio da mesma
para o Browse; por exemplo para a gerao de um cdigo HTML a ser enviado via email; revemos utilizar a funo HttpSetPart(), realizando uma chamada da mesma antes
da ExecInPage() , passando o parmetro .F. para desabilitar temporariamente o envio de
HTML simultneo ao Browser, e aps a execuo da ExecInPage(), devemos rehabilitar o envio simultneo atravs da chamada da funo HttpSetPart() com o
parmetro .T.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

42/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

EXISTPAGE
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
EXISTPAGE ( < cAphFile > ) --> lFound
Parmetros
Argumento

Tipo

Descrio

cAphFile

Caracter

Nome do arquivo APH, sem extenso e sem path , a ser


verificado.

Retorno
Tipo

Descrio

Caracter

Retorna um valor booleano indicando se o arquivo APH especificado est


compilado no RPO do ambiente atual.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

43/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Descrio
Utilizamos a funo ExistPage() para identificarmos no ambiente atual se um
determinado arquivo .APH encontra-se compilado atualmente no RPO em uso.
Exemplo :
If ExistPage('teste')
conout('teste.aph compilado neste RPO')
Else
conout('teste.aph NAO compilado neste RPO')
Endif

EXISTUSRPAGE
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
EXISTUSRPAGE ( < cAhuFile > ) --> lExist
Parmetros
Argumento

Tipo

Descrio

cAhuFile

Caracter Nome do arquivo AHU, sem extenso e sem path , a ser

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

44/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

verificado
Retorno
Tipo

Descrio

Lgico

Retorna um valor booleano indicando se o arquivo APH especificado est


compilado no RPO do ambiente atual.

Descrio
Utilizamos a funo ExistUSRPage() para identificarmos no ambiente atual se um
determinado arquivo .AHU encontra-se compilado atualmente no RPO em uso.
Exemplo :
If ExistUSRPage('teste')
conout('teste.ahu compilado neste RPO')
Else
conout('teste.ahu NAO compilado neste RPO')
Endif

GETJOBPROFSTRING
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

LIB WEBEX
45/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Sintaxe
GETJOBPROFSTRING ( < cKey > , < cDefault > ) --> cKeyValue
Parmetros
Argumento

Tipo

Descrio

cKey

Caracter

cKey corresponde chave da seo de configurao da


Working Thread atual a ser retornada.

cDefault

Caracter

Valor default (string) a ser retornado pela funo caso a


chave especificada no sehja encontrada no .INI

Retorno
Tipo

Descrio

Caracter

Conteudo da Chave solicitada . Caso a chave no seja encontrada ,


retornado o conteudo de cDefault . Caso esta funo no seja executada a
partir de uma Working Thread , ela retornar uma string em branco ("")

Descrio
Atravs desta funo , podemos recuperar as configuraes do Job da Working Thread
atual.

GETWEXVERSION

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

46/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

GETWEXVERSION
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
GETWEXVERSION ( ) --> cBuildId
Retorno
Tipo

Descrio

Caracter

Corresponde String Identificadora da verso , no formato <LIB>


V.AAMMDDHHmm . Vide Tabela A

Descrio
Esta funo no requer argumentos , e retorna o Identificador do build / verso de
Release das funes de Infra-Estrutura APWEBEX.
Observao : A data informada pela verso no corresponde ultima compilao
do RPO de um determinado Projeto WEB, mas sim data de release da LIB de
Infra-Estrutura APWEBEX.

Tabela A
Simbolo
Descrio
AA
Ano de gerao da Lib
MM
Ms da gerao da Lib
DD
Dia da gerao da Lib
HH
Horrio da gerao da Lib
mm
Minutos do Horrio de Gerao da Lib
Indica que a verso foi compilada com a configuraco de envio progressivo de
(HTTP) HTML simultneo para o Browse . Esta opo imprescindvel para projetos
que se utilizam desta LIB.
Por exemplo :
APWEBEX Version 3.0312021900 (HTTP)

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

47/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

HEXSTRDUMP
Reviso: 15/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
HEXSTRDUMP ( < cString > , [ nStart ] , [ nLength ] ) --> cHExDump
Parmetros
Argumento

Tipo

Descrio

cString

Caracter String a ser lida para a gerao do Dump

nStart

Corresponde posio inicial de cString a ser considerada


para a gerao do Dump, a partir da posio 1. Caso este
Numrico
parmetro no seja informado , o Default a posio 1 da
string.

nLength

nLength corresponde o tamanho a ser considerado para a


gerao do DUMP a partir da posio inicial recebida em
Numrico
nStart. Caso este parmetro no seja informado,
considerado o tamanho at o final da String.

Retorno
Tipo

Descrio

Caracter

O retorno da funo corresponde uma string Advpl , formatadas em 16


bytes em hexadecimal por linha , mais o separador pipe (|) , mais os 16
caracteres em Ansi. Os caracteres de controle ( codigo ascii menor que 32
) so convertidos para visualizao para o caractere underline (_)

Descrio
Atravs da funo HexStrDump(), podemos gerar uma string em Advpl em formato de
Dump Hexadecimal a partir da string informada como parmetro, a partir de uma
determinada posio da string, considerando um nmero de bytes informado.
Caso os parmetros nPosIni e nTamString no sejam informados, o dump gerado
corresponde a string recebida como parmetro em sua totalidade.
Observao :
No devemos pasar para a funo HexStrDump uma string maior que 240 Kb , pois a
gerao da String de dump realizada em memria, sendo a string final gerada em
mdia 4,2 vezes maior que a string passada como parmetro. Caso a string passada
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

48/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

como parmetro seja maior que 240 Kb , a execuo ser abortada com a ocorrncia de
erro fatal "string size overflow"

HTMLNOTAGS

Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
HTMLNOTAGS ( < cStrHtml > ) --> cStrNoTags
Parmetros
Argumento

Tipo

Descrio

cStrHtml

Caracter

cStrHtml corresponde a uma String que no pode conter


caracteres Html interpretveis.

Retorno
Tipo

Descrio

Caracter

String original com os caracteres interpretveis Html < > & " convertidos
para caracteres no-interpretveis.

Descrio
A Funo HTMLNOTAGS converte as Tags interpretveis de uma String HTML para
TAGS no interpretveis. Este recurso normalmente utilizado quando precisamos
montar um input Html com um conteudo que nao pode ser interpretado pelo browser
como uma Tag . Esta funo apenas converte os caracteres < ( menor que ) , > ( maior
que ) , & ( e comercial ) e ( aspas duplas ) .
Recomenda-se fortemente que, na montagem do value de um input html , o
contedo do mesmo seja colocado entre aspas duplas, pois caso o contedo do
value inicial do campo contenha aspas simples ( no convertidas pela funo
HtmlNoTags) , isto poder ocasionar perda de dados e erro de sintaxe no
formulrio Html.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

49/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

HTTPISWEBEX
Reviso: 12/12/2003
Sintaxe
HTTPISWEBEX ( ) --> lIsApWEBEX
Retorno
Tipo

Descrio

Lgico

A funo retornar .T. caso o ambiente de execuo atual seja uma


Working Thread WEBEX , inicializada pela funo de infra-estrutura
STARTWEBEX.

Descrio
Atravs da funo HttpIsWebEx() possvel identificarmos se o programa atual est
sendo executado atravs de uma Working Thread inicializada utilizando-se as funes
de Infra-Estrutura APWEBEX

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

50/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

ISEMAIL
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
ISEMAIL ( < cEMail > ) --> lEmailOk
Parmetros
Argumento

Tipo

Descrio

cEMail

Caracter

cEmail corresponde a string a ser analizada , contendo um


e apenas um endereo de e-mail.

Retorno
Tipo

Descrio

Caracter

Retorna .T. caso a sring recebida como parmetro atenda s definies de


nomenclatura vlidos para um endereo de e-mail.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

51/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Descrio
Utilizada para validar e-mails em Advpl , a funo ISEMAIL recebe como parmetro
uma string contendo um e-mail , retornando .T. caso a string esteja em um formto
vlido respeitando a regra para nomenclatura de endereos de e-mail.
Regra : Um e-mail considerado vlido caso seja iniciado por um caracter , apenas
contenha caracteres asc de a a z e 0 a 9 , e os caracteres @ (arroba) , . (ponto) , - ( hfen)
ou _ (underline) ; e deve conter uma e apenas uma arroba , e no minimo um ponto apos
a arroba, intercalado por um caracter.

LOWERACE
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
LOWERACE ( < cString > ) --> cStrLower
Parmetros
Argumento

Tipo

Descrio

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

52/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

cString

Caracter cString a sequncia de caracteres a ser convertida para


letras minsculas.

Retorno
Tipo

Descrio

Caracter

String original em letras minsculas.

Descrio
A Funo LOWERACE converte todos os caracteres de uma String para minusculo ,
semelhante funo LOWER() , porm considera e converte tambm caracteres
acentuados em ANSI.

NTOC
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

LIB WEBEX
53/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Sintaxe
NTOC ( < nNumero > , < nBase > , < nTamStr > ) --> cString
Parmetros
Argumento

Tipo

Descrio

nNumero

Numrico

nNumero o valor numrico , em base devimal , a ser


convertido.

nBase

Numrico

nBase corresponde base binria a ser utilizada para


converter nNumero.

nTamStr

Numrico

nTamStr corresponde ao tamanho da string representando


o numero na base desejada .

Retorno
Tipo

Descrio

Caracter

cString corresponde ao numero convertido para a base numrica


especificada como parmetro.

Descrio
A Funo NTOC converte um nmero em notao decimal para um nmero
representado por String utilizando uma base numrica entre 2 e 36 , preenchendo-o com
0 (zeros) esquerda do tamanho especificado.
Observao : O Parmetro nBase deve ser especificado com um nmero entre 2 e 36 .
Caso seja passado como parmetro um nmero base fora desta faixa, o processamento
abortado com a ocorrncia de erro [APWEXERR_0022] INVALID NTOC BASE [X] ,
onde <X> foi a base passada como argumento.

REDIRPAGE

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

54/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

REDIRPAGE
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
REDIRPAGE ( < cUrl > , [ cTarget ] , [ nTime ] ) --> cScript
Parmetros
Argumento

Tipo

Descrio

cUrl

Caracter Link para onde o script deve apontar o redirecionamento

cTarget

Caracter

Destino do redirecionamento. Caso no especificado , o


default _self.

nTime

Numrico

Tempo (em segundos) de delay antes do redirecionamento


ser executado.

Retorno
Tipo

Descrio

Caracter

Script Html / JavaScript que , ao ser executado no Browser (client) ,


chama a pgina/objeto chamado no Link.

Descrio
A funo RedirPage utilizada quando desejamos devolver ao Browser um script que ,
ao ser executado , redirecionar o Browser abertura de um link passado como
parmetro.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

55/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

RETSQLACE
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
RETSQLACE ( < cStrFind > ) --> cStrQuery
Parmetros
Argumento

Tipo

Descrio

cStrFind

cStrFind corresponde sequncia de caracteres a ser


Caracter procurada , podendo conter caracteres maisculos e
minsculos , com ou sem acentuao.

Retorno
Tipo

Descrio

Caracter

cStrQuery corresponde string de busca a ser utilizada na query,


utilizando caracteres em minsculo.

Descrio
A funo RetSqlAce utilizada para auxiliar de montagem de querys de busca de
caracteres acentuados em bases de dados . A funo automaticamente trata a string
original , removendo os acentos , convertendo todos os caracteres para minsculas , e
trocando todas as vogais e cedilhas da string original por uma sequncia de caracteres
acentuados em munscilas para busca posicional .

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

56/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

RETSQLCOND
Reviso: 12/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
RETSQLCOND ( < cAliases > ) --> cSqlWhere
Parmetros
Argumento

Tipo

Descrio

cAliases

Lista contendo um ou mais aliases , separados por vrgula ,


Caracter a serem considerados para a montagem da expresso de
validao.

Retorno
Tipo

Descrio

Caracter

Corresponde expresso SQL para filtrar os dados atravs da clusula


WHERE

Descrio
Utilizamos a funo RetSqlCond() como auxiliar na montagem de querys para busca de
dados em tabelas em conformidade com o padro adotado pelo ERP Microsiga e o
Makira Hypersite , utilizando aliases de 3 caracteres.
A funo retorna , a partir dos aliases passados como parmetro , as expresses de filtro
de dados para considerar a filial atual ( xFilial ) de acordo com o modo do arquivo (
X2_MODO ) , e para sempre desconsiderar registros deletados.
Observaes :

Esta funo foi mantida apenas por compatibilidade, pois a ordem de


comparao de campos na clusula WHERE de uma query deve procurar
seguir a ordem dos campos dos indexadores do banco para efeitos de

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

57/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

performance . Para ganharmos performance nas Querys , devemos ao invs de


utilizar a funo RetSqlCond() , utilizar como primeira clasula WHERE o
retorno da funo RetSqlFil() ( comparao dos campos _FILIAL , os primeiros
do(s) ndice(s) do ERP ) , que retorna apenas as comparaes de Filial , e por
ltimo a funo RetSqlDel, que retorna o script para verificao dos campos
deletados ( que o ltimo campo das chaves de ndice do ERP , utilizando
TopConnect ).

Devemos tambm atentar ao fato que a funo RetSqlCond() retorna os campos


para a comparao utilizando o prefixo da expresso SQL com o Alias reduzido
(3 letras) das tabelas informadas, de modo que estes alias devem ser
especificados na clusula FROM , na abertura da Query, quando utilizamos a
funo RetSqlName para retornar o nome fsico das Tabelas no Banco de Dados.

A funo RqtSqlTab() j retorna os nomes fsicos das tabelas juntamente com os


alias para este fim .

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

58/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

RETSQLDEL
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
RETSQLDEL ( < cAliases > ) --> cSqlWhere
Parmetros
Argumento

Tipo

Descrio

cAliases

Lista contendo um ou mais aliases , separados por vrgula ,


Caracter a serem considerados para a montagem da expresso de
validao.

Retorno
Tipo

Descrio

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

59/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Caracter

Corresponde expresso SQL para filtrar os dados atravs da clusula


WHERE

Descrio
Utilizamos a funo RetSqlDel() como auxiliar na montagem de querys para busca de
dados em tabelas em conformidade com o padro adotado pelo ERP Microsiga,
utilizando aliases de 3 caracteres.
A funo retorna , a partir dos aliases passados como parmetro , as expresses de filtro
de dados para considerar o campo D_E_L_E_T_ da(s) tabela(s) passada(s) como
parmetro.
Observaes :

A ordem de comparao de campos na clusula WHERE de uma query deve


procurar seguir a ordem dos campos dos indexadores do banco para efeitos de
performance . Para ganharmos performance nas Querys , devemos utilizar a
funo RetSqlDEl() na montagem das ultimas consistncias da clusula
WHERE de uma Query.

Devemos tambm atentar ao fato que a funo RetSqlDel() retorna os campos


para a comparao utilizando o prefixo da expresso SQL com o Alias reduzido
(3 letras) das tabelas informadas, de modo que estes alias devem ser
especificados na clusula FROM , na abertura da Query, quando utilizamos a
funo RetSqlName para retornar o nome fsico das Tabelas no Banco de Dados.
A funo RqtSqlTab() j retorna os nomes fsicos das tabelas juntamente com os
alias para este fim .

RETSQLFIL
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
RETSQLFIL ( < cAliases > , [ cCompFil ] ) --> cSQlWhere
Parmetros
Argumento

Tipo

Descrio

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

60/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

cAliases

Lista contendo um ou mais aliases , separados por vrgula ,


Caracter a serem considerados para a montagem da expresso de
validao.

cCompFil

Atravs de cCompFil possvel especificar uma Filial


FIXA a ser comparada com os campos FILIAL do(s)
alias(es) passados no parmetro cAliases. Caso no
Caracter
informado, os campos _FILIAL da(s) tabela(s) passadas
como parmetro em cAliases sero comparados com o
retorno da funo xFilial() de cada alias, respectivamente.

Retorno
Tipo

Descrio

Caracter

Corresponde expresso SQL para filtrar os dados atravs da clusula


WHERE

Descrio
Utilizamos a funo RetSqlFil() como auxiliar na montagem de querys para busca de
dados em tabelas em conformidade com o padro adotado pelo ERP Microsiga,
utilizando aliases de 3 caracteres.
A funo retorna , a partir dos aliases passados como parmetro , as expresses de filtro
de dados para considerar o campo filial atual ( xFilial ) de acordo com o modo de
abertura do arquivo no ERP ( X2_MODO ) .
Observao :
Devemos atentar ao fato que a funo RetSqlFil() retorna os campos para a
comparao utilizando o prefixo da expresso SQL com o Alias reduzido (3
letras) das tabelas informadas, de modo que estes alias devem ser especificados
na clusula FROM , na abertura da Query, quando utilizamos a funo
RetSqlName para retornar o nome fsico das Tabelas no Banco de Dados. A
funo RqtSqlTab() j retorna os nomes fsicos das tabelas juntamente com os
alias para este fim .

RETSQLTAB
Reviso: 10/12/2003
Abrangncia
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

61/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
RETSQLTAB ( < cAliasList > ) --> cStrQuery
Parmetros
Argumento

Tipo

Descrio

cAliasList

Caracter

String contendo um ou mais alias , separados por virgula ,


a terem seus nomes fsicos determinados.

Retorno
Tipo

Descrio

Caracter

String contendo nomes fisicos e alias identificadores dos aliases recebidos


como parmetro.

Descrio
Utilizamos a funo RetSqlTab() como auxiliar na montagem de query's quando
trabalhamos com o padro de Tabelas ERP Microsiga, que utilizam nomenclarura de
alias com 3 Caracteres.
A funo recebe como parmetro um ou mais alias, separados por vrgula, de tabelas
que desejam ser utilizadas na query, e retorna os nomes fisicos das tabelas e seus
respectivos alias para serem inseridos na query.

SEPARA
Reviso: 15/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
SEPARA ( < cString > , < cToken > , < lEmpty > ) --> aTokens
Parmetros
Argumento

Tipo

Descrio

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

62/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

cString

Caracter String com a sequncia de caracteres a ser "parseada"

cToken

Caracter

lEmpty

lEmpty identifica se caso um intervalo vazio entre tokens


Caracter deve ser retornado como um elemento do array. Caso no
especificado , o Default .T.

cToken corresponde string a ser utilizada como separador


para delimitar as informaes.

Retorno
Tipo

Descrio

Caracter

Array de uma dimenso contendo os elementos parseados pela rotina


levando-se em conta o separador passado como parametro.

Descrio
Atravs da funco SEPARA(), pode-se parsear uma string de elementos a partir de um
determinado separador , sendo retornado um Array com os elementos identificados na
String.
Exemplo :
aInfo := Separa('1,2,,4',',',.f.) // Resulta {'1','2','4'}
aInfo := Separa('1,2,,4',',',.t.) // Resulta {'1','2','','4'}

Observao :
Para realizar a anlise de uma string, cujo delimitador tenha apenas 1 byte, e as
ocorrncias de dois separadores juntos sejam ignoradas na gerao do array, a funo
separa() utiliza a funo StrTokArr(), funo escrita em C no Protheus Server, mais
rpida para este processamento. Apenas existe a necessidade de utilizarmos a funo
Separa() caso as ocorrncias de dois separadores juntas devam ser consideradas no array
de resultado e/ou a string utilizada como separador possua mais que 1 byte de tamanho.

UNESCAPE
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
UNESCAPE ( < cString > ) --> cUnEscaped
Parmetros
Argumento

Tipo

Descrio

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

63/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

cString

Caracter

cString a string a ter os caracteres em formato escape


convertidos.

Retorno
Tipo

Descrio

Caracter

cUnescaped corresponde string recebida como parmwetro , com os


caracteres originalmente em notao escape ( %HH ) convertidos para
ASCII

Descrio
Realiza a operao inversa funo Escape() , convertendo os caracteres especiais em
notao %HH em caracteres ASCII.
Observao : Apenas sero convertidos os caracteres originalmente tratados pela
funo Escape()

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

64/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

UPPERACE
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
UPPERACE ( < cString > ) --> cStrUpper
Parmetros
Argumento

Tipo

Descrio

cString

Caracter String a ser convertida. Pode conter tambm acentos .

Retorno
Tipo

Descrio

Caracter

Retorna a string original com todas as letras mauisculas , inclusive as


letras acentuadas.

Descrio
A Funo UPPERACE converte todos os caracteres de uma String para mai\usculo ,
semelhante funo UPPER() , porm considera e converte tambm caracteres
acentuados em OEM e ANSI

UPSTRTRAN
Reviso: 15/12/2003
Abrangncia
Verso 7.10

Verso 8.11

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

LIB WEBEX
65/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Sintaxe
UPSTRTRAN ( < cString > , < cSearch > , [ cReplace ] , [ nStart ] , [ nCount ] ) -->
cNewString
Parmetros
Argumento

Tipo

Descrio

cString

Caracter

cString corresponde sequncia de caracteres ou campo


memo a ser pesquisado.

cSearch

Caracter

Corresponde sequncia de caracteres a ser procurada em


cString

cReplace

cReplace corresponde sequncia de caracteres que deve


substituir a string cSearch. Caso no seja especificado, as
Caracter
ocorrncias de cSearch em cString sero substitudas por
uma string nula ("")

nStart

nStart corresponde o nimero sequencial da primeira


ocorrncia de cSEarch em cString a ser substituda por
Numrico cReplace. Se este argumento for omitodo , o default 1 (
um ) . Caso seja passado um numero menor que 1, a
funo retornar uma string em branco ("")

nCount

nCount corresponde o nmero mximo de trocas que


dever ser realizada pela funo . Caso este argumento
Numrico
no seja especificado , o default substituir todas as
coorncias encontradas.

Retorno
Tipo

Descrio

Caracter

A funo UPSTRTRAN retorna uma nova string, com as ocorrncias


especificadas de cSearch trocadas para cReplace, conforme
parmetrizao.

Descrio
Similar funo Strtran(), porm realiza a busca da ocorrncia da string considerando
letras maisculas e minsculas. A funo Strtran() case-sensitive, e a funo
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

66/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

UpStrtran() no.

VALTOSQL
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
VALTOSQL ( < xExpressao > ) --> cQryExpr
Parmetros
Argumento

Tipo

Descrio

xExpressao

Valor Advpl a ser convertido para utilizao em Query.


(Qualquer) Pode ser dos tipos "C" Caracter , "N" Numrico e "D"
Data.

Retorno
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

67/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Tipo

Descrio

Caracter

Expresso a ser acrescentada na Query.

Descrio
A Funo VALTOSQL() utilizada como auxiliar na montagem de Query's ,
convertendo um contedo varivel Advpl para a string correspondente a ser
acrescentada na Query.
Podemos passar como parmetro uma Expresso do tipo C Caracter , D Data ou
N Numrica.

A expresso Catacter ser colocada entre aspas simples, sendo removidas as


aspas simples contidas na mesma , caso existam .

Uma expresso numrica ser simplesmente convertida para caracter , com


aproximao de 2 casas decimais.
Uma expresso Data ser convertida para formato ANSI ( AAAAMMDD ) ,
entre aspas simples.

VARINFO
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
VARINFO ( < cId > , < xVar > , [ nMargem ] , [ lHtml ] , [ lEcho ] ) --> cVarInfo
Parmetros
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

68/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Argumento

Tipo

Descrio

cId

Caracter

cId corresponde a um nome atribudo varivel para


anlise. Internamente , apenas utilizado para prefixar o
retorno das informaes da VarInfo.

xVar

(Qualquer) Varivel de qualquer tipo a ser examinada

nMargem

Numrico

Corresponde margem esquerda inicial de espaos da


String de retorno , multiplicado por 5. Default = 0

lHtml

Lgico

Identifica se a String de retorno ser montada em formato


Html (.T. / Default ) ou ASCII (.F.)

lEcho

Lgico

Define se o Echo do retorno deve ser enviado ao console


do Protheus Server , caso habilitado. ( Default = .T. )

Retorno
Tipo

Descrio

Caracter

String contendo o "Dump" da anlise da varivel. Caso lHtml seja .T. ,


retorna String em formato HTML . , seno retorna string ASCII com
quebras CRLF.

Descrio
A Funo VARINFO() gera um texto ASCII e/ou Html , com possibilidade de ECHO
para o Console do Protheus Server ( caso habilitado ) , com as informaes sobre o
contedo de uma varivel de memria Advpl , de qualquer tipo .
Cada tipo de varivel possui um tratamento para converso em String :

CodeBlock : exibido apenas o tipo da mesma (B)

Array : Todos os nveis e elementos do mesmo so explorados recursivamente.


Objeto : No caso de um Objeto de XML e/ou Web Services, so exploradas
todas as suas propriedades recursivamente.

(demais tipos) : So convertidos para String atravs da funo AllToChar

Observao : O segundo parmetro ( xVar ) deve ser uma varivel Advpl que deve

existir no escopo de variveis. Caso a varivel no exista, o processamento abortado


com a ocorrncia de erro "Variable does not exist" . Para saber se uma determinada
varivel existe no escopo da execuo da funo atual, deve ser utilizada a funo
Advpl TYPE(), onde passamos a varivel a ter seu tipo determinado como string ( entre
aspas ) .
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

69/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

WEBINFO
Reviso: 12/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
WEBINFO ( ) --> cHtmlInfo
Retorno
Tipo

Descrio

Caracter

cHTMLInfo corresponde string HTML contendo as informaes da


requisio HTTP.

Descrio
A funo WebInfo() foi desenvolvida para ser chamada atravs de uma requisio http ,
via link .apl ou .apw , e ela identifica todos os parmetros recebidos via uma requisio
http: Parmetros via get , post , o header HTTP, os Cookies, o content-type , Legth ,
Content-disposition , SoapRaction (ao SOAP para requisies de WebSErvices ) , e
OtherContent ( caso o contedo postado no seja um text/html )
Esta funo retorna uma pgina Html com todas estas informaes, e utilizada no
desenvolvimento de projetos. quando temos a necessidade prtica de
recuperarmos todas as informales provenientes de uma requisio HTTP.
Adicionalmente , a funo WebInfo
Por exemplo, com o Protheus configurado para atender requisies de links .apl via
HTTP , chame a funo WebInfo.apl atravs do link :
http://localhost/webinfo.apl?param1=teste&param2=outroteste
Ser exibido no Web Browser uma tela semelhante tela abaixo :
__aCookies -> ARRAY ( 0) [...]
__aPostParms -> ARRAY ( 0) [...]
__nProcId -> N ( 10) [1169539314]
__aProcParms -> ARRAY (
__httpPage -> C ( 0) []

0) [...]

__HttpHeader -> ARRAY ( 8) [...]


__HttpHeader[1] -> C ( 25) [GET /webinfo.apl HTTP/1.1]

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

70/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

__HttpHeader[2] -> C ( 172) [Accept: image/gif, image/x-xbitmap, image/jpeg,


image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel,
application/vnd.ms-powerpoint, application/msword, */*]
__HttpHeader[3] -> C ( 22) [Accept-Language: pt-br]
__HttpHeader[4] -> C ( 30) [Accept-Encoding: gzip, deflate]
__HttpHeader[5] -> C ( 61) [If-Modified-Since: Wed, 10 Dec 2003 12:24:29 GMT;
length=1003]
__HttpHeader[6] -> C ( 81) [User-Agent: Mozilla/4.0 (compatible; MSIE 6.0;
Windows NT 5.1; .NET CLR 1.0.3705)]
__HttpHeader[7] -> C ( 13) [Host: automan]
__HttpHeader[8] -> C ( 22) [Connection: Keep-Alive]
HttpRCtType() -> C ( 0) []
HttpRCtLen() -> N ( 10) [

-1]

HttpRCtDisp() -> C ( 0) []
SoapRAction() -> C ( 0) []
HttpOtherContent() -> C ( 0) []
Caso a mesma requisio seja realizada atravs de link .apw , utilizando-se a tecnologia
WEBEX , dever ser exibida uma tela semelhante tela abaixo :
aHeaders -> ARRAY ( 9) [...]
aHeaders[1] -> C ( 25) [GET /webinfo.apw HTTP/1.1]
aHeaders[2] -> C ( 172) [Accept: image/gif, image/x-xbitmap, image/jpeg,
image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel,
application/vnd.ms-powerpoint, application/msword, */*]
aHeaders[3] -> C ( 22) [Accept-Language: pt-br]
aHeaders[4] -> C ( 30) [Accept-Encoding: gzip, deflate]
aHeaders[5] -> C ( 61) [If-Modified-Since: Tue, 09 Dec 2003 21:23:03
GMT; length=1480]
aHeaders[6] -> C ( 81) [User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows
NT 5.1; .NET CLR 1.0.3705)]
aHeaders[7] -> C ( 21) [Host: apwebex.automan]
aHeaders[8] -> C ( 22) [Connection: Keep-Alive]
aHeaders[9] -> C ( 41) [Cookie: SESSIONID=1071153371; AP5PROCID=0]
httpCookies -> ARRAY ( 2) [...]
httpCookies[1] -> C ( 9) [SESSIONID]
httpCookies[2] -> C ( 9) [AP5PROCID]
SESSIONID -> C ( 10) [1071153371]
AP5PROCID -> C ( 1) [0]
httpPost -> ARRAY ( 0) [...]
httpGet -> ARRAY ( 0) [...]
HttpRCtType() -> C ( 0) []
HttpRCtLen() -> N ( 10) [

-1]

HttpRCtDisp() -> C ( 0) []
SoapRAction() -> C ( 0) []
HttpOtherContent() -> C ( 0) []

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

71/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

72/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0000] INVALID PROC


RETURN TYPE [X] ...
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0000] INVALID PROC RETURN TYPE [X] from [Y]


Descrio / Causa : Na Infra-Estrutura ApWebEx, de acordo com o mdulo WEB em
uso, chamada durante a inicializao da Working Thread no ambiernte WEBEX uma
funo especfica [Y] para inicializao adicional de ambiente, e a lib exige um retorno
do tipo Booleano ( .T. ou .F. ) , indicando se a inicializao adicional foi executada com
sucesso ou no. Caso este ponto de entrada retorne um valor cujo tipo no seja
booleano, esta mensagem de erro apresentada no console do Server e acrescentada o
arquivo ERROR.LOG
Soluo : Verifique o fonte do ponto de entrada e assegure-se que o mesmo est
retornando um valor Advpl do tipo 'L' Lgico.

[APWEXERR_0001] INVALID APWEX


CALL
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0001] INVALID APWEX CALL


chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

73/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Descrio / causa : Ao solicitarmos ao servidor Protheus o processamento de uma


funo Advpl atravs de um link .apw, utilizando a infra-estrutura ApWebex, existem
funes especficas da linguagem que no podem ser executadas diretamente neste tipo
de ambiente, por tratarem-se de funes exclusivas para processamentos iniciados
atravs de um Remote, e funes que no permitem chamada direta via link. Caso
alguma destas funes seja chamada diretamente via URL, esta ocorrncia de erro
reproduzida.

[APWEXERR_0003] INVALID PROC


RETURN TYPE [X] ...
Reviso: 13/04/2004
Abrangncia

Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0003] INVALID PROC RETURN TYPE [X] from [Y]


Descrio / causa : Quando uma working thread do ambiente ApWebEx, recebe uma
solicitao de processamento atravs de um link .apw, de acordo com o mdulo web
utilizado, pode ser chamada uma funo intermediria [Y], antes do processamento da
funo chamada no link ou depois do processamento concludo.
A lib exige que estas funes internedirias retornem um contedo Advpl do tipo
"STRING". Caso a funo [Y] chamada pela lib retorne um contedo Advpl diferente
de "STRING", o tipo de varivel retornado mostrado em [X] e a Working Thread
finalizada com esta ocorrncia de erro.
Soluo : Verifque o cdigo-fonte da funo [Y], para certificar-se que seu retorno
sempre ser um contedo Advpl do tipo "STRING"

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

74/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0004] INVALID PROC


RETURN TYPE [X] ...
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0004] INVALID PROC RETURN TYPE [X] FUNCTION [YYY]


Descrio / causa : Quando solicitado o servidor Protheus o processamento de uma
funo atravs de um link .apw, a funo executada sempre dever retornar um
contedo Advpl do tipo "STRING". Caso o contedo retornado pelo processamento da
funo [YYY] retorne um tipo [X], diferente de "STRING", a working thread
finalizada com esta ocorrncia de erro, onde [YYY] indica a funo chamada atravs do
link .apw e [X] indica o tipo de contedo invlido retornado
Soluo : Verifique o fonte da funo [YYY] e certifique-se que a funo sempre
retorne um contedo do tipo "STRING"
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

75/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0005] Function XXX


requires APWEBEX ...
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0005] Function XXX requires APWEBEX Routines.


chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

76/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Descrio / causa : Ao desenvolvermos uma aplicao para utilziar a infra-estrutura


ApWebEx, utilizando o #include 'apwebex.ch' e os comandos WEB EXTENDED INIT
... END, devemos nos assegurar de estarmos executando esta funo em um ambiente
de working threads, configurados com o tipo WEBEX, utilizando as funes da infraestrutura ApWebEx ( StartWebex , ConnectWebEx ... ) para inicializao e
processamento da requisio via link .apw .
Se uma funo [XXX], escrita para ser chamada exclusivamente neste tipo de ambinete,
seja chamada diretamente via Protheus Remote, ou outro tipo de processamento que no
seja uma working thread inicializada pelas funes de infra-estrutura ApWebEx, a
funo abortada com esta ocorrncia de erro. Isto tambm consistem em uma
proteo, para que uma funo projetada para ser executada em um tipo de ambiente (
working threads ApWebEx ) no seja erroneamente executada em outro ambiente.
Soluo : Verifique se a funo chamada realmente est sendo executada no ambiente
apropriado.

[APWEXERR_0006] START Function


XXX Invalid Ret ...
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

77/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0006] START Function XXX Invalid Return Type [Y]


Descrio / causa : Quando utilizado o comando WEB EXTENDED INIT,
especificando uma funo [XXX] de pr-validao de execuo, atravs da clusula
START, a funo especificada dever retornar um contedo do tipo "STRING". Caso a
funo [XXX] retorne um contedo no vazio, de tipo [Y], diferente de "STRING", o
processamento da working thread abortado com esta ocorrncia de erro.
Soluo : Verifique o fonte da funo [XXX] e assegure-se que a execuo desta
retorne um contedo do tipo "STRING"

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

78/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0007] APH page [XXX]


not found in .RPO
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0007] APH page [XXX] not found in .RPO


Descrio / causa : Ao utilizarmos a funo ExecInPage(), no desenvolvimento de
aplicaes utilizando as funes de infra-estrutura ApWebex, a mesma possui
tratamento automtico para buscar primeiramente por uma pgina AHU compilada no
repositrio de objetos do ambiente. Caso no seja encontrado uma pgina .ahu, a funo
procura por uma pgina .aph. Se nenhuma pgina com o nome especificado no for
encontrada, o processamento abortado com esta ocorrncia de erro.
Soluo : Verifique se a funo que originou a chamada da ExecInPage() passou o
nome do APH / AHU de forma correta, e se a pgina chamada est realmente presente
e/ou foi compilada no repositrio do projeto em questo.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

79/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0008] OPEN QUERY


ERROR : NO CONNECTION
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0008] OPEN QUERY ERROR : NO CONNECTION


Descrio / causa : Ao utilizarmos o comando OPEN QUERY, caso no exista uma
conexo ativa com o TOPConnect, o processamento em execuo abortado com esta
ocorrncia de erro.
Soluo : Certifique-se de que a chamada deste comando est sendo realizada atravs
de uma working thread que possua uma conexo ativa com o TOPConnect.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

80/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0009] RetSqlCond failed


to read X2_MODO
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0009] Failed to read X2_MODO Alias [XXX]


Descrio / causa : Quando utilizada a funo RetSqlFil() como auxiliar na
montagem de querys, a mesma tenta determinar se o(s) alia(s) utilizado(s) na
Query esto configurados no ambiente ERP atual no SX2 em modo 'C' Compartilhado
ou 'E' Exclusivo. Caso o alias [XXX] no seja encontrado na tabela SX2, ou a tabela
SX2 no esteja aberta no momento da execuo desta, no possvel identificar o modo
de acesso do alias especificado, e a execuo encerrada com esta ocorrncia de erro.
Soluo : Verifique se a funo RetSqlFil() e/ou RetSqlCond() est recebendo o(s)
alia(s) corretos, todos em letras maisculas; caso especificados mais de um alias, todos
estejam separados por vrgulas, e que a tabela SX2 do ERP esteja aberta para a correta
identificao dos tratamentos de FILIAL para a montagem da condio para Query.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

81/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0010] ERP FINAL


ROUTINE CALLED
Reviso: 13/04/2004
[APWEXERR_0010] ERP FINAL ROUTINE CALLED
Descrio / causa : Quando executamos uma funo em uma working thread
inicializada com as funes de infra-estrutura ApWebEx, a funo final(), utilizada
internamente pelas funes de infra-estrutura do ERP Microsiga, possui neste ambiente
um tratamento diferenciado. Caso ela seja executada , a working thread finalizada
com esta ocorrncia de erro.
Soluo : A funo final() no deve ser utilizada como um recurso de finalizao de
aplicao WEB, porm ela utilizada internamente por funes da infra-estrutura ERP,
no caso de uma ocorrncia fatal que impea um determinado processamento, e ganhou
esta proteo na Lib ApWebEx para permitir o desenvolvimento de aplicaes
integradas WEB / ERP.
Caso reproduzida uma ocorrncia de erro desta natureza, verifique nos detalhes do erro
qual funo que estava em execuo e qual o motivo da finalizao da working thread.
Este motivo est especificado no campo "Erp Message", mostrado nos detalhes da
ocorrncia de erro.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

82/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0011] Argument #0 Error


: Parameter ...
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0011] Argument #0 Error : Parameter required.


Descrio / causa : Quando utilizada a funo ApWExAddErr(cTitle,cInfo), para
informar rotina de tratamento de erro da infra-estrutura ApWebEx, uma informao
adicional a ser acrescentada no LOG de erro, os parmetros cTitle e cInfo,quando
especificados, devem ser ser ambos preenchidos, e devem ser do tipo "STRING"
Soluo : Esta ocorrncia de erro informa que o parmetro cTitle no foi especificado
ou est vazio, porm o parmetro cInfo foi especificado. Verifique o cdigo-fonte e
corriga a chamada da funo.
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

83/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0012] Argument #0 Error


: Expected C->X
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

LIB WEBEX

84/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0012] Argument #0 Error : Expected C->X


Descrio / causa : Quando utilizada a funo ApWExAddErr(cTitle,cInfo), para
informar rotina de tratamento de erro da infra-estrutura ApWebEx, uma informao
adicional a ser acrescentada no LOG de erro, os parmetros cTitle e cInfo,quando
especificados, devem ser ser ambos preenchidos, e devem ser do tipo "STRING"
Soluo : Esta ocorrncia de erro informa que o parmetro cTitle foi especificado com
um tipo [X], que no "STRING". Verifique o cdigo-fonte e corrija o parmetro
passado para a funo.

[APWEXERR_0013] Argument #1 Error


: Parameter ...
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

85/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0013] Argument #1 Error : Parameter required.


Descrio / causa : Quando utilizada a funo ApWExAddErr(cTitle,cInfo), para
informar rotina de tratamento de erro da infra-estrutura ApWebEx, uma informao
adicional a ser acrescentada no LOG de erro, os parmetros cTitle e cInfo,quando
especificados, devem ser ser ambos preenchidos, e devem ser do tipo "STRING"
Soluo : Esta ocorrncia de erro informa que o parmetro cInfo no foi especificado
ou est vazio, porm o parmetro cTitle foi informado. Verifique o cdigo-fonte e
corrija a chamada desta funo.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

86/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0014] Argument #1 Error


: Expected C->X
Reviso: 13/04/2004
[APWEXERR_0014] Argument #1 Error : Expected C->X
Descrio / causa : Quando utilizada a funo ApWExAddErr(cTitle,cInfo), para
informar rotina de tratamento de erro da infra-estrutura ApWebEx, uma informao
adicional a ser acrescentada no LOG de erro, os parmetros cTitle e cInfo,quando
especificados, devem ser ser ambos preenchidos, e devem ser do tipo "STRING"
Soluo : Esta ocorrncia de erro informa que o parmetro cInfo foi especificado com
um tipo de dado [X] que no "STRING". Verifique o cdigo-fonte e corrija a chamada
desta funo.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

87/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0020] INVALID JOB


[XXX] TYPE [YYY]
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0020] INVALID JOB [XXX] TYPE [YYY]


Descrio / causa : Esta ocorrncia de erro indica que as configuraes do Job [XXX],
de working threads para utilizao no ambiente ApWebEx, est identificado com um
TYPE [XXX] invlido.
Durante a inicializao de uma working thread, verificado o tipo do Job configurado
no arquivo de configurao. Apenas so vlidos os valores WEB e/ou WEBEX, de
acordo com o mdulo web em uso. Caso a configurao especifique um TYPE diferente
de WEB ou WEBEX, a configurao no vlida, e a working thread abortada antes
de estar disponvel para atender requisies de links .apw, gerando uma ocorrncia de
erro no console do servidor Protheus, tambm gravada no arquivo ERROR.LOG
Soluo : Para solucionar esta ocorrncia, basta verificar a configurao do Job [XXX]
utilizado para inicializar as working threads e especificar um tipo adequado ( WEB ou
WEBEX ), de acordo com o mdulo em uso.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

88/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0021] UNABLE TO GET


JOB NAME
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

[APWEXERR_0021] UNABLE TO GET JOB NAME


Descrio / causa : Esta ocorrncia de erro indica que o processo atual em execuo
no foi originado pela configurao de um processo WEB ou WEBEX , ou a funo de
inicializao de ambiente STARTWEBEX no foi chamada atravs de um evento
ONSTART de JOB, como por exemplo um AP Remote.
Soluo : Caso esta ocorrncia seja reproduzida, cerifique-se que a funo de
inicializao das working threads ( STARTWEBEX ) esteja sendo chamada atravs de
um processo configurado com TYPE=WEB ou WEBEX, de acordo com o mdulo web
em uso.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

89/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0022] <T> Function [X]


of Module [Y] ...
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0022] <Start / Connect> Function [X] of Module [Y] not found in


Rpo.
Descrio / causa : Esta ocorrncia de erro reproduzida quando, ao configurar um
mdulo web [Y], a funo [X] de inicializao ou conexo referente ao mdulo no foi
encontrada no repositrio de objetos do ambiente em uso pela aplicao web.
Soluo : Certifique-se que o repositrio em uso atualmente possui as funes
pertinentes o modulo configurado.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

90/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0023] UNSUPPORTED
BREAK CONTROL
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0023] UNSUPPORTED BREAK CONTROL


Descrio / causa : Ao utilizar as funes de Infra-Estrutura APWEBEX, quando da
chamada de uma funo atrav de Link .apw , desde a chamada original at a passagem
pelos pontos de pr e ps-validao de processamento, a rotina de tratamento de erro
habilitada de controle interno e exclusivo da Infra-Estrutura ApWebEx.
Caso o comando BREAK seja chamado em algum destes pontos, a execuo abortada
, e na rotina de tratamento de execuo, no h o registro de controle de erro, de modo
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

91/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

que a working thread abortada com esta ocorrncia de erro.


Soluo : Certifique-se que no cdiugo fonte da aplicao no seja utilizado o comando
BREAK.
OBSERVAO : Como esta ocorrncia tratada em um ponto de retorno
interno, o ponto de entrada WEBEXERROR no executado, sendo retornada ao
usurio a mensagem padro de Erro.

[APWEXERR_0024] <T> Function [X]


of Module [Y] ...
Reviso: 13/04/2004
Abrangncia
Verso 8.11
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

LIB WEBEX
92/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0024] <Start / Connect / Finish > Function [X] of Module [Y] not
found in Rpo.
Descrio / causa : Esta ocorrncia de erro reproduzida quando, ao configurar um
mdulo web [Y], a funo [X] de inicializao, conexo ou finalizao, referente ao
mdulo, no foi encontrada no repositrio de objetos do ambiente em uso pela aplicao
web.
Soluo : Certifique-se que o repositrio em uso atualmente possui as funes
pertinentes o modulo configurado.

[APWEXERR_0025] Unknow
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

93/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

SIGAWEB Module [Y]


Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

[APWEXERR_0025] Unknow SIGAWEB Module [Y]


Descrio / causa : Quando da configurao de um mdulo web para os tratamentos
internos das funes de infra-estrutura ApWebEx, devemos especificar uma sigla de um
mdulo Web vlido e tratado pela lib de infra-esturtura. Os mdulos atualmente
implementados na lib so :

DW - Data WareHouse

BSC - Balanced ScoreCard


MAK - Modulo WEBEX Makira

GE - Gesto Educacional

GPR - Gesto de Pesquisa e Resultado


TCF - Terminal do Funcionario ( RH ONLINE )

PP - Portal PRotheus ( WebServices )

SAV - Sala de Aprendizagem Virtual


GAC - Gesto de Acervos

WPS - WebPrint & WebSpool

Caso no seja fornecida uma sigla vlida na chave SIGAWEB, na seo de


configurao das working threads, as mesmas no entraro no ar, e sero abortadas com
esta ocorrncia de erro.
Soluo : Verifique a chave de configurao SIGAWEB e preencha-a com uma sigla de
mdulo vlida para a verso de repositrio / ambiente em uso.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

94/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0026] Web Services Test


POST ERROR.
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

[APWEXERR_0026] Web Services Test POST ERROR..


Descrio / causa : Quando utilizamos a interface de testes de web services client da
ferramenta WebAdmin, caso ocorra uma falha estrutural no servio Client ou uma
impossibilidade de recuperar todos os dados postados no fomulrio de testes, o
processamento interrompido com esta ocorrncia de erro.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

95/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0027] INVALID NTOC


BASE [NNN]
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0027] INVALID NTOC BASE [NNN]


Descrio / causa : Ao utilizar a funo ntoc(), deve-se atentar ao limite de base
numrica para converso, que pode ser um nmero entre 2 e 36. Caso a base passada
como parmetro para a funo ntoc() esteja fora destes limites, o processamento
abortado com a ocorrncia acima , informando em NNN a base utilizada.
Soluo : Verifique a chamada da funo ntoc() no fonte e certifique-se que est sendo
informado um nmero entre 2 e 36.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

96/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0028] MODULE [Y]


REQUIRES JOB TYPE=WEBEX
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0028] MODULE [Y] REQUIRES JOB TYPE=WEBEX


Descrio / causa : Esta ocorrncia de erro informa que a configurao de working
threads utilizada para este mdulo web no possui o tipo adequado configurado. O
Mdulo [Y] utilizado requer um job para working threads configurado com
TYPE=WEBEX, porm esta configurao est atualmente configurada como WEB.
Soluo : Verifique a configurao das working threads deste mdulo web e certifiquese que a configurao TYPE est setada para WEBEX.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

97/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0029] MODULE [Y]


REQUIRES JOB TYPE=WEB
Reviso: 13/04/2004
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

[APWEXERR_0029] MODULE [Y] REQUIRES JOB TYPE=WEB


Descrio / causa : Esta ocorrncia de erro informa que a configurao de working
threads utilizada para este mdulo web no possui o tipo adequado configurado. O
Mdulo [Y] utilizado requer um job para working threads configurado com
TYPE=WEB, porm esta configurao est atualmente configurada como WEBEX.
Soluo : Verifique a configurao das working threads deste mdulo web e certifiquese que a configurao TYPE est setada para WEB.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

98/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0030] NO WEB
LICENCES AVAILABLE (...
Reviso: 13/04/2004
Abrangncia
Verso 8.11

LIB WEBEX

[APWEXERR_0030] NO WEB LICENCES AVAILABLE


Descrio / causa : Esta ocorrncia de erro, indica que no h mais licenas Protheus i
disponveis para a utilizao da aplicao Web. Adicionalmente esta ocorrncia,
informado adicionalmente a informao "WEB LICENSE STATUS [NNNN]", onde
nnnn indica o cdigo de erro do HardLock utilizado para controle de licenas.
Soluo : Verifique na lista completa de status de retorno do HarkLock , disponvel em
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

99/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

(pendente), para certificar-se da origem desta ocorrncia e ento tomar uma ao


corretiva.

[APWEXERR_0031] WARNING : WEB


LICENSES WILL EXP...
Reviso: 13/04/2004
Abrangncia
Verso 8.11
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

LIB WEBEX
100/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

[APWEXERR_0031] WARNING : WEB LICENSES WILL EXPIRES


Web Licenses will expires in NN day(s)
Descrio / causa : Esta ocorrncia consiste em uma advertncia, registrada no arquivo
error.log do ambiente em uso pela aplicao Web, registrada uma vez ao dia, a partir
do instante que faltam apenas 10 dias ou menos para que as licenas web ( Protheus i )
da aplicao expirem. O nmero de dias que restam para as licenas vencerem
especificado adicionalmente em [NN].
Soluo : Providencie a atualizao das licenas Protheus i da aplicao web junto
Microsiga.

Pontos de Entrada - APWEBEX


chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

101/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Reviso: 30/04/2004
Abrangncia
Verso 8.11
Quando da utilizao da infra-estrutura APWEBEX, especificamente o mdulo 'MAK' (
Makira ), so disponibilizados os pontos de entrada relacionados neste tpico, para
permitir customizar e interceptar os eventos de Inicializao da Thread ( U_StartWebEx
), atendimento a requisies de links .apw antes de processar a funo principal (
U_ConnectWebEx ), atendimento a requisies de links .apw aps processada a funo
principal ( U_ResetWebEx ), finalizao da Thread ( U_FinishWebEx ), finalizao de
session de usurio por Time-out ( U_EndSession ), e customizao da mensagem de
erro HTML, quando da ocorrncia de algum erro fatal na aplicao (
U_WEBEXERROR ).
Quando utilizada a infra-estrutura APWEBEX para um mdulo do padro, estes pontos
de entrada no tem efeito. Fica a critrio de cada mdulo a disponibilizao de pontos
de entrada para interceptar estes eventos. Para saber quais pontos foram implementados
para um mdulo web do padro, deve ser consultada a documentao do mdulo
correspondente.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

102/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

01. STARTWEBEX
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
01. STARTWEBEX ( [ NIL ] ) --> lSucess
Parmetros
Argumento

Tipo

Descrio

NIL

(NULO) Este ponto de entrada no recebe parmetros.

Retorno
Tipo

Descrio

Lgico

lSucess corresponde o status de montagem de ambiente. Caso o ambiente


tenha sido montado com sucesso , o ponto de entrada deve retornar .T. ,
caso contrrio .F. . Uma vez retornado .F. , o Protheus ir eliminar esta
Working Thread da memria.

Descrio
Este ponto de entrada executado na inicializao de cada Working Thread,
quando utilizada a configurao para a Lib APWEBEX.
Atravs dele, devemos iniciar o ambiente necessrio o atendimento das requisies de
processamento via Browser , atravsde links .apw, tais como a abertura de dicionrios e
conexo com o Banco de Dados.
Grupos Relacionados
Principal / A Tecnologia Protheus / Programao Advpl para WEB / Infra-Estrutura
APWEBEX / Pontos de Entrada

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

103/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

02. CONNECTWEBEX
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
02. CONNECTWEBEX ( < cFnLink > ) --> cHtmlVld
Parmetros
Argumento

Tipo

Descrio

cFnLink

Funo chamada atravs do Link . Por exemplo , um link


Caracter no browse chamando http://localhost/w_teste.apw?Opc=03
, seria recebido neste parmetro a string "W_TESTE"

Retorno
Tipo

Descrio

Caracter

Caso retornada uma string em branco , a execuo da funo originalmente


chamada no link .apw prossegue normalmente. Caso contrrio , a string
retornada devolvida ao Browser solicitante , e a funo chamada atravs
do link no executada.

Descrio
Este ponto de entrada executado imediatamente antes do processamento de uma
requisio realizada atravs de um browser para processamento de uma funo Advpl ,
atravs de um link .apw , permitindo realizar uma pr-validao antes de cada
processamento solicitado atravs do Browser.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

104/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

03. RESETWEBEX
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
03. RESETWEBEX ( < cFnLick > ) --> cHtmlAdd
Parmetros
Argumento

Tipo

Descrio

cFnLick

cFnLink corresponde funo Advpl que foi chamada e


Caracter processada imediatamente antes da chamada deste ponto de
entrada.

Retorno
Tipo

Descrio

Caracter

Este ponto de entrada DEVE retornar uma string , podendo ser inclusive
uma string vazia. A String retornada ser acrescentada ao Codigo Html a
ser retornado ao Browser

Descrio
Este ponto de entrada executado imediatamente aps o processamento de uma
requisio de processamento Advpl atravs de um Web Browser utilizando as
configuraes e Lib APWEBEX.
Ele permite que seja executado um processamento adicional aps o processamento de
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

105/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

cada requisio .apw , e aida permite um retorno de html adicional ao browser.


Vale a pena lembrar que este ponto no ser executado em caso de erro fatal no ponto
de entrada U_CONNECTWEBEX ou na execuo da funo principal chamada atravs
do Link.

04. FINISHWEBEX
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
04. FINISHWEBEX ( ) --> NIL
Parmetros
Argumento

Tipo Descrio

Retorno
Tipo

Descrio

(NULO)

O Retorno deste ponto de entrada no utilizado.

Descrio
Este ponto de entrada executado quando da finalizao ( Fechamento ) de uma
Working Thread APWEBEX. No recebe parmetros , e no requer retorno. Ele permite
que seja executado um procedimento qualquer no momento da sada de uma Working
chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

106/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

Thread, seja por time-out ou por tempo total de permanncia no ar.

05. ENDSESSION
Reviso: 10/12/2003
Abrangncia
Verso 7.10

Verso 8.11

LIB WEBEX

Sintaxe
05. ENDSESSION ( < cSessionId > ) --> NIL
Parmetros
Argumento

Tipo

Descrio
cSessionId corresponde string identificadora das sessions

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

107/108

12/9/2014

advpl_-_webservices__-_estrutura_apwebex.doc

cSessionId

Caracter deste usurio.

chrome-extension://gbkeegbaiigmenfmjfclcdgdpimamgkj/views/app.html

108/108

You might also like