Ação utilizador 

Introdução

Uma ação utilizador XTEND se traduz seja por uma ação efetuada diretamemnte pelo servidor XTEND, seja por chamada de um web service X3 que pode ser seja um sub-programa seja uma ação associada a um objeto X3.

A ação utiliza os web services X3 quando ela está assoicada a uma interface.

Uma ação Web espera os parãmetros em entrada, efetua um tratamento e valoriza um certo número de parãmetros em retorno como chamada de um sub-programa em L4G.

No caso de uma aplicação XTEND, os parâmetros em entrada são geralmente registados pelo utilizador num formulário HTML e os valores reenviados pelos sub-programas são guardados em memória na sessão utilizador (mapping) no objetivo de serem afixadas numa p+agina HTML ou utilizadas como parâmetros de outras ações.

Este documento indica o método a seguir para criar novas ações utilizadores.

Programação e teste em X3

A primeira etapa consiste a programar e TESTAR em modo cliente X3 o tratamento L4G ou o objeto X3 que será chamado pela ação XTEND

Casos de objetos X3

Antes de utilizar um objeto X3 numa aplicação XTEND é necessário de se asssegurar que este objeto pode ser utilizado através dos web service.

Em particular falta assegurar que o tratamento das ações não necessitam da presença de um utilizador (humano) devendo em ecrã para responder às eventuais questões ou mensagens reenviadas pelo servidor X3

Mensagens utilizadores

O tratamento AWEB contém os sub-programas utilitários para a gestão das mensagens utilizadores.

Envia a mensagem de informação, de "warning" ou de erro :

  • Subprog ADDMESSINF(MESSAGE)
  • Subprog ADDMESSWARN(MESSAGE)
  • Subprog ADDMESSERR(MESSAGE)

Em modo teste

  • Subprog INITABMES
  • Subprog VISUALLMES

Uma ação utilizador é considerado como validado se 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 afixaação das mesagens X3 e´efetuada via o token AXUSERMSG.

Ex : <span id="userMsg" class="userMsg" adx="aMsgUser"></span>

Caso dos sub-programas

É importante de bem notar que a chamada de um tratamento X3 via um web service está "sem lista" (stateless) quer dizer que o contexto da sessão X3 (globais) utilizada para tratar um web service não está válido que durante o tratamento do serviço. Este contexto está perdido após execução do tratamento. Está reinicializada a cada chamada.

Todos os dados contextuais devem ser transportados nos parãmetros de chamada do web service.

No momento de um web service de tipo sub-programa o servidor XTEND acrescenta os parâmetros contextuais à chamada deste sub-programa em valorizando os parâmetros AXPARCOD e AXPARVAL do grupo de publicação AX_PAR se o grupo AX_PAR foi definido no momento da publicação do sub-programa.

Os parâmetros cujo contextuais por defeito são os seguintes :

Código

Descrição

SITCOD

Código do estabelecimento XTEND

USRCOD

Código utilizador XTEND se o utilizador está identificado

USRPRF

Código perfil utilizador XTEND se o utilizador está identificado.

USRLANG

Código língua XTEND (língua do estabelecimento)

Publicação e teste dos web services

Esta etapa permite de se asssegurar que os web services são bem disponíveis e que funcionam corretamente.

Ver a página web services.

Criação de uma ação

-1- Parametrização de interface

Cria uma ficha interface via a função Développement/Safe X3 WAS/Lien SAFE X3/Interface.

-2- Criação dos campos,

A chamada de um web service de tipo Ação reenvia os dados que são dos parâmetros de um sub-programa seja dos campos de um objeto X3.

Todos os campos utilizados para a afixação ou a passagem de parâmetros de tipo web ou XTEND devem ser declarados no dicionário dos campos.

Após ter criado o interface é recomedado de criar todos os campos reenviados pelo web service via o menu "Outils/Création token champ" da ficha interface.

-3- Criação das entidades

Os parãmetros em saída, reenviadas pelo web services são reagrupados por grupos de publicação

Esta etapa consiste a criar uma entidade XTEND por grupo de publicação.

Para criar as entidades utilizar a função utilitário criação das entidades acessível via o menu "Outils\Aide au remplissage" da ficha entidade.

-4- Criação da ação web

Esta etapa consiste a criar a ação web para definir o mappping entre parâmetros do web service e as entidades XTEND

O mapping afeta :
  • Os parâmetros (em entrada) que falta valorizar no momento de chamada do web service
  • Os parâmetros (em saida) reenvia pelo web service, que falta conservar em memória e a partir das quais serão criadas as entidades XTEND de tipo sessão.

-5- Criação da ligação dinâmica

Esta etapa consiste a criar o token ligação dinâmica que será inserido na página html seja um botão seja numa âncora para permitir ao utilizador de desencadear a ação via um clique do rato.

A ligação dinâmica permite também indicar como serão valorizadas pelos parâmetros de chamada web seja a partir de dados registados pelo utilizador (campo web) seja a partir de dados guardados em memória (campos XTEND).

Ação de login

Princípio do login XTEND

XTEND toma em conta 2 tipos de utilizadores que são :

  • os utilizadores anónimos
  • os utilizadores identificados

O utilizador se identifica junto do servidor XTEND via a página de login em fornecendo um código utilizador e uma palavra chave.

A ação de login XTEND chama um sub-programa L4G (web service) carregado de veriifcar a existência de utilizador e a validade da palavra chave. Um erro está colocado (ADDMESSERR) para invalidar o login.

Uma página XTEND "protegido" será visível unicamente pelos utilizadores identificados.

Pode-se assim proteger o acesso às páginas XTEND em função do perfil XTEND cujo código está reenviado pelo programa de login (opcional).

Ver login do estabelecimento ASAMPLE.

Interface do sub-programa L4G de login

XTEND pode chamar todo o sub-programa L4G cujos 12 primeiros parâmetros são os seguintes :

Subprog ACTION (AXPARCOD, AXPARVAL, AXUSERCODE, AXPWD, AXUSERPROF, AX3SOL,
 AX3FLDR, AX3LANG, AX3USER, AX3PWD, AXLOGCOD ,AXLOGVAL ...)
Variável Char     AXPARCOD()()
Variável Char  AXPARVAL()()
Variável Char     AXUSERCODE()
Value    Char     AXPWD()
Variável Char     AXUSERPROF()   
Variável Char     AX3SOL()()
Variável Char     AX3FLDR()()
Variável Char     AX3LANG()()  
Variável Char     AX3USER()()
Variável Char     AX3PWD()()
Variável Char     AXLOGCOD()()  
Variável Char     AXLOGVAL()()
...

Parâmetro

Tipo

Descrição

AXPARCOD
AXPARVAL



Valorizado pelo motor XTEND




Parâmetros contextuais chave/valor valorizados pelo servidor XTEND no momento de chamada do sub-programa.
SITCOD : Código do estabelecimento XTEND
USRCOD : Código utilizador XTEND (vazio se utilizador anónimo)
USRPRF : Código perfil XTEND
USRLANG: Código língua XTEND

AXUSERCODE

registado pelo utilizador,

Código utilizador XTEND registado pelo utilizador

AXPWD

registado pelo utilizador,

Palavra chave registada pelo utilizador

AXUSERPROF

Reenviada por X3

Código perfil XTEND utilizado para gerar o acesso às páginas.

AX3SOL

Reenviada por X3

Código solução X3

AX3FLDR

Reenviada por X3

Código dossier X3

AX3LANG

Reenviada por X3

código língua X3 para o login a AX3SOL/AX3FLDR

AX3USER

Reenviada por X3

código utilizador X3 para o login a AX3SOL/AX3FLDR

AX3PWD

Reenviada por X3

Palavra chave X3 para o login a AX3SOL/AX3FLDR

AXLOGCOD
AXLOGVAL

Reenviada por X3

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

....

 

O sub-programa de login pode reenviar outras informações que poderão ser "mapeadas" sobre entidades XTEND
Ex: Lista dos endereços de entrega, lista das últimas faturas ou encomendas...

Ficha sub-programa

Ficha de descrição do sub-programa de login.

Os nomes dos grupos de publicação dos parâmetros AX* devem estar respeitados.

Código

Tipo

Dim

Tipo de argumento

Grupo de publicação

AXPARCOD

Char

20

Por endereço

AX_PAR

AXPARVAL

Char

20

Por endereço

AX_PAR

AXUSERCODE

Char

1

Por valor

AXLOG_PAR

AXPWD

Char

1

Por valor

AXLOG_PAR

AXUSERPROF

Char

1

Por endereço

AXLOG_PAR

AX3SOL

Char

10

Por endereço

AXLOG_X3

AX3FLDR

Char

10

Por endereço

AXLOG_X3

AX3LANG

Char

10

Por endereço

AXLOG_X3

AX3USER

Char

10

Por endereço

AXLOG_X3

AX3PWD

Char

10

Por endereço

AXLOG_X3

 AXLOGCOD

Char

50

Por endereço

AXLOG_RES

 AXLOGVAL

Char

50

Por endereço

AXLOG_RES

Os parâmetros seguintes são dados a título de exemplo e gerados pelo porgramador XTEND.
Uma lista de endereços de entrega e uma lista de endereços de faturação (10 linhas max) qui serão "mapeadas" sobre as entidades SHIPADDR e INVADDR

SHIPADDR

Char

10

Por endereço

SHIPADDR

SHIPCITY

Char

10

Por endereço

SHIPADDR

SHIPZIP

Char

10

Por endereço

SHIPADDR

INVADDR

Car

10

Por endereço

SHIPADDR

INVCITY

Char

10

Por endereço

SHIPADDR

INVZIP

Char

10

Por endereço

SHIPADDR