Você está na página 1de 114

Infra-Estrutura APWEBEX

Reviso: 27/04/2004
Abrangncia
Verso 8.11
A Infra-Estrutura APWEBEX
Visando o melhor aproveiameno da ecnologia de !orking threads" implemenada no
servidor #rohe$s para o processameno de re%$isi&'es de $ma aplica&o !eb" (oram
desenvolvidas ($n&'es de apoio" miscel)nea e in(ra*esr$$ra" compiladas no reposi+rio
padro de ,n(ra*-sr$$ra do -R# .icrosiga" visando simpli(icar e a$/iliar o
desenvolvimeno de $ma sol$&o !eb. A ese con0$no de ($n&'es " demos o nome de
12ib de ,n(ra*-sr$$ra A#3-4-51" %$e engloba a$almene os raamenos com$ns 6s
($n&'es de iniciali7a&o de ambiene e cone/o 8 aendimeno de re%$isi&'es hp via
lin9 .ap! :" com se$s respecivos ponos de enrada" comandos e ($n&'es de miscel)nea
com$ns 6os pro0eos de sol$&'es !eb inegradas com o -R#.
Como utilizar este recurso no desenvolvimento de solues ?
As ($n&'es perinenes 6 ,n(ra*-sr$$ra A#3-4-5 0; eso implemenadas no
reposi+rio padro da (erramena #rohe$s 8" e os comandos espec<(icos %$e envolvem
ese rec$rso enconram*se no ar%$ivo header =ap!ebe/.ch=" disponibili7ado amb>m
0ono com a (erramena #rohe$s 8.
A $ili7a&o deses rec$rsos para inegra&o de aplica&'es envolve a lei$ra desa
doc$mena&o" onde ser; viso com maiores dealhes as possibilidades de $so da
(erramena" como a inegra&o de $ma aplica&o 3eb com $m ambiene e
($ncionalidades do -R# .icrosiga.
Como usufruir desta documentao ?
?odos os +picos perencenes 6 ese gr$po so direcionados 6o desenvolvimeno de
sol$&'es !eb $ili7ando as ($n&'es de ,n(ra*-sr$$ra A#3-4-5" al>m de ser
e/plicado com dealhes o ($ncionameno da ecnologia 3-4-5 do #rohe$s" e dos
rec$rsos naivos da (erramena" englobando os comandos e ($n&'es p$blicados"
e/emplos de c+digos Advpl $ili7ando eses rec$rsos" con(ig$ra&o da (erramena e
mensagens de ocorrncias de erro das ($n&'es e comandos" com poss<veis ca$sas e
sol$&'es.
@ (oremene recomendado %$e os doc$menos consanes nese gr$po (ossem
apreciados" anes de apro($ndar*se nas in(orma&'es dos pr+/imos +picos.
01. Recepo de parmetros por Alias
irtuais
Reviso: A0/04/2004
Abrangncia
Verso 7.10 Verso 8.11
A recep&o de par)meros vindos do 3eb 4ro!ser" %$ando $ili7amos 3or9ing
?hreads do ipo 3-4-5" arav>s de lin9s .ap!" > reali7ada arav>s de Alias Vir$ais
espec<(icos" ao inv>s de receber as in(orma&'es B-? " #CD? e E-AF-R em arraG"
%$ando e/ec$amos a chamada arav>s de lin9 .apl. A nomencla$ra de =Alias Vir$al=
(oi adoada" pois a sina/e do c+digo*(one > e/aamene a mesma $ili7ada %$ando
dese0amos acessar $m campo de $ma abela abera" arav>s de $m alias.
-m $m ambiene monado para aender 6 re%$isi&'es via lin9 .ap! $ili7ando 3or9ing
?hreads 3-4-5 " podemos nos $ili7ar dos seg$ines alias vir$ais :
EpHoo9ies
EpBe
Ep#os
EpEead,n
EpEeadC$
EpDession
HttCoo!ies
Arav>s do alias vir$al EpHoo9ies" > poss<vel cons$lar os Hoo9ies do Eeader Ep
enviados pelo 4ro!ser" e criar o$ alerar o coneIdo de $m coo9ie a ser devolvido 6o
4ro!ser. Jm coo9ie" viso de (orma geral" > $m par)mero ao %$al arib$<mos $m
nome" %$e $ma ve7 devolvido 6o 4ro!se soliciane" > re*enviado ao #rohe$s a parir
da pr+/ima re%$isi&o reali7ada pelo 4ro!ser.
Htt"et
#ara receber os par)meros enviados arav>s da JR2 8m>odo B-? do E??#: " 0;
devidamene converidos e raados" $ili7amos o alias vir$al EpBe" onde acessamos
pelo nome a propriedade dese0ada" e caso a mesma enha sido enviada pelo 4ro!ser" a
mesma > reornada como $ma Dring.
HttPost
#ara receber os par)meros s$bmeidos 8enviados: pelo 4ro!ser arav>s do m>odo
#CD?" 0; devidamene converidos e raados" $ili7amos o alias vir$al Ep#os" onde
acessamos pelo nome a propriedade dese0ada" e caso a mesma enha sido enviada pelo
4ro!ser" a mesma > reornada como $ma Dring.
HttHeadIn
#ara a recep&o e raameno das in(orma&'es recebidas arav>s do Eeader do pacoe
E??#" (oi criado o alias vir$al EpEead,n" %$e al>m de cons$lar as in(orma&'es
consanes no Eeader E??# proveinene da re%$isi&o do $s$;rio" permie amb>m
acesso 6 propriedades da cone/o a$al do $s$;rio" como o ,# do $s$;rio soliciane" por
e/emplo.
HttHead#ut
Arav>s dese alias vir$al de reorno" podemos alerar o$ criar $m par)mero no Eeader
de reorno E??# do #rohe$s " a ser devolvido 6o 4ro!ser soliciane de $ma re%$isi&o
de processameno.
Htt$ession
C alias vir$al EpDession (oi criado para possibiliar a cria&o de vari;veis =session=
por $s$;rio do sie" com conrole de ideni(ica&o naiva da (erramena arav>s de $m
coo9ie de ideni(ica&o " chamado D-DD,CK,F. Ko +pico =Alias Vir$al EpDession= >
e/plicado em dealhes o ($ncionameno dese mecanismo.
-se rec$rso nos permie criar " aric$ir coneIdo e cons$lar coneIdo de $ma vari;vel
relacionada 6o $s$;rio %$e es; reali7ando $ma re%$isi&o hp. #odemos arma7enar em
$ma vari;vel de Dession os seg$ines ipos de vari;veis : A 8arraG: " H 8characer: " F
8daa:" 2 8l+gica: e K 8n$m>rica: . Ko so s$porados C 8Cb0eos: e/o$ 4 8Hode
4loc9s:.
%imitaes de uso dos alias virtuais ara rece&imento de armetros
Fadas as caracer<sicas operacionais e de acesso 6os alias vir$ais" devemos esar
aenos 6 nomencla$ra de campos de $m (orm$l;rio E?.2" para serem rec$perados
com s$cesso pelos alias vir$ais correspondenes. A nomencla$ra de campos do
(orm$l;rio deve obedecer 6 regra de cria&o de vari;veis em Advpl : C campo do
(orm$l;rio deve sempre ser iniciado com $m caracer al(ab>ico" pode coner leras o$
algarismos no nome" e o caracer 1L1 8 $nderline :. Ko so permiios espa&'s" h<(en o$
caraceres acen$ados como nome de $m campo. Haso $ili7ado $m nome de campo
(ora do padro s$porado" o coneIdo do mesmo no ser; rec$per;vel em Advpl.
0!. Alias "irtual #ttp$oo%ies
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Arav>s do alias vir$al EpHoo9ies" > poss<vel cons$lar os Hoo9ies do Eeader Ep
enviados pelo 4ro!ser" e criar o$ alerar o coneIdo de $m coo9ie a ser devolvido 6o
4ro!ser. Jma vari;vel de Hoo9ie reorna $m ipo Advpl Dring " e apenas aceia $ma
ar$ib$i&o de Dring. Vale lembrar amb>m %$e $m coo9ie > $m rec$rso do 4ro!ser
%$e es; reali7ando a re%$isi&o" e e/ise $m limie de amanho para o oal de Hoo9ies
$ili7ados. -se limie cos$ma ser pr+/imo a 1024 4Ges .
?raa*se porano de $ma propriedade de lei$ra e grava&o" dispn<vel apenas %$ando a
($n&o Advpl > e/ec$ada arav>s de $ma re%$isi&o hp via lin9 .ap! $ili7ando a
con(ig$ra&o de 3or9ing ?hreads 3-4-5.
'tilizao de Coo!ies
A $ili7a&o de Hoo9ies m ob0eivo pr;ico resrio 6 aplica&'es onde ha0a a
necessidade impl<cia de ermos $ma in(orma&o relacionada 6o bro!ser $ili7ado pelo
$s$;rio a$al" %$e devam ser inerpreadas independene do $s$;rio esar logado o$ no
8 iso > " independam direamene de sessions :.
Jm e/emplo pr;ico diso > o desenvolvimeno de $m sie onde o coneIdo din)mico >
reornado ao $s$;rio em mais de $m idioma. Ka enrada do sie" apresenamos $m
(orm$l;rio ao $s$;rio onde o mesmo ir; escolher o idioma de s$a pre(erncia. .esmo
%$e a session de login dese $s$;rio e/pire no servidor" o coo9ie com o idioma
selecionado ainda es; no 4ro!ser" de modo %$e a pr+/ima re%$isi&o do $s$;rio pode
ser codi(icada para direcion;*lo para a p;gina de login do sie com as mensagens
no idioma %$e o mesmo 0; esava navegando.
%endo o valor de um Coo!ie
Arav>s dos e/emplos abai/o " lemos o valor do Hoo9ie de ideni(ica&o do Is$;rio" e
$m coo9ie de $s$;rio criado para ideni(icar no 4ro!se %$al > o idioma $ili7ado pelo
$s$;rio a$al.
cJser,d :M EpHoo9ies*NJD-R,F // Reorna o Hoo9ie ideni(icador do $s$;rio do
#rohe$s
c,dioma :M EpHoo9ies*NDie2ang // Reorna o coneIdo do coo9ie Die2ang " criado
%endo todos os Coo!ies rece&idos
C alias vir$al EpHoo9ie poss$i $ma propriedade chamada aHoo9ies" criada apenas
para cons$la 8read*onlG:" %$e reorna $m ArraG Advpl de Drings " conendo os nomes
dos Hoo9ies enviados pelo 4ro!ser 6o #rohe$s . #or e/emplo :
aInfo := HttpCookies->aCookies
For nI := 1 to len(aInfo)
// Mostra no console do Serer todos os cookies rece!idos"
cono#t($Cookie $%str(nI&')%$ = $ % aInfo(nI))
*e+t
Criando um Coo!ie
A cria&o de $m Hoo9ie > reali7ada arav>s da ar$b$i&o de $m valor direamene 6o
coo9ie dese0ado. #or e/emplo :
HttpCookies->Me#Cookie := $,-S,-$
A cria&o de $m Hoo9ie merece $ma aen&o especial" pois $m Hoo9ie > reornado 6o
bro!ser arav>s do Eeader de Reorno E??#. Fe modo %$e" para %$e a cria&o de $m
coo9ie se0a reali7ada com s$cesso " o mesmo deve ser criado anes de haver %$al%$er
processameno de A#E / AEJ" caso ese %$e no seria mais poss<vel a cria&o do
Hoo9ie" pois o Eeader de Reorno E??# 0; eria sido enviado 6o bro!ser soliciane.
0&. Alias "irtual #ttp'et
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Arav>s do alias vir$al EpBe" podemos cons$lar se $ma deerminada propriedade
nos (oi enviada arav>s da JR2 8 m>odo B-? :.
?raa*se porano de $ma propriedade de lei$ra 8read*onlG:" dispon<vel apenas %$ando a
($n&o Advpl > e/ec$ada arav>s de $ma re%$isi&o hp via lin9 .ap! $ili7ando a
con(ig$ra&o de 3or9ing ?hreads 3-4-5.
Consultando um Par(metro
C reorno da cons$la de $m par)mero pode er dois ipos : K,2 " caso o par)mero no
enha sido enviado " o$ Dring " conendo o coneIdo do par)mero. #or e/emplo" vamos
reali7ar $ma re%$isi&o a $m lin9 .ap! " passando pela JR2 o par)mero ,.AB-. "
com o con>Ido ?-D?- :
hp://localhos/$L?eseBe.ap!OimagemMesePcorMa7$l
#ara rec$perarmos em Advpl o coneIdo dos par)meros i.age. e cor " $ili7amos:
cI.age. := Http/et->i.age.
cCor := Http/et->cor
#odemos inserir amb>m $m raameno de(a$l : Haso alg$m par)mero no se0a
enviado 8 res$le K,2 : " ass$mimos $m valor para o mesmo
0-F123, cI.age. := $3ogo1p4$
0-F123, cCor := $a.arelo$
-/ise amb>m $ma propriedade do alias vir$al EpBe chamada aBes " onde
podemos rec$perar $m arraG de srings " conendo a lisa com os nomes dos par)meros
enviados pelo bro!ser soliciane . #or e/emplo :
aInfo := Http/et->a/ets
For nI := 1 to len(aInfo)
cono#t($/-, $%str(nI&')%$ = $%aInfo(nI))
*e+t
0(. Alias "irtual #ttpPost
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Arav>s do alias vir$al Ep#os" podemos cons$lar os campos s$bmeidos 6o servidor
arav>s do m>odo #CD?.
?raa*se porano de $ma propriedade de lei$ra 8read*onlG:" dispon<vel apenas %$ando a
($n&o Advpl > e/ec$ada arav>s de $ma re%$isi&o hp via lin9 .ap! $ili7ando a
con(ig$ra&o de 3or9ing ?hreads 3-4-5.
Consultando um Par(metro
C reorno da cons$la de $m par)mero pode er dois ipos : K,2 " caso o par)mero no
enha sido enviado " o$ Dring " conendo o coneIdo do par)mero. #or e/emplo" vamos
reali7ar $ma re%$isi&o a $m lin9 .ap! " arav>s de $m (orm$l;rio hml com m>odo
#CD?" parindo do Eml abai/o :
5ht.l>5!od6>
5for. .ethod=$78S,$ action=$http://localhost/#9,st7ost"ap:$>
,este : 5inp#t t6pe=$te+t$ na.e=$C80I/8$ si;e=$1<$>
5hr>
5inp#t t6pe=$s#!.it$>
5/for.>
5/!od6>5/ht.l>
#ara rec$perarmos em Advpl o coneIdo do campo C80I/8" $ili7amos:
cCodigo := Http78S,->Codigo
-/ise amb>m $ma propriedade do alias vir$al chamada a#os " onde podemos
rec$perar $m arraG de srings " conendo a lisa com os nomes dos par)meros enviados
pelo bro!ser soliciane . #or e/emplo :
aInfo := Http7ost->a7ost
For nI := 1 to len(aInfo)
cono#t($78S, $%str(nI&')%$ = $%aInfo(nI))
*e+t
0). Alias "irtual #ttp#eadIn
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Arav>s do alias vir$al EpEead,n" podemos cons$lar os par)meros enviados pelo
4ro!ser soliciane enviados arav>s do Eeader E??# ao reali7ar $ma re%$isi&o ao
#rohe$s Derver.
?raa*se porano de $ma propriedade de lei$ra 8read*onlG:" dispon<vel apenas %$ando a
($n&o Advpl > e/ec$ada arav>s de $ma re%$isi&o hp via lin9 .ap! $ili7ando a
con(ig$ra&o de 3or9ing ?hreads 3-4-5.
Consultando um Par(metro
C reorno da cons$la de $m par)mero pode er dois ipos : K,2 " caso o par)mero no
enha sido enviado " o$ Dring " conendo o coneIdo do par)mero. #or e/emplo" vamos
cons$lar o header hp Jser*Agen " enviado pelo 4ro!ser soliciane conendo $ma
Dring idenii(icando o modelo de 4ro!ser $ili7ado :
c2ser1gent := Httpheadin->2ser91gent
Fevemos ober como reorno $ma sring parecida com a mosra abai/o :
Mo;illa/="< (co.pati!le> MSI- ?"<> @indo:s *, A"1> "*-, C3B 1"<"'C<A)
*+ser"ao Importante ,
Q$al%$er par)mero no Eeader E??# %$e conenha $m o$ mais caraceres inv;lidos
para a nomencla$ra de vari;veis Advpl " 8 como por e/emplo o Jser*Agen " %$e
con>m $m h<(en :" so rocados pelo caracere =L= $nderline " para ser poss<vel a lei$ra
da propriedade.
Propriedades especiais
HttpHeadIn->aHeaders
Reorna $m ArraG de Drings " conendo odas as linhas do Eeader E??# da re%$isi&o.
HttpHeadIn->.ain
Reorna o nome da ($n&o chamda arav>s da JR2 " sem a e/enso e sem o hos. #or
e/emplo " ao chamar o lin9 hp://localhos/$LsE-ader.ap! " o coneIdo de
EpEeadin*Nmain ser; =$LsE-ader=
HttpHeadIn->B-M8,-9100B
Reorna $ma sring " no (ormao nnn.nnn.nnn.nnn " o ,# da esa&o %$e reali7o$ a
re%$isi&o.
httpHeadIn->B-M8,-978B,
Reorna $m valor Advpl n$m>rico " in(ormando a pora $ili7ada para reali7ar a
re%$isi&o.
0-. Alias "irtual #ttp#ead*ut
Reviso: 08/12/200A
Abrangncia
Verso 7.10 2,4 3-4-5
Arav>s dese alias vir$al de reorno" podemos alerar o$ criar $m par)mero no Eeader
de reorno E??# do #rohe$s " a ser devolvido 6o 4ro!ser soliciane de $ma re%$isi&o
de processameno.
?raa*se porano de $ma propriedade de reorno" dispon<vel apenas %$ando a ($n&o
Advpl > e/ec$ada arav>s de $ma re%$isi&o hp via lin9 .ap! $ili7ando a
con(ig$ra&o de 3or9ing ?hreads 3-4-5.
A cria&o de $ma linha no Eeader E??# merece $ma aen&o especial" pois para %$e a
opera&o reali7ada com s$cesso " o header deve ser criado anes de haver %$al%$er
processameno de A#E / AEJ" pois nese caso o Eeader de Reorno E??# 0; eria sido
enviado 6o bro!ser soliciane.
0.. Alias "irtual #ttp/ession
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Arav>s do alias vir$al hpDession" podemos criar e cons$lar vari;veis do ipo
=session=" relacionadas 6o $s$;rio %$e reali7o$ a re%$isi&o arav>s do 4ro!ser.
#ara di(erenciar os $s$;rios %$e eso navegando n$m sie" o #rohe$s b$sca por $m
coo9ie ideni(icador de $s$;rio" reornado para o bro!ser a cada re%$isi&o de lin9 .
A#3" chamado D-DD,CK,F. Haso o #rohe$s receba ese coo9ie" ele ideni(ica %$ais
sessions perencem a ese $s$;rio.
Q$ando $m $s$;rio reali7a a primeira re%$isi&o hp ao #rohe$s" o #rohe$s no
recebe o coo9ie ideni(icador " e a$omaicamene iniciali7a $m ideni(icador de sessions
para o mesmo" reornando o ideni(icador ao 4ro!ser via Eeader E??#. -se
ideni(icador pode ser rec$perado em $ma ($n&o advpl arav>s de hpDession*
ND-DD,CK,F.
Q$ando criamos $ma vari;vel de session" ela pode ser acessada nas pr+/imas
re%$isi&'es provenienes dese mesmo $s$;rio. Haso $ma vari;vel de session cons$lada
no e/isa" ela reorna o valor K,2 8n$lo:. Ve0amos os e/emplos abai/o :
Criando vari)veis $ession
EpDession*NJser,d :M =12A=
EpDession*NJserKame :M JLBeJserKame8:
Kas linhas acima " criamos $ma session para o $s$;rio a$al " chamada Jser,d " com o
coneIdo do ipo Dring" e criamos o$ra session chamada JserKame " com o reorno da
($n&o JLBeJserKame8:
Consultando vari)veis $ession
Ao cons$lar $ma vari;vel =session=" sempre devemos prever %$e a mesma no pode er
sido criada" de modo %$e a cons$la pode reornar K,2" o$ caso a session 0; e/isa "
reornar; o valor do ipo %$e (oi arib$<do Ra mesma.
,( EpDession*NJser,d M K,2
// Dession ainda no (oi criada S Js$;rio no es; logado.
cono$8=Js$ario no es; logado=:
-lse
// Dession 0; criada" o $s$;rio es; logado
cono$8=Js$ario es; logado : ,F M = T EpDession*NJser,d :
-ndi(
E*emlo de +uncionamento de $ession
Ko e/emplo abai/o" criamos $ma session para ideni(icar %$anas ve7es o $s$;rio
chamo$ esa ($n&o espec<(ica. Famos o nome da session de .GHo$ner" %$e ir; coner
$m nImero. Ko primeiro acesso do $s$;rio" a session no e/ise 8 M K,2 :" e > criada
com o valor n$m>rico 1 8$m:. A parir das pr+/imas re%$isi&'es reali7adas ao #rohe$s
arav>s desa p;gina 8 arav>s do boo =Re(resh= do 4ro!ser" por e/emplo : " a session
0; e/ise" sendo somado o valor 1 6o coneIdo 0; e/isene" e devolvido 6o bro!ser
soliciane $m Eml in(ormando %$anas chamadas 0; (oram reali7adas por ese $s$;rio.
Dincl#de $r:.ake"ch$
Dincl#de $ap:e!e+"ch$
2ser F#nction ,stSession()
3ocal cHt.l := $$ & c-cho := $$
@-E -F,-*0-0 I*I, cHt.l
If httpSession->.6co#nter = *I3
c-cho := $Iniciali;ando contador$
Cono#t(c-cho)
cHt.l %= c-cho
httpSession->.6co#nter := 1
-lse
httpSession->.6co#nter%%
c-cho := $contador e. $%str(httpSession->.6co#nter&')
cono#t(c-cho)
-ndif
cHt.l %= c-cho % $5hr>$
@-E -F,-*0-0 -*0
Bet#rn cHt.l
Ap+s compilado o (one acima e o Derver #rohe$s con(ig$rado e iniciado com E??#
habiliado e as !or9ing ?hreads con(ig$radas" abra $m 3eb 4ro!ser e solicie a $rl
hp://localhos/$Lssession.ap! . Der; mosrado no 4ro!se a mensagem =,niciali7ando
Honador=. Agora " pe&a $m =Re(resh= desa ela ao 4ro!ser : Der; devolvida a
mensagem =Honador em 2= ... e a cada re(resh dese 4ro!ser " o conador ser;
incremenado.
'so de $essions e Paralelismo - Comortamento do Prot,eus $erver
C #rohe$s Derver raa 6s re%$isi&'es sim$l)neas de lin9s .A#3 em paralelo " desde
%$e ese0am dispon<veis o n$mero de 3or9ing ?hreads necess;rio para al. #or e/emplo
" em $ma esr$$ra de Urames " onde cada $m deles apona o DRH 8so$rce: para $m
lin9 .ap! " o 4ro!ser envia as rs re%$isi&'es de .ap! para o #rohe$s Derver " e caso
e/isam A !or9ing hreads dispon<veis na%$ele momeno " as rs re%$isi&'es so
aendidas em paralelo.
#or o$ro lado " se em d$as desas rs re%$isi&'es (a7*se necess;ria a a$ali7a&o e/o$
cons$la a $ma vari;vel de Dession 8 hpsession : " ese processameno em paralelo "
caso no (osse raado " poderia gerar perdas no coneIdo da session caso a mesma
session (osse a$ali7ada sim$laneamene.
#ara resolver esa %$eso" de maneira a no sobrecarregar o Dervidor com solicia&'es
de #rocessameno De%$encial 8 Hriical Dessions : " (oi monado $m es%$ema de 2oc9
de Dession de Js$;rio a$om;ico" com libera&o a$om;ica ap+s o processameno do
A#3" o$ libera&o man$al arav>s da chamada da ($n&o Ep2eaveDession8: anes do
processameno ser erminado.
-/empli(icando a aplica&o pr;ica e ($ncionameno dese conceio " parimos de $m
ambiene hipo>ico $ili7ando A (rames " onde $m $s$;rio reali7a $ma re%$isi&o 6
($n&o %$e reornar; o so$rce E?.2 da p;gina de (rames" e a mesma ao chegar no
4ro!ser" (a7 o mesmo reali7ar as rs re%$isi&'es sim$laneamene" odas elas re(erenes
ao mesmo $s$;rio. #or>m " o primeiro e o seg$ndo (rames reali7am $ma opera&o
%$al%$er com $ma o$ mais vari;veis da Dession do $s$;rio " e o erceiro (rame reali7a
$m o$ro processameno %$e no depende da cons$la de nenh$ma vari;vel da Dession :
As rs re%$isi&'es re(erene a ese $s$Vario sero processadas sim$laneamene por
!or9ing ?hreads di(erenes 8 vamos s$por %$e na%$ele momeno haviam rs 3or9ing
?hreads dispon<veis: V por>m %$ando $ma das d$as !or9ing ?hreads %$e enarem
acesso 6 $ma vari;vel de Dession da%$ele $s$;rio " o Dervidor veri(ica se alg$ma o$ra
?hread es; com o (lag de acesso 6s sessions dese $s$ario : De nenh$ma o$ra hread
em $so por ese $s$;rio es; com a bandeira " eno a hread a$al pega a bandeira para
elaV seno o processameno da ?hread > congelado no ag$ardo da libera&o da bandeira.
A libera&o da bandeira ocorre a$omaicamene no reorno da 3or9ing ?hread para o
4ro!ser " anes da chamada do pono de enrada para Rese do Ambiene" arav>s da
chamada na Wlib-/ da ($n&o Ep2eaveDession8:. Haso se0a vi;vel para o $s$;rio
liberar as sessions anes do reorno da ($n&o " ele pode $ili7ar*se da ($n&o
hp2eaveDession8: no se$ (one " sem necessariamene ag$ardar pelo encerrameno
e(eivo e rese de ambiene da 3or9ing ?hread.
2ogo " reornando ao e/emplo acima " os Urames 1 e 2 iro concorrer pela banceira de
a$ali7a&o de coneIdo de sessions" onde o primeiro (rame %$e a ser e/ec$ado pegar;
a bandeira para ele e a$ali7ar; a session " e o seg$ndo (rame ir; esperar o primeiro
liberar a bandeira para conin$ar a ser processadoV e o erceiro (rame " como no $ili7a
nenh$ma vari;vel da session " ser; processado sem depender de nenh$m dos o$ros dois
(rames aneriores.
Q$ando $ili7amos AD# 8 .icroso( Acive Derver #ages : " o mesmo reali7a $ma
seriali7a&o de re%$isi&'es de p;ginas AD# por $s$;rio" de modo %$e " caso o mesmo
$s$;rio solicie rs (rames .asp " as re%$isi&'es de processameno chegaro ao Dervidor
AD# sim$laneamene " mas a bandeira de processameno > $nica por p;gina .asp "
sendo liberada apenas apos o >rmino do processameno da p;gina " de modo %$e "
mesmo %$e nenh$ma das p;ginas (a&a $so de sessions " odas as p;ginas dese $s$;rio
sero processadas em se%$ncia.
00. En"io simultneo de #123 ao
Bro4ser
Reviso: A0/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
As aplica&'es !eb desenhadas para $ili7ar a ,n(ra*-sr$$ra A#3-4-5 conam com o
rec$rso de 1-nvio sim$l)neo de Eml ao 4ro!ser1 d$rane o processameno de $ma
p;gina Advpl*AD# 8 .A#E e/o$ .AEJ : .
-se rec$rso > habiliado arav>s do #rohe$s ,F-" nas op&'es de con(ig$ra&o de
compila&o do ambiene em %$esoV mais especi(icamene habiliado arav>s do
Hhec94o/ 1X Y -/ibir coneIdo do Advpl AD# progressivamene no 4ro!ser1.
Ao habiliamos esa con(ig$ra&o" odos os ar%$ivos A#E e AEJ so parseados
(a7endo inernamene o $so da ($n&o EpDend8:" de modo %$e mesmo anes do
processameno esar concl$<do " o Eml gerado 0; es; sendo enviado 6o 4ro!ser %oe o
solicio$.
A $ili7a&o dese rec$rso prov $m ganho de per(ormance s$bancial na aplica&o
(inal. ?odos os pro0eos desenvolvidos com esa ecnologia 8 ,n(ra*-sr$$ra
A#3-4-5 : devem er esa con(ig$ra&o de compila&o habiliada no ,F-. Vale
lembrar %$e" caso ese rec$rso no ese0a habiliadoV ao habili;*lo" os ar%$ivos .aph e
.ah$ do pro0eo necessiam ser recompilados para %$e esa con(ig$ra&o enha o e(eio
dese0ado.
#ode e/isir a necessidade de $m processameno de $m A#E o$ AEJ no enviar o
scrip Eml gerado direamene ao 4ro!ser. #ara al si$a&o" podemos desabiliar
emporariamene ese rec$rso de envio de hml progressivo em empo de e/ec$&o"
permiindo assim" por e/emplo" $ma ($n&o chamar em se%$ncia dois ar%$ivos A#E "
$m para gerar $m coneIdo Eml a ser enviado via e*mail " arma7enado em $ma
vari;vel Advpl " e o$ro A#E para a monagem de $ma ela de sa$s" %$e ser; enviada
6o 4ro!ser soliciane.
#ara habiliar e/o$ desabiliar o envio sim$l)neo do Dcrip E?.2 6o bro!ser em
empo de e/ec$&o" $ili7e a ($n&o EpDe#ar8:
05. $onfi6ura7es espec8ficas APWEBEX
Reviso: 2Z/04/2004
Abrangncia
Verso 7.10 Verso 8.11
Ao $ili7armos as ($n&'es de ,n(ra*esr$$ra A#3-4-5" e/isem rec$rsos da lib %$e
e/igem $ma con(ig$ra&o adicional para serem $ili7ados.
Envio de e-mail autom)tico atrav-s da .otina de /ratamento de Erro do $ite
-m caso de erro (aal na aplica&o 3eb" a pr+pria roina de raameno de erro pode ser
con(ig$rada para enviar $m e*mail 6o Adminisrador do sisema. #ara al" > necess;rio
inserir as chaves abai/o na se&o do ambiene em $so para o sie :
-rrorD.?#M 8endere&o do servidor D.?# a ser $sado para o envio do e*mail :
-rror.ailM 8 $m o$ mais endere&os de e*mail a receber op e*mail de erro" separados por
virg$la :
-rrorUromM 8 $m e apenas $m endere&o de e*mail a ser $sado como remeene do aviso
de erro :
-rror2ogin M 8 nome de $s$ario de login no servidor de D.?#" caso necess;rio :
-rror#ass!ordM 8 senha do $s$ario de login no servidor de D.?#" caso necess;rio :
We&Admin - %o0in alternativo
A in(ra*esr$$ra A#3-4-5 e/ige $m $s$;rio e senha para enrar no m+d$lo de
adminisra&o 3ebAdmin. #ara validar o login" > $ili7ado o ar%$ivo de senhas do -R#.
C $s$;rio deve ser o =Adminisrador= o$ perencer ao gr$po de adminisradores para er
acesso 6o 3ebAdmin. Haso no se0a vi;vel $sar ese ar%$ivo de senhas para validar o
login" podemos inserir $ma chave adicional 8 Adm2ogin : no -nvironmen em $so pela
aplica&o 3eb" e con(ig$rar nela a senha do $s$;rio =Adminisrador= para login no
3ebAdmin. Haso esa chave se0a con(ig$rada" o ar%$ivo de senhas do -R# no ser;
$ili7ado para validar o login no 3ebAdmin.
Adm2oginM 8 senha do Adminisrador para logar no 3ebAdmin :
Pasta alternativa ara uload de .o via We&Admin
Ko 3ebAdmin " > poss<vel $ili7ar $ma con(ig$ra&o espec<(ica para a roca do
reposi+rio de ob0eos em $so no sie" sem %$e se0a necess;rio parar o servidor para isso.
#or de(a$l " a pasa de $pload chama*se =[D!apR#C[=" e deve e/isir na esr$$ra
de dire+rio do ambiene $ili7ado" a parir do dire+rio rai7 do ambiene 8 Boot7ath :.
RpoJploadM 8 pasa de $pload alernaiva" a parir do Roo#ah do ambiene :
10. Recomenda7es finais
Reviso: 17/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
#ara odo o desenvolvimeno de sol$&'es" emos em mos $ma diversidade de rec$rsos"
desenhados para melhor aender 6s necessidades e ade%$ar*se 6s caracerisicas da
aplica&o. Fada a (le/ibilidade dos rec$rsos" recomenda*se aos desenvolvedores
adoarem $m padro de desenvolvimeno e er em (oco a e(icincia da aplica&o (inal"
ano no aspeco ($ncional como na codi(ica&o .
2an&ando mo da e/perincia em desenvolvimeno de aplica&'es !eb ad%$iridas nos
Ilimos anos" nos +picos abai/o eso relacionadas alg$mas medidas omadas no
desenvolvimeno de aplica&'es %$e nos so m$io Ieis no decorrer de $m pro0eo.
1omenclatura de +unes
#ara o desenvolvimeno de aplica&'es !eb" (oi criado o =Daemen= 3-4 UJKH?,CK
para a declara&o de ($n&'es re(erenes 6 pro0eos !eb. -se comando " na pr;ica "
apenas pre(i/a a declara&o da ($n&o com 3L " por>m a s$a $ili7a&o ideni(ica %$e a
($n&o em %$eso (oi consr$<da Inica e e/cl$sivamene para ser chamada a parir de
$ma re%$isi&o E??# . -m adendo 6 ese" devemos $ili7ar os comandos 3-4
-5?-KF-F ,K,? ... -KF " disponivels no ,ncl$de =ap!ebe/.ch= " para proeger a
($n&o de ser chamada em $m ambiene %$e no o A#3-4-5.
$earando a Interface do Processamento
Ao desenvolver $ili7ando Advpl AD# " p;ginas A#E / AEJ" recomenda*se separar o
processameno da ,ner(ace" do seg$ine modo : Hriar $ma 3eb U$ncion para a
chamdada de $mna p;gina com coneIdo din)mico via lin9 .ap! " e $m ar%$ivo .A#E
o$ .AEJ de mesmo nome " %$e ser; chamado inernamene " de modo %$e o c+digo*
(one escrio na 3eb U$ncion se0a respons;vel para gerar as in(orma&'es a serem
disponibili7adas para o $s$;rio " e o .A#E conenha apenas a =m;scara= desas
in(orma&'es e o m<nimo de insr$&'es Advpl poss<vel para a monagem da p;gina. -se
processo (acilia a man$en&o de amobos os c+digos" pois o 3eb Fesigner %$e ir;
reali7ar $m a0$se no A#E no er; %$e =desviar= do (one Advpl inserido na p;gina " e o
Analisa / #rogramador %$e (ar; a man$en&o no c+digo Advpl preoc$par*se*; apenas
com o c+digo respons;vel para a gera&o dos dados %$e sero mascarados.
'tilizao das +unes de Infra-Estrutura
Arav>s dos comandos e ($n&'es disponibili7adas na ,n(ra*-sr$$ra A#3-4-5" no
mos a necessidade de recriar pares com$ns de c+digo para odos os pro0eos %$e se
$ili7em desa ecnologia" al>m de permiir arav>s de ponos de enrada
esraegicamene colocados na (erramena $m n<vel al<ssimo de c$somi7a&o para os
pro0eos desenvolvidos com esa ecnologia" de maneira pr;ica e ob0eiva.
11. 2onitoramento de /ites em WEBEX
Reviso: 17/12/200A
Abrangncia
2,4 3-4-5
C Cb0eivo de $ma ($n&o de .oniorameno de Dies > esar as ($ncionalidades
b;sicas de $m sie" reornando $ma mensagem E?.2 pr>*de(inida " indicando %$e es;
$do cero " e em caso de erro " $ma mensagem %$e proc$re ideni(icar o %$e es; de
errado.
#ara sies desenvolvidos em #rohe$s " $ili7ando a ecnologia 3-4-5 " devemos
criar $ma ($n&o espec<(ica para o sie " %$e ir; deerminar se o mesmo es;
operacional . -sa ($n&o ser; chamada arav>s de lin9 .ap!
Ve0amos o e/emplo abai/o" escrio para $m sie c$0as bases de dados eso n$m DQ2 "
acessadas via ?opHonnec. Kese e/emplo " a ($n&o chamada ser;
hp://servidor/JLDie.onior.ap! " e caso ese0a $do cero " ela reornar; a sring
=8D,?- CW:= " seg$ido da daa e hor;rio da e/ec$&o da roina. Q$al%$er reorno
di(erene diso poder; indicar $ma anomalia no ($ncionameno do sie.
Q$ando hospedado $m sie $ili7ando esa ecnologia no FaaHener da .a9ira " esa
in(orma&o gerada pela roina deve ser passada 6o depo de in(ra*esr$$ra" %$e
con(ig$rar; $m so(!are =.onior de Dies=" %$e ir; reali7ar a cada $m min$o $ma
re%$isi&o 6 $rl especi(icada " e ir; emiir $m alera ao Feparameno para %$e se0a
veri(icado o sie caso ha0a alg$ma (alha na resposa.
#include "protheus.ch"
#include "apwebex.ch"
User Function SiteMonitor()
Local cQuery , nQtdec

!! "eri#ica se a wor$in% &hread est' conectada co( o &)* ...
+# ,&-+s-onnected()
eturn ./or$in% &hread perdeu a conex0o co( o &)*.
1ndi#
!! "eri#ica se as tabelas principais est0o abertas ....
+# select(.S23.)45
eturn .&abela S23 n0o est' aberta ,,,.
1ndi#
+# select(.S-6.)45
eturn .&abela S-6 n0o est' aberta ,,,.
1ndi#
!! 1xecuta u(a 7uery de conta%e( de re%istros de u(a tabela do siste(a
cQuery 84 .S1L1-& count(9) as Q&:1- #ro( S23535.
)*1; QU1< cQuery 2L+2S .&M*-)U;&.
nQtdec 84 &M*-)U;&=>Q&:1-
-L)S1 QU1< .&M*-)U;&.
+# nQtdec45
eturn .Falha na -onta%e( de re%istros ! Query S23.
1ndi#
!! Se est' tudo certo , retorna u( ?&ML in#or(ando 7ue est' tudo )@
eturn .(S+&1 )@) .Adtos(date())A. .Ati(e()
$3*/E 9:ER;
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
H2CD- QJ-R\ cAlias
#ar)meros
Arg$meno ?ipo Fescri&o
cAlias Haracer
Alias sob o %$al o c$rsor da Q$erG (oi abero. Haso o alias
passado como par)mero no se enconre abero " a ($n&o
no gera nenh$ma ocorrncia de erro.
Fescri&o
Arav>s do comando Hlose Q$erG " reali7amos o (echameno de $ma %$erG abera
arav>s do comando C#-K QJ-R\.
A1E<=>* , :ma ?uer@ a+erta pelo comando *PE< 9:ER; de"e ser fecAada
pelo comando $3*/E 9:ER; . Poder8amos fecAar o alias a+erto atra"Bs de uma
9uer@ simplesmente com a funo C+$loseAreaDEF porBm isto deiGaria em a+erto
elementos internos de controle criados pelo comando *PE< 9:ER;.
*PE< 9:ER;
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
C#-K QJ-R\ ]cQ$erGN A2,AD ]cAliasN X XKCHEAKB-Y Y
#ar)meros
Arg$meno ?ipo Fescri&o
]cQ$erGN Haracer
cQ$erG corresponde 6 Dring conendo a Q$erG a ser
e/ec$ada no banco de dados
A2,AD ]cAliasN Haracer
cAlias corresponde ao nome do alias sob o %$al o c$rsor de
reorno dos dados pes%$isados ser; abero no ambiene
Advpl. Ko pode ser especi(icado $m nome de alias 0; em
$so" seno a aplica&o ser; (inali7ada com a ocorrncia de
erro 1Alias alreadG in Jse1
XKCHEAKB-Y Haracer
Haso especi(icada a cl;$sola KCHEAKB- na aber$ra da
%$erG " a sring em cQ$erG no ser; s$bmeida 6 ($n&o
HhangeQ$erG8:
Fescri&o
Arav>s do comando C#-K QJ-R\ " reali7amos a aber$ra de $ma Q$erG de b$sca no
4anco de Fados arav>s do RFF ?C#HCKK " reornando os dados cons$lados arav>s
de $m =A2,AD= Advpl.
Haso a Q$erG nao possa ser abera" por erro de sina/e " devido 6 hread a$al no esar
conecada com o ?opHonnec " o$ o$ro erro " ser; gerado $m log de erro " in(ormando
o Alias " o Dac9 8 #ilha de Hhamadas : de e/ec$co " e o coneIdo da Q$erG para
Feb$g.
*B/ERA=HE/ I2P*R1A<1E/
Ka monagem da sring da Q$erG " devemos especi(icar os comandos DQ2 " alias
e nomes de campos em leras maiIsc$las.
Q$ando $ili7amos o comando C#-K QJ-R\ " no precisamos passar a
e/presso da Q$erG arav>s da ($n&o HhangeQ$erG8:. -se proced$imeno 0; >
reali7ado inernamene pelo comando C#-K QJ-R\. #ara %$e a %$erG no se0a
s$bmeida 6 ($n&o HhangeQ$erG8:" devemos $ili7ar o par)mero
KCHEAKB-.
A $ili7a&o dese comando > impl<cia 6 2,4 A#3-4-5 " e necessia da
$ili7a&o do ^incl$de =Ap!ebe/.ch=
WEB EX1E<CEC E<C
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
3-4 -5?-KF-F -KF ]cEmlN X D?AR? ]cUnDarN Y
#ar)meros
Arg$meno ?ipo Fescri&o
]cEmlN Haracer
cEml corresponde 6 variavel %$e ser; $ili7ada para
arma7enar a Dring Eml %$e ser; reornada ao 4ro!ser
soliciane do processameno. Feve ser especi(icada $ma
vari;vel Dring " com coneIdo va7io. 811:
D?AR? ]cUnDarN Haracer
cUnDar corresponde 6o nome de $ma ($n&o Advpl %$e
ser; e/ec$ada para pr>*validar a e/ec$&o do reso do
c+digo. A ($n&o deve ser passada D-. parneses 8: .
Fescri&o
Fevemos $ili7ar ese comando para (echar $ma se&o abera pelo comando 3-4
-5?-KF-F ,K,? . #ara cada ocorrncia do comando 3-4 -5?-KF-F ,K,? " deve*
se er $m (echameno da mesma arav>s do comando 3-4 -5?-KF-F -KF "
devendo haver apenas $ma ocorrncia desa esr$$ra por ($n&o.
A $ili7a&o dese comando > implicia 6 3or9ing ?hreads iniciali7adas pela 2ib
A#3-4-5 " e a de(ini&o do mesmo es; no ar%$ivo ^incl$de =ap!ebe/.ch= " %$e deve
ser declarado no in<cio do ar%$ivo (one Advpl.
WEB EX1E<CEC I<I1
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
3-4 -5?-KF-F ,K,? ]cEmlN X D?AR? ]cUnDarN Y
#ar)meros
Arg$meno ?ipo Fescri&o
]cEmlN Haracer
cEml corresponde 6 variavel %$e ser; $ili7ada para
arma7enar a Dring Eml %$e ser; reornada ao 4ro!ser
soliciane do processameno. Feve ser especi(icada $ma
vari;vel Dring " com coneIdo va7io. 811:
D?AR? ]cUnDarN Haracer
cUnDar corresponde 6o nome de $ma ($n&o Advpl %$e
ser; e/ec$ada para pr>*validar a e/ec$&o do reso do
c+digo. A ($n&o deve ser passada D-. parneses 8: .
Fescri&o
Fevemos $ili7ar ese comando " 0$namene com o comando 3-4 -5?-KF-F -KF
%$ando monamos $ma ($nco 8 3eb U$ncion : %$e (oi consr$<da para ser chamada a
parir de $m 3eb 4ro!ser " %$ando nos $ili7amos das ($n&'es de ,n(ra*-sr$$ra
A#3-4-5.
Arav>s dele " > reali7ada $ma pr>*valida&o %$e ceri(ica %$e a e/ec$&o da ($n&o
somene ser; reali7ada caso a hread a$al se0a realmene $ma ?hread monada no
ambiene 3-4-5" al>m de podermos inserir $ma pr>*valida&o 8D?AR?: de e/ec$&o
espec<(ica para esa ($n&o.
Haso se0a especi(icada $ma ($n&o na cl;$s$la D?AR?" a mesma dever; reornar $ma
Dring. Reornando $ma Dring em branco " o processameno da ($n&o original ser;
e(e$ado normalmene . Haso a ($n&o reorne $ma sring no*va7ia " esa sring ser;
reornada para a vari;vel cEml " e o processameno do programa ser; desviado para a
linha do c+digo*(one imediaamene poserior 6o comando 3-4 -5?-KF-F -KF .
#ara cada ocorrncia do comando 3-4 -5?-KF-F ,K,? " deve*se er $m (echameno
da mesma arav>s do comando 3-4 -5?-KF-F -KF " devendo haver apenas $ma
ocorrncia desa esr$$ra por ($n&o.
A $ili7a&o dese comando > implicia 6 3or9ing ?hreads iniciali7adas pela 2ib
A#3-4-5 " e a de(ini&o do mesmo es; no ar%$ivo ^incl$de =ap!ebe/.ch= " %$e deve
ser declarado no in<cio do ar%$ivo (one Advpl.
En":ser.AP3 - EGemplo de :so com
ERP
Reviso: 1Z/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Arav>s do e/emplo pr;ico abai/o " $ili7amos em $m c+digo (one Advpl os ponos de
enrada disponibili7ados na ,n(ra*-sr$$ra A#3-4-5 para reali7ar a prepara&o de
$m ambiene -R# " Rese de Ambiene " (inali7a&o de ?hread" (inali7a&o de sessions
por ime*o$ e c$somi7a&o de mensagem de erro para o desenvolvimeno de $m
pro0eo de 3eb Die inegrado com o -R# .icrosiga.
Ce"emos adotar como padro para proIetos ?ue utiliJam APWEBEX a criao do
ar?ui"o KEn":ser.aplKF especificamente para a definio dos pontos de entrada
utiliJados pela Infra-Estrutura APWEBEXL e de"emos apenas compilar os fontes
dos pontos de entrada realmente necessMrios No proIeto.
#+;-LU:1 "*)&?1US.-?"
#+;-LU:1 "2*/1B1C.-?"
!9
4444444444444444444444444444444444444444444444444444444444444444444444
44444444444444
1xe(plo de 2r7uiDo de Lib de *roEeto 2*/1B1C , utiliFando os pontos de
entrada
da lib para preparaG0o de a(biente , reset de a(biente e trata(ento de
erro
utiliFando 2*/1B1C e( conEunto co( o 1* Microsi%a
4444444444444444444444444444444444444444444444444444444444444444444444
44444444444444 9!
!9
======================================================================
======
*onto de 1ntrada Start/eb1x( ;+L ) 4> .&. ou .F.
*onto de entrada executado na inicialiFaG0o de cada /or$in% &hread
( );S&2& )
H a respons'Del por preparar o a(biente para atender Is re7uisiGJes
/1B de lin$s .apw
;0o recebe parK(etro al%u( da lib , e deDe retornar .&. caso tenha
inicialFiado co( sucesso
ou .F. e( caso de #alha de inicialiFaG0o .
======================================================================
====== 9!
US1 Function Start/eb1x()
!! *repara o 2(biente 1*
*1*21 1;"+);M1;& L
1M*1S2 .53. L
F+L+2L .53. L
&2BL1S "MC3","MCN","MCO","MCP","MM3","MMN","MMO","MMP","MM6"
eturn .&.
!9
======================================================================
=========
*onto de 1ntrada -onnect/eb1x(cFn;a(e) 4> c?t(l ou ""
*onto de entrada executado i(ediata(ente antes do processa(ento de u(a
re7uisiG0o de u( lin$ .2*/
ecebe co(o parK(etro o no(e da #unG0o a ser executada, passada no
lin$.
:eDe retornar u(a Strin%, 7ue ser' retornada ao ao Browser
solicitante. -aso retorne u(a strin%
e( branco (DaFia) , a #unG0o ori%inal(ente solicitada Q executada pela
lib.
-aso contr'rio, a #unG0o ori%inal n0o Q executada , e a strin%
retornada Q enDiada ao Browser.
======================================================================
========= 9!
US1 Function -onnect/eb1x(cFn;a(e)
Local c?t(l-onn 84 ..
conout(."ou executar .AcFn;a(e)
eturn c?t(l-onn
!9
======================================================================
=========
*onto de 1ntrada eset/eb1x(cFn;a(e) 4> c?t(l ou ""
FunG0o cha(ada i(ediata(ente 2pos a execuG0o de u(a re7uisiG0o .2*/
ecebe co(o parK(etro o no(e da #unG0o executada, e per(ite ta(bQ( 7ue
seEa acrescentado
al%o a (ais no ?t(l a ser retornado ao Browser.
======================================================================
========= 9!
US1 Function eset/eb1x(cFn;a(e)
Local c?t(l-onn 84 ..
conout(.&er(inei de executar .AcFn;a(e)
eturn c?t(l-onn
!9
======================================================================
=========
*onto de 1ntrada F+;+S?/1B1C()
FunG0o cha(ada no #echa(endo do a(biente de u(a wor$in% &hread. 2pos a
execuG0o deste ,
a &hread utiliFada Q eli(inada da (e(Rria .
======================================================================
========= 9!
US1 Function F+;+S?/1B1C()
conout(.FinaliFando a /or$in% &hread..)
eturn
!9
======================================================================
=========
*onto de 1ntrada 1;:S1SS+);(cSession+d) 4> ;+L
*onto de entrada cha(ado e( u(a wor$in% &hread 7uando a session de u(
usu'rio ser'
eli(inada da (e(Rria por ti(e=out. ecebe co(o para(etro o +d de
sessions de usuario
7ue est' sendo #inaliFado.
======================================================================
========= 9!
US1 Function 1;:S1SS+);(cSession+d)
-onout("Sesssion "AcSession+dA" li(pa da (e(Rria...")
eturn
!9
======================================================================
======
*onto de 1ntrada /eb1x1rror(e,c1rrorLo%,c?t(l) 4> c-usto(?t(l ou ""
1sta #uncao Q cha(ada pela rotina de trata(ento de erro /1B1C , 7uando
ocorre u( erro #atal ,
e per(ite 7ue seEa retornado u( ?t(l de trata(ento de erro
di#erenciado. 1la recebe co(o
para(etro o obEeto do erro , a (ensa%e( 2S-++ 7ue #oi acrescentada ao
ar7uiDo error.lo% ,
e o ?t(l ori%inal (ontado pela rotina de trata(ento de erro de#ault .
+M*)&2;&1 8 *or se( u( ponto de entrada executado e( u( (o(ento
crStico (trata(ento
de erro ) , esta #unG0o deDe ser o (ais suscinta e si(ples possSDel ,
n0o utiliFando
sessions, banco de dados , etc....
======================================================================
====== 9!
US1 Function /eb1x1rror(o1rror,c1rrorLo%,c?t(l)
Local c-usto(?t(l 84 ..
!! Monta (ensa%e( de erro (ais a(i%aDel ...
c-usto(?t(l A4 ..
c-usto(?t(l A4 ..
c-usto(?t(l A4 ..
c-usto(?t(l A4 ..
c-usto(?t(l A4 ..
c-usto(?t(l A4 .
.
c-usto(?t(l A4 .
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 += 'fecada! e uma nova janela seja a"erta para retornar #
navega$%o do site.
.
c-usto(?t(l A4 .
.
c-usto(?t(l A4 .
.
c-usto(?t(l A4 ..
c-usto(?t(l A4 ..
eturn c-usto(?t(l
EGemplo da funo E/$APE
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Kos e/emplo abai/o" $ili7amos a ($n&o escape8: para (ormaar par)meros para inserir
em $ma JR2.
cUrl 84 .http8!!localhost!webin#o.apw.
c*2ra(3 84 .&este de *ara(etro 53=5N.
c*2ra(N 84 .#reserDa#.
c*2ra(O 84 .3ANAO.
cUrl A4 .T*ar534. A escape(c*2ra(3) A .U*2r5N4. A escape(c*2ra(N) A
.U*ar5O4. A escape(c*2ra(O)
!! ) conteudo de cUrl deDer' ser "http8!!localhost!webin#o.apwT
*ar534&esteVN5deVN5*ara(etroVN553=5NU*2r5N4VNOreserDa
VNOU*ar5O43VNBNVNBO" , prRprio para a (onyahe( de u( lin$ .
EGemplo da funo
'E1O*BPR*P/1RI<'
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
C e/emplo abai/o " e/ec$ado em $ma hread iniciada a parir de $m _C4 3-4-5"
rec$pera alg$mas con(ig$ra&'es a$ais em $so para ese _C4.
cWob&ype 84 XetWob*ro#Strin%(.type.,.(e(pty). )
c+nstances 84 XetWob*ro#Strin%(.+nstances.,.(e(pty). )
c+nac&i(e 84 XetWob*ro#Strin%(+nactiDe&i(eout.,.(de#ault). )
c1xp&i(e 84 XetWob*ro#Strin%(.1xpiration&i(e.,.(de#ault). )
EGemplo da funo 'E1PARA3:E
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Ko e/emplo abai/o " so monados dois arraGs m$li*dimensionais " com 2 dimens'es "
e so reali7adas b$scas nos mesmos e/plorando odas as possibilidades de $so da
($n&o Be#arVal$e8:
Local a&este3 84 YZ
Local a&esteN 84 YZ
2add(a&este3,Y"2lias","&M*3"Z)
2add(a&este3,Y"elacao","NxO"Z)
2add(a&esteN,Y"2lias","&M*N"Z)
2add(a&esteN,Y"+n#o","===+n#or(aG0o adicional==="Z)
!! Busca apenas no array ateste3
c2lias 84 Xet*ar"alue("2L+2S",a&este3)
celacao 84 Xet*ar"alue("1L2-2)",a&este3)
c+n#o 84 Xet*ar"alue("+;F)",a&este3)
:1F2UL& c2lias 84 "(nao encontrado)"
:1F2UL& celacao 84 "(nao encontrado)"
:1F2UL& c+n#o 84 "(nao encontrado)"
conout(c2lias) !! &M*3
conout(celacao) !! NxO
conout(c+n#o) !! (nao encontrado)
!! Busca apenas no array atesteN
c2lias 84 Xet*ar"alue("2L+2S",a&esteN)
celacao 84 Xet*ar"alue("1L2-2)",a&esteN)
c+n#o 84 Xet*ar"alue("+;F)",a&esteN)
:1F2UL& c2lias 84 "(nao encontrado)"
:1F2UL& celacao 84 "(nao encontrado)"
:1F2UL& c+n#o 84 "(nao encontrado)"
conout(c2lias) !! &M*N
conout(celacao) !! (nao encontrado)
conout(c+n#o) !! ===+n#or(aG0o 2dicional===
!! Busca e( a(bos os 2rrays
!! *ri(eiro no a&este3 e depois no a&esteN
c2lias 84 Xet*ar"alue("2L+2S",a&este3,a&esteN)
celacao 84 Xet*ar"alue("1L2-2)",a&este3,a&esteN)
c+n#o 84 Xet*ar"alue("+;F)",a&este3,a&esteN)
conout(c2lias) !! &M*3
conout(celacao) !! NxO
conout(c+n#o) !! ===+n#or(aG0o 2dicional===
EGemplo da funo #EX/1RC:2P
Reviso: 1`/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Arav>s do e/emplo abai/o" geramos a sring com o FJ.# de $m ar%$ivo E?.2"
salvo na pasa 3-4 a parir do Roo#ah do -nvironmen. C F$mp do ar%$ivo ser;
mosrado no Honsole do servidor e no 3eb 4ro!ser %$e solicio$ a ($n&o
JLF$mp?es.ap! .

#include "protheus.ch"
#include "apwebex.ch"
User Function :u(p&est()
Local c?t(l 84 ..
Local c&C&File 84 ..
Local c:u(p 84 ..
/1B 1C&1;:1: +;+& c?t(l
!! Le o ar7uiDo
c&&CFile 84 (e(oread(.[/eb[:e#ault.ht(.)
!! Xera a strin% co( o :u(p do ar7uiDo
c:u(p 84 ?1xStr:u(p(c&&CFile)
!! Mostra o :u(p no console
conout(c:u(p)
!! Xera ?&ML para a DisualiFaG0o do :UM*
c?t(l 84 "ar+n#o(.:UM*.,?t(lnota%s(c:u(p),,.t.,.#.)
/1B 1C&1;:1: 1;:
eturn c?t(l
!9
1xe(plo do &exto (ostrado no -onsole
?exS&:u(p ( Strin% NO\ ! Start 3 ! Len%th NO\ )
======================================================================
=========
O- P] 6P P: P- O1 O- P] P6 P3 PP O1 5: 52 O- P: ^ _?&ML>_?12:>``_M
P6 6P P3 N5 P] 6P 6P 65 N: P6 63 66 Pa 6b O: NN ^ 1&2 ?&&*=1QU+"4"
PO bF b1 \P b6 b1 \P N: 6P \a \5 b6 NN N5 bO bF ^ -ontent=&ype" co
b1 \P b6 b1 \P O: NN \P b6 \] \P NF b] \P b: b- ^ ntent4"text!ht(l
NN 5: 52 O- P: P6 6P P3 N5 P] 6P 6P 65 N: P6 63 ^ "``_M1&2 ?&&*=1Q
66 Pa 6b O: NN \5 \N b3 b\ b: b3 NN N5 bO bF b1 ^ U+"4"pra%(a" con
\P b6 b1 \P O: NN b1 bF N: bO b3 bO b] b6 NN O1 ^ tent4"no=cache">
5: 52 O- P: P6 6P P3 N5 P] 6P 6P 65 N: P6 63 66 ^ ``_M1&2 ?&&*=1QU
Pa 6b O: NN P6 \] \5 ba \N b6 \O NN N5 bO bF b1 ^ +"4"1xpires" con
\P b6 b1 \P O: NN N: O3 NN O1 5: 52 O- P: P6 6P ^ tent4"=3">``_M1&
P3 N5 P] 6P 6P 65 N: P6 63 66 Pa 6b O: NN 6N b6 ^ 2 ?&&*=1QU+"4"e
bb \N b6 \O b] NN N5 bO bF b1 \P b6 b1 \P O: NN ^ #resh" content4"
O5 OB N5 \6 \N b- O: NF \\ 6F \\ P6 \] O5 O5 O5 ^ 5L url4!w`w1x555
N1 b3 \5 \\ NN O1 O- NF P] P6 P3 PP O1 5: 52 O- ^ .apw">_!?12:>``_
NF P] P6 P3 PP O1 O- NF P] 6P P: P- O1 ^ !?12:>_!?&ML>
======================================================================
=========
9!
EGemplo da funo #123<*1A'/
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Ko e/emplo abai/o " a ($n&o EmlKo?ags > $ili7ada para permiir a $ili7a&o de
caraceres especiais no coneIdo de $m inp$ para $m (orm$l;rio Eml.
Local c?t(l 84 ""
Local c+nput 84 ""
!! -onteudo do ca(po co( ta%s ?&ML intepret'Deis
c+nput 84 ..
!! 2o (ontar o +nput , aplicar a ?t(l;o&a%s() ao conteudo do (es(o.
c?t(l A4 .
'+HtmlNoTags(
.
EGemplo da funo RECIRPA'E
Reviso: 10/12/200A
Kos e/emplos abai/o" a ($n&o redirpage > $ili7ada para gerar o scrip de
redirecionameno em d$as si$a&'es espec<(icas.
!9
1( u(a deter(inada #unG0o , caso u( parK(etro n0o seEa passado , o
usu'rio deDer' retornar a u(a outra tela
9!
...
+# e(pty(http%et=>(eupara()
!! *arK(etro n0o in#or(ado , Dolta pro lo%in
c?t(l 84 edir*a%e(.!/`Lo%in.apw.)
1lse
!! *ara(etro )$ , executa o 2*? #or(teste
c?t(l 84 1xec+npa%e(.For(&este.)
1ndi#
...
!9 2o cha(ar u(a tela de download , (ostrar u(a (ensahe( e iniciar u(
download auto(atica(ente 9!
...
c?t(l A4 .
...(ensa%e( de download...
.
!! :eDolDe script de redireciona(ento apontando para o ar7uiDo
!! co( o tar%et `blan$ , para ser aberto e( u(a noDa Eanela.
c?t(l A4 edir*a%e(.!downloads!ar7uiDo.Fip.,.`blan$.)
...
EGemplo da funo RE1/93A$E
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Ko e/emplo abai/o " $ili7amos a ($n&o ReD%lAce para monar $ma %$erG de b$sca
por <$lo de $ma deerminada in(orma&o " considerando odas as possibilidades de
acen$a&o " independenemene de como o banco (oi alimenado e/o$ a sring de b$sca
(oi digiada.
I2P*R1A<1E , Ka e/presso da Q$erG " o campo da abela deve ser passado pela
($n&o 2C3-R do 4Anco " pois a ($n&o res%lace mona a sring para b$sca com
leras minIsc$las.
cFind 84 .acentuaG0o.
cQuery 84 "S1L1-& 9 F)M " A etS7l&ab(.MM3.)
cQuery A4 "/?11 L)/1(MM3`&+&UL)) L+@1 .V"AetS7l2ce(cFind)A"V. "
EGemplo da funo A31*/93
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5

cQuery 84 "S1L1-& 9 F)M F2N535 "
cQuery A4 "/?11 F2N`F+L+2L 4 " A "al&oS7l(.5N.)
cQuery A4 "2;: F2N`:&+;- _4 " A "al&oS7l(date())
) exe(plo aci(a , caso escrito de #or(a a realiFar as conDersJes
especS#icas para cada tipo de contecdo seria o e7uiDale(te ao cRdi%o
abaixo 8
cQuery 84 "S1L1-& 9 F)M F2N535 "
cQuery A4 "/?11 F2N`F+L+2L 4 .5N. "
cQuery A4 "2;: F2N`:&+;- _4 " A :&)S( date() )
EGemplo da funo ARI<P*
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Ko e/emplo abai/o " > gerada $ma sring E?.2 com as in(orma&'es do reorno da
chamada de d$as ($n&'es b;sicas da 2ing$agem Advpl.
User Function +n#o&este()
Local c?t(l 84 ..
c?t(l A4 "ar+n#o(d:atee,date())
c?t(l A4 "ar+n#o(d&i(ed,ti(e())
eturn c?t(l
!9 :eDe ser %erado u( echo no -onsole do SerDidor parecido co( este
abaixo
:ate => : ( 35) f5]!3N!N55Og
&i(e => - ( ]) fN583\8P]g
9!
EGemplo das fun7es de acentuao
ApWe+EX
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Ko e/emplo abai/o" vemos a di(eren&a de comporameno enre as ($n&'es b;sicas da
2ing$agem Advpl Jpper8: e 2o!er8: " e a ($n&o de ,n(ra*esr$$ra Hapial8:" em
rela&o 6s ($n&'es da ,n(ra*esr$$ra A#3-4-5 JpperAce8: " 2o!erAce8: e
HApialAce8: " %$ando $ili7amos caraceres acen$ados.
cetorno 84 ""
cFrase 84 "n0o h' 1C*L+-2hi1S considerando excessJes *22 )
inexplic'Del."
cetorno A4 ")ri%inal .......... " A cFrase A -LF
cetorno A4 "Upper() ........... " A upper(cFrase) A -LF
cetorno A4 "Lower() ........... " A lower(cFrase) A -LF
cetorno A4 "-apital() ......... " A capital(cFrase) A -LF
cetorno A4 "U**12-1() ........ " A U**12-1(cFrase) A -LF
cetorno A4 "L)/12-1() ........ " A L)/12-1(cFrase) A -LF
cetorno A4 "-2*+&2L2-1() ...... " A -2*+&2L2-1(cFrase) A -LF
!9
;este ponto , a Dari'Del cetorno deDer' conter 8
)ri%inal .......... n0o h' 1C*L+-2hi1S considerando excessJes *22 )
inexplic'Del.
Upper() ........... ;0) ?' 1C*L+-2hi1S -);S+:12;:) 1C-1SSJ1S *22 )
+;1C*L+-'"1L.
Lower() ........... n0o h' explicahies considerando excessJes para o
inexplic'Del.
-apital() ......... ;0o ?' 1xplicahies -onsiderando 1xcessJes *ara )
+nexplic'Del.
U**12-1() ........ ;j) ?k 1C*L+-2hi1S -);S+:12;:) 1C-1SSi1S *22 )
+;1C*L+-k"1L.
L)/12-1() ........ n0o h' explicaGJes considerando excessJes para o
inexplic'Del.
-2*+&2L2-1() ...... ;0o ?' 1xplicaGJes -onsiderando 1xcessJes *ara )
+nexplic'Del.
9!
EGemplos das fun7es <1*$ e $1*<
Reviso: 1Z/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Ko e/emplo abai/o " $ili7amos as ($n&'es con e noc para reali7ar convers'es de
nImeros em base decimal para o$ras bases n$m>ricas e vice*versa.
n;u(3 84 -&);(.53353553.,N) !! -onDerte bin'rio para deci(al
n;u(N 84 -&);(.55:2N6F1.,3b) !! -onDerte ?exadeci(al para deci(al
n;u(3AA !! So(a 3 ao nu(ero e( n;u(3
n;u(NAA !! So(a 3 ao nu(ero e( n;u(N
c;u(3 84 ;to-(n;u(3,N,]) !! -onDerte para bin'rio noDa(ente
c;u(N 84 ;to-(n;u(N,3b,]) !! -onDerte para ?exa noDa(ente
!9
======================================================================
===
2o #inal do pro%ra(a , c;u(3 ser' "53353535" e c;u(N ser' "55:2N6FF"
======================================================================
=== 9!
APWEXACCERR
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
A#3-5AFF-RR 8 X c?i$lo Y " X c,n(o Y : **N .?.
#ar)meros
Arg$meno ?ipo Fescri&o
c?i$lo Haracer
c?i$lo corresponde a $m <$lo ideni(icador da
in(orma&o. Feve er no m;/imo 20 caraceres. Cs
caraceres acima da vig>sima posi&o sero ignorados.
c,n(o Haracer
c,n(o corresponde 6 ,n(orma&o a ser acrescenada ao
-RRCR.2CB em caso de erro.
Reorno
?ipo Fescri&o
2+gico -sa ($n&o sempre reorna .?.
Fescri&o
Arav>s da ($n&o Ap3-/Add-rr8:" podemos acrescenar $ma sring de in(orma&'es
adicionais em $m b$((er em mem+ria" descarregado na gera&o do -RRCR.2CB no
caso de $ma ocorrncia de erro (aal na :orking thread a$al.
Haso a ($n&o se0a chamada sem nenh$m par)mero" a Ilima ocorrncia acrescenada
pela ($n&o > eliminada da pilha inerna de in(orma&'es.
A/E123# : -sa ($n&o deve ser apenas $ili7ada em casos de necessidade de
oben&o de in(orma&'es espec<(icas acerca de $ma ocorrncia de erro no reprod$7ida
em ambiene de eses e/o$ no dep$r;vel" pois se$ $so desnecess;rio pre0$dica a
per(ormance da aplica&o (inal.

$API1A3A$E
Reviso: 08/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
HA#,?A2AH- 8 ] cDring N : **N cDrHapial
#ar)meros
Arg$meno ?ipo Fescri&o
cDring Haracer Dring a ser converida.
Reorno
?ipo Fescri&o
Haracer
Dring res$lane converida para m$nIsc$lo " com as primeiras leras das
palavras signi(icanes em maiIsc$lo.
Fescri&o
Demelhane 6 ($n&o de ,n(ra*esr$$ra Hapial8: " por>m convere amb>m caraceres
acen$ados.
A ($n&o HapialAce8: convere odos os caraceres de $ma Dring para =minIsc$lo= " e a
primeira lera das palavras signi(icanes para maiIsc$lo" semelhane 6 ($n&o Hapial8: "
por>m considera e convere amb>m caraceres acen$ados em C-. e/o$ AKD,.
$1*<
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
H?CK 8 ] cDring N " ] n4ase N : **N nK$mero
#ar)meros
Arg$meno ?ipo Fescri&o
cDring Haracer
cDring corresponde 6 represena&o de $m nImero em
o$ra base n$m>rica" compreendida enre 2 e AZ.
n4ase K$m>rico
n4ase corresponde 6 base n$m>rica $ili7ada pelo n$mero
represenado em cDring.
Reorno
?ipo Fescri&o
K$m>rico KImero recebido como par)mero em noa&o decimal 8 4ase 10 :
Fescri&o
Honvere $m nImero represenado em Dring " de base 2 a AZ " para $m nImero em base
decimal 810:.
#&servao Imortante 4
Do considerados caraceres v;lidos para compor $m nImero de base AZ os 10
algarismos n$m>ricos de 0 a a e os 2Z caraceres al(ab>icos maiQsculos compreendidos
enre A e b. Q$ais%$er caracees presenes na Dring de par)mero (ora desa (ai/a de
dados e/o$ (ora da base 8 por e/emplo " $ma converso de sring base 2 * bin;rio * da
sring =01001020= : reornar; *1 8 menos $m : .
E/$APE
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
-DHA#- 8 ] cDring N : **N c-scaped
#ar)meros
Arg$meno ?ipo Fescri&o
cDring Haracer cDring > $ma se%$ncia de caraceres a ser processada.
Reorno
?ipo Fescri&o
Haracer
c-scaped corresponde 6 sring original " com os caraceres reservados
$ili7ando a noa&o cEE .
Fescri&o
A ($n&o -scape8: deve ser $ili7ada para reali7ar convers'es de caraceres especiais e
reservados %$ando da necessidade de passagem de par)meros via JR2 .
A sina/e de $ma re%$isi&o via JR2 para a passagem de par)meros >:
(link)Gpara.=conte#doHpara.I=conte#doIH"""
Q$ando passamos par)meros via $rl " devemos omar o c$idado de no $ili7ar
caraceres reservados e especiais nos nomes e coneIdos de par)meros. #ara reali7ar
esas convers'es" $ili7amos a ($n&o -scape8:
EXE$I<PA'E
Reviso: 12/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
-5-H,K#AB- 8 ] cA#E#age N : **N cE?.2#age
#ar)meros
Arg$meno ?ipo Fescri&o
cA#E#age Haracer
Horresponde 6o nome do A#E %$e deve ser e/ec$ado"
sem a e/enso.
Reorno
?ipo Fescri&o
Haracer cEml#age corresponde 6 sring E?.2 gerada pela p;gina A#E / AEJ.
Fescri&o
Arav>s da ($n&o -/ec,n#age8:" e/ec$amos $ma p;gina A#E passada como
par)mero. A ($n&o dever; reornar a Dring E?.2 correspondene 6 p;gina
processada.
#or>m a ($n&o -/ec,n#age8: reali7a raamenos adicionais padro relacionaodo 6o
comporameno dos #ro0eos 3-4 re(erenes 6 c$somi7a&'es" da seg$ne maneira :
1. #rimeiro > veri(icado se e/ise $ma p;gina AEJ compilada com o nome
cA#E#age. Haso e/isa " a mesma ser; e/ec$ada pela e/ecinpage.
2. Haso no e/isa AEJ com ese nome " > proc$rado pelo A#E. Haso o A#E
e/isa " o mesmo ser; e/ec$ado pela -/ec,n#age.
A. Haso no e/isam no R#C a$al o A#E nem o AEJ com o nome especi(icado
no par)mero cA#EUile" o processameno > aborado com a ocorrncia de erro
5APWEXE..677789 APH a0e 5:cAPHPa0e;9 not found in <.P#
4. Anes de e/ec$ar o A#E o$ AEJ ideni(icado nos passos aneriores" >
veri(icado se e/ise $m pono de enrada 8 Jser U$ncion : compilado com o
mesmo nome do A#E. Haso e/isa " o pono de enrada > e/ec$ado . -le dever;
reornar $ma Dring E?.2. De (or reornada alg$ma sring " a ($n&o reorna a
ring reornada e no processa o A#E / AEJ. #&servao 4 1 f#nJKo
-+ecIn7age nKo irL e+ec#tar este trata.ento da 2ser F#nction co. o no.e de
c17H7age caso a f#nJKo -+ecIn7age() esteMa sendo e+ec#tada atraNs de #.a
2S-B F2*C,I8* .
#&servao Imortante - Envio arcial de H/=% >o Bro?ser<
A ($n&o -/ec,npage8:" 0$namene com o A#E compilado" ao serem processados iro
enar enviar o coneIdo E?.2 para o 4ro!ser soliciane d$rane o processameno" de
modo %$e a ($n&o normalmene ir; reornar $ma Dring va7ia.
Haso se0a necess;ria a e/ec$&o de $ma p;gina A#E o$ AEJ e o no*envio da mesma
para o 4ro!seV por e/emplo para a gera&o de $m c+digo E?.2 a ser enviado via e*
mailV revemos $ili7ar a ($n&o EpDe#ar8:" reali7ando $ma chamada da mesma anes
da -/ec,n#age8: " passando o par)mero .U. para desabiliar emporariamene o envio de
E?.2 sim$l)neo ao 4ro!ser" e ap+s a e/ec$&o da -/ec,n#age8:" devemos re*
habiliar o envio sim$l)neo arav>s da chamada da ($n&o EpDe#ar8: com o
par)mero .?.
EXI/1PA'E
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
-5,D?#AB- 8 ] cAphUile N : **N lUo$nd
#ar)meros
Arg$meno ?ipo Fescri&o
cAphUile Haracer
Kome do ar%$ivo A#E" sem e/enso e sem pah " a ser
veri(icado.
Reorno
?ipo Fescri&o
Haracer
Reorna $m valor booleano indicando se o ar%$ivo A#E especi(icado es;
compilado no R#C do ambiene a$al.
Fescri&o
Jili7amos a ($n&o -/is#age8: para ideni(icarmos no ambiene a$al se $m
deerminado ar%$ivo .A#E enconra*se compilado a$almene no R#C em $so.
-/emplo :
+# 1xist*a%e(.teste.)
conout(.teste.aph co(pilado neste *).)
1lse
conout(.teste.aph ;2) co(pilado neste *).)
1ndi#
EXI/1:/RPA'E
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
-5,D?JDR#AB- 8 ] cAh$Uile N : **N l-/is
#ar)meros
Arg$meno ?ipo Fescri&o
cAh$Uile Haracer
Kome do ar%$ivo AEJ" sem e/enso e sem pah " a ser
veri(icado
Reorno
?ipo Fescri&o
2+gico
Reorna $m valor booleano indicando se o ar%$ivo A#E especi(icado es;
compilado no R#C do ambiene a$al.
Fescri&o
Jili7amos a ($n&o -/isJDR#age8: para ideni(icarmos no ambiene a$al se $m
deerminado ar%$ivo .AEJ enconra*se compilado a$almene no R#C em $so.
-/emplo :
+# 1xistUS*a%e(.teste.)
conout(.teste.ahu co(pilado neste *).)
1lse
conout(.teste.ahu ;2) co(pilado neste *).)
1ndi#
'E1O*BPR*P/1RI<'
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
B-?_C4#RCUD?R,KB 8 ] cWeG N " ] cFe(a$l N : **N cWeGVal$e
#ar)meros
Arg$meno ?ipo Fescri&o
cWeG Haracer
cWeG corresponde 6 chave da se&o de con(ig$ra&o da
3or9ing ?hread a$al a ser reornada.
cFe(a$l Haracer
Valor de(a$l 8sring: a ser reornado pela ($n&o caso a
chave especi(icada no seh0a enconrada no .,K,
Reorno
?ipo Fescri&o
Haracer
Hone$do da Hhave soliciada . Haso a chave no se0a enconrada " >
reornado o cone$do de cFe(a$l . Haso esa ($n&o no se0a e/ec$ada a
parir de $ma 3or9ing ?hread " ela reornar; $ma sring em branco 811:
Fescri&o
Arav>s desa ($n&o " podemos rec$perar as con(ig$ra&'es do _ob da 3or9ing ?hread
a$al.
'E1WEXER/I*<
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
B-?3-5V-RD,CK 8 : **N c4$ild,d
Reorno
?ipo Fescri&o
Haracer
Horresponde 6 Dring ,deni(icadora da verso " no (ormao ]2,4N
V.AA..FFEEmm . Vide ?abela A
Fescri&o
-sa ($n&o no re%$er arg$menos " e reorna o ,deni(icador do b$ild / verso de
Release das ($n&'es de ,n(ra*-sr$$ra A#3-4-5.
*+ser"ao , A data informada pela "erso no corresponde N ultima compilao
do RP* de um determinado ProIeto WEBF mas sim N data de release da 3IB de
Infra-Estrutura APWEBEX.
Tabela A
/im+olo Cescrio
AA Ano de gera&o da 2ib
.. .s da gera&o da 2ib
FF Fia da gera&o da 2ib
EE Eor;rio da gera&o da 2ib
mm .in$os do Eor;rio de Bera&o da 2ib
8E??#:
,ndica %$e a verso (oi compilada com a con(ig$raco de envio progressivo de
E?.2 sim$l)neo para o 4ro!se . -sa op&o > imprescind<vel para pro0eos
%$e se $ili7am desa 2,4.
#or e/emplo :
A#3-4-5 Version A.0A12021a00 8E??#:
#EX/1RC:2P
Reviso: 1`/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
E-5D?RFJ.# 8 ] cDring N " X nDar Y " X n2engh Y : **N cE-/F$mp
#ar)meros
Arg$meno ?ipo Fescri&o
cDring Haracer Dring a ser lida para a gera&o do F$mp
nDar K$m>rico
Horresponde 6 posi&o inicial de cDring a ser considerada
para a gera&o do F$mp" a parir da posi&o 1. Haso ese
par)mero no se0a in(ormado " o Fe(a$l > a posi&o 1 da
sring.
n2engh K$m>rico
n2engh corresponde 6o amanho a ser considerado para a
gera&o do FJ.# a parir da posi&o inicial recebida em
nDar. Haso ese par)mero no se0a in(ormado" >
considerado o amanho a> o (inal da Dring.
Reorno
?ipo Fescri&o
Haracer
C reorno da ($n&o corresponde 6 $ma sring Advpl " (ormaadas em 1Z
bGes em he/adecimal por linha " mais o separador pipe 8d: " mais os 1Z
caraceres em Ansi. Cs caraceres de conrole 8 codigo ascii menor %$e A2 :
so converidos para vis$ali7a&o para o caracere $nderline 8L:
Fescri&o
Arav>s da ($n&o He+Str0#.p()" podemos gerar $ma sring em Advpl em (ormao de
F$mp Ee/adecimal a parir da sring in(ormada como par)mero" a parir de $ma
deerminada posi&o da sring" considerando $m nImero de bGes in(ormado.
Haso os par)meros n#os,ni e n?amDring no se0am in(ormados" o d$mp gerado
corresponde a sring recebida como par)mero em s$a oalidade.
#&servao 4
Ko devemos pasar para a ($n&o Ee/DrF$mp $ma sring maior %$e 240 Wb " pois a
gera&o da Dring de d$mp > reali7ada em mem+ria" sendo a sring (inal gerada em
m>dia 4"2 ve7es maior %$e a sring passada como par)mero. Haso a sring passada
como par)mero se0a maior %$e 240 Wb " a e/ec$&o ser; aborada com a ocorrncia de
erro (aal 1string si;e oerflo:1
#123<*1A'/
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
E?.2KC?ABD 8 ] cDrEml N : **N cDrKo?ags
#ar)meros
Arg$meno ?ipo Fescri&o
cDrEml Haracer
cDrEml corresponde a $ma Dring %$e no pode coner
caraceres Eml inerpre;veis.
Reorno
?ipo Fescri&o
Haracer
Dring original com os caraceres inerpre;veis Eml ] N P 1 converidos
para caraceres no*inerpre;veis.
Fescri&o
A U$n&o E?.2KC?ABD convere as ?ags inerpre;veis de $ma Dring E?.2 para
?ABD no inerpre;veis. -se rec$rso > normalmene $ili7ado %$ando precisamos
monar $m inp$ Eml com $m cone$do %$e nao pode ser inerpreado pelo bro!ser
como $ma ?ag . -sa ($n&o apenas convere os caraceres ] 8 menor %$e : " N 8 maior
%$e : " P 8 e comercial : e e 8 aspas d$plas : .
Recomenda-se fortemente ?ueF na monta6em do "alue de um input Atml F o
conteQdo do mesmo seIa colocado entre aspas duplasF pois caso o conteQdo do
"alue inicial do campo contenAa aspas simples D no con"ertidas pela funo
#tml<o1a6sE F isto poderM ocasionar perda de dados e erro de sintaGe no
formulMrio #tml.
#11PI/WEBEX
Reviso: 12/12/200A
Dina/e
E??#,D3-4-5 8 : **N l,sAp3-4-5
Reorno
?ipo Fescri&o
2+gico
A ($n&o reornar; .?. caso o ambiene de e/ec$&o a$al se0a $ma
3or9ing ?hread 3-4-5 " iniciali7ada pela ($n&o de in(ra*esr$$ra
D?AR?3-4-5.
Fescri&o
Arav>s da ($n&o Ep,s3eb-/8: > poss<vel ideni(icarmos se o programa a$al es;
sendo e/ec$ado arav>s de $ma 3or9ing ?hread iniciali7ada $ili7ando*se as ($n&'es
de ,n(ra*-sr$$ra A#3-4-5
I/E2AI3
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
,D-.A,2 8 ] c-.ail N : **N l-mailC9
#ar)meros
Arg$meno ?ipo Fescri&o
c-.ail Haracer
c-mail corresponde a sring a ser anali7ada " conendo $m
e apenas $m endere&o de e*mail.
Reorno
?ipo Fescri&o
Haracer
Reorna .?. caso a sring recebida como par)mero aenda 6s de(ini&'es de
nomencla$ra v;lidos para $m endere&o de e*mail.
Fescri&o
Jili7ada para validar e*mails em Advpl " a ($n&o ,D-.A,2 recebe como par)mero
$ma sring conendo $m e*mail " reornando .?. caso a sring ese0a em $m (orm;o
v;lido respeiando a regra para nomencla$ra de endere&os de e*mail.
Re6ra , Jm e*mail > considerado v;lido caso se0a iniciado por $m caracer " apenas
conenha caraceres asc de a a 7 e 0 a a " e os caraceres f 8arroba: " . 8pono: " * 8 h<(en:
o$ L 8$nderline: V e deve coner $ma e apenas $ma arroba " e no minimo $m pono apos
a arroba" inercalado por $m caracer.
3*WERA$E
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
2C3-RAH- 8 ] cDring N : **N cDr2o!er
#ar)meros
Arg$meno ?ipo Fescri&o
cDring Haracer
cDring > a se%$ncia de caraceres a ser converida para
leras minIsc$las.
Reorno
?ipo Fescri&o
Haracer Dring original em leras minIsc$las.
Fescri&o
A U$n&o 2C3-RAH- convere odos os caraceres de $ma Dring para emin$sc$log "
semelhane 6 ($n&o 2C3-R8: " por>m considera e convere amb>m caraceres
acen$ados em AKD,.
<1*$
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
K?CH 8 ] nK$mero N " ] n4ase N " ] n?amDr N : **N cDring
#ar)meros
Arg$meno ?ipo Fescri&o
nK$mero K$m>rico
nK$mero > o valor n$m>rico " em base devimal " a ser
converido.
n4ase K$m>rico
n4ase corresponde 6 base bin;ria a ser $ili7ada para
converer nK$mero.
n?amDr K$m>rico
n?amDr corresponde ao amanho da sring represenando
o n$mero na base dese0ada .
Reorno
?ipo Fescri&o
Haracer
cDring corresponde ao n$mero converido para a base n$m>rica
especi(icada como par)mero.
Fescri&o
A U$n&o K?CH convere $m nImero em noa&o decimal para $m nImero
represenado por Dring $ili7ando $ma base n$m>rica enre 2 e AZ " preenchendo*o com
e0g 87eros: 6 es%$erda do amanho especi(icado.
*+ser"ao , C #ar)mero n4ase deve ser especi(icado com $m nImero enre 2 e AZ .
Haso se0a passado como par)mero $m nImero base (ora desa (ai/a" o processameno >
aborado com a ocorrncia de erro (17@-F-BB9<<II) I*O13I0 *,8C E1S- (F) "
onde ]5N (oi a base passada como arg$meno.
RECIRPA'E
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
R-F,R#AB- 8 ] cJrl N " X c?arge Y " X n?ime Y : **N cDcrip
#ar)meros
Arg$meno ?ipo Fescri&o
cJrl Haracer 2in9 para onde o scrip deve aponar o redirecionameno
c?arge Haracer
Fesino do redirecionameno. Haso no especi(icado " o
de(a$l > Lsel(.
n?ime K$m>rico
?empo 8em seg$ndos: de delaG anes do redirecionameno
ser e/ec$ado.
Reorno
?ipo Fescri&o
Haracer
Dcrip Eml / _avaDcrip %$e " ao ser e/ec$ado no 4ro!ser 8clien: " chama
a p;gina/ob0eo chamado no 2in9.
Fescri&o
A ($n&o Redir#age > $ili7ada %$ando dese0amos devolver ao 4ro!ser $m scrip %$e "
ao ser e/ec$ado " redirecionar; o 4ro!ser 6 aber$ra de $m lin9 passado como
par)mero.
RE1/93A$E
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
R-?DQ2AH- 8 ] cDrUind N : **N cDrQ$erG
#ar)meros
Arg$meno ?ipo Fescri&o
cDrUind Haracer
cDrUind corresponde 6 se%$ncia de caraceres a ser
proc$rada " podendo coner caraceres maiIsc$los e
minIsc$los " com o$ sem acen$a&o.
Reorno
?ipo Fescri&o
Haracer
cDrQ$erG corresponde 6 sring de b$sca a ser $ili7ada na %$erG"
$ili7ando caraceres em minIsc$lo.
Fescri&o
A ($n&o ReD%lAce > $ili7ada para a$/iliar de monagem de %$erGs de b$sca de
caraceres acen$ados em bases de dados . A ($n&o a$omaicamene raa a sring
original " removendo os acenos " converendo odos os caraceres para minIsc$las " e
rocando odas as vogais e cedilhas da sring original por $ma se%$ncia de caraceres
acen$ados em m$nIscilas para b$sca posicional .
RE1/93$*<C
Reviso: 12/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
R-?DQ2HCKF 8 ] cAliases N : **N cD%l3here
#ar)meros
Arg$meno ?ipo Fescri&o
cAliases Haracer
2isa conendo $m o$ mais aliases " separados por v<rg$la "
a serem considerados para a monagem da e/presso de
valida&o.
Reorno
?ipo Fescri&o
Haracer
Horresponde 6 e/presso DQ2 para (ilrar os dados arav>s da cl;$s$la
3E-R-
Fescri&o
Jili7amos a ($n&o ReD%lHond8: como a$/iliar na monagem de %$erGs para b$sca de
dados em abelas em con(ormidade com o padro adoado pelo -R# .icrosiga e o
.a9ira EGpersie " $ili7ando aliases de A caraceres.
A ($n&o reorna " a parir dos aliases passados como par)mero " as e/press'es de (ilro
de dados para considerar a (ilial a$al 8 /Uilial : de acordo com o modo do ar%$ivo
8 52L.CFC : " e para sempre desconsiderar regisros deleados.
Cbserva&'es :
-sa ($n&o (oi mantida aenas or comati&ilidade@ ois a ordem de
comarao de camos na cl)usula WHE.E de uma AuerB deve rocurar
se0uir a ordem dos camos dos inde*adores do &anco ara efeitos de
erformance . #ara ganharmos per(ormance nas Q$erGs " devemos ao inv>s de
$ili7ar a ($n&o ReD%lHond8: " $ili7ar como primeira claIs$la 3E-R- o
reorno da ($n&o ReD%lUil8: 8 compara&o dos campos LU,2,A2 " os primeiros
do8s: <ndice8s: do -R# : " %$e reorna apenas as compara&'es de Uilial " e por
Ilimo a ($n&o ReD%lFel" %$e reorna o scrip para veri(ica&o dos campos
deleados 8 %$e > o Ilimo campo das chaves de <ndice do -R# " $ili7ando
?opHonnec :.
Fevemos amb>m aenar ao (ao %$e a ($n&o ReD%lHond8: reorna os campos
para a compara&o $ili7ando o pre(i/o da e/presso DQ2 com o Alias red$7ido
8A leras: das abelas in(ormadas" de modo %$e eses alias devem ser
especi(icados na cl;$s$la URC. " na aber$ra da Q$erG" %$ando $ili7amos a
($n&o ReD%lKame para reornar o nome (<sico das ?abelas no 4anco de Fados.
A ($n&o R%D%l?ab8: 0; reorna os nomes (<sicos das abelas 0$namene com os
alias para ese (im .
RE1/93CE3
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
R-?DQ2F-2 8 ] cAliases N : **N cD%l3here
#ar)meros
Arg$meno ?ipo Fescri&o
cAliases Haracer
2isa conendo $m o$ mais aliases " separados por v<rg$la "
a serem considerados para a monagem da e/presso de
valida&o.
Reorno
?ipo Fescri&o
Haracer
Horresponde 6 e/presso DQ2 para (ilrar os dados arav>s da cl;$s$la
3E-R-
Fescri&o
Jili7amos a ($n&o ReD%lFel8: como a$/iliar na monagem de %$erGs para b$sca de
dados em abelas em con(ormidade com o padro adoado pelo -R# .icrosiga"
$ili7ando aliases de A caraceres.
A ($n&o reorna " a parir dos aliases passados como par)mero " as e/press'es de (ilro
de dados para considerar o campo FL-L2L-L?L da8s: abela8s: passada8s: como
par)mero.
#&servaes 4
A ordem de compara&o de campos na cl;$s$la 3E-R- de $ma %$erG deve
proc$rar seg$ir a ordem dos campos dos inde/adores do banco para e(eios de
per(ormance . #ara ganharmos per(ormance nas Q$erGs " devemos $ili7ar a
($n&o ReD%lF-l8: na monagem das $limas consisncias da cl;$s$la
3E-R- de $ma Q$erG.
Fevemos amb>m aenar ao (ao %$e a ($n&o ReD%lFel8: reorna os campos
para a compara&o $ili7ando o pre(i/o da e/presso DQ2 com o Alias red$7ido
8A leras: das abelas in(ormadas" de modo %$e eses alias devem ser
especi(icados na cl;$s$la URC. " na aber$ra da Q$erG" %$ando $ili7amos a
($n&o ReD%lKame para reornar o nome (<sico das ?abelas no 4anco de Fados.
A ($n&o R%D%l?ab8: 0; reorna os nomes (<sicos das abelas 0$namene com os
alias para ese (im .
RE1/93PI3
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
R-?DQ2U,2 8 ] cAliases N " X cHompUil Y : **N cDQl3here
#ar)meros
Arg$meno ?ipo Fescri&o
cAliases Haracer
2isa conendo $m o$ mais aliases " separados por v<rg$la "
a serem considerados para a monagem da e/presso de
valida&o.
cHompUil Haracer
Arav>s de cHompUil > poss<vel especi(icar $ma Uilial
U,5A a ser comparada com os campos U,2,A2 do8s:
alias8es: passados no par)mero cAliases. Haso no
in(ormado" os campos LU,2,A2 da8s: abela8s: passadas
como par)mero em cAliases sero comparados com o
reorno da ($n&o /Uilial8: de cada alias" respecivamene.
Reorno
?ipo Fescri&o
Haracer
Horresponde 6 e/presso DQ2 para (ilrar os dados arav>s da cl;$s$la
3E-R-
Fescri&o
Jili7amos a ($n&o ReD%lUil8: como a$/iliar na monagem de %$erGs para b$sca de
dados em abelas em con(ormidade com o padro adoado pelo -R# .icrosiga"
$ili7ando aliases de A caraceres.
A ($n&o reorna " a parir dos aliases passados como par)mero " as e/press'es de (ilro
de dados para considerar o campo (ilial a$al 8 /Uilial : de acordo com o modo de
aber$ra do ar%$ivo no -R# 8 52L.CFC : .
*+ser"ao ,
Fevemos aenar ao (ao %$e a ($n&o ReD%lUil8: reorna os campos para a
compara&o $ili7ando o pre(i/o da e/presso DQ2 com o Alias red$7ido 8A
leras: das abelas in(ormadas" de modo %$e eses alias devem ser especi(icados
na cl;$s$la URC. " na aber$ra da Q$erG" %$ando $ili7amos a ($n&o
ReD%lKame para reornar o nome (<sico das ?abelas no 4anco de Fados. A
($n&o R%D%l?ab8: 0; reorna os nomes (<sicos das abelas 0$namene com os
alias para ese (im .
RE1/931AB
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
R-?DQ2?A4 8 ] cAlias2is N : **N cDrQ$erG
#ar)meros
Arg$meno ?ipo Fescri&o
cAlias2is Haracer
Dring conendo $m o$ mais alias " separados por virg$la "
a erem se$s nomes (<sicos deerminados.
Reorno
?ipo Fescri&o
Haracer
Dring conendo nomes (isicos e alias ideni(icadores dos aliases recebidos
como par)mero.
Fescri&o
Jili7amos a ($n&o ReD%l?ab8: como a$/iliar na monagem de %$erG=s %$ando
rabalhamos com o padro de ?abelas -R# .icrosiga" %$e $ili7am nomenclar$ra de
alias com A Haraceres.
A ($n&o recebe como par)mero $m o$ mais alias" separados por v<rg$la" de abelas
%$e dese0am ser $ili7adas na %$erG" e reorna os nomes (isicos das abelas e se$s
respecivos alias para serem inseridos na %$erG.
/EPARA
Reviso: 1`/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
D-#ARA 8 ] cDring N " ] c?o9en N " ] l-mpG N : **N a?o9ens
#ar)meros
Arg$meno ?ipo Fescri&o
cDring Haracer Dring com a se%$ncia de caraceres a ser 1parseada1
c?o9en Haracer
c?o9en corresponde 6 sring a ser $ili7ada como separador
para delimiar as in(orma&'es.
l-mpG Haracer
l-mpG ideni(ica se caso $m inervalo va7io enre o9ens
deve ser reornado como $m elemeno do arraG. Haso no
especi(icado " o Fe(a$l > .?.
Reorno
?ipo Fescri&o
Haracer
ArraG de $ma dimenso conendo os elemenos parseados pela roina
levando*se em cona o separador passado como paramero.
Fescri&o
Arav>s da ($nco D-#ARA8:" pode*se parsear $ma sring de elemenos a parir de $m
deerminado separador " sendo reornado $m ArraG com os elemenos ideni(icados na
Dring.
E*emlo 4
a+n#o 84 Separa(.3,N,,P.,.,.,.#.) !! esulta Y.3.,.N.,.P.Z
a+n#o 84 Separa(.3,N,,P.,.,.,.t.) !! esulta Y.3.,.N.,..,.P.Z
#&servao 4
#ara reali7ar a an;lise de $ma sring" c$0o delimiador enha apenas 1 bGe" e as
ocorrncias de dois separadores 0$nos se0am ignoradas na gera&o do arraG" a ($n&o
separa8: $ili7a a ($n&o Dr?o9Arr8:" ($n&o escria em H no #rohe$s Derver" mais
r;pida para ese processameno. Apenas e/ise a necessidade de $ili7armos a ($n&o
Depara8: caso as ocorrncias de dois separadores 0$nas devam ser consideradas no arraG
de res$lado e/o$ a sring $ili7ada como separador poss$a mais %$e 1 bGe de amanho.
:<E/$APE
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
JK-DHA#- 8 ] cDring N : **N cJn-scaped
#ar)meros
Arg$meno ?ipo Fescri&o
cDring Haracer
cDring > a sring a er os caraceres em (ormao escape
converidos.
Reorno
?ipo Fescri&o
Haracer
cJnescaped corresponde 6 sring recebida como par)m!ero " com os
caraceres originalmene em noa&o escape 8 cEE : converidos para
ADH,,
Fescri&o
Reali7a a opera&o inversa 6 ($n&o -scape8: " converendo os caraceres especiais em
noa&o cEE em caraceres ADH,,.
*+ser"ao , Apenas sero con"ertidos os caracteres ori6inalmente tratados pela
funo EscapeDE
:PPERA$E
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
J##-RAH- 8 ] cDring N : **N cDrJpper
#ar)meros
Arg$meno ?ipo Fescri&o
cDring Haracer Dring a ser converida. #ode coner amb>m acenos .
Reorno
?ipo Fescri&o
Haracer
Reorna a sring original com odas as leras ma$isc$las " incl$sive as leras
acen$adas.
Fescri&o
A U$n&o J##-RAH- convere odos os caraceres de $ma Dring para emai[$sc$log "
semelhane 6 ($n&o J##-R8: " por>m considera e convere amb>m caraceres
acen$ados em C-. e AKD,
:P/1R1RA<
Reviso: 1`/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
J#D?R?RAK 8 ] cDring N " ] cDearch N " X cReplace Y " X nDar Y " X nHo$n Y : **N
cKe!Dring
#ar)meros
Arg$meno ?ipo Fescri&o
cDring Haracer
cDring corresponde 6 se%$ncia de caraceres o$ campo
memo a ser pes%$isado.
cDearch Haracer
Horresponde 6 se%$ncia de caraceres a ser proc$rada em
cDring
cReplace Haracer
cReplace corresponde 6 se%$ncia de caraceres %$e deve
s$bsi$ir a sring cDearch. Haso no se0a especi(icado" as
ocorrncias de cDearch em cDring sero s$bsi$<das por
$ma sring n$la 811:
nDar K$m>rico
nDar corresponde 6o nIimero se%$encial da primeira
ocorrncia de cD-arch em cDring a ser s$bsi$<da por
cReplace. De ese arg$meno (or omiodo " o de(a$l > 1
8 $m : . Haso se0a passado $m n$mero menor %$e 1" a
($n&o reornar; $ma sring em branco 811:
nHo$n K$m>rico
nHo$n corresponde 6o nImero m;/imo de rocas %$e
dever; ser reali7ada pela ($n&o . Haso ese arg$meno no
se0a especi(icado " o de(a$l > s$bsi$ir odas as
coorncias enconradas.
Reorno
?ipo Fescri&o
Haracer
A ($n&o J#D?R?RAK reorna $ma nova sring" com as ocorrncias
especi(icadas de cDearch rocadas para cReplace" con(orme
par)meri7a&o.
Fescri&o
Dimilar 6 ($n&o Drran8:" por>m reali7a a b$sca da ocorrncia da sring considerando
leras maiIsc$las e minIsc$las. A ($n&o Drran8: > case*sensiive" e a ($n&o
JpDrran8: no.
A31*/93
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
VA2?CDQ2 8 ] /-/pressao N : **N cQrG-/pr
#ar)meros
Arg$meno ?ipo Fescri&o
/-/pressao 8Q$al%$er:
Valor Advpl a ser converido para $ili7a&o em Q$erG.
#ode ser dos ipos 1H1 Haracer " 1K1 K$m>rico e 1F1
Faa.
Reorno
?ipo Fescri&o
Haracer -/presso a ser acrescenada na Q$erG.
Fescri&o
A U$n&o VA2?CDQ28: > $ili7ada como a$/iliar na monagem de Q$erG=s "
converendo $m coneIdo vari;vel Advpl para a sring correspondene a ser
acrescenada na Q$erG.
#odemos passar como par)mero $ma -/presso do ipo eHg Haracer " eFg Faa o$
eKg K$m>rica.
A e/presso Haacer ser; colocada enre aspas simples" sendo removidas as
aspas simples conidas na mesma " caso e/isam .
Jma e/presso n$m>rica ser; simplesmene converida para caracer " com
apro/ima&o de 2 casas decimais.
Jma e/presso Faa ser; converida para (ormao AKD, 8 AAAA..FF : "
enre aspas simples.
ARI<P*
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
VAR,KUC 8 ] c,d N " ] /Var N " X n.argem Y " X lEml Y " X l-cho Y : **N cVar,n(o
#ar)meros
Arg$meno ?ipo Fescri&o
c,d Haracer
c,d corresponde a $m nome arib$<do 6 vari;vel para
an;lise. ,nernamene " apenas > $ili7ado para pre(i/ar o
reorno das in(orma&'es da Var,n(o.
/Var 8Q$al%$er: Vari;vel de %$al%$er ipo a ser e/aminada
n.argem K$m>rico
Horresponde 6 margem es%$erda inicial de espa&os da
Dring de reorno " m$liplicado por `. Fe(a$l M 0
lEml 2+gico
,deni(ica se a Dring de reorno ser; monada em (ormao
Eml 8.?. / Fe(a$l : o$ ADH,, 8.U.:
l-cho 2+gico
Fe(ine se o -cho do reorno deve ser enviado ao console
do #rohe$s Derver " caso habiliado. 8 Fe(a$l M .?. :
Reorno
?ipo Fescri&o
Haracer
Dring conendo o 1F$mp1 da an;lise da vari;vel. Haso lEml se0a .?. "
reorna Dring em (ormao E?.2 . " seno reorna sring ADH,, com
%$ebras HR2U.
Fescri&o
A U$n&o VAR,KUC8: gera $m e/o ADH,, e/o$ Eml " com possibilidade de -HEC
para o Honsole do #rohe$s Derver 8 caso habiliado : " com as in(orma&'es sobre o
coneIdo de $ma vari;vel de mem+ria Advpl " de P#alP#er tipo "
Hada ipo de vari;vel poss$i $m raameno para converso em Dring :
CodeElock : @ e/ibido apenas o ipo da mesma 84:
1rra6 : ?odos os n<veis e elemenos do mesmo so e/plorados rec$rsivamene.
8!Meto : Ko caso de $m Cb0eo de 5.2 e/o$ 3eb Dervices" so e/ploradas
odas as s$as propriedades rec$rsivamene.
8demais ipos: : Do converidos para Dring arav>s da ($n&o All?oHhar
#&servao 4 C seg$ndo par)mero 8 /Var : deve ser $ma vari;vel Advpl %$e deve
e/isir no escopo de vari;veis. Haso a vari;vel no e/isa" o processameno > aborado
com a ocorrncia de erro 1Variabl&e does no e/is1 . #ara saber se $ma deerminada
vari;vel e/ise no escopo da e/ec$&o da ($n&o a$al" deve ser $ili7ada a ($n&o
Advpl ?\#-8:" onde passamos a vari;vel a er se$ ipo deerminado como sring 8 enre
aspas : .
WEBI<P*
Reviso: 12/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
3-4,KUC 8 : **N cEml,n(o
Reorno
?ipo Fescri&o
Haracer
cE?.2,n(o corresponde 6 sring E?.2 conendo as in(orma&'es da
re%$isi&o E??#.
Fescri&o
A ($n&o 3eb,n(o8: (oi desenvolvida para ser chamada arav>s de $ma re%$isi&o hp "
via lin9 .apl o$ .ap! " e ela ideni(ica odos os par)meros recebidos via $ma re%$isi&o
hp: #ar)meros via ge " pos " o header E??#" os Hoo9ies" o conen*Gpe " 2egh "
Honen*disposiion " DoapRacion 8a&o DCA# para re%$isi&'es de 3ebD-rvices : " e
CherHonen 8 caso o coneIdo posado no se0a $m e//hml :
-sa ($n&o reorna $ma p;gina Eml com odas esas in(orma&'es" e > $ili7ada no
desenvolvimeno de pro0eos. %$ando emos a necessidade pr;ica de
rec$perarmos odas as in(ormal&'es provenienes de $ma re%$isi&o E??#.
Adicionalmene " a ($n&o 3eb,n(o
#or e/emplo" com o #rohe$s con(ig$rado para aender re%$isi&'es de lin9s .apl via
E??# " chame a ($n&o 3eb,n(o.apl arav>s do lin9 :
hp://localhos/!ebin(o.aplOparam1MesePparam2Mo$roese
Der; e/ibido no 3eb 4ro!ser $ma ela semelhane 6 ela abai/o :
99aCookies -> 1BB1Q ( <) (""")
99a7ost7ar.s -> 1BB1Q ( <) (""")
99n7rocId -> * ( 1<) (11?RA'R'1=)
99a7roc7ar.s -> 1BB1Q ( <) (""")
99http7age -> C ( <) ()
99HttpHeader -> 1BB1Q ( 4) (""")
99HttpHeader(1) -> C ( IA) (/-, /:e!info"apl H,,7/1"1)
99HttpHeader(I) -> C ( 1CI) (1ccept: i.age/gif& i.age/+-+!it.ap& i.age/Mpeg&
i.age/pMpeg& application/+-shock:ae-flash& application/nd".s-e+cel&
application/nd".s-po:erpoint& application/.s:ord& S/S)
99HttpHeader(') -> C ( II) (1ccept-3ang#age: pt-!r)
99HttpHeader(=) -> C ( '<) (1ccept--ncoding: g;ip& deflate)
99HttpHeader(A) -> C ( ?1) (If-Modified-Since: @ed& 1< 0ec I<<' 1I:I=:IR
/M,> length=1<<')
99HttpHeader(?) -> C ( 41) (2ser-1gent: Mo;illa/="< (co.pati!le> MSI- ?"<>
@indo:s *, A"1> "*-, C3B 1"<"'C<A))
99HttpHeader(C) -> C ( 1') (Host: a#to.an)
99HttpHeader(4) -> C ( II) (Connection: Teep-1lie)
HttpBCt,6pe() -> C ( <) ()
HttpBCt3en() -> * ( 1<) ( -1)
HttpBCt0isp() -> C ( <) ()
SoapB1ction() -> C ( <) ()
Http8therContent() -> C ( <) ()
Haso a mesma re%$isi&o se0a reali7ada arav>s de lin9 .ap! " $ili7ando*se a ecnologia
3-4-5 " dever; ser e/ibida $ma ela semelhane 6 ela abai/o :
aHeaders -> 1BB1Q ( R) (""")
aHeaders(1) -> C ( IA) (/-, /:e!info"ap: H,,7/1"1)
aHeaders(I) -> C ( 1CI) (1ccept: i.age/gif& i.age/+-+!it.ap& i.age/Mpeg&
i.age/pMpeg& application/+-shock:ae-flash& application/nd".s-e+cel&
application/nd".s-po:erpoint& application/.s:ord& S/S)
aHeaders(') -> C ( II) (1ccept-3ang#age: pt-!r)
aHeaders(=) -> C ( '<) (1ccept--ncoding: g;ip& deflate)
aHeaders(A) -> C ( ?1) (If-Modified-Since: ,#e& <R 0ec I<<' I1:I':<'
/M,> length=1=4<)
aHeaders(?) -> C ( 41) (2ser-1gent: Mo;illa/="< (co.pati!le> MSI- ?"<> @indo:s
*, A"1> "*-, C3B 1"<"'C<A))
aHeaders(C) -> C ( I1) (Host: ap:e!e+"a#to.an)
aHeaders(4) -> C ( II) (Connection: Teep-1lie)
aHeaders(R) -> C ( =1) (Cookie: S-SSI8*I0=1<C11A''C1> 17A7B8CI0=<)
httpCookies -> 1BB1Q ( I) (""")
httpCookies(1) -> C ( R) (S-SSI8*I0)
httpCookies(I) -> C ( R) (17A7B8CI0)
S-SSI8*I0 -> C ( 1<) (1<C11A''C1)
17A7B8CI0 -> C ( 1) (<)
http7ost -> 1BB1Q ( <) (""")
http/et -> 1BB1Q ( <) (""")
HttpBCt,6pe() -> C ( <) ()
HttpBCt3en() -> * ( 1<) ( -1)
HttpBCt0isp() -> C ( <) ()
SoapB1ction() -> C ( <) ()
Http8therContent() -> C ( <) ()

RAPWEXERRS0000T I<A3IC PR*$
RE1:R< 1;PE RXT ...
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
RAPWEXERRS0000T I<A3IC PR*$ RE1:R< 1;PE RXT from R;T
Cescrio U $ausa , Ka ,n(ra*-sr$$ra Ap3eb-/" de acordo com o m+d$lo 3-4 em
$so" > chamada d$rane a iniciali7a&o da 3or9ing ?hread no ambierne 3-4-5 $ma
($n&o espec<(ica X\Y para iniciali7a&o adicional de ambiene" e a lib e/ige $m reorno
do ipo 4ooleano 8 .?. o$ .U. : " indicando se a iniciali7a&o adicional (oi e/ec$ada com
s$cesso o$ no. Haso ese pono de enrada reorne $m valor c$0o ipo no se0a
booleano" esa mensagem de erro > apresenada no console do Derver e acrescenada 6o
ar%$ivo -RRCR.2CB
/oluo , Veri(i%$e o (one do pono de enrada e asseg$re*se %$e o mesmo es;
reornando $m valor Advpl do ipo =2= 2+gico.
RAPWEXERRS0001T I<A3IC APWEX
$A33
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
RAPWEXERRS0001T I<A3IC APWEX $A33
Cescrio U causa , Ao soliciarmos ao servidor #rohe$s o processameno de $ma
($n&o Advpl arav>s de $m lin9 .ap!" $ili7ando a in(ra*esr$$ra Ap3ebe/" e/isem
($n&'es espec<(icas da ling$agem %$e no podem ser e/ec$adas direamene nese ipo
de ambiene" por raarem*se de ($n&'es e/cl$sivas para processamenos iniciados
arav>s de $m Remoe" e ($n&'es %$e no permiem chamada direa via lin9. Haso
alg$ma desas ($n&'es se0a chamada direamene via JR2" esa ocorrncia de erro >
reprod$7ida.
RAPWEXERRS000&T I<A3IC PR*$
RE1:R< 1;PE RXT ...
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
RAPWEXERRS000&T I<A3IC PR*$ RE1:R< 1;PE RXT from R;T
Cescrio U causa , Q$ando $ma !or9ing hread do ambiene Ap3eb-/" recebe $ma
solicia&o de processameno arav>s de $m lin9 .ap!" de acordo com o m+d$lo !eb
$ili7ado" pode ser chamada $ma ($n&o inermedi;ria X\Y" anes do processameno da
($n&o chamada no lin9 o$ depois do processameno concl$<do.
A lib e/ige %$e esas ($n&'es inernedi;rias reornem $m coneIdo Advpl do ipo
1D?R,KB1. Haso a ($n&o X\Y chamada pela lib reorne $m coneIdo Advpl di(erene
de 1D?R,KB1" o ipo de vari;vel reornado > mosrado em X5Y e a 3or9ing ?hread >
(inali7ada com esa ocorrncia de erro.
/oluo , Veri(%$e o c+digo*(one da ($n&o X\Y" para ceri(icar*se %$e se$ reorno
sempre ser; $m coneIdo Advpl do ipo 1D?R,KB1
RAPWEXERRS000(T I<A3IC PR*$
RE1:R< 1;PE RXT ...
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
RAPWEXERRS000(T I<A3IC PR*$ RE1:R< 1;PE RXT P:<$1I*< R;;;T
Cescrio U causa : Q$ando soliciado 6o servidor #rohe$s o processameno de $ma
($n&o arav>s de $m lin9 .ap!" a ($n&o e/ec$ada sempre dever; reornar $m
coneIdo Advpl do ipo 1D?R,KB1. Haso o coneIdo reornado pelo processameno da
($n&o X\\\Y reorne $m ipo X5Y" di(erene de 1D?R,KB1" a :orking thread >
(inali7ada com esa ocorrncia de erro" onde X\\\Y indica a ($n&o chamada arav>s do
lin9 .ap! e X5Y indica o ipo de coneIdo inv;lido reornado
/oluo , Veri(i%$e o (one da ($n&o X\\\Y e ceri(i%$e*se %$e a ($n&o sempre
reorne $m coneIdo do ipo 1D?R,KB1

RAPWEXERRS000)T Punction XXX
re?uires APWEBEX ...
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
RAPWEXERRS000)T Punction XXX re?uires APWEBEX Routines.
Cescrio U causa , Ao desenvolvermos $ma aplica&o para $il7iar a in(ra*esr$$ra
Ap3eb-/" $ili7ando o ^incl$de =ap!ebe/.ch= e os comandos 3-4 -5?-KF-F
,K,? ... -KF" devemos nos asseg$rar de esarmos e/ec$ando esa ($n&o em $m
ambiene de :orking threads" con(ig$rados com o ipo 3-4-5" $ili7ando as ($n&'es
da in(ra*esr$$ra Ap3eb-/ 8 Dar3ebe/ " Honnec3eb-/ ... : para iniciali7a&o e
processameno da re%$isi&o via lin9 .ap! .
De $ma ($n&o X555Y" escria para ser chamada e/cl$sivamene nese ipo de ambinee"
se0a chamada direamene via #rohe$s Remoe" o$ o$ro ipo de processameno %$e no
se0a $ma :orking thread iniciali7ada pelas ($n&'es de in(ra*esr$$ra Ap3eb-/" a
($n&o > aborada com esa ocorrncia de erro. ,so amb>m consisem em $ma
proe&o" para %$e $ma ($n&o pro0eada para ser e/ec$ada em $m ipo de ambiene 8
:orking threads Ap3eb-/ : no se0a erroneamene e/ec$ada em o$ro ambiene.
/oluo , Veri(i%$e se a ($n&o chamada realmene es; sendo e/ec$ada no ambiene
apropriado.
RAPWEXERRS000-T /1AR1 Punction
XXX In"alid Ret ...
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
RAPWEXERRS000-T /1AR1 Punction XXX In"alid Return 1@pe R;T
Cescrio U causa , Q$ando > $ili7ado o comando 3-4 -5?-KF-F ,K,?"
especi(icando $ma ($n&o X555Y de pr>*valida&o de e/ec$&o" arav>s da cl;$s$la
D?AR?" a ($n&o especi(icada dever; reornar $m coneIdo do ipo 1D?R,KB1. Haso a
($n&o X555Y reorne $m coneIdo no va7io" de ipo X\Y" di(erene de 1D?R,KB1" o
processameno da :orking thread > aborado com esa ocorrncia de erro.
/oluo , Veri(i%$e o (one da ($n&o X555Y e asseg$re*se %$e a e/ec$&o desa
reorne $m coneIdo do ipo 1D?R,KB1
RAPWEXERRS000.T AP# pa6e RXXXT
not found in .RP*
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
RAPWEXERRS000.T AP# pa6e RXXXT not found in .RP*
Cescrio U causa , Ao $ili7armos a ($n&o EGecInPa6eDEF no desenvolvimeno de
aplica&'es $ili7ando as ($n&'es de in(ra*esr$$ra Ap3ebe/" a mesma poss$i
raameno a$om;ico para b$scar primeiramene por $ma p;gina AEJ compilada no
reposi+rio de ob0eos do ambiene. Haso no se0a enconrado $ma p;gina .ah$" a ($n&o
proc$ra por $ma p;gina .aph. De nenh$ma p;gina com o nome especi(icado no (or
enconrada" o processameno > aborado com esa ocorrncia de erro.
/oluo , Veri(i%$e se a ($n&o %$e origino$ a chamada da EGecInPa6eDE passo$ o
nome do A#E / AEJ de (orma correa" e se a p;gina chamada es; realmene presene
e/o$ (oi compilada no reposi+rio do pro0eo em %$eso.
RAPWEXERRS0000T *PE< 9:ER;
ERR*R , <* $*<<E$1I*<
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
RAPWEXERRS0000T *PE< 9:ER; ERR*R , <* $*<<E$1I*<
Cescrio U causa , Ao $ili7armos o comando C#-K QJ-R\" caso no e/isa $ma
cone/o aiva com o ?C#Honnec" o processameno em e/ec$&o > aborado com esa
ocorrncia de erro.
/oluo , Heri(i%$e*se de %$e a chamada dese comando es; sendo reali7ada arav>s
de $ma :orking thread %$e poss$a $ma cone/o aiva com o ?C#Honnec.
RAPWEXERRS0005T Ret/?l$ond failed
to read X!S2*C*
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
RAPWEXERRS0005T Pailed to read X!S2*C* Alias RXXXT
Cescrio U causa , Q$ando > $ili7ada a ($n&o Ret/?lPilDE como a$/iliar na
monagem de %$erGs" a mesma ena deerminar se o8s: alia8s: $ili7ado8s: na
Q$erG eso con(ig$rados no ambiene -R# a$al no D52 em modo V$V Homparilhado
o$ VEV -/cl$sivo. Haso o alias X555Y no se0a enconrado na abela D52" o$ a abela
D52 no ese0a abera no momeno da e/ec$&o desa" no > poss<vel ideni(icar o modo
de acesso do alias especi(icado" e a e/ec$&o > encerrada com esa ocorrncia de erro.
/oluo , Veri(i%$e se a ($n&o Ret/?lPilDE e/o$ Ret/?l$ondDE es; recebendo o8s:
alia8s: correos" odos em leras maiIsc$lasV caso especi(icados mais de $m alias" odos
ese0am separados por v<rg$las" e %$e a abela D52 do -R# ese0a abera para a correa
ideni(ica&o dos raamenos de U,2,A2 para a monagem da condi&o para Q$erG.
RAPWEXERRS0010T ERP PI<A3
R*:1I<E $A33EC
Reviso: 1A/04/2004
RAPWEXERRS0010T ERP PI<A3 R*:1I<E $A33EC
Cescrio U causa , Q$ando e/ec$amos $ma ($n&o em $ma :orking thread
iniciali7ada com as ($n&'es de in(ra*esr$$ra Ap3eb-/" a ($n&o finalDE" $ili7ada
inernamene pelas ($n&'es de in(ra*esr$$ra do -R# .icrosiga" poss$i nese ambiene
$m raameno di(erenciado. Haso ela se0a e/ec$ada " a :orking thread > (inali7ada
com esa ocorrncia de erro.
/oluo , A ($n&o finalDE no deve ser $ili7ada como $m rec$rso de (inali7a&o de
aplica&o 3-4" por>m ela > $ili7ada inernamene por ($n&'es da in(ra*esr$$ra -R#"
no caso de $ma ocorrncia (aal %$e impe&a $m deerminado processameno" e ganho$
esa proe&o na 2ib Ap3eb-/ para permiir o desenvolvimeno de aplica&'es
inegradas 3-4 / -R#.
Haso reprod$7ida $ma ocorrncia de erro desa na$re7a" veri(i%$e nos dealhes do erro
%$al ($n&o %$e esava em e/ec$&o e %$al o moivo da (inali7a&o da :orking thread.
-se moivo es; especi(icado no campo 1-rp .essage1" mosrado nos dealhes da
ocorrncia de erro.
RAPWEXERRS0011T Ar6ument W0 Error
, Parameter ...
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
RAPWEXERRS0011T Ar6ument W0 Error , Parameter re?uired.
Cescrio U causa , Q$ando > $ili7ada a ($n&o Ap3-/Add-rr8c?ile"c,n(o:" para
in(ormar 6 roina de raameno de erro da in(ra*esr$$ra Ap3eb-/" $ma in(orma&o
adicional a ser acrescenada no 2CB de erro" os par)meros c?ile e c,n(o"%$ando
especi(icados" devem ser ser ambos preenchidos" e devem ser do ipo 1D?R,KB1
/oluo , -sa ocorrncia de erro in(orma %$e o par)mero c?ile no (oi especi(icado
o$ es; va7io" por>m o par)mero c,n(o (oi especi(icado. Veri(i%$e o c+digo*(one e
corriga a chamada da ($n&o.
RAPWEXERRS001!T Ar6ument W0 Error
, EGpected $-XX
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
RAPWEXERRS001!T Ar6ument W0 Error , EGpected $-XX
Cescrio U causa , Q$ando > $ili7ada a ($n&o Ap3-/Add-rr8c?ile"c,n(o:" para
in(ormar 6 roina de raameno de erro da in(ra*esr$$ra Ap3eb-/" $ma in(orma&o
adicional a ser acrescenada no 2CB de erro" os par)meros c?ile e c,n(o"%$ando
especi(icados" devem ser ser ambos preenchidos" e devem ser do ipo 1D?R,KB1
/oluo , -sa ocorrncia de erro in(orma %$e o par)mero c?ile (oi especi(icado com
$m ipo X5Y" %$e no > 1D?R,KB1. Veri(i%$e o c+digo*(one e corri0a o par)mero
passado para a ($n&o.
RAPWEXERRS001&T Ar6ument W1 Error
, Parameter ...
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
RAPWEXERRS001&T Ar6ument W1 Error , Parameter re?uired.
Cescrio U causa , Q$ando > $ili7ada a ($n&o Ap3-/Add-rr8c?ile"c,n(o:" para
in(ormar 6 roina de raameno de erro da in(ra*esr$$ra Ap3eb-/" $ma in(orma&o
adicional a ser acrescenada no 2CB de erro" os par)meros c?ile e c,n(o"%$ando
especi(icados" devem ser ser ambos preenchidos" e devem ser do ipo 1D?R,KB1
/oluo , -sa ocorrncia de erro in(orma %$e o par)mero c,n(o no (oi especi(icado
o$ es; va7io" por>m o par)mero c?ile (oi in(ormado. Veri(i%$e o c+digo*(one e
corri0a a chamada desa ($n&o.
RAPWEXERRS001(T Ar6ument W1 Error
, EGpected $-XX
Reviso: 1A/04/2004
RAPWEXERRS001(T Ar6ument W1 Error , EGpected $-XX
Cescrio U causa , Q$ando > $ili7ada a ($n&o Ap3-/Add-rr8c?ile"c,n(o:" para
in(ormar 6 roina de raameno de erro da in(ra*esr$$ra Ap3eb-/" $ma in(orma&o
adicional a ser acrescenada no 2CB de erro" os par)meros c?ile e c,n(o"%$ando
especi(icados" devem ser ser ambos preenchidos" e devem ser do ipo 1D?R,KB1
/oluo , -sa ocorrncia de erro in(orma %$e o par)mero c,n(o (oi especi(icado com
$m ipo de dado X5Y %$e no > 1D?R,KB1. Veri(i%$e o c+digo*(one e corri0a a chamada
desa ($n&o.
RAPWEXERRS00!0T I<A3IC O*B
RXXXT 1;PE R;;;T
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
RAPWEXERRS00!0T I<A3IC O*B RXXXT 1;PE R;;;T
Cescrio U causa , -sa ocorrncia de erro indica %$e as con(ig$ra&'es do _ob X555Y"
de :orking threads para $ili7a&o no ambiene Ap3eb-/" es; ideni(icado com $m
?\#- X555Y inv;lido.
F$rane a iniciali7a&o de $ma :orking thread" > veri(icado o ipo do _ob con(ig$rado
no ar%$ivo de con(ig$ra&o. Apenas so v;lidos os valores 3-4 e/o$ 3-4-5" de
acordo com o m+d$lo !eb em $so. Haso a con(ig$ra&o especi(i%$e $m ?\#- di(erene
de 3-4 o$ 3-4-5" a con(ig$ra&o no > v;lida" e a :orking thread > aborada anes
de esar dispon<vel para aender 6 re%$isi&'es de lin9s .ap!" gerando $ma ocorrncia de
erro no console do servidor #rohe$s" amb>m gravada no ar%$ivo -RRCR.2CB
/oluo , #ara sol$cionar esa ocorrncia" basa veri(icar a con(ig$ra&o do _ob X555Y
$ili7ado para iniciali7ar as :orking threads e especi(icar $m ipo ade%$ado 8 3-4 o$
3-4-5 :" de acordo com o m+d$lo em $so.
RAPWEXERRS00!1T :<AB3E 1* 'E1
O*B <A2E
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11
RAPWEXERRS00!1T :<AB3E 1* 'E1 O*B <A2E
Cescrio U causa , -sa ocorrncia de erro indica %$e o processo a$al em e/ec$&o
no (oi originado pela con(ig$ra&o de $m processo 3-4 o$ 3-4-5 " o$ a ($n&o de
iniciali7a&o de ambiene D?AR?3-4-5 no (oi chamada arav>s de $m eveno
CKD?AR? de _C4" como por e/emplo $m A# Remoe.
/oluo , Haso esa ocorrncia se0a reprod$7ida" ceri(i%$e*se %$e a ($n&o de
iniciali7a&o das :orking threads 8 D?AR?3-4-5 : ese0a sendo chamada arav>s de
$m processo con(ig$rado com ?\#-M3-4 o$ 3-4-5" de acordo com o m+d$lo !eb
em $so.
RAPWEXERRS00!!T Y1X Punction RXT
of 2odule R;T ...
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
5APWEXE..677CC9 :$tart D Connect; +unction 5X9 of =odule 5E9 not found in
.o<
Cescrio U causa , -sa ocorrncia de erro > reprod$7ida %$ando" ao con(ig$rar $m
m+d$lo !eb X\Y" a ($n&o X5Y de iniciali7a&o o$ cone/o re(erene ao m+d$lo no (oi
enconrada no reposi+rio de ob0eos do ambiene em $so pela aplica&o !eb.
Dol$&o : Heri(i%$e*se %$e o reposi+rio em $so a$almene poss$i as ($n&'es
perinenes 6o mod$lo con(ig$rado.

RAPWEXERRS00!&T :</:PP*R1EC
BREAZ $*<1R*3
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
RAPWEXERRS00!&T :</:PP*R1EC BREAZ $*<1R*3
Cescrio U causa , Ao $ili7ar as ($n&'es de ,n(ra*-sr$$ra A#3-4-5" %$ando da
chamada de $ma ($n&o arav> de 2in9 .ap! " desde a chamada original a> a passagem
pelos ponos de pr> e p+s*valida&o de processameno" a roina de raameno de erro
habiliada > de conrole inerno e e/cl$sivo da ,n(ra*-sr$$ra Ap3eb-/.
Haso o comando 4R-AW se0a chamado em alg$m deses ponos" a e/ec$&o >
aborada " e na roina de raameno de e/ec$&o" no h; o regisro de conrole de erro"
de modo %$e a :orking thread > aborada com esa ocorrncia de erro.
/oluo , Heri(i%$e*se %$e no c+di$go (one da aplica&o no se0a $ili7ado o comando
4R-AW.
*B/ERA=>* , $omo esta ocorr[ncia B tratada em um ponto de retorno
internoF o ponto de entrada WEBEXERR*R no B eGecutadoF sendo retornada ao
usuMrio a mensa6em padro de Erro.
RAPWEXERRS00!(T Y1X Punction RXT
of 2odule R;T ...
Reviso: 1A/04/2004
Abrangncia
Verso 8.11 2,4 3-4-5
5APWEXE..677CF9 :$tart D Connect D +inis, ; +unction 5X9 of =odule 5E9 not
found in .o<
Cescrio U causa , -sa ocorrncia de erro > reprod$7ida %$ando" ao con(ig$rar $m
m+d$lo !eb X\Y" a ($n&o X5Y de iniciali7a&o" cone/o o$ (inali7a&o" re(erene ao
m+d$lo" no (oi enconrada no reposi+rio de ob0eos do ambiene em $so pela aplica&o
!eb.
/oluo , Heri(i%$e*se %$e o reposi+rio em $so a$almene poss$i as ($n&'es
perinenes 6o mod$lo con(ig$rado.
RAPWEXERRS00!)T :n%no4
/I'AWEB 2odule R;T
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11
5APWEXE..677CG9 'n!no? $I"AWEB =odule 5E9
Cescrio U causa , Q$ando da con(ig$ra&o de $m m+d$lo !eb para os raamenos
inernos das ($n&'es de in(ra*esr$$ra Ap3eb-/" devemos especi(icar $ma sigla de $m
m+d$lo 3eb v;lido e raado pela lib de in(ra*es$r$ra. Cs m+d$los a$almene
implemenados na lib so :
F3 * Faa 3areEo$se
4DH * 4alanced DcoreHard
.AW * .od$lo 3-4-5 .a9ira
B- * Beso -d$cacional
B#R * Beso de #es%$isa e Res$lado
?HU * ?erminal do U$ncionario 8 RE CK2,K- :
## * #oral #Rohe$s 8 3ebDervices :
DAV * Dala de Aprendi7agem Vir$al
BAH * Beso de Acervos
3#D * 3eb#rin P 3ebDpool
Haso no se0a (ornecida $ma sigla v;lida na chave D,BA3-4" na se&o de
con(ig$ra&o das !or9ing hreads" as mesmas no enraro no ar" e sero aboradas com
esa ocorrncia de erro.
/oluo , Veri(i%$e a chave de con(ig$ra&o D,BA3-4 e preencha*a com $ma sigla de
m+d$lo v;lida para a verso de reposi+rio / ambiene em $so.
RAPWEXERRS00!-T We+ /er"ices 1est
P*/1 ERR*R.
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11
5APWEXE..677CH9 We& $ervices /est P#$/ E..#.<<
Cescrio U causa , Q$ando $ili7amos a iner(ace de eses de !eb services clien da
(erramena 3ebAdmin" caso ocorra $ma (alha esr$$ral no servi&o Hlien o$ $ma
impossibilidade de rec$perar odos os dados posados no (om$l;rio de eses" o
processameno > inerrompido com esa ocorrncia de erro.
RAPWEXERRS00!.T I<A3IC <1*$
BA/E R<<<T
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
RAPWEXERRS00!.T I<A3IC <1*$ BA/E R<<<T
Cescrio U causa , Ao $ili7ar a ($n&o ntocDE" deve*se aenar ao limie de base
n$m>rica para converso" %$e pode ser $m nImero enre 2 e AZ. Haso a base passada
como par)mero para a ($n&o ntocDE ese0a (ora deses limies" o processameno >
aborado com a ocorrncia acima " in(ormando em KKK a base $ili7ada.
/oluo , Veri(i%$e a chamada da ($n&o noc8: no (one e ceri(i%$e*se %$e es; sendo
in(ormado $m nImero enre 2 e AZ.
RAPWEXERRS00!0T 2*C:3E R;T
RE9:IRE/ O*B 1;PE\WEBEX
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
5APWEXE..677CI9 =#J'%E 5E9 .EK'I.E$ L#B /EPEMWEBEX
Cescrio U causa , -sa ocorrncia de erro in(orma %$e a con(ig$ra&o de :orking
threads $ili7ada para ese m+d$lo !eb no poss$i o ipo ade%$ado con(ig$rado. C
.+d$lo X\Y $ili7ado re%$er $m 0ob para :orking threads con(ig$rado com
?\#-M3-4-5" por>m esa con(ig$ra&o es; a$almene con(ig$rada como 3-4.
/oluo , Veri(i%$e a con(ig$ra&o das !or9ing hreads dese m+d$lo !eb e ceri(i%$e*
se %$e a con(ig$ra&o ?\#- es; seada para 3-4-5.

RAPWEXERRS00!5T 2*C:3E R;T
RE9:IRE/ O*B 1;PE\WEB
Reviso: 1A/04/2004
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
5APWEXE..677CN9 =#J'%E 5E9 .EK'I.E$ L#B /EPEMWEB
Cescrio U causa , -sa ocorrncia de erro in(orma %$e a con(ig$ra&o de :orking
threads $ili7ada para ese m+d$lo !eb no poss$i o ipo ade%$ado con(ig$rado. C
.+d$lo X\Y $ili7ado re%$er $m 0ob para :orking threads con(ig$rado com
?\#-M3-4" por>m esa con(ig$ra&o es; a$almene con(ig$rada como 3-4-5.
/oluo , Veri(i%$e a con(ig$ra&o das !or9ing hreads dese m+d$lo !eb e ceri(i%$e*
se %$e a con(ig$ra&o ?\#- es; seada para 3-4.
RAPWEXERRS00&0T <* WEB
3I$E<$E/ AAI3AB3E D...
Reviso: 1A/04/2004
Abrangncia
Verso 8.11 2,4 3-4-5
5APWEXE..677O79 1# WEB %ICE1CE$ APAI%AB%E
Cescrio U causa , -sa ocorrncia de erro" indica %$e no h; mais licen&as ProtAeus i
dispon<veis para a $ili7a&o da aplica&o 3eb. Adicionalmene 6 esa ocorrncia" >
in(ormado adicionalmene a in(orma&o 13-4 2,H-KD- D?A?JD XKKKKY1" onde
nnnn indica o c+digo de erro do Eard2oc9 $ili7ado para conrole de licen&as.
/oluo , Veri(i%$e na lisa complea de sa$s de reorno do Ear92oc9 " dispon<vel em
8pendene:" para ceri(icar*se da origem desa ocorrncia e eno omar $ma a&o
correiva.
RAPWEXERRS00&1T WAR<I<' , WEB
3I$E</E/ WI33 EXP...
Reviso: 1A/04/2004
Abrangncia
Verso 8.11 2,4 3-4-5
5APWEXE..677OQ9 WA.1I1" 4 WEB %ICE1$E$ WI%% EXPI.E$
We& %icenses ?ill e*ires in 11 daBRsS
Cescrio U causa , -sa ocorrncia consise em $ma adverncia" regisrada no ar%$ivo
error.lo6 do ambiene em $so pela aplica&o 3eb" regisrada $ma ve7 ao dia" a parir
do insane %$e (alam apenas 10 dias o$ menos para %$e as licen&as !eb 8 ProtAeus i :
da aplica&o e/pirem. C nImero de dias %$e resam para as licen&as vencerem >
especi(icado adicionalmene em XKKY.
/oluo , #rovidencie a a$ali7a&o das licen&as ProtAeus i da aplica&o !eb 0$no 6
.icrosiga.
Pontos de Entrada - APWEBEX
Reviso: A0/04/2004
Abrangncia
Verso 8.11
Q$ando da $ili7a&o da in(ra*esr$$ra A#3-4-5" especi(icamene o m+d$lo =.AW= 8
.a9ira :" so disponibili7ados os ponos de enrada relacionados nese +pico" para
permiir c$somi7ar e inercepar os evenos de ,niciali7a&o da ?hread 8 JLDar3eb-/
:" aendimeno a re%$isi&'es de lin9s .ap! anes de processar a ($n&o
principal 8 JLHonnec3eb-/ :" aendimeno a re%$isi&'es de lin9s .ap!
ap+s processada a ($n&o principal 8 JLRese3eb-/ :" (inali7a&o da ?hread
8 JLUinish3eb-/ :" (inali7a&o de session de $s$;rio por ?ime*o$ 8 JL-ndDession :" e
c$somi7a&o da mensagem de erro E?.2" %$ando da ocorrncia de alg$m erro (aal na
aplica&o 8 JL3-4-5-RRCR :.
Q$ando $ili7ada a in(ra*esr$$ra A#3-4-5 para $m m+d$lo do padro" eses ponos
de enrada no em e(eio. Uica a cri>rio de cada m+d$lo a disponibili7a&o de ponos
de enrada para inercepar eses evenos. #ara saber %$ais ponos (oram implemenados
para $m m+d$lo !eb do padro" deve ser cons$lada a doc$mena&o do m+d$lo
correspondene.
01. /1AR1WEBEX
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
01. D?AR?3-4-5 8 X K,2 Y : **N lD$cess
#ar)meros
Arg$meno ?ipo Fescri&o
K,2 8KJ2C: -se pono de enrada no recebe par)meros.
Reorno
?ipo Fescri&o
2+gico
lD$cess corresponde 6o sa$s de monagem de ambiene. Haso o ambiene
enha sido monado com s$cesso " o pono de enrada deve reornar .?. "
caso conr;rio .U. . Jma ve7 reornado .U. " o #rohe$s ir; eliminar esa
3or9ing ?hread da mem+ria.
Fescri&o
-se pono de enrada > e/ec$ado na iniciali7a&o de cada 3or9ing ?hread"
%$ando $ili7ada a con(ig$ra&o para a 2ib A#3-4-5.
Arav>s dele" devemos iniciar o ambiene necess;rio 6o aendimeno das re%$isi&'es de
processameno via 4ro!ser " arav>sde lin9s .ap!" ais como a aber$ra de dicion;rios e
cone/o com o 4anco de Fados.
Br$pos Relacionados
Principal / A Tecnologia Protheus / Programao Advpl para WE / !n"ra#Estrutura
APWEE$ / Pontos de Entrada
0!. $*<<E$1WEBEX
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
02. HCKK-H?3-4-5 8 ] cUn2in9 N : **N cEmlVld
#ar)meros
Arg$meno ?ipo Fescri&o
cUn2in9 Haracer
U$n&o chamada arav>s do 2in9 . #or e/emplo " $m lin9
no bro!se chamando hp://localhos/!Lese.ap!OCpcM0A
" seria recebido nese par)mero a sring 13L?-D?-1
Reorno
?ipo Fescri&o
Haracer
Haso reornada $ma sring em branco " a e/ec$&o da ($n&o originalmene
chamada no lin9 .ap! prosseg$e normalmene. Haso conr;rio " a sring
reornada > devolvida ao 4ro!ser soliciane " e a ($n&o chamada arav>s
do lin9 no > e/ec$ada.
Fescri&o
-se pono de enrada > e/ec$ado imediaamene anes do processameno de $ma
re%$isi&o reali7ada arav>s de $m bro!ser para processameno de $ma ($n&o Advpl "
arav>s de $m lin9 .ap! " permiindo reali7ar $ma pr>*valida&o anes de cada
processameno soliciado arav>s do 4ro!ser.

0&. RE/E1WEBEX
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
0A. R-D-?3-4-5 8 ] cUn2ic9 N : **N cEmlAdd
#ar)meros
Arg$meno ?ipo Fescri&o
cUn2ic9 Haracer
cUn2in9 corresponde 6 ($n&o Advpl %$e (oi chamada e
processada imediaamene anes da chamada dese pono de
enrada.
Reorno
?ipo Fescri&o
Haracer
-se pono de enrada F-V- reornar $ma sring " podendo ser incl$sive
$ma sring va7ia. A Dring reornada ser; acrescenada ao Hodigo Eml a
ser reornado ao 4ro!ser
Fescri&o
-se pono de enrada > e/ec$ado imediaamene ap+s o processameno de $ma
re%$isi&o de processameno Advpl arav>s de $m 3eb 4ro!ser $ili7ando as
con(ig$ra&'es e 2ib A#3-4-5.
-le permie %$e se0a e/ec$ado $m processameno adicional ap+s o processameno de
cada re%$isi&o .ap! " e aida permie $m reorno de hml adicional ao bro!ser.
Vale a pena lembrar %$e ese pono no ser; e/ec$ado em caso de erro (aal no pono
de enrada JLHCKK-H?3-4-5 o$ na e/ec$&o da ($n&o principal chamada arav>s
do 2in9.
0(. PI<I/#WEBEX
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
04. U,K,DE3-4-5 8 : **N K,2
#ar)meros
Arg$meno ?ipo Fescri&o
Reorno
?ipo Fescri&o
8KJ2C: C Reorno dese pono de enrada no > $ili7ado.
Fescri&o
-se pono de enrada > e/ec$ado %$ando da (inali7a&o 8 Uechameno : de $ma
3or9ing ?hread A#3-4-5. Ko recebe par)meros " e no re%$er reorno. -le permie
%$e se0a e/ec$ado $m procedimeno %$al%$er no momeno da sa<da de $ma 3or9ing
?hread" se0a por ime*o$ o$ por empo oal de permanncia no ar.
0). E<C/E//I*<
Reviso: 10/12/200A
Abrangncia
Verso 7.10 Verso 8.11 2,4 3-4-5
Dina/e
0`. -KFD-DD,CK 8 ] cDession,d N : **N K,2
#ar)meros
Arg$meno ?ipo Fescri&o
cDession,d Haracer
cDession,d corresponde 6 sring ideni(icadora das sessions
dese $s$;rio.
Reorno
?ipo Fescri&o
8KJ2C: C reorno dese pono de enrada deve ser n$lo
Fescri&o
Arav>s dese pono de enrada " podemos e/ec$ar $ma roina Advpl %$ando da
(inali7a&o das sessions de $m $s$;rio por ime*o$ de inaividade. C Reorno dese
pono de enrada no > $ili7ado" devendo ser n$lo 8K,2:.
Apenas devemos compilar ese pono de enrada no #ro0eo caso realmene e/isa a
necessidade de ser e/ec$ado $m processameno espec<(ico relacionado 6 (inali7a&o
das sessions de $m $s$;rio. Vale a pena ressalar amb>m %$e ese pono de enrada
apenas > chamado na (inali7a&o das sessions por empo de inaividade. Haso se0a
$ili7ada a ($n&o hp(reesession8: para limpar da mem+ria as sessions do $s$;rio a$al
em $ma 3or9ing ?hread" ese pono de enrada no ser; chamado.
0-. WEBEXERR*R
Reviso: 1Z/12/200A
Abrangncia
2,4 3-4-5
Dina/e
0Z. 3-4-5-RRCR 8 ] o-rrorCb0 N " ] c-rror2og N " ] c-rrorEml N : **N c.sgEml
#ar)meros
Arg$meno ?ipo Fescri&o
o-rrorCb0 Cb0eo Cb0eo do -rro Advpl.
c-rror2og Haracer .ensagem ADH,, %$e ser; gravada no ar%$ivo error.log
c-rrorEml Haracer .ensagem Eml original da roina de raameno de -rro
Reorno
?ipo Fescri&o
Haracer
Reorno opcional. Haso reornado K,2 o$ sring va7ia " ser; reornado ao
$s$ario o hml de erro gerado pela roina de raameno sandard. Haso o
pono de enrada reorne $ma Dring E?.2 " ela ser; mosrada ao $s$;rio
no ligar do Eml gerado pela roina de raameno de erro.
Fescri&o
-se pono de enrada ser; chamado no caso de $ma ocorrncia de erro (aal Advpl
d$rane a e/ec$&o de $ma 3or9ing ?hread em ambiene / 2ib A#3-4-5" permiindo
a monagem de $ma mensagem de erro E?.2 c$somi7ada a ser devolvida 6o $s$;rio.
-se pono de enrada recebe como par)meros o ob0eo do erro " a descri&o ADH,,
complea do erro gravada no error.log " e o E?.2 de(a$l monado pela da roina de
raameno de erro %$e ser; devolvido ao $s$ario. Arav>s da $ili7a&o dese pono de
enrada " > poss<vel gerar $m Eml di(erenciado con(orme a necessidade" para mosrar a
ocorrncia de erro e/o$ maiores insr$&'es ao $s$;rio.
*B/ERA=HE/
Independentemente do retorno deste ponto de entrada F a Wor%in6 1Aread
?ue apresentou ocorrencia de erro serM derru+ada apos o retorno do #tml
para o Bro4ser F e o ar?ui"o error.lo6 serM 6erado normalmente . $aso este
ponto de entrada retorne uma strin6 em +ranco F serM mostrado ao usuMrio
a mensa6em de erro #tml default 6erada pela rotina de tratamento de erro.
Este ponto de entrada serM cAamado apenas caso a ocorr[ncia de erro esteIa
relacionada com uma cAamada de funo "ia lin% .ap4F aplicando-se
apenas N funo .ap4 cAamada e Nos pontos de entrada
:S$*<<E$1WEBEX e :SRE/E1WEBEX. Em caso de ocorr[ncias de
erro no start da 1Aread D:S/1AR1WEBEXEF na finaliJao da 1Aread
D :SPI<I/#WEBEX E e na finaliJao de sessions de usuMrio por time-
out D :SE<C/E//I*< EF o ponto de entrada :SWEBEXERR*R no serM
cAamado .
Beco.enda-se forte.ente P#e & na .ontage. da f#nJKo deste ponto de
entrada & nKo seMa #tili;ado nenh#. rec#rso 1dpl P#e dependa de a.!iente &
disco & !ase de dados o# Session & li.itando-se apenas U c#sto.i;ar #.a
.ensage. de ocorrVncia de erro ao #s#Lrio "
Caso seMa reprod#;ida alg#.a ocorrVncia de erro neste ponto de entrada&
isto farL a aplicaJKo ( 7rothe#s Serer ) eniar ao Ero:ser #. Ht.l gerado
pela rotina de trata.ento de erro defa#lt do 7rothe#s"

A #REP - ]ncoras e espaos
Reviso: 11/12/200A
Q$ando passamos par)meros de $ma p;gina para o$ra " via %$erG sring 8JR2: "
devemos er o c$idado de no dei/ar espa&o8s: em branco enre par)meros na
monagem da JR2. Q$ando $ili7amos o ,nerne -/plorer os espa&os em branco so
converidos 8h: a$omaivamene para a se%$ncia Dring c20" por>m %$ando
$ili7amos o Kescape" %$ando colocamos $m espa&o em branco em $m par)mero " o
KeDcape ,BKCRA $do o %$e vem ap+s o primeiro espa&o em branco " perdendo assim
os demais par)meros.
Honsideremos o e/emplo abai/o :
5a href=$/:e!info"ap:Gpar1=1I' HparI='=A$>3ink5/a>
Ko ,nerne -/plorer no haver; problemas 8h: " pois os espa&os sero converidos. Ko
Kescape " o par)mero par2 no ser; colocado na JR2... A (orma correa deve ser
5a href=$/:e!info"ap:Gpar1=1I'WI<WI<WI<HparI='=A$>3ink5/a>
Q$ando a chamada > gerada dinamicamene " devemos $ili7ar a ($n&o escape8: " para
converer caraceres reservados e espa&os da sringlis para a noa&o Ee/adecimal
8cEE: para serem enviados correamene pela JR2
5a href=$:e!info"ap:Gpar1=5W=-scape(cCodigo)W>HparI='=A$>3ink5/a>
*+ser"ao : Vale a pena lembrar %$e a ($n&o escape8: deve ser aplicada apenas 6os
coneIdos da sringlis" pois se por e/emplo (or converido pela escape8: o caracer
separador de par)meros P 8 e Homercial :" ese caracere ser; inerpreado como
FAFC e no como separador" compromeendo o ($ncionameno do lin9.
$om+o U /elect em #tml , Recuperando
"alores
Reviso: 11/12/200A
-/aminemos o e/emplo abai/o " onde criamos $m (orm$l;rio E?.2 com $m =Hombo
4o/= 8 ag ]D-2-H?N do E?.2:" de sele&o Inica " e %$eremos saber %$al o valor %$e
o $s$;rio seleciono$ para " por e/emplo " validar $ma escolha no 4ro!se 8 Hlien : :
5H,M3>5E80Q>
5for. na.e=$e+e.plo$ .ethod=$post$ action=$:9:+++"apl$>
5S-3-C, *1M-=$teste$ onChange=$Maascript:.#da()$>
587,I8* O132-=$1$>Oalor 1
587,I8* O132-=$I$>Oalor I
587,I8* O132-=$'$>Oalor '
587,I8* O132-=$=$>Oalor =
587,I8* O132-=$A$>Oalor A
5/S-3-C,>
5/for.>
5/E80Q>5/H,M3>
5SCBI7, 31*/21/-=$XaaScript$>
f#nction .#da()
Y
// Mostra P#al o #s#ario seleciono#
alert(doc#.ent"e+e.plo"teste"al#e)>
Z
5/SCBI7,>
Ko ,nerne -/plorer " ese c+digo ($nciona per(eiamene . #or>m " o KeDcape
mossrar; o coneIdo como n$ll" pois ele no arib$i $ma propriedade val$e a $m
combo parindo de $ma sele&o.
#ara %$e se0a rec$perado o valor do elemeno selecionado " $ili7amos o c+digo abai/o "
compa<vel com ambos os 4ro!sers.
document<e*emlo<teste<otions5document<e*emlo<teste<selectedInde*9<value
Koe %$e $ili7amos o arraG opions do conrole ese para ober o valor correo "
$ili7ando o <ndice %$e es; selecionado. A ($n&o m$da poderia (icar assim:
5SCBI7, 31*/21/-=$XaaScript$>
f#nction .#da()
Y
ar al9co.!o =
doc#.ent"e+e.plo"teste"options(doc#.ent"e+e.plo"teste"selectedInde+)"al#e>
// Mostra P#al o #s#ario seleciono#
alert(al9co.!o)>
Z
5/SCBI7,>
Ciferenas entre os <a"e6adores IE e
Zon?ueror
Reviso: 1A/04/2004
1. A$ali7a&o de (rames com !indo!.open
*correncia , #ara chamar $ma nova p;gina no ,-" c$0o desino ser; o (rame a$al o$
p;gina a$al do 4ro!ser" podemos $sar a ($n&o 0avascrip : 4indo4.openD VGGG.ap4VF
VSselfV E . Ko ,- 8,nerbe -/plorer: o lin9 chamado > abero no mesmo (rame de onde a
insr$&o > chamada" mas no Won%$eror esa insr$&o abre $ma nova 0anela com o
nome =Lsel(=.
/oluo , Jili7e a insr$&o _avaDcrip 4indo4.location para a$ali7ar o endere&o da
0anela a$al o$ (rame especi(icado. #or e/emplo " 4indo4.location\VGGG.ap4V
Estrutura de Prames em #123
Reviso: 1`/12/200A
Abrangncia
Vers'es Aneriores
Analisemos a esr$$ra de (rames abai/o :
5H,M3>
5fra.eset fra.espacing=$<$ !order=$<$ cols=$1<<&1<<$ fra.e!order=$<$>
5fra.e na.e=$fr9not$ scrolling=$no$ !order=$<$ .argin:idth=4 .arginheight=<
src=$:9:inf<?C"apl$>
5fra.e *a.e=$fr91rea$ src=$$ Margin:idth=$<$ Marginheight=$<$ Fra.espacing=$<$
Eorder=$<$ Fra.e!order=$<$ scrolling=$a#to$>
5nofra.es>Se# !ro:ser nKo s#porta fra.es5/nofra.es>
5/fra.eset>
5/H,M3>
Jicas Tteis
#roc$rem sempre $ili7ar a ?AB ]no(ramesN para mosrar $ma mensagem de
erro no 4ro!se se o mesmo no poss$ir o rec$rso de inerprea&o de (rames
8 caso ese de navegadores do ,.-. A.0 o$ in(eriores e nescape A.0 o$ in(eriores:.
Dempre especi(i%$e ?CFCD os so$rces 8src: de cada (rame. Haso se0a
necess;rio $ma p;gina em branco como $m dos (rames " para cria&o din)mica
o$ algo parecido " $ili7e o so$rce a!o#t:!lank
Haso $m (rame da esr$$ra no enha a ag srcM=...= preenchida " o Kescape
mosrar; $ma 0anela com a seg$ine mensagem %$ando se enra na p;gina de
(rames:
$,he doc#.ent contained no data"
,r6 again later & or contact the serer$s ad.inistrator"$
A ag ]bodGN no > s$porada. na declara&o dos (rames. _amais $sem esa ag
em $ma esr$$ra de (rames.
2ostrando campos 2E2* em #tml
Reviso: 1`/12/200A
Abrangncia
Vers'es Aneriores
#ara vis$ali7ar o coneIdo de $m campo .-.C em $ma p;gina E?.2 " devemos
reali7ar alg$mas convers'es de caraceres para o e(eio dese0ado. -m E?.2 " emos
dois modos de inerprea&o :
1: Fe(a$l *N ,nerprea&o E?.2 " os Haracees HR2U 8 chr81A: / chr810: : no so
considerados como p$lo de linha " de modo %$e as %$ebras de linha so de acordo com o
design aplicado e/o$ o amanho dispon<vel no bro!se para a vis$ali7a&o do dado.
2: #r>*(ormaado *N ,nerprea&o semelhane 6 $m ar%$ivo ADH,, " $ili7a $m ipo de
lera =Reg$lar ?Gpe= " mono*espa&ada " considerando os c+digos HR2U como %$ebra de
linha " independene do design aplicado. Fe(inimos $ma area a ser inerpreada como
e/o pr>*(ormaado arav>s das ags ]preN ... ]/preN
A sol$&o mais com$m para a vis$ali7a&o de campos .emo 8 incl$sive (oi a sol$co
adoada a9i no 4anco de Honhecimeno * F-. : " > a de rocar os c+digos HR2U pela
ag =]brN= " para apenas reali7ar $m p$lo de linha no (im do par;gra(o. Apenas para
e/os de -/emplos de H+digo AFV#2 so $ili7adas as ag ]preN .. ]/preN" para %$e a
%$ebra de linha se0a $nica e e/cl$sivamene reali7ada no HR2U " mesmo %$e o amanho
da ela no permia mosrar esa %$ebra 8 caso ese no %$al a ela o$ (rame ganha $ma
barra de scroll no 3eb 4ro!ser : .
-/emplo 8 em ar%$ivo .aph :
5W=strtran( FFF->FFF9M-M8 & chr(1')%chr(1<) & $5!r>$ )W>
Haso enhamos ags inerpre;veis denro do memo " %$e no devam ser inerpreadas
pelo bro!se " mas sim consar como coneIdo do campo " devemos $ili7ar a ($ncao
EmlKo?ags " denro da e/presso aneriormene monada :
5W=strtran( Ht.l*o,ags(FFF->FFF9M-M8) & chr(1')%chr(1<) & $5!r>$ )
W>
De a ($n&o EmlKo?ags receber como paramero o reorno da Dr?ran " sero
mosrados na ela as ags =]brN= " %$e originalmene devem ser inerpreadas pelo bro!se
como %$ebras de linha.
RefresA em #tml U Oa"a/cript
Reviso: 1`/12/200A
Abrangncia
Vers'es Aneriores
-m Eml" para sear $m re(resh a$omaico da p;gina em ]nN seg$ndos" $ili7a*se $ma
ei%$ea mea " na seg$ine sina/e :
5.eta H,,7--[2IO=$B-FB-SH$ content=$5n> (> 2B3=5#rl>$)>
]nN ?empo em seg$ndos
X]$rlNY -ndereco a ser carregado. 8opcional:
-m _avascrip" para sear a e/ec$&o de $ma ($n&o a$omaicamene em $m inervalo
de empo" podemos $ili7ar a ($n&o se?imeC$8:
U$n&o se?imeo$8]cU$ncN"]n?imeN:
Ambiene _avaDcrip
#arameros :
]cU$ncN M Kome da ($ncao em _ava a e/ec$ar
]n?imeN M inervalo de e/ec$cao 8miliseg$ndos:
#&servao : Kas ($n&'es de ,n(ra*-sr$$ra A#3-4-5" (oi criada a ($n&o Advpl
Redir#age8:" %$e mona o scrip de redirecionameno con(orme os par)meros recebidos"
podendo ser especi(icado o empo de espera para o redirecionameno e $m ?ARB-?
di(erenciado para o redirecionameno.
Pun7es com ACP3 A/P
Reviso: 2Z/07/2004
Abrangncia
Verso `.07 Verso `.08 Verso Z.0a Verso 7.10 Verso 8.11

O cdigo abaixo representa o arquivo ms01.APH, que
contm a parte para Login
de um usuario
_ht(l>
_hN ali%n4"center"> Lo%in _!hN>
_hr>
_#or( na(e4"#or(3" (ethod4"post" action4"w`(s5N.apw">
_p>;o(e 8 _input na(e4"txt`;o(e" type4"text" id4"txt`;o(e"
siFe4"N6">_!p>
_p>Senha 8 _input na(e4"txt`Senha" type4"password"
id4"txt`Senha" siFe4"O" (axlen%th4"O">_!p>
_hr>
_p>_input type4"sub(it" Dalue4")$">_!p>
_!#or(>
_!ht(l>
O cdigo abaixo representa o arquivo ms02.APH, que
contm a parte do ormu!"rio
_ht(l>
_head>
_title>2:"*L 2S*_!title>
_!head>
_script lan%ua%e4"EaDascript">
!!-odi%o WaDaScript no 7ual n0o per(ite 7ue o #or(ul'rio seEa enDiado
se(
!!7ue seus ca(pos tenha( sido preechidos.
#unction enDia()
Y
Dar oFr( 4 docu(ent.#or(sf5gL

i# ( oFr(.txt`;o(e.Dalue 44 "" ^^ oFr(.txt`*re.Dalue 44 "" ^^
oFr(.txt`Fone.Dalue 44 "" ^^
oFr(.txt`1nd.Dalue 44 "" )
Y
alert( "*reencha &odos )s :ados :o For(ul'rio" )L
returnL
Z
oFr(.action 4 "w`(s5O.apw"L
oFr(.sub(it()L
Z
_!script>
_body>
_hN ali%n4"center"> For(ul'rio_!hN>
_hr>
_p>Be( "indo _V4?ttpSession=>UsuarioV>_!p>
_#or( na(e4"#or(" (ethod4"post" action4"">
_p>;o(e 8 _input na(e4"txt`;o(e" type4"text"
id4"txt`;o(e" siFe4"N6" Dalue4"">_!p>
_p>&ele#one 8 _input na(e4"txt`*re" type4"text"
id4"txt`*re" siFe4"O"> =
_input na(e4"txt`Fone"
type4"text" id4"txt`Fone" siFe4"35">_!p>
_p>1ndereGo 8 _input na(e4"txt`1nd" type4"text"
id4"txt`1nd" siFe4"N6">_!p>
_p>_input type4"button" Dalue4"1nDiar"
on-lic$4"enDia()">_!p>
_!#or(>
_hr>
_!body>
_!ht(l>
O cdigo abaixo representa o arquivo ms0#.APH, que
contm uma tabe!a que exibe os dados
preenc$idos no ormu!"rio, mais um contador do
tota! de ve%es que oi rea!i%ado esse ormu!"rio
_?&ML>
_table width4"N55" border4"3">
_tr>
_td width4"a6">;o(e_!td>
_td colspan4"N">_V4?ttp*ost=>txt`;o(eV>_!td>
_!tr>
_tr>
_td width4"a6">&ele#one_!td>
_td width4"\6">_V4?ttp*ost=>txt`*re V>_!td>
_td width4"\6">_V4?ttp*ost=>txt`FoneV>_!td>
_!tr>
_tr>
_td>1ndereGoL_!td>
_td colspan4"N">_V4?ttp*ost=>txt`1ndV>_!td>
_!tr>
_tr>
_td width4"a6">-ontador_!td>
_td colspan4"N">_V4?ttpSession=>-ontadorV>_!td>
_!tr>
_!table>
_*>
_input na(e4"eset" type4"reset" Dalue4""oltar"
on-lic$4"window.location 4 .w`(s5N.apw.">
_!*>
_!?&ML>
O cdigo abaixo representa o arquivo ms01.P&', que
contm as un()es escritas em A*+PL A,P
#+;-LU:1 "*)&?1US.-?"
#:1F+;1 +: "2d(in"
#:1F+;1 S1;?2 "3NO"
web #unction (s53()
!!2 #unG0o Q executada 7uando Q cha(ada atraDQs do browser.
return h`(s53()
web #unction (s5N()
!!"eri#ica se Q a pri(eira DeF 7 usu'rio #aF lo%in.
conout( +:, S1;?2 )
i# e(pty( ?ttpSession=>Usuario )
!!"eri#ica se os ca(pos #ora( preenchidos.
i# e(pty( ?ttp*ost=>txt`;o(e ) .2nd. e(pty( ?ttp*ost=
>txt`Senha)
return ";o(e e Senha n0o in#or(ados,,"
endi#
!!"eri#ica usu'rio e senha.
i# ?ttp*ost=>txt`;o(e ,4 +:
return "Usu'rio +nD'lido,,"
endi#
i# ?ttp*ost=>txt`Senha ,4 S1;?2
return "Senha +nD'lida,,"
endi#
!!Seta o no(e do usuario.
?ttpSession=>Usuario 84 ?ttp*ost=>txt`;o(e
endi#
return h`(s5N()
web #unction (s5O()
!!"eri#ica se a Sesssion E' #oi iniciada.
i# e(pty( ?ttpSession=>-ontador )
?ttpSession=>-ontador 84 3
!!caso tenha sido, incre(enta o contador.
else
?ttpSession=>-ontadorAA
endi#
return h`(s5O()
:pload de ar?ui"o "ia #11P
Reviso: 0`/10/2004
Abrangncia
Verso 7.10 Verso 8.11
-se e/emplo de AFV#2 AD# mosra como reali7ar o $pload de $m ar%$ivo via E??#.
O cdigo abaixo representa o arquivo -ms01.APH-, que contm um
ormu!"rio para indicar o !oca! do aquivo para up!oad.
_ht(l>
_head>
_title>1xe(plo Upload_!title>
_!head>
_body>
_table width4"655" border4"3" ali%n4"center" cellpaddin%4"5"
cellspacin%4"5">
_tr>
_td width4"N]V" ali%n4"ri%ht">*ath do ar7uiDo 8 _!td>
_td width4"NV"> _!td>
_td width4"\5V">_V4http*ost=>txtFileV>_!td>
_!tr>
_tr>
_td ali%n4"ri%ht">&a(anho 8 _!td>
_td> _!td>
_td>_V4Len%thFileV>_!td>
_!tr>
_!table>
_!body>
_!ht(l>
O cdigo abaixo representa o arquivo -up!oad.APH-, que contm um
ormu!"rio para exibir a!guns dados do aquivo enviado.
A parte mais importante desse cdigo, se reere a propriedade
.enct/pe0-mu!tipart1orm2data-3 dentro da tag
, essa propriedade garante que o arquivo se4a enviado corretamente.
_ht(l>
_head>
_title>1xe(plo Upload_!title>
_script>
#unction EUpFile()
Y
i#( docu(ent.#or(.txtFile.Dalue 44 "" )
Y
alert( "+n#or(e o no(e do ar7uiDo clicando e(
Browse..." )L
returnL
Z
docu(ent.#or(.action 4 "w`upFile.apw"L
docu(ent.#or(.sub(it()L
Z
_!script>
_!head>
_body>
_#or( na(e4"#or(" action4"" enctype4"(ultipart!#or(=data"
(ethod4"post">
_p ali%n4"center">
_#ont #ace4"2rial, ?elDetica, sans=seri#" siFe4"O">_b>1xe(plo de
upload de ar7uiDos e( 2:"*L 2S*_!b>_!#ont>_br>
_br>
_input na(e4"txtFile" type4"#ile" id4"txtFile" siFe4"65">
_br>
_br>
_input na(e4"btnSub" type4"button" id4"btnSub" Dalue4"Subir
ar7uiDo" on-lic$4"EUpFile()">
_!p>
_!#or(>
_!body>
_!ht(l>
O cdigo abaixo representa o arquivo -up!oad.P&'-, que contm as
un()es escritas em A*+PL A,P.
#+;-LU:1 "*)&?1US.-?"
#+;-LU:1 "F+L1+).-?"
/eb Function upFile()
Local n? 84 F)pen( http*ost=>txtFile, 5 A bP )
*riDate Len%thFile 84 5
Len%thFile 84 #See$( n?, 5, FS`1;: )
eturn h`espUpFile()
#123
Reviso: 1A/04/2004
E?.2" abrevia&o para $H6per,e+t Mark#p 3ang#age$" %$e signi(ica =2ing$agem de
Uormaa&o de EGper?e/o=
E?.2 > a (ormaa&o padro adoada para a p$blica&o de EGper?e/o na ,nerne
8@orld @ide @e!:. C E?.2 consise em $ma (ormaa&o no*proprie;ria" baseada no
DB.2 8 Standard /enerali;ed Mark#p 3ang#age :" e pode ser criada e processada por
$m grande nImero de (erramenas" desde ediores de e/o*plano 8 como o Koe#ad" por
e/emplo:" a> so(isicados =so(!ares de a$oria= 3\D,3\B 83ha \o$ Dee ,s 3ha
\o$ Be: .
4asicamene" o E?.2 $ili7a*se dos marcadores ] e N para esr$$rar e (ormaar e/o.
#or e/emplo:
2era normal" ]bNnegrio]/bN e ]$Ns$blinhado ]/$N
A linha de e/o acima" represenada em $m 3eb 4ro!ser" seria mosrada assim :
2era normal" ne6rito e s$blinhado
#11P
Reviso: 1A/04/2004
E??# > a abrevia&o de $H6per ,e+t ,ransfer 7rotocol$" %$e signi(ica =#roocolo de
?rans(erncia de EGper*?e/o=.
C E??# > $m proocolo em n<vel de aplica&o para disrib$i&o de in(orma&'es. ?raa*
se de $m proocolo gen>rico" %$e pode ser $ili7ado para m$ias o$ras aplica&'es al>m
de rans(erncia de hGpere/o" como nomear servidores e rocas de in(orma&'es enre
sisemas inegrados" $ili7ando*se s$as e/ens'es" c+digos de erro" m>odos de
re%$isi&o e cabe&alhos 8Headers:. Jma caracer<sica imporane do E??# > a ipagem
e normali7a&o da represena&o da in(orma&o" permiindo a consr$&o de sisemas
independene do modo pelo %$al os dados eso sendo rans(eridos.

1Areads e 4or%in6 tAreads
Reviso: 1A/04/2004
# Aue - uma /,read?
A maioria dos programadores es; (amiliari7ada com programas de e/ec$&o
se%$ncial. Voc provavelmene 0; deve er escrio $m programa %$e mosra =Cl;
.$ndo= o$ ordena $ma lisa de nomes" o$ calc$la $ma lisa de nImeros primos. -ses
programas so se%$enciais" e cada $m deles m $m come&o" $ma se%$ncia de
e/ec$&o e $m (inal . -m %$al%$er momeno da e/ec$&o do programa" emos apenas
$m pono de e/ec$&o.
Jma ?hread > semelhane 6o programa descrio acima" endo $m come&o" meio e (im.
#or>m" $ma ?hread em si no > $m programa" pois ela no se e/ec$a : ela roda 8com: o
programa S
#or de(ini&o : 'ma /,read - o flu*o seAUencial de controle Tnico dentro de um
ro0rama<
Ko h; nada de novo o$ especial sobre programas se%$enciais e/ec$ados em $ma
simples hread. A grande sacada consise no $so de .Iliplas ?hreasds denro de $ma
aplica&o" odas em e/ec$&o sim$l)nea" por>m cada $ma reali7ando are(as di(erenes.
Fe al modo %$e" por esarem reali7ando ae(as independenres" cada hread poss$i o se$
pr+prio cone/o de e/ec$&o" aloca&o de mem+ria e conrole de pilha de e/ec$&o
8Dac9:. C c+digo em e/ec$&o em $ma ?hread rabalha denro de se$ cone/o
espec<(ico" de modo %$e v;rias o$ras doc$mena&'es re(erem*se ao =cone/o de
e/ec$&o= como sendo $m sininimo de ?hread.
Wor!in0 t,reads
Famos o nome de =:orking thread= %$ando so iniciadas mais de $ma hread
independene na aplica&o" e odas as hreads iniciadas so colocadas em =modo de
espera= 8idle:" ag$ardando $ma solicia&o de processameno da aplica&o. .ais de $ma
solicia&o pode ser reali7ada" e o nIcleo da aplica&o encarrega*se de disrib$ir os
processamenos enre as hreads dispon&iveis. ?erminado o processameno de $ma
hread" a mesma reorna ao =modo de espera=" esando prona novamene para aender 6
$ma nova solicia&o. -se rec$rso possibilia $m ganho signi(icaivo de per(ormance"
por no haver a necessidade de criar e (inali7ar $ma nova hread para cada solicia&o
de processameno.

Você também pode gostar