Escolar Documentos
Profissional Documentos
Cultura Documentos
ADVPL/ASP e Webservice
Captulo 2 Variveis......................................................................................7
Introduo .........................................................................................................7
Nomenclatura das Variveis .............................................................................7
Declarando Variveis ........................................................................................7
Operadores .......................................................................................................8
Introduo
Uma pgina ASP (Active Server Pages) uma pgina HTML contendo
cdigo interpretveis em uma linguagem compreensvel ao servidor HTTP
em uso. Por exemplo, o IIS (Internet Information Server) da Microsoft
recepciona scripts em VBScript ou o JavaScript para criar suas pginas
ASP, do mesmo modo que o AP7 Web Server recepciona a ADVPL ASP.
Uma pgina ASP uma combinao de script HTML e cdigo
interpretvel. No ADVPL ASP esse cdigo padro xBase, portanto a
preocupao maior daqueles que j conhecem e trabalham com o AP7 e
desejam desenvolver pginas ativas para aplicaes Web utilizando essa
facilidade conhecer HTML.
Repositrio de Objetos
Repositrio
APOs
.aph
Solicitao func.APW
Cliente
APOs
AP7
Resposta HTML Web Server
(repositrio)
.APH uma chamada Uma pgina Advpl ASP uma pgina http://servidor/activep.ap
para uma pgina HTML mesclada com cdigo executvel w
ativa (uma ou interpretvel no server. Tais pginas ou
pgina em so criadas utilizando qualquer editor de http://servidor/cadastro.a
ADVPL ASP). texto ou editor HTML, e devem ter pw
SEMPRE a extenso .APH. Devem ser
compiladas atravs do AP7 IDE. Durante
a compilao, o AP7 Server transforma
essa pgina em uma funo interna que
ser executada da mesma maneira que
aquelas chamadas .apw explicadas
anteriormente.
Como so funes tambm, as pginas
em Advpl ASP devem ser chamadas do
Web Browser com a extenso .apw
Ferramentas de Produo
Utilizaremos o AP7 IDE para escrever nossos cdigos ADVPL ASP com
HTML, porem utilizaremos tambm uma ferramenta que nos auxilie no
HTML. Existem vrias no mercado, mas as mais familiares so
Dreamweaver da Macromedia, FrontPage e o Visual Studio da Microsoft
entre outros .
Captulo 2 - Variveis
dXXXX = varivel Date (data). Quando voc se deparar com uma varivel
que possui o prefixo d significa que o contedo dela uma data. Ex.:
dDTPG = 14/08/2000
Declarando variveis
Operadores
Exemplo
Programa: U_RetDate.apw
Nomenclatura do nome :U_nnnnnnn.apw
U_ : Informa que que uma User Function (Funo de Usurio). W_
(Web Function) e (Function) so exclusiva para o desenvolvimento interno
da Microsiga Software S\A. Portanto clientes no conseguiram compilar
Web Function e Function, somente User Function.
nnnnnnn: nome da Funo
.apw: extenso de uma pgina ADVPL ASP
IF <condio>
<Instruo>
Elseif
<Instruo>
Else
<Instruo>
Endif
4. Agora, nos vamos escrever o cdigo do arquivo APH (ou AHU) , portanto,
salve este novo arquivo como ex001.aph (ou ex001.ahu). Neste
momento estaremos solicitando ao servidor a hora atual se a hora atual
for menor que 12 ento enviaremos a seguinte mensagem ao usurio
Bom dia !!! se a hora for maior que 12 ento ser enviado a seguinte
mensagem ao usurio Boa tarde !!!. Note que, sempre que houver a
necessidade de enviar uma informao ao browser processada a partir de
um arquivo .apw, essa informao deve estar contida dentro de um
arquivo APH (ou AHU).
1 <html>
2 <body>
Na linha 12 colocamos o comando Else que faz parte da condio IF. Que
executado se a condio inicial no for verdadeira.
Instruo Do case
Do Case
Case <primeira condio >
<instrucoes>
Loops
While <condio>
<Instruo>
Enddo
HttpPost-><NOME DA VARIVEL>
HttpGet-><NOME DA VARIVEL>
HttpSession-><NOME DA SESSO>
<html>
<body bgcolor="#FFFFFF">
<form method="post" action="http://localhost/u_ex002.apw">
<p>Nome: <input type="text" name="field_nome"> <br>
Idade: <input type="text" name="field_idade"> <br>
<input type="submit" name="Submit" value="Enviar">
Agora vamos escrever o cdigo em ADVPL ASP para nosso arquivo APW
1 User Function ex002()
2
3 Local cHTML:=""
4 Private cNome, cIdade
5
6 cNome := HttpSession->field_nome
7 cIdade := HttpSession->field_idade
8
9 WEB EXTENDED INIT cHtml
10
11 cHTML:= H_teste001()
12
13 WEB EXTENDED END
14
15 Return cHTML
1 <html>
2 <body bgcolor="#FFFFFF">
nome: <%=cNome %> <P>
4 idade: <%=cIdade %>
5 </body>
6 </html>
<html>
<head>
<title>Metodo GET</title>
</head>
<body bgcolor="#FFFFFF">
<form method="get" action="http://nistal:1200/u_ex003.apw">
<html>
<body bgcolor="#FFFFFF">
<table width="75%">
<tr>
<td colspan="2">
Introduo
Arquivo ex004.aph
<html>
<body bgcolor="#FFFFFF">
<table width="75%" border="0" cellpadding="0" cellspacing="1" bgcolor="#EEEEEE">
<tr bgcolor="#003366">
<td colspan="3">
<div align="center"><font color="#FFFFFF"><b><font face="Verdana, Arial,
Helvetica, sans-serif" size="2">CONSULTA
BASE DE DADOS</font></b></font></div>
</td>
</tr>
<tr bgcolor="#003399">
<td>
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"
color="#FFFFFF">Código</font></b></div>
</td>
<td>
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"
color="#FFFFFF">Descrição</font></b></div>
</td>
<td>
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"
color="#FFFFFF">Quantidade em Estoque
</table>
</body>
</html>
<html>
<head>
<title>Inserindo Registros</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<form method="POST" action="http://localhost/w_ex005.apw">
<table width="22%" align="center">
<tr bgcolor="#006699">
<td colspan="2">
<div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-
serif"><b><font color="#FFFFFF">Inserindo
Registros</font></b></font></div>
</td>
</tr>
<tr bgcolor="#EEEEEE">
<td width="17%"><font face="Verdana, Arial, Helvetica, sans-serif"
size="2">Cod:</font></td>
<td width="83%">
<input type="text" name="field_cod">
</td>
</tr>
<tr bgcolor="#EEEEEE">
<td width="17%"><font face="Verdana, Arial, Helvetica, sans-serif"
size="2">Descricao:</font></td>
<td width="83%">
<input type="text" name="field_descr">
</td>
</tr>
<tr bgcolor="#EEEEEE">
<td width="17%"><font face="Verdana, Arial, Helvetica, sans-serif"
size="2">Qtde. Estoque:</font></td>
<td width="83%">
<input type="text" name="field_qtdest">
</td>
Agora vamos escrever o cdigo do arquivo .apw, nele que iremos escrever
os comandos para recuperar os dados enviados pelo formulrio e em
seguida grava-los na base de dados.
Endif
23
24 Web Extended End
25
27 Return cHTML
Introduo
Embora existam Web Services que podem ser acessados via Http direto
, apenas passando parmetros via URL , o Client de Web Services do Advanced
Protheus tm seu foco e recursos direcionados apenas servios que possuam
interface de comunicao que realize POST de pacotes de dados XML em
formato SOAP.
Termos Tcnicos
#INCLUDE "PROTHEUS.CH"
#INCLUDE "APWEBSRV.CH"
/* -------------------------------------------------------------------------------
WSDL Service WSSERVERTIME
------------------------------------------------------------------------------- */
ENDWSCLIENT
/* -------------------------------------------------------------------------------
WSDL Method GETSERVERTIME of Service WSSERVERTIME
------------------------------------------------------------------------------- */
BEGIN WSMETHOD
END WSMETHOD
oXmlRet := NIL
Return .T.
Passo 3 : Criar um fonte que utilize esta classe para a obteno do horrio.
1 #INCLUDE "PROTHEUS.CH"
2
3 User Function TestClient()
4 Local oSvc := NIL
5
6 oSvc := WSSERVERTIME():New()
7
8 If oSvc:GETSERVERTIME()
9 alert("Horrio no Servidor : "+ oSvc:cGETSERVERTIMERESULT)
10 Else
11 alert("Erro de Execuo : "+GetWSCError())
12 Endif
13
14 Return
xmlns="http://automan:8000/webservice/"><GETSERVERTIMERESULT>
10:37:10</GETSERVE
RTIMERESULT></GETSERVERTIMERESPONSE></soap:Body></soap:En
velope>
-------------------------------------------------------------------------------
Fim Thread (siga0984, AUTOMAN) BytesIn 73 BytesOut 75
WSCERR041 / <NOTNIL_MESSAGE>
WSCERRINT / <INTERNAL_ERROR>
Introduo
Visto de forma simples , um Web Service uma classe que pode ser
acessada via protocolo http. De modo que , um programa de Software client ir
solicitar ao server um processamento de uma ao / mtodo do servio ,
enviando o(s) parmetro(s) ao mesmo atravs de uma string XML , formatada no
padro SOAP (Simple Object Access Protocol) , e o servio retornar ao client
uma string XML de resposta , tambm formatada no padro SOAP.
Termos Tcnicos
WSMETHOD <Nome_do_Metodo>
(... demais mtodos ...)
ENDWSSERVICE
ENDWSSTRUCT
2. Nomenclatura de Estruturas
[ARRAY OF] Caso especificado , indica que este dado poder ter
mais de uma ocorrncia , sendo tratado como um
Array em Advpl .
4. Mtodos ( Aes )
[WebServices]
Enable=0 ; Indica se o service est habilitado (1) ou no (0).
Environment=ENVTESTE ; Indica qual environment do Server que ir
atender s requisies
Conout=1 ; Permite a exibio de informaes dos status internos do
servio ( default = 0 : desabilitado )
Trace=1 ; Habilita a grevao de um arquivo de log ( wsstrace.log ) ,
contendo as informaes sobre todas as chamadas e status do Web Service
( default = 0 )
PrepareIn=01,01 ; Permite especificar qual a empresa e filial do ERP
sero utilizados para a montagem do ambiente de processamento das
requisies.
NameSpace = http://localhost ; Permite especificar o nome do namespace
utilizado pelo servio ( default = host atualmente utilizado )
URLLocation = http://localhost ; Permite especificar a url responsvel pelo
atendimento as solicitaes de processamento do servio ( default = host
atualmente utilizado )