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.
Kontext
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.
Hinweis
Auf dem Bild
InfoSet: Einstieg können Sie über
ein InfoSet, das ein externes
Datenleseprogramm verwendet, in ein InfoSet mit integriertem Datenleseprogramm überführen.
Vorgehensweise
- Wählen Sie auf dem Dialogfenster
InfoSet: Titel und Datenbank das Feld
Datenbeschaffung durch Programm.
- Geben Sie eine Datenstruktur ein. Die Struktur muss den Satzaufbau des auszuwertenden Datenbestandes beschreiben.
- Die Option
integriertes Programm ist die Standardeinstellung. Dies ist die in den meisten Anwendungsfällen geeignete Wahl.
Wenn Sie allerdings ein externes Programm verwenden möchten, geben Sie den Programmnamen in das Eingabefeld
zu
externes Programm ein.
Achtung
Wenn Sie ein InfoSet mit Datenbeschaffung durch ein
externes Programm transportieren, müssen Sie dafür sorgen, dass InfoSet und externes Programm zusammen transportiert werden.
- Wählen Sie
Weiter.
- Legen Sie ein Datenleseprogramm an, bevor Sie das InfoSet zum ersten Mal generieren.
Verwenden Sie für ein
Das Datenleseprogramm muss
-
in seinem Aufbau bestimmten Konventionen entsprechen
-
syntaktisch fehlerfrei sein
-
die gleiche Festlegung zur Festpunktarithmetik besitzen wie das InfoSet (bei einem externen Datenleseprogramm)
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. INCLUDE STRUCTURE tab. DATA: END of itab.
|
Gegebenenfalls Definition einer internen Tabelle
itab mit der Struktur
tab, in der die auszuwertenden Sätze bereitgestellt werden.
|
|
* <Query_head>
|
Kommentar als Abschluss 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 Abschluss der Anweisungen in der Schleife. Die Daten müssen in der Feldleiste
tab bereitstehen.
|
|
* Ende der Schleife zur satzweisen Datenbeschaffung (ENDSELECT, ENDDO, ENDLOOP)
|
|
Achtung
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:
Ergebnisse
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.
Hinweis
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
Der folgende Text zeigt einen Musterreport mit SELECT-Anweisung.
*-------------------------------------------------------*
* data retrieval program for functional area FLDP *
*-------------------------------------------------------*
report aq00flcp.
tables saplane.
select-options type for saplane-planetype.
*<Query_head>
select * from saplane where planetype in type.
*<Query_body>
endselect.
Der folgende Text zeigt einen Musterreport mit LOOP-Anweisung.
*-------------------------------------------------------*
* data retrieval program for functional area FLDX *
*-------------------------------------------------------*
report aq00fldx.
tables: saplane, indx.
data: planedata like saplane occurs 100 with header line.
select-options type for planedata-planetype.
*<Query_head>
import planedata from database indx(pl) id 'PLANEDAT'.
loop at planedata where planetype in type.
move-corresponding planedata to saplane.
*<Query_body>
endloop.
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.