Datenzugriff 

Funktionsweise

Der XTEND-Server greift nicht direkt mit einem Datenbank-Konnektor (vom Typ JDBC) auf die X3-Datenbank zu, sondern über einen speziellen Webservice-Aufruf vom Typ Zugriff (für den Datenzugriff).

Die Funktionsweise dieser Webservices vom Typ "Zugriff" folgt dem Aufruf von SQL-Abfragen, d. h. es sind Eingabeparameter vorhanden, mit denen Auswahlkriterien übergeben werden können. Weiterhin gibt es Ausgabeparameter für die Rückgabe der Abfrageergebnisse.

Mit diesen Webservices werden also 4GL-Unterprogramme veröffentlicht, die alle über dieselben Schnittstellen (oder Parameter) verfügen. In den ihnen zugeordneten 4GL-Verarbeitungen werden folgende Vorgänge durchgeführt:

  • Aufbau der SQL-Abfrage
  • Ausführung der SQL-Abfrage
  • Auswertung der Rückgabeparameter

Mit den Webservices vom Typ "Zugriff" können sämtliche X3-Tabellen und -Ansichten gelesen werden.

Die 4GL-Verarbeitungen können dahingehend angepasst werden, dass sie berechnete Daten wie Bestand oder Artikelpreis zurückgeben.

Schnittstelle "Generierter Zugriff"

Die Verwendung der Webservices 'Generierter Tabellenzugriff' und 'Generierter Ansichtszugriff' ist in der XTEND-Schnittstellenfunktion vollständig automatisiert.

Der Datensatz der 4GL-Verarbeitung und die Veröffentlichung des Unterprogramms werden generiert, wenn der Entwickler die X3-Tabelle oder -Ansicht ausgewählt hat, auf die er zugreifen möchte. Weiterhin muss er die Spalten auswählen, die gelesen werden sollen.

Schnittstelle Unterprogramm "Zugriff"

4GL-Verarbeitung

Alle Zugriffsunterprogramme müssen stets die folgende Schnittstelle prüfen:

  • 10 Eingabeparameter mit festen Namen (AX*) enthalten die SQL-Abfragekriterien.
  • Ebenso viele Ausgabeparameter enthalten die von der SQL-Abfrage gelieferten Datensätze.

Subprog ACCTAB( AXPARCOD,AXPARVAL,AXWHRLFTBRK,AXWHRCOD,AXWHROPE,
                AXWHRCODVAL,AXWHRRGTBRK,AXWHRANDOR,AXORDCOD,AXORDTYP,
                FIELD1,FIELD2,FIELD2...
)
#Parameter der SQL-Abfrage
    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)
# Zurückgegebene Daten
    Variable Char    FIELD1()(1..)
    Variable Char    FIELD2()(1..)
    Variable ClbFile FIELD3()(1..)
...$LOADLINE
#Dieses Label wird zu jedem Datensatz aufgerufen, um die Rückgabeparameter auszuwerten
#Es wird im Customizing verwendet, um individuelle (berechnete) Spalten hinzuzufügen.
      FIELD1(WROWPOS) = [F]FIELD1
      FIELD2(WROWPOS) = [F]FIELD2
      FIELD3(WROWPOS) = [F]FIELD3
Return

Datenblatt Unterprogramm

In den Unterprogrammdaten sind die Parameter und Datenbereiche der Unterprogramme beschrieben. Weiterhin sind den Unterprogrammen dort Veröffentlichungsgruppen zugewiesen.

Die Veröffentlichungsgruppen für die Parameter und das Ergebnis sind konstant:

 Parameter

Gruppe

Beschreibung

AXPARCOD

AX_PAR

Variablencode X3-Kontext

AXPARVAL

AX_PAR

Variablenwert X3-Kontext

AXWHRLFTBRK

AX_WHR

Ebene der öffnenden Klammer

AXWHRCOD

AX_WHR

Name des Auswahlkriteriums

AXWHROPE

AX_WHR

Vergleichsoperator

AXWHRCODVAL

AX_WHR

Wert des Auswahlkriteriums

AXWHRRGTBRK

AX_WHR

Ebene der schließenden Klammer

AXWHRANDOR

AX_WHR

Logischer Verkettungsoperator

AXORDCOD

AX_ORD

Name des Sortierkriteriums

AXORDTYP

AX_ORD

Wert des Sortierkriteriums

FIELD1

RES

Spalten des vom Webservice zurückgegebenen Datensatzes

FIELD2

RES

Spalten des vom Webservice zurückgegebenen Datensatzes

FIELD3

RES

Spalten des vom Webservice zurückgegebenen Datensatzes

Schnittstelle "Zugriff Explorer-Liste"

Mit dieser Schnittstelle kann der Webservice Explorer-Liste für ein X3-Objekt wie ein XTEND-Datenlieferant angezeigt werden.

In diesem Fall müssen dieselben Auswahlkriterien vorgegeben werden wir für die Explorer-Listen.

Berechnete Felder hinzufügen ("Zugriff Unterprogramm")

Die Schnittstellen vom Typ "Zugriff" müssen individuell parametriert werden, wenn berechnete Daten wie z. B. der Preis oder die Artikelverfügbarkeit zurückgegeben werden sollen.

Erstellung

Realisierung eines solchen Webservicetyps:

1. Eine Schnittstelle vom Typ {'Generierte Zugriff Tabelle / Ansicht'} anlegen.

Diese Schnittstelle zeigt auf die Tabelle / Ansicht Ihrer Wahl.

2. Den Zugriff generieren.

Die folgenden Schritte werden automatisch durchgeführt:

1. Die Verarbeitung und die Unterprogramme generieren.

2. Den Webservice genieren + veröffentlichen

3. Die Schnittstelle duplizieren und zu einer Schnittstelle vom Typ "Unterprogrammzugriff" machen.

1. Die generierte Verarbeitung und das generierte Unterprogramm duplizieren und diese wie von Ihnen gewünscht umbenennen.

2. Die zu berechnenden Parameter hinzufügen.

3. Die Labelparameter auslesen. $LOADLINE

4. Den Zugriff auf diese neue Schnittstelle generieren.

!!Die Namen der Veröffentlichungsgruppen respektieren.