Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Apresentao
Contedo
Programtico
ENVIO DE EMAIL
DOWNLOAD E UPLOAD FTP
WORKFLOW
WORKFLOW DE RELATRIOS
WORKFLOW DE ROTINAS
WEB SERVICE (CONFIGURAO)
ADVPL ASP (CONCEITOS)
ADVPL ASP COM BASE DE DADOS
ADVPL III
Rotinas da Web
Envio de Email
cSrv
cMail
cPass
lAuth
cPswA
:=
:=
:=
:=
:=
GetMV("MV_RELSERV"))
GetMV("MV_RELACNT"))
GetMV("MV_RELPSW"))
GetMv("MV_RELAUTH")
GetMV("MV_RELAPSW"))
// smtp.ig.com.br
// meuemail@ig.com.br
// 123abc
//Requer Autenticao?
// 123abc
Ou
Private
Private
Private
Private
Private
lOk := QAGetMail()
//Atribui retorno de envio de email na varivel cError
GET MAIL ERROR cError
//Envio de email
SEND MAIL FROM cDe ;
TO cPara;
SUBJECT cAssunto;
BODY cMsg;
CC cCC;
CCO cCCO;
ATTACHMENT cAnexo;
RESULT lSend
//Desconecta do servidor
DISCONNECT SMTP SERVER
Veja programa E_MAIL.PRW
Exerccios
Fazer um programa que envie para o email de
cada cliente (A1_EMAIL) as seguintes
informaes:
Codigo: 999999 (A1_COD)
Nome: XXXXXXXXXXXXXXXX (A1_NOME)
Endereo: XXXXXXXXXXXXXXXX (A1_END)
Telefone: 99 9999 9999 (A1_DDD E A1_TEL)
CPF/CNPJ: 99.999/9999-99 (Tratar mascara
PF/PJ) (A1_CGC)
Assunto : Cadastro + Nome reduzido do
cliente (A1_NREDUZ)
Exerccios
Fazer um programa que envie para voc
mesmo um email com todos os fornecedores
com as seguintes informaes:
Codigo Loja Nome
Endereo
999999 99
XXXXXXXXXX
XXXXXXXXXXXXXX
999999 99
XXXXXXXXXX
XXXXXXXXXXXXXX
No Assunto coloque Fornecedores +
cSeuNome
Ex. HTML
<table>
FTP
File Transfer Protocol
//Conecta a um FTP
FTPConnect ( cServer, nPorta, cUser, cPass )
Argumento
Obrigat.
Tipo
Descrio
cServer
Sim
Servidor de FTP
nPorta
Sim
cUser
Sim
cPass
Sim
Senha de FTP
Sim
cAttr
No
Sim
cFileFTP
Sim
Sim
cFileFTP
Sim
Sim
Sim
cFileNew
Sim
Sim
Caminho escolhido
Sim
Comando em linux
Workflow
Usurio
Inclui Cliente
Atualiza
Cliente
Executa a funo
de retorno
Job WFRET
Caixa
Caixade
de
Sada
Sada
WFReturn()
Captura a resposta
Resposta
(Aprovado ou Reprovado)
Aprovador
Caixa
Caixade
de
Entrada
Entrada
Configurao Wizard
Inserir um job pelo Wizard, escolher Processos Comuns e Clicar
no icone "Novo Processo"
Configurao Wizard
Dar um nome ao Job, escolher o ambiente e colocar a funo
WFONSTART para ser executada e clique em finalizar.
A Lista de tarefas utilizada por esse servico no SXM
Configurao Wizard
Configurao Wizard
Reinicie o Server para que as alteraes tenham efeito.
Configurao
Configurador - Ambiente - Workflow Contas de Email Incluir
Senha: escola1010
Configurao
Configurador - Ambiente - Workflow Contas de Email - Incluir
Configurao
Configurador - Ambiente - Workflow Contas de Email - Incluir
Configurao
Configurador - Ambiente - Workflow Contas de Email - Incluir
Parmetros
Configurador - Ambiente - Workflow - Parmetros WF
Parmetros
Configurador - Ambiente - Workflow - Parmetros WF
Parmetros
Configurador - Ambiente - Workflow - Parmetros WF
Parmetros
Configurador - Ambiente - Workflow - Parmetros WF
Agendamento
Configurador - Ambiente - Workflow - Schedule
Agendamento
Configurador - Ambiente - Workflow Schedule
Incluir o Envio Colocar intervalo de 1 em 1 minutos
Agendamento
Criar um processo
Abrir em my projects esses programas e compilar:
100_CAD.PRW
SZ1 ( Criar tabela se no existir)
Campo
Campo
Tipo
Tam.
Z1_NOME
Car
20
Z1_EMAIL
Car
Z1_EMAIL1
Z1_SALDO
Dec.
Formato
Inform.
Contexto
Propr.
Real
Alt.
Nome
40
Real
Alt.
Car
40
Real
Alt.
EMail1
Num
12
Real
Visual
@!
@E 999,999,999.99
Ttulo
Saldo
Criar um processo
110_TRANM1.PRW
SZ1 E SZ2 (Criar SZ2 se no existir)
Campo
Campo
Tipo
Tam.
Z2_NOME
Car
20
Z2_NUMERO
Car
Z2_ITEM
Car
Z2_DATA
Data
Z2_TIPO
Dec.
Formato
Inform.
Contexto
Propr.
Real
Alt.
Real
Visual
Real
Alt.
Item
Real
Alt.
Data
Car
Real
Alt.
Tipo
Z2_HIST
Car
20
Real
Alt.
Historico
Z2_VALOR
Num
12
@E 999,999,999.99
Real
Alt.
Valor
Z2_SLDATU
Num
12
@E 999,999,999.99
Virtual
Visual
Saldo
Z2_APROV
Car
Real
Visual
Aprovado
@!
99
Ttulo
Nome
Numero
Criar um processo
Criar um processo
Linha 47 de 110_tranm1
If SZ1->Z1_Saldo < 0
If ExistBlock("WFSalNeg")
Criar um processo
Classe TWFProcess()
//Cria o Objeto
oWF := TWFProcess():New( "APROVA", "Aprovao do Lanamento" )
// Cria uma tarefa escolhendo o HTML
oWF:NewTask( "Aprovacao", "\workflow\190_WFSalNeg.htm" )
// Preenche as variaveis no html.
oWF:oHtml:ValByName("NOME" , cNome )
Criar um processo
// Destinatrio do WorkFlow.
oWF:cTo := "cris@advpl.com.br"
oWF:cCC := "cris@advpl.com.br"
oWF:cCCO := "cris@advpl.com.br"
// Assunto da mensagem.
oWF:cSubject := "Aprovao do Lanamento"
// Funo a ser executada no retorno da resposta.
oWF:bReturn := "U_WFRetorno"
//Funo a ser executada quando expirar o tempo do TimeOut.
oWF:bTimeOut := {{"U_WFTmOut",0,0,10}}
// Inicia o processo e envia a mensagem.
oWF:Start()
Criar um processo
//Usado no retorno da resposta
cNumero := oWF:oHtml:RetByName("NUMERO")
Os campos Entre "!" so variveis e so acesssados pelos atributos:
ValByname -> no envio
RetByName -> Retorno
Criar um processo
Veja o retorno no console.
Exerccios
Criar um workflow de clientes:
1.Criar um campo: A1_AU_REVI C 1 COMBO
1=SIM;2=NO sem inicializador padro somente visual
2.Alterar o campo A1_MSBLQL para visual e colocar
inicializador = 1
3.Usar o ponto de entrada M030INC para enviar um
workflow para o cliente(A1_EMAIL) com suas
informaes cadastrais.
4.Tratar o retorno da seguinte forma:
Resposta = sim,
alterar A1_AU_REVI = 1 (sim) e A1_MSBLQL= 2
(no)
Resposta = no,
Relatrios
Configurador - Ambiente - Workflow Schedule - Schedule
Relatrios
Configurador - Ambiente - Workflow Schedule - Schedule
Relatrios
Configurador - Ambiente - Workflow Schedule - Schedule
Relatrios
Configurador - Ambiente - Workflow Schedule - Schedule
Relatrios
Configurador - Ambiente - Workflow Schedule - Monitor
Relatrios
Advpl ASP
Configurao MP8SRV.INI
[HTTP]
ENABLE=1
PORT=80
ENVIRONMENT=ENVIRONMENT
RESPONSEJOB=JOB_WS_9901
Acesso ao WebService:
http://localhost/ws/9901/...
[localhost/ws1/9901]
[localhost/ws/9901]
ENABLE=1
ENABLE=1
http://localhost/ws1/9901/...
PATH=C:\ERP811\MP_Data\web\ws1
PATH=C:\ERP811\MP_Data\web\ws
ENVIRONMENT=ENVIRONMENT1
ENVIRONMENT=ENVIRONMENT
INSTANCENAME=ws1
INSTANCENAME=ws
RESPONSEJOB=JOB_WS1_9901
RESPONSEJOB=JOB_WS_9901
DEFAULTPAGE=wsindex.apw
DEFAULTPAGE=wsindex.apw
[JOB_WS1_9901]
[JOB_WS_9901]
TYPE=WEBEX
TYPE=WEBEX
ENVIRONMENT=ENVIRONMENT1
ENVIRONMENT=ENVIRONMENT
INSTANCES=1,3
INSTANCES=1,3
SIGAWEB=WS
SIGAWEB=WS
INSTANCENAME=ws1
INSTANCENAME=ws
ONSTART=__WSSTART
ONSTART=__WSSTART
Emp. 99, Filial 01
ONCONNECT=__WSCONNECT
ONCONNECT=__WSCONNECT
PREPAREIN=99,01
PREPAREIN=99,01
[ONSTART]
[ONSTART]
JOBS=JOB_WS_9901,JOB_WS1_9901
JOBS=JOB_WS_9901
[EVIRONMENT]
[EVIRONMENT]
SourcePath=C:\ERP811\APO
SourcePath=C:\ERP811\APO
RootPath=C:\ERP811\MP_Data
RootPath=C:\ERP811\MP_Data
StartPath=\system\
StartPath=\system\
...
...
[EVIRONMENT1]
[EVIRONMENT1]
SourcePath=C:\ERP811\APO1
SourcePath=C:\ERP811\APO1
RootPath=C:\ERP811\MP_Data
RootPath=C:\ERP811\MP_Data
StartPath=\system\
StartPath=\system\
...
...
Como programar
//Extenses
PRW Programa escrito em ADVPL
APH Programa escrito em HTML
APW Pgina j compilada, para ser acessada
no Browser
<html>
<head>
<title>AdvPL/ASP</title>
<body>
Exemplo de pagina em AdvPL/ASP.
</body>
</html>
Entre no Browser e digite:
http://localhost:8080/pp/u_asp1.apw
EXERCCIO
Altere o programa 265_ASP4.APH para tratar ontem, hoje e amanha nos dias da
semana, conforme mostra a figura abaixo:
Classes e Mtodos
Classes e Mtodos
Classes e Mtodos
Exerccios
Criar uma pgina da Web em ADVPL ASP
conforme exemplo ASP5.
Com os seguintes campos para digitao do
usurio:
Nome, Email, Endereco, Telefone, Municipio, Cidade,
Cep
Estado (trazer a combo de acordo com o dicionrio)
CPF/CNPJ, Tipo (trazer a combo de acordo com o dicionrio)
Tratar campos em azul como obrigatrios
Ao confirmar devera se includo o cliente
utilizando MSexecauto da funo MATA030.
Utilize getsxenum para o cdigo do cliente e