O login 

Princípio

O login XTEND está baseado sobre uma chamada de um web service via uma ação utilizador

Este documento descreve a colocação em obra da função de login no estabelecimento de referência ASAMPLE

No nosso exemplo, o sub-progama de login valida a assinatura e reenvia as informações sobre a conta utilizador :

  • A sua identidade que será guardada na entidade sessão
  • A lista dos endereços da expedição que será guardada sobre a forma de entidades de tipo "Ação" afim de poder estar afixados

Se vosso estabelecimento XTEND foi criado a partir de uma cópia do estabelecimento ASAMPLE as fichas de parametrização estão já criadas.

Senão você pode seja os criar seja os copiar um a um a partir do estabelecimento ASAMPLE com o botão de ação X3 "Cópia".

Procedimento

1. Criação de uma "página web" (ALOGIN) para o registo do código utilizador/Expressão de passe.
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).

Gestão do login para o estabelecimento ASAMPLE

Funcionamento do tratamento de login para o estabelecimento ASAMPLE

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.

Parametrização X3

Etapa 1 - Criação de interface

O tratamento L4G

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

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

A ficha Interface

   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

  • No nosso exemplo n´s agrupamos os parâmetros que afetam os endereços de expedições (SHIP*) sob o grupo de nome X3LOG. Ter-se-á podido utilizar um outro grupo se a dimensão está diferente do grupo contendo os outros parâmetros AX3*.
  • Os outros parâmetros (AX*) são os parâmetros obrigatórios que deve implementar todo o sub-programa de login XTEND.
  •  AXLOCOD / AXLOGVAL : Informações complementares sobre o utilizador, de tipo chave/valor, que serão guardados na sessão XTEND (bloco ASESSION).
    Ex : NOM/DUPONT,TEL/0476232526,COMPANY/SAGE...

   7. Gerar todos os campos de interface
Ver o menu "Utilitários/Criação token campo"

Campos não descritos na interface

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".

Etapa 2 - Criações das entidades

Identidade utilizador

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.

Endereços de entraga

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.

Etapa 3- Criação da ação web

Declaração dos parãmetros

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

Mapping dos parâmetros em entrada

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.

Mapping dos parâmetros em saída

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

Etapa 4- Criação da ligação dinâmica

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

Parâmetros gerais

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

Parâmetros da ação.

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 :

  • utilizador valorizou todos os campos obrigatórios
  • os dados registados são corretos para os campos de tipo data e numérica.

O controlo está efectuado pela biblioteca JavaScript d'XTEND.

Etapa 5 - Criação dos tokens bloco

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"

Etapa 6 - Criação das páginas web
Login

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

Conta utilizador

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

Etapa 7 - Validação do estabelecimento

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.

Página HTML

Ligação versus a página

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".

Gestão do menu login/logout

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">

Registo do login

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>

Afixação conta utilizador

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 :

  • identidade de utilizador guardado ASESSION
  • lista dos endereços (entidade ASHIPADDR)

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.

Afixação da descrição da página

<!adx="ABLKDOCHTML">
<div adx="TEXTE">
</div>
<!adx="ABLKDOCHTML">