Datenbeschaffung durch ein Programm
Verwendung
Um Auswertungen zu Datenbeständen durchzuführen, die über die automatische Datenbeschaffung von SAP Query hinausgehen, können Sie ein Datenleseprogramm benutzen.
Das Datenleseprogramm kann entweder Bestandteil des InfoSets oder ein eigenständiges externes Programm sein.

Auf dem Bild InfoSet: Einstieg können Sie über InfoSet -> Weitere Funktionen -> Externes Leseprogramm integrieren ein InfoSet, das ein externes Datenleseprogramm verwendet, in ein InfoSet mit integriertem Datenleseprogramm überführen.
Voraussetzungen
Sie haben ein InfoSet angelegt und auf dem Dialogfenster InfoSet: Titel und Datenbank eine Bezeichnung und eine Berechtigungsgruppe eingegeben.
Weitere Informationen finden Sie unter
Datenquelle zuordnen.Vorgehensweise
Wenn Sie allerdings ein externes Programm verwenden möchten, geben Sie den Programmnamen in das Eingabefeld zu externes Programm ein.

Wenn Sie ein InfoSet mit Datenbeschaffung durch ein externes Programm transportieren, müssen Sie dafür sorgen, daß InfoSet und externes Programm zusammen transportiert werden.
Verwenden Sie für ein
Das Datenleseprogramm muß
Das Datenleseprogramm ist jedoch nicht dafür gedacht, selbst ausgeführt zu werden.
Der prinzipielle Aufbau eines Datenleseprogramms und die Reihenfolge seiner Bestandteile sind wie folgt festgelegt:
Report xxxxxxxx. |
|
Tables tab. |
Definition der DDIC-Struktur, über der das InfoSet eingerichtet wird. In dieser Feldleiste müssen die auszuwertenden Sätze bereitgestellt werden. |
Parameters . |
Definition von Parametern, Selektionskriterien und Feldern. |
Select-Options:… |
|
DATA: |
|
DATA: BEGIN OF itab OCCURS xxx. |
Gegebenenfalls Definition einer internen Tabelle itab mit der Struktur tab, in der die auszuwertenden Sätze bereitgestellt werden. |
* <Query_head> |
Kommentar als Abschluß der eigenen Datendeklarationen. |
* Coding zur Bestimmung der Tabelle itab, wenn eine solche Tabelle verwendet wird. * Beginn einer Schleife zur satzweisen Bereitstellung der auszuwertenden Daten in der Feldleiste tab (Select, DO, LOOP) * Gegebenenfalls Coding zur Datenaufbereitung |
|
* <Query_body> |
Kommentar als Abschluß der Anweisungen in der Schleife. Die Daten müssen in der Feldleiste tab bereitstehen. |
* Ende der Schleife zur satzweisen Datenbeschaffung (ENDSELECT, ENDDO, ENDLOOP) |

Wenn Sie die Bestandteile des Musterreports falsch anordnen, werden unter Umständen sinnlose Query-Reports generiert.
Die Zeichenketten der beiden Kommentarzeilen *<QUERY_HEAD> und *<QUERY_BODY> sind ab dem Zeichen "<" fest vorgeschrieben. Zwischen Groß- und Kleinschreibung unterscheidet das System allerdings nicht.
Innerhalb eines Musterreports unterliegen Sie keinen Einschränkungen, wie Sie die Beschaffung Ihrer Daten organisieren. Es sind deshalb sehr komplizierte und komplexe Algorithmen zur Datenbeschaffung möglich. Sie können auch SELECT-Anweisungen verwenden, die mandantenübergreifend lesen (Zusatz CLIENT SPECIFIED).
Interne und externe Datenleseprogramm können auch Abgrenzungen enthalten. Diese werden auf dem Bild InfoSet: ändern bzw. anzeigen in der Übersicht der Abgrenzungen (
) als Standardabgrenzungen angezeigt. Das System überprüft das Programm regelmäßig auf Abgrenzungen:
Ergebnis
In der Pflege eines InfoSets mit Datenbeschaffung durch ein eigenes Programm stehen Ihnen alle Möglichkeiten zur Verfügung, die Sie auch bei InfoSets über anderen Datenquellen nutzen können.
Weitere Informationen finden Sie unter
Besonderheiten.
Wenn eine Query zu einem InfoSet mit Datenbeschaffung durch Programm angelegt wird, so wird der Musterreport beim Generieren des Query-Reports als Vorlage verwendet. Die Attribute des Musterreports werden an die generierten Reports vererbt. Der Musterreport selbst wird dabei nicht verändert.
Damit steht letztlich auch die Möglichkeit zur Verfügung, die Datenbeschaffung mit Hilfe einer logischen Datenbank zu organisieren. In der Regel empfehlen wir dafür allerdings, das InfoSet direkt über der logischen Datenbank anzulegen.
Beispiel
Die folgende Abbildung zeigt einen Musterreport mit SELECT-Anweisung.

Die folgende Abbildung zeigt einen Musterreport mit LOOP-Anweisung.

Die Daten werden in einer internen Tabelle bereitgestellt, die durch einen Import aus der INDX gefüllt wird. Weil das InfoSet über der Struktur SAPLANE angelegt wird und die Query die Daten in einer Feldleiste mit dem Namen SAPLANE erwartet, wird innerhalb der LOOP-Schleife jede gelesene Zeile aus PLANEDATA nach SAPLANE übertragen.