O servidor XTEND não acede diretamente à base de dados X3 via um conector de base de dados (tipo JDBC) não acede directamente à base de dados X3 via um conector de base de dados (tipo JDBC) mas através da chamada de web services especializados de tipo "Acesso" (para "acesso aos dados").
Estes web services de tipo "Acesso" funcionam como a chamada de pedidos SQL, quer dizer que dispõem de parãmetros em entrada permitindo de passar os critérios de seleção e de parâmetros em saída para reenviar o resultado do pedido.
Estes web services resultam então da publicação de sub-programas L4G que apresenam todos os mesmos interfaces (ou parãmetros) Os tratametos 4G que lhe estão associados efectuam as operações seguintes :
Os web services de tipo "Acesso" permitem aceder em leitura a todas as tabelas e vistas X3.
É possível personalizar os tratamentos L4G para acrescentar os que reenviam os dados calculados como stock ou o preço de um artigo.
A colocação em obra dos web services "Acesso gerado tabela" e "Acesso gerado vista" está inteiramente automatizado via a função XTEND Interface.
a escrita do tratamento L4G e a publicação do sub-programa são gerados após que o programador tenha escolhido a tabela ou a vista X3 na qual pode aceder e seleciona os campos que se desejam ler.
Um sub-programa "Acesso" deve sempre verificar o interface seguinte :
Subprog ACCTAB( AXPARCOD,AXPARVAL,AXWHRLFTBRK,AXWHRCOD,AXWHROPE,
AXWHRCODVAL,AXWHRRGTBRK,AXWHRANDOR,AXORDCOD,AXORDTYP,
FIELD1,FIELD2,FIELD2...
)
#Parâmetros do pedido SQL
Value Char AXPARCOD()(1..20)
Variável Char AXPARVAL()(1..20)
Value Integer AXWHRLFTBRK(1..14)
Value Char AXWHRCOD()(1..14)
Value Integer AXWHROPE(1..14)
Value Char AXWHRCODVAL()(1..14)
Value Integer AXWHRRGTBRK(1..14)
Value Integer AXWHRANDOR(1..14)
Value Char AXORDCOD()(1..10)
Value Integer AXORDTYP(1..10)
# Dados reenviados
Variável Char FIELD1()(1..)
Variável Char FIELD2()(1..)
Variável ClbFile FIELD3()(1..)
...
$LOADLINE
#Esta etiqueta está chamada para cada registos e afim de valiorizar os parãmetros em retorno
#Ela está utilizada em personalização para acrescentar os campos específicos (calculados)
FIELD1(WROWPOS) = [F]FIELD1
FIELD2(WROWPOS) = [F]FIELD2
FIELD3(WROWPOS) = [F]FIELD3
Return
A ficha sob-programa descreve os parâmetros do sub-programa, a sua dimensão e seu atributo dos grupos de publicação.
Os grupos de publicação para os parãmetros e o resultado são fixas
Parâmetro | Grupo | Descrição |
AXPARCOD | AX_PAR | Código variável contexto X3 |
AXPARVAL | AX_PAR | Valor variável contexto X3 |
AXWHRLFTBRK | AX_WHR | Nível de parênteses abertos |
AXWHRCOD | AX_WHR | Nome do critério de seleção |
AXWHROPE | AX_WHR | Operador de comparação. |
AXWHRCODVAL | AX_WHR | Valor do critério de seleção |
AXWHRRGTBRK | AX_WHR | Nível de parênteses fechados |
AXWHRANDOR | AX_WHR | Operador lógico de encadeamento |
AXORDCOD | AX_ORD | Nome do critério de ordenação |
AXORDTYP | AX_ORD | Valor do critério de seleção |
FIELD1 | RES | Campos dos registos devolvidos pelo web service |
FIELD2 | RES | Campos dos registos devolvidos pelo web service |
FIELD3 | RES | Campos dos registos devolvidos pelo web service |
Esta interface permite ver o web service lista esquerda de um objeto X3 como um fornecedor de dados XTEND
No caso os critérios de seleção a registar são aqueles utilizados para as listas esquerdas.
A personificação das interfaces de tipo "Acesso" é necessário desde logo que se deseja reenviar os dados calculados como por exemplo o preço e a disponibilidade de um artigo.
O método para realizar este tipo de web service é a seguinte :
Interface que aponta sobre a tabela/vista da sua escolha.
As etapas seguintes são feitas aautomaticamente :
1. Geração tratamento e sub-programa
2. Geração do web service + publicação
1. Duplicar o tratamento e o sub-programa gerado e os renomear à sua conveniência.
2. Acrescentar os parâmetros a calcular
3. Valorizar os parâmetros na etiqueta $LOADLINE
!!Respeitar os nomes dos grupos de publicação