Esta página será afixada em modo segurança (HTTPS)
2. Criação de uma interface (AXTDLOGIN) para a chamada do web service de login
3. Criação de entidades (ASHIPADDR) para guardar as infromações da conta utilizador.
4. Criação de uma "ação Web" de tipo "Login" (ASESSLOGIN)
Parâmetros em entrada : o código utilizador e a palavra de passe.
Estes parâmetros serão "mapeados" sobre os parâmetros em entrada do web service.
5. Criação de um token "ligação dinâmica (ADLKLOGIN)
Inserido na página HTML (botão "Validar") para desencadear a ação utilizador.
6. Criação de uma "página web" (AUSERACCOUNT)
Afixa as informações da conta cliente reenviadas pelo sub-programa de login
Esta página será afixada em modo segurança (HTTPS).
As infromações de login XTEND são geradas na ficha utilizador X3
Um utilizador XTEND está declarado como um utilizador X3 para o qual se assinalou a check box a assinalar "Conexão estabelecimento web".
O seu perfil SAFE X3 WAS está recuperado e aliemtado na entidade ASESSION.AUSERPROFILE.
O ficheiro AYTXTLOGIN.src contém as fontes do programa de login
Os dados da conta utilizador são programados em "duro" no tratamento.
As contas sage/sage permite efectuar o login sem controlo da palavra chave
Exemplo
Tratamento do login(info) do estabelecimento ATEMPLATE
A ficha sub-programa AYTXTLOGIN descrieve os parêmetros do sub-programa.
Ver o documento ação utilizador para mais informação sobre o programa de login.
Os outros parâmetros (AX*) são os parâmetros obrigatório que deve implementar todo o sub-programa de login XTEND.
Antes de continuar falta assegurar que dob-programas está bem publicado com o nome de publicação AXTDLOGIN
1. Criar uma ficha Interface AXTDLOGIN de tipo "Ação sub-programa"
2. Selecinar o nome de publicação AXTDLOGIN
3. Verifique que o acesso não está protegido.
4. Assinalar a afixação de todas as mensagens
5. Registar e validar
6. Gerar o acesso
Código parâmetro | Grupo | Dimensão | Nome parâmetro |
AXPARCOD | AX_PAR | 20 | Código parâmetro |
AXPARVAL | AX_PAR | 20 | Valor parâmetro |
AXUSERCODE | AXLOG_PAR | 1 | Código utilizador recuperado |
AXPWD | AXLOG_PAR | 1 | Expressão de passe para o utilizador recuperado |
AXUSERPROF | AXLOG_PAR | 1 | Perfil XTEND recuperado |
AX3SOL | X3LOG | 10 | Solução devolvida |
AX3FLDR | X3LOG | 10 | Dossier devolvido |
AX3LANG | X3LOG | 10 | Língua devolvida |
AX3USER | X3LOG | 10 | Utilizador devovido |
AX3PWD | X3LOG | 10 | Expressão de passe retornada |
AXLOGCOD | AXLOG_RES | 50 | AXLOCOD / AXLOGVAL : Informações complementares sobre o utilizador, de tipo chave/valor, que serão guardados na sessão XTEND (bloco ASESSION). |
AXLOGVAL | AXLOG_RES | 50 | Idem |
SHIPADDR1 | X3LOG | 10 | informações devolvidas ligadas ao utilizador |
SHIPADDR2 | X3LOG | 10 | idem |
SHIPCITY | X3LOG | 10 | idem |
SHIPZIP | X3LOG | 10 | idem |
7. Gerar todos os campos de interface
Ver o menu "Utilitários/Criação token campo"
Os campos afetam a identidade de utillizador são passados sob a forma de lista chave/valor (AXPARCOD/AXPARVAL) e não estão visíveis nos parãmetros do sub-programa (NAME, FIRSTNAME, PHONE, EMAIL).
É então necessário de declarar estes campos via a função XTEND "Token campo".
Os campos levados pelos parâmetros AXPARCOD/AXPARVAL (chave/valor) são acrescentados automatricamente pelo servidor XTEND na sessão utilizador ASESSION.
A utilização de chave/valor permite limitar o número de parâmetros do sub-programa.
Criar a entidade ASHIPADDR de tipo Ação.
Ver o menu "Utilitários/Ajuda ao preenchimento"
Esta entidade será em seguida no mapeamento devolução de ação de login.
Criar uma ação ASESSLOGIN de tipo Logim com por parâmetros os campos AXUSERCODE e AXPWD em registo.
Supressão em início
desassinalado: para suprimir as entidades apenas se o login está validado.
Seguimento de atividade
Sim : para que cada chamada de ação seja registada no ficheiro de log
Ativo sobre reload
Não : para não recordar o login se o utilizador apoia sobre F5
Trata-se de fazer corresponder os campos XTEND com os parâmetros de chamada do web service de login.
No nosso caso nós devemos fazer unicamente um "mapping" dos parãmetros de ação AXUSERCODE, AXPWD.
Para "mapear" os parãmetros de ação não se regista o código da entidade.
Trata-se de criar duas entidades de tipo Ação ASHIPADDR a partir dos dados reenviados por X3
Esta entidade é de tipo Multi porque ela está baseado sobre um grupo de parâmetros (AXLOG_PAR) multi-dimencionado.
As entidades de tipo Ação são guardadas em memória durente toda a duração da sessão utilizador.
Elas são recriadas automaticamente a cada chamada de ação
A ligação dinâmica ADLKLOGIN é o token que será inserido no botão (tag <input>) de login. permite definir a página de destino (Página corrrente no nosso caso), de associar a ação ASESSLOGIN e de valorizar os parâmetros
Seguimento de atividade
Sim : para que cada clique sobre a ligação registada no ficheiro de log
Forçar o modo http posto
Não : Como uma ação com parâmetros está associada à ligação dinâmica, o pedido será enviado automaticamnte em modo POST
Página corrente
Sim : O resultado (informação utilizador) está afixada na página corrente.
Ação
Código de ação a desencadear (ASESSLOGIN)
Controlar os campos web
Sim : para o parâmetro código utilizador para controlar automaticamente os campos em registo obrigatório
Não: para o parâmetro de palavra chave porque autoriza o registo das palavras passe vazias
Transação de declarar todos os parâmetros de ação login e de indicar a maneira cujo se deseja os valorizar.
AXUSERCODE, AXPWD
'Chp Web Oblig' : Registo obrigatório por um campo web
"Campo web" : contém o nome tag input (atributo nome)
O controlo de registo não está ativo que se a opção "Separador Geral / Controlar os campos web" está assinalado.
O pedido será colocado versus o servidor XTEND apenas se :
O controlo está efectuado pela biblioteca JavaScript d'XTEND.
O token bloco ABLKSHIPADDR está utilizado para afixar as entidades ASHIPADDR que representam os endereços de entrega.
Tipo
Multi-registos : Efetua uma iteração sobre todas as entidades ASHIPADDR e posiciona cada entidade ao extremo (topo) da pilha do contexto de dados depois executa os tokens filhos
Nenhum dado
Nada a afixar : Se a entidade ASHIPADDR não existe o bloco e os tokens "filhos" são ignorados
Entidade
ASHIPADDR : Código de entidade a afixar
Linha por bloco
10 : Afixa 10 entidades ASHIPADDR máximo na página.
Célula por linha
1 : Afixa uma entidade por linha
Estilo por linha
oddLine e evenLine : Estilos a definir no ficheiro "my.css" para alternar a cor de fundo das linhas
Não é possível de definir os critérios de seleção sobre os blocos que selecionam as entidades guardadas em memória do servidor XTEND, quer dizer de tipo sessão ou Ação. O bloco seleciona automaticamente todas as entidades.
Os critérios de seleção se aplicam unicamente que às entidade de tipo "Acesso dados"
Criar a página web ALOGIN.
Página por defeito
Associar o ficheiro login.html.
O ficheiro deve estar presente sobre o servidor X3 e pode ser selecionado pela tecla F12.
Protocole
Https : Para indicar que falta encriptar os dados do pedido (Ver configuração HTTPS)
Bloco principal e bloco de fundo
Nenhum
Acesso protegido
Não: para indicar que esta página está em acesso livre (anónimo)
Seguimento de atividade
Sim : para que cada afixação da página seja registada no ficheiro de log
Criar a página web AUSERACCOUNT.
Página por defeito
Associar o ficheiro account.html
Protocole
Https : Para indicar que falta encriptar os dados do pedido
Acesso protegido
Sim : Para bloquear o acesso a esta página aos utilizadores anónimos.
Seguimento de atividade
Sim : para que cada afixação da página seja registada no ficheiro de log
Após modificação dos parâmetros X3 é aconselhado de validar a integralidade do estabelecimento via a função afim de reconstruir o dicionário do servidor XTEND via a função 'Validação estabelecimento Web(AYTFCYGEN)".
Bem verificar que o estabelecimento XTEND está publicado, quer dizer o campo "Publicado o estabelecimento" da ficha "Estabelecimento web" está assinalado.
Inserção do token "página web" ALOGIN no menu esquerdo para afixar a página.
<TD class="botão"><A adx="ALOGIN">Login</A></TD>
Para efetuar uma ligação simples (sem ação nem seleção) versus uma página web via um tag âncora é suficiente de inserir um token de tipo "página web" no tag (<a adx="PageWeb"></a>) afim de limitar o número de tokens "ligações dinâmicas".
O conteúdo do menu esquerdo está modificado dinamicaemnte segundo que o utilizador seja assinado ou não.
Para tal nós temos utilizado ligação condicionadoADISPUSERLOGGEDIN que afixa o conteúdo do bloco (elementos filhos) se utilizador está assinado.
<!adx="ADISPUSERLOGGEDIN">
<!--Left menu for authenticated user-->
<TR>
<TD class="button">
<A adx="AUSERACCOUNT">Compte</A>
</TD>
</TR>
<TR>
<TD class="button">
<A adx="ADLKLOGOUT">Logout</A>
</TD>
</TR>
<!adx="ADISPUSERLOGGEDIN">
<!adx="ADISPUSERLOGGEDIN:xnot">
<!--Left menu for anonymous user-->
<TR>
<TD class="button">
<A adx="ALOGIN">Login</A>
</TD>
</TR>
<!adx="ADISPUSERLOGGEDIN">
Criações dos campos de registo <input type="text"> do códog utilizador e palavra chave.
SE não se indica o atributo nome num tag <input> será gerado automaticamnte com o nome do token adx.
O parâmetro xrc(<input adx="TokenName:xrc">) está utilizado para reafixar o último valor registado em caso de erro de registo detetado pelo servidor XTEND ou aplicação X3. Permite evitar de perto os dados registados.
Para o registo de uma palavra chave acrescenta-se o atributo name="AXPWD" porque não é necessário de inserir um token adx para reafixar a palavra chave.
Criação de um botão <input type="botão"> "Validar" e inserção do token "ADLKLOGIN" que desencadeará a ação de login.
Todos os botões <input type="botão"> que contém os tokens adx devem ser de tipo "botão".
O tipo submite não deve ser utilizado.
<tr>
<td><b>Code:</b></td>
<td> <input name="AXUSERCODE" type="text" adx="AXUSERCODE:xrc"></td>
<td><input type="botão" value="Validar" class="botão" adx="ADLKLOGIN"></td>
</tr>
<tr>
<td><b>Palavra chave:</b></td>
<td colspan="2"> <input type="password" name="AXPWD"> </td>
</tr>
O token ADLKLOGIN afixa a página AXUSERACCOUNT se a assinatura está validada pelo sub-programa X3.
Uma ação utilizador é considerada como validada se a chamada do web service não renvia nenhuma mesagem de erro.
As mensagens de erro são colocadas em L4G via o sub-programa ADDMESSERR (Call ADDMESSERR("Message") From AWEB)
A afixação das mesagens X3 é efetuada via o token AXUSERMSG.
Ex : <span id="userMsg" class="userMsg" adx="aMsgUser"></span>
A página AUSERACCOUNT afixa as informações da conta utilizador. Os dados são emitidos do "mapping" dos parâmetros reenvados pelo sub-programa de login :
A afixação dos dados de identidade consiste a posicionar os token "campo web" sem indicar o contexto de dados (token bloco) porque os dados da sessão são sempre disponíveis numa página web.
<tr>
<td><b>Nom:</b></td>
<td adx="NAME"></td>
</tr><tr>
<td><b>Prénom:</b></td>
<td adx="FIRSTNAME"></td>
</tr><tr>
<td><b>EMail:</b></td>
<td adx="EMAIL"></td>
</tr><tr>
<td><b>Tél.:</b></td>
<td adx="PHONE"></td>
</tr>
A afixação da lista dos endereços de entrega consiste a posicionar o bloco ABLKSHIPADDR que efectua uma iteração sobre a lista dos endereços e permite criar tantas linhas no quadro que o endereço na lista.
Para cada linha se cria tantas células com um tag adx = "SHIP*" que de dados a afixar.
<table width="100%" border="1">
<tr class="tabTitle">
<th><small><b>Adresse1</b></small></th>
<th><small><b>Adresse2</b></small></th>
<th><small><b>Ville</b></small></th>
<th><small><b>Code postal</b></small></th>
</tr>
<!adx="ABLKSHIPADDR">
<tr adx="aLineStyle:xattr=Class">
<td><small adx="SHIPADR1"></small></td>
<td><small adx="SHIPADR2"></small></td>
<td><small adx="SHIPCITY"></small></td>
<td><small adx="SHIPZIP"></small></td>
</tr>
<!adx="ABLKSHIPADDR">
</table>
Para afixar as linhas de um quadro com as cores alternadas coloca-se um token adx no tag <tr>.
<tr adx="aLineStyle:xattr=Class">
aLineStyle contém o nome da classe e xAttr=Classe indica que falta valorizar o atributo classe com o valor do campo aLineStyle.
As classes css (aLineStyle) que são aplicadas às linhas do quadro são definidas na ficha de paramtrização do bloco.
<!adx="ABLKDOCHTML">
<div adx="TEXTE">
</div>
<!adx="ABLKDOCHTML">