L'accesso ai dati 

Principio

Il server XTEND non accede direttamente al database X3 tramite un connettore di database (tipo JDBC), bensì attraverso la chiamata di web service specializzati di tipo 'Accesso' (per 'accesso ai dati').

Questi web service di tipo 'Accesso' funzionano come la chiamata di query SQL, vale a dire che dispongono di parametri in input che permettono di passare i criteri di selezione e di parametri in output per restituire il risultato della query.

Questi web service risultano quindi dalla pubblicazione di sotto-programmi 4GL che presentano tutti le stesse interfacce (o parametri). I programmi 4GL a loro associati effettuano le seguenti operazioni:

  • costruzione della query SQL
  • esecuzione della query SQL
  • valorizzazione dei parametri di ritorno

I web service di tipo 'Accesso' permettono di accedere in lettura a tutte le tabelle e viste X3.

E' possibile personalizzare i programmi 4GL affinché restituiscano dei dati calcolati quali la disponibilità od il prezzo di un articolo.

Interfaccia 'Accesso generato'

L'attuazione dei web service 'Accesso generato tabella' e 'Accesso generato vista' è interamente automatizzata tramite la funzione XTEND Interfaccia.

La scrittura del programma 4GL e la pubblicazione del sotto-programma sono generate dopo che il programmatore ha scelto la tabella o la vista X3 alla quale vuole accedere e selezionato i campi da leggere.

Interfaccia sotto-programma 'Accesso'

Programma 4GL

Un sotto-programma 'Accesso' deve sempre verificare la seguente interfaccia:

  • 10 parametri in input i cui nomi sono fissi (AX*) e che contengono i criteri della query SQL
  • altrettanti parametri in output contenenti i record risultanti dall'esecuzione della query

Subprog ACCTAB( AXPARCOD,AXPARVAL,AXWHRLFTBRK,AXWHRCOD,AXWHROPE,
                AXWHRCODVAL,AXWHRRGTBRK,AXWHRANDOR,AXORDCOD,AXORDTYP,
                FIELD1,FIELD2,FIELD2...
)
#Parametri della query SQL
    Value Char    AXPARCOD()(1..20)
    Variable 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)
# Dati restituiti
    Variable Char    FIELD1()(1..)
    Variable Char    FIELD2()(1..)
    Variable ClbFile FIELD3()(1..)
...
$LOADLINE
#Questa etichetta viene chiamata per ogni record allo scopo di valorizzare i parametri di ritorno
#Viene utilizzata in personalizzazione per aggiungere dei campi specifici (calcolati)
      FIELD1(WROWPOS) = [F]FIELD1
      FIELD2(WROWPOS) = [F]FIELD2
      FIELD3(WROWPOS) = [F]FIELD3
Return

Scheda sotto-programma

La scheda sotto-programma descrive i parametri del sotto-programma, la loro dimensione ed attribuisce loro dei gruppi di pubblicazione.

I gruppi di pubblicazione per i parametri ed il risultato sono fissi:

Parametro 

Gruppo

Descrizione

AXPARCOD

AX_PAR

Codice variabile contesto X3

AXPARVAL

AX_PAR

Valore variabile contesto X3

AXWHRLFTBRK

AX_WHR

Livello di aperta parentesi

AXWHRCOD

AX_WHR

Nome del criterio di selezione

AXWHROPE

AX_WHR

Operatore di confronto

AXWHRCODVAL

AX_WHR

Valore del criterio di selezione

AXWHRRGTBRK

AX_WHR

Livello di chiusa parentesi

AXWHRANDOR

AX_WHR

Operatore logico di concatenamento

AXORDCOD

AX_ORD

Nome del criterio di ordinamento

AXORDTYP

AX_ORD

Valore del criterio di ordinamento

FIELD1

RES 

Campi dei record restituiti dal web service

FIELD2

RES 

Campi dei record restituiti dal web service

FIELD3

RES 

Campi dei record restituiti dal web service

Interfaccia 'Accesso lista di selezione'

Questa interfaccia permette di vedere il web service lista di selezione di un oggetto X3 come un fornitore di dati XTEND.

In questo caso, i criteri di selezione da alimentare sono quelli utilizzati per le liste di selezione.

Aggiungere dei campi calcolati ('Accesso sotto-programma')

La personalizzazione delle interfacce di tipo 'Accesso' è necessaria quando si desidera restituire dei dati calcolati come ad esempio il prezzo e la disponibilità di un articolo.

Crea

Il metodo per realizzare questo tipo di web service è il seguente:

1. Creare un'interfaccia di tipo {'Accesso generato tabella/vista'}

Interfaccia che punta sulla tabella/vista di propria selta.

2. Generare l'accesso  

Le seguenti fasi vengono effettuate in automatico:

1. Generazione programma e sotto-programma

2. Generazione del web service + pubblicazione

3. Duplicare l'interfaccia in un'interfaccia di tipo 'Accesso sotto-programma'

1. Duplicare il programma ed il sotto-programma generati e rinominarli a proprio piacimento

2. Aggiungere i parametri da calcolare

3. Valorizzare i parametri nell'etichetta $LOADLINE

4. Generare l'accesso di questa nuova interfaccia

Rispettare i nomi dei gruppi di pubblicazione!!