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
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)
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
Introduo
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
Operador Descrio
= Comparao (igual)
== Comparao (exatamente igual)
:= Atribuio
!= ou <> Diferente
Introduo
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>
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>
3
4 <%
5 local n
6
7 n := left(time(),2)
8 if val(n) < 12
9 %>
10 Bom Dia !!!
11 <%
12 Else
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">
</p>
</form>
</body>
</html>
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
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">
<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">METÓDO
GET</font></b></font></div>
</td>
</tr>
<tr bgcolor="#EEEEEE">
<td width="17%"><font face="Verdana, Arial, Helvetica, sans-serif"
size="2">Nome:</font></td>
<td width="83%">
<html>
<body bgcolor="#FFFFFF">
<table width="75%">
<tr>
<td colspan="2">
<div align="left"><b>Dados informados no
formulário</b></div>
</td>
</tr>
<tr>
<td width="12%" height="14">Nome:</td>
<td width="88%" height="14"><%= cNome %></td>
</tr>
<tr>
<td width="12%">Sobrenome:</td>
<td width="88%"><%= cSNome %></td>
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
Unitário</font></b></div>
</td>
</tr>
<%
dbselectarea('FA2')
dbgotop()
while !Eof()
%>
<tr bgcolor="#FFFFFF">
<td><%=FA2_COD %></td>
<td><%=FA2_DESCR %></td>
<td><%=FA2_QTDEST %></td>
</tr>
</table>
</body>
</html>
1. Primeiramente, vamos criar o arquivo .aph (ou .ahu), que tem como
objetivo formar um formulrio para que o usurio insira os dados (cdigo
do produto, descrio do produto e quantidade em estoque).
<html>
<head>
<title>Inserindo Registros</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
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.
#INCLUDE "PROTHEUS.CH"
#INCLUDE "APWEBSRV.CH"
/* -------------------------------------------------------------------------------
WSDL Service WSSERVERTIME
------------------------------------------------------------------------------- */
--- declarao da Classe Client do WebService , com metodos e propriedades utilizadas ---
WSCLIENT WSSERVERTIME
WSMETHOD NEW
WSMETHOD GETSERVERTIME
ENDWSCLIENT
/* -------------------------------------------------------------------------------
WSDL Method GETSERVERTIME of Service WSSERVERTIME
------------------------------------------------------------------------------- */
BEGIN WSMETHOD
END WSMETHOD
oXmlRet := NIL
Return .T.
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:1
0</GETSERVE
RTIMERESULT></GETSERVERTIMERESPONSE></soap:Body></soap:Envelope
>
-------------------------------------------------------------------------------
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
4. Mtodos ( Aes )