Escolar Documentos
Profissional Documentos
Cultura Documentos
Treinamento ADVPL ASP - Web Service
Treinamento ADVPL ASP - Web Service
ADVPL/ASP e Webservice
Capítulo 2 – Variáveis......................................................................................7
Introdução .........................................................................................................7
Nomenclatura das Variáveis .............................................................................7
Declarando Variáveis ........................................................................................7
Operadores .......................................................................................................8
Introdução
Uma página ASP (Active Server Pages) é uma página HTML contendo
código interpretáveis em uma linguagem compreensível ao servidor HTTP
em uso. Por exemplo, o IIS (Internet Information Server) da Microsoft
recepciona scripts em VBScript ou o JavaScript para criar suas páginas
ASP, do mesmo modo que o AP7 Web Server recepciona a ADVPL ASP.
Uma página ASP é uma combinação de script HTML e código
interpretável. No ADVPL ASP esse código é padrão xBase, portanto a
preocupação maior daqueles que já conhecem e trabalham com o AP7 e
desejam desenvolver páginas ativas para aplicações Web utilizando essa
facilidade é conhecer HTML.
Repositório de Objetos
Repositório
APOs
.aph
Solicitação func.APW
Cliente
APOs AP7
Resposta HTML Web Server
(repositório)
.APH É uma chamada Uma página Advpl ASP é uma página http://servidor/activep.ap
para uma página HTML mesclada com código executável w
ativa (uma ou interpretável no server. Tais páginas ou
página em são criadas utilizando qualquer editor de http://servidor/cadastro.a
ADVPL ASP). texto ou editor HTML, e devem ter pw
SEMPRE a extensão .APH. Devem ser
compiladas através do AP7 IDE. Durante
a compilação, o AP7 Server transforma
essa página em uma função interna que
será executada da mesma maneira que
aquelas chamadas .apw explicadas
anteriormente.
Como são funções também, as páginas
em Advpl ASP devem ser chamadas do
Web Browser com a extensão .apw
Ferramentas de Produção
Os arquivos que contém o código para gerar as páginas de seu site são
arquivos texto, portanto, você pode utilizar qualquer editor de texto do
mercado.
Utilizaremos o AP7 IDE para escrever nossos códigos ADVPL ASP com
HTML, porem utilizaremos também uma ferramenta que nos auxilie no
HTML. Existem várias no mercado, mas as mais familiares são
Dreamweaver da Macromedia, FrontPage e o Visual Studio da Microsoft
entre outros .
Capítulo 2 - Variáveis
dXXXX = variável Date (data). Quando você se deparar com uma variável
que possui o prefixo d significa que o conteúdo dela é uma data. Ex.:
dDTPG = 14/08/2000
Declarando variáveis
Operadores
Exemplo
Programa: U_RetDate.apw
Nomenclatura do nome :U_nnnnnnn.apw
U_ : Informa que que uma User Function (Função de Usuário). W_
(Web Function) e (Function) são exclusiva para o desenvolvimento interno
da Microsiga Software S\A. Portanto clientes não conseguiram compilar
Web Function e Function, somente User Function.
nnnnnnn: nome da Função
.apw: extensão de uma página ADVPL ASP
IF <condição>
<Instrução>
Elseif
<Instrução>
Else
<Instrução>
Endif
4. Agora, nos vamos escrever o código 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 então enviaremos a seguinte mensagem ao usuário
“Bom dia !!!” se a hora for maior que 12 então será enviado a seguinte
mensagem ao usuário “Boa tarde !!!”. Note que, sempre que houver a
necessidade de enviar uma informação ao browser processada a partir de
um arquivo .apw, essa informação 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 condição IF. Que
é executado se a condição inicial não for verdadeira.
Instrução Do case
Do Case
Case <primeira condição >
<instrucoes>
Loops
While <condição>
<Instrução>
Enddo
HttpPost-><NOME DA VARIÁVEL>
HttpGet-><NOME DA VARIÁVEL>
HttpSession-><NOME DA SESSÃO>
<html>
<body bgcolor="#FFFFFF">
<form method="post" action="http://localhost/u_ex002.apw">
<p>Nome: <input type="text" name="field_nome"> <br>
Agora vamos escrever o código 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>
<html>
<body bgcolor="#FFFFFF">
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>
</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%">
Agora vamos escrever o código do arquivo .apw, é nele que iremos escrever
os comandos para recuperar os dados enviados pelo formulário e em
seguida grava-los na base de dados.
Endif
23
24 Web Extended End
25
27 Return cHTML
Embora existam Web Services que podem ser acessados via Http “direto”
, apenas passando parâmetros via URL , o Client de Web Services do Advanced
Protheus têm seu foco e recursos direcionados apenas à serviços que possuam
interface de comunicação que realize POST de pacotes de dados XML em
formato SOAP.
Termos Técnicos
#INCLUDE "PROTHEUS.CH"
#INCLUDE "APWEBSRV.CH"
/* -------------------------------------------------------------------------------
WSDL Service WSSERVERTIME
------------------------------------------------------------------------------- */
WSMETHOD NEW
WSMETHOD GETSERVERTIME
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 obtenção do horário.
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("Horário no Servidor : "+ oSvc:cGETSERVERTIMERESULT)
10 Else
11 alert("Erro de Execução : "+GetWSCError())
12 Endif
13
14 Return
WSCERR041 / <NOTNIL_MESSAGE>
WSCERRINT / <INTERNAL_ERROR>
Introdução
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 ação / método do serviço ,
enviando o(s) parâmetro(s) ao mesmo através de uma string XML , formatada no
padrão SOAP (Simple Object Access Protocol) , e o serviço retornará ao client
uma string XML de resposta , também formatada no padrão SOAP.
Termos Técnicos
ENDWSSERVICE
ENDWSSTRUCT
[ARRAY OF] Caso especificado , indica que este dado poderá ter
mais de uma ocorrência , sendo tratado como um
Array em Advpl .
4. Métodos ( Ações )
[WebServices]
Enable=0 ; Indica se o service está habilitado (1) ou não (0).
Environment=ENVTESTE ; Indica qual environment do Server que irá
atender às requisições
Conout=1 ; Permite a exibição de informações dos status internos do
serviço ( default = 0 : desabilitado )
Trace=1 ; Habilita a grevação de um arquivo de log ( wsstrace.log ) ,
contendo as informações sobre todas as chamadas e status do Web Service
( default = 0 )
PrepareIn=01,01 ; Permite especificar qual a empresa e filial do ERP
serão utilizados para a montagem do ambiente de processamento das
requisições.
NameSpace = http://localhost ; Permite especificar o nome do namespace
utilizado pelo serviço ( default = host atualmente utilizado )