Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Direct Input Dokument im Navigationsbaum lokalisieren

Mit der Funktion ‚Direct Input‘ (DI) ist es möglich, eine performante Datenübernahme aus einem Altsystem durchzuführen. Die Daten werden mit denselben Routinen wie im Dialog geprüft und in der Datenbank gespeichert, wenn sie fehlerfrei sind. Fehlerhafte Daten werden nicht übernommen und in einem Protokoll ausgewiesen.

Neben der Neuanlage von Daten ist es auch möglich, die Daten bereits existierender Instanzen zu ändern. Ein NODATA-Zeichen (Default ist der Schrägstrich ‚/‘)wurde eingeführt, damit nicht bei jeder Änderung die Werte aller Datenfelder angegeben werden müssen. Wird für ein Feld das NODATA-Zeichen übergeben, bleibt der alte Wert erhalten.

DDIC-Strukturen

Für den DI müssen verschiedene DDIC-Strukturen angelegt und dem BDT bekannt gemacht werden.

Hinweis: Beachten Sie bitte, daß aufgrund der Funktionalität des NODATA-Zeichens nur Felder vom Datentyp CHAR in diese Strukturen aufgenommen werden dürfen. Für Tabellenfelder anderer Datentypen nehmen Sie ein CHAR-Feld auf, bei dem Name und Länge mit dem Datenbankfeld identisch sind.

Aktivitäten:

·        DDIC-Strukturen anlegen

¡        Anwendungsobjektspezifische Kopfdaten (abgekürzt S1)

Diese Struktur umfaßt alle Felder, die zum Lesen der Tabellen notwendig sind (unter Umständen identisch mit den Feldern des Einstiegsbildes beim Dialog) sowie alle Felder, die auch als Feldmodifikationskriterium dienen.
Beispiel: Beim Geschäftspartner heißt diese Struktur BUS0DIINIT.

¡        Alle Kopfdaten (abgekürzt S2)

Neben den Feldern der Struktur S1 umfaßt S2 auch noch die Kopfdaten, die unabhängig vom Anwendungsobjekt immer benötigt werden. Diese allgemeingültigen Kopfdaten befinden sich in der BDT-Struktur BUSSDIHDR. Fügen Sie diese Struktur als erstes in S2 ein, danach die von Ihnen im ersten Schritt angelegte Struktur S1.
Beispiel: Beim Geschäftspartner heißt diese Struktur BUSHDR_DI

¡        Daten je Datenbanktabelle (abgekürzt S3)

Je Datenbanktabelle legen Sie eine DI-Struktur an, die alle zu übernehmenden Felder dieser Tabelle enthält. Können bei einer Tabelle je Objektinstanz mehrere Sätze gepflegt werden (z.B. Table-Control im Dialog), nehmen Sie in diese Struktur zusätzlich noch ein Kennzeichen auf, das die Art der Änderung pro Datensatz beschreibt. Referieren Sie bei diesem Feld das Datenelement BU_CHIND. In der gleichnamigen Domäne existieren folgende Festwerte:

§         U          Ändern

§         I           Einfügen

§         D          Löschen

§         M         Modifizieren (Anlegen oder Ändern)

Bei der Änderungsart ‚M‘ ermittelt das Anwendungsprogramm innerhalb des Zeitpunktes DINP2, ob der Datensatz angelegt (Satz war noch nicht vorhanden) oder geändert (Satz bereits vorhanden) wird.
Beispiel: Beim Geschäftspartner gibt es unter anderem die Strukturen

§         BUS000_DI       Tabelle BUT000 (Allgemeine Daten)

§         BUS0BK_DI            Tabelle BUT0BK (Bankverbindungen)

§         BUS020_DI       Tabellen BUT020/ADRC (Adressen)

Hinweis: Die Feldnamen müssen über die Strukturen S2 und alle Strukturen S3 hinweg eindeutig sein, da ansonsten die Aktivierung der Struktur S4 (siehe unten) nicht möglich ist.

¡        Alle Daten (abgekürzt S4)

Alle für den Direct Input relevanten Daten werden in dieser Struktur zusammengefaßt. Fügen Sie dazu zunächst die Struktur S2 als Include-Struktur ein, danach die Includes für alle von Ihnen angelegten Strukturen S4.
Beispiel: Beim Geschäftspartner heißt diese Struktur BUS_DI.

·        Namen der DDIC-Strukturen im BDT hinterlegen

¡        Innerhalb der Definition Ihres Anwendungsobjektes hinterlegen Sie

§         den Namen der Struktur S2 im Feld Kopfdaten

§         den Namen der Struktur S4 im Feld Alle Daten.

¡        Innerhalb der Definition der Tabellen hinterlegen Sie je Tabelle den Namen der zugehörigen DI-Struktur S3.

·        Weitere Einstellungen im BDT

Für alle Sichten, deren Felder sich in der Struktur S1 befinden, muß das Kennzeichen Kopfdaten DI markiert werden. Damit wird gewährleistet, daß die Funktionsbausteine Nach der Eingabe zu diesen Sichten direkt nach dem Zeitpunkt DINP1 prozessiert werden.

Die Zeitpunkte DINP1 und DINP2

Beim DI wird prinzipiell dieselbe Programmlogik verwendet wie innerhalb des Dialogs. Nahezu alle Zeitpunkte des Dialogs werden beim DI in der gleichen Reihenfolge aufgerufen (siehe Bild 3).

Diese Grafik wird im zugehörigen Text erklärt

Aus Laufzeitgründen werden die Anwendungsdaten aber nicht je Instanz einzeln auf die Datenbank geschrieben, sondern in Paketen zu je 200 Objektinstanzen. Deshalb wird wie beim Übernehmen-Modus die Bearbeitung einer Instanz nach den Zeitpunkten DTAKE und DLVE1 abgebrochen. Die Zeitpunkte DSAVE und DLVE2 werden erst durchgeführt, wenn die Daten zu mehreren Instanzen gemerkt wurden bzw. wenn keine weiteren Daten vorliegen.

Neben den Zeitpunkten beim Dialog sind für den DI die beiden Zeitpunkte DINP1 und DINP2 wichtig, die für den Datentransport vom BDT zu den Anwendungen sorgen.

·        Zeitpunkt DINP1 (Direct Input: Kopffelder füllen)

Der Inhalt der anwendungsobjektspezifischen Kopfdaten (Struktur S1) wird vom BDT an die Anwendungen übergeben. Dem entspricht beim Dialog die Dateneingabe im Einstiegsbild.
Aufrufzeitpunkt: Nach ISSTA und vor dem Prüfen der Kopfdaten.
Hinweis: Im nächsten Schritt stößt das BDT die Funktionsbausteine zum Zeitpunkt Nach der Eingabe für alle Kopfsichten (Kennzeichen ‚Kopfdaten DI‘ bei der Definition der Sichten markiert) an, wodurch die gemerkten Kopfdaten geprüft werden.
Anwenderkreis: Alle Anwendungen, die eigene Kopffelder haben.
Namenskonvention: <Anwendung>_<Anwendungsobjekt>_EVENT_DINP1
   (Kunde: Funktionsbausteinname erhält zusätzlich das Präfix ‚Y_‘ oder ‚Z_‘).
Schnittstelle:
à I_INIT               Kopfdaten
Aktionen:

¡        Kopfdaten vom BDT in unstrukturierter Form lesen (Parameter I_INIT) und in eine Feldleiste mit der Struktur S2 stellen

¡        Kopfdaten innerhalb der Funktionsgruppe merken in den Feldern, über die später die Prüfungen laufen werden

Beispiel: BUP_BUPA_EVENT_DINP1

·        Zeitpunkt DINP2 (Direct Input: Datenfelder füllen)

Jeweils ein Datensatz zu einer Tabelle (ohne Kopfdaten) wird vom BDT an die Anwendungen übergeben. Im Dialog entspricht dies der Dateneingabe auf den Datenbildern.

Aufrufzeitpunkt: Nach dem Lesen der alten Daten (Zeitpunkt ISDAT und ISDST) und vor dem Prüfen der Datenfelder.
Anwenderkreis: Alle Anwendungen, die Datenfelder in eigenen Sichten haben. Auch tabellenpartizipierende Anwendungen!

Namenskonvention: <Anwendung>_<Anwendungsobjekt>_EVENT_DINP2
         (Kunde: Funktionsbausteinname erhält zusätzlich das Präfix ‚Y_‘ oder ‚Z_‘).

Beispiel: BUP_BUPA_EVENT_DINP2

Schnittstelle:
à I_DATA                  Datensatz zu einer Tabelle
Aktionen:

¡        Daten in eigene Struktur einlesen

Der Importingparameter I_DATA (Bezugsstruktur BUSDIDAT1) enthält die Felder TBNAM und DATA. Im Feld TBNAM steht der Name der DI-Struktur. Das Feld DATA enthält die Daten der DI-Struktur als String. Die Anwendung merkt sich die für sie wichtigen Daten in einer Struktur mit dem Aufbau der DI-Struktur.

¡        Bestimmung der relevanten Aktion bei Kennzeichen ‚M‘ (Modifizieren)

Bei Tabellen mit Mehrfacherfassung und eingehenden Datensätze mit Aktion M muß zunächst noch die durchzuführende Aktion bestimmt werden. Dazu muß der Datensatz bei den bestehenden Daten nachgelesen werden. Existiert der Datensatz bereits, wird Aktivität U (Ändern) gesetzt, im anderen Fall die Aktivität I (Einfügen).

¡        Auswertung des ‚NO-DATA-Kennzeichens‘

Bei der Änderung bestehender Daten kann das NO-DATA-Kennzeichen verwendet werden. Alle Felder, die nicht geändert werden sollen, enthalten dieses Kennzeichen. Zum Zeitpunkt DINP2 wird dieses Kennzeichen entschlüsselt. Dazu muß der Funktionsbaustein BUS_DI_DATA_COMBINE aufgerufen werden. Dieser Baustein ermittelt aus den alten und den neu übergebenen Daten (Importing-Parameter) den kompletten neuen Datenstand (Exporting-Parameter).

¡        Neuen Datenstand merken

Die Anwendung merkt sich den neuen Datenstand in den dafür vorgesehenen Tabellen bzw. Feldleisten. Anschließend werden vom BDT die Prüfungen zu den Sichten aufgerufen, bei denen das Kennzeichen Kopfdaten DI nicht markiert ist.

Ende des Inhaltsbereichs