CT-Professional_100 + Help …

Das interaktive Lernsystem für ABAP® verbindet Theorie und Praxis durch eine Echtzeitkopplung an das SAP®-System oder dem ‘CT-Debug_Simulator’.

Kurs 5: “Zusätzliche Adressbefehle, Bitoperationen, Datasets und externe Performs …”

Der Schwerpunkt im Kurs 5 sind u.a. “Außenbeziehungen” im R/3® wie externe Datenbestände auf dem Server und dem Client und statische/dynamische externe Programmaufrufe.

Auch wird die Verwendung von Feldsymbolen inhaltlich abgerundet. Es wird gezeigt, wie auf indirektem Weg ein Report erstellt (und damit generiert) werden kann.

Gemeinsam mit den Kursen 1 – 5 können Sie im Bereich Schnittstellen bereits einige Problemstellungen bearbeiten. Auch müßte es Ihnen gelingen, eigene kleine Tools zu programmieren, die Sie bei der täglichen Arbeit unterstützen.

Wieviel Lerninformationen stehen im Kurs 5 zur Verfügung ?

Der Kurs 5 besteht aus ca. 2000 Textabschnitten mit insgesamt ca. 8500 Zeilen, insgesamt sind mehr als 70 Formal- und Beispiel-Reports enthalten. Die Reportbeispiele werden durch ca. 325 Overlay-Zeichnungen innerhalb der Syntaxerläuterungen und während der Debugging-Session zusätzlich illustriert. Die Einzelthemen des Info-Trees sind nachfolgend als Fließtext aufgelistet. Überwiegend sind dies die Überschriften zu den einzelnen Textelementen, sie geben einen Überblick über den Umfang und die Detailstruktur der Wissensbereiche.
Die Aufzählung der einzelnen Tree-Infos soll einen Eindruck über den Umfang und den Themenkreis der jeweiligen Kurse vermitteln. Natürlich sind diese Informationen im Kurs durch den INFO-Tree sauber geordnet. Die Bearbeitungsreihenfolge der Einzelthemen können Sie bestimmen. Sie entscheiden, ob Sie Reihenfolge anhand eines von uns vorgeschlagenen

  • “roten Faden oder learning path” vornehmen oder
  • in einen anderen Lernmodus verzweigen oder
  • im Direktzugriff einzelne Kursbereiche aufrufen oder
  • Textbausteine anzeigen lassen oder
  • auf Reportbeispiele zugreifen oder
  • den CT-DEBUG_Simulator einsetzen.

Eine detaillierte Aufzählung des Kursinhalts Wir haben die wesentlichen Inhalte des Info-Trees je Kursus nachfolgend als Fließtext angelistet, überwiegend sind dies die Überschriften zu den einzelnen Textelementen. Bitte beachten Sie den Umfang des jeweiligen Kurses (… zeigen Sie uns etwas Vergleichbares).

Die Aufzählung der einzelnen Tree-Infos soll einen Eindruck über den Umfang und den Themenkreis der jeweiligen Kurse vermitteln. Natürlich sind diese Informationen im Kurs durch den INFO-Tree hierarchisch geordnet.

Fließtext:

ASSIGN (v1) TO <fs1> – Dynamische Adresszuordnung | ASSIGN (v1) TO <fs1> (Syntaxbeschreibung) . Name des ersten Befehlsparameters . Ort der Deklaration . Geltungsbereich der Variablen (v1) . Globale Variable (v1) . Lokale Variable (v1) . Runde Klammern verwenden . Variablentyp . Namensgebung . Die Feldlänge von v1 . Ein Beispiel . Datenfeldname in Großbuchstaben . Returncode auswerten . Name des Feldsymbols . Spitze Klammern verwenden . Namensgebung . Die Praxis . Geltungsbereich des Feldsymbols . Globales Feldsymbol . Lokales Feldsymbol . Adressierung des Feldsymbols . TYPE t. . LOCAL COPY OF (v1) TO <fs1>. . Ein Beispiel . LOCAL COPY OF . TABLE FIELD (v1) TO <fs1>. . Ein Beispiel . TABLE FIELD . Kurze Wiederholung zu “TABLES etab” . Die Suche nach dem Datenfeld (ohne “TABLE . “TABLE FIELD” reduziert den Zuordnungsaufwand . Wirkung in Kurzform Dynamische Zuordnung eines Datenfeldes zu … . Der erste Befehlsparameter “(v1)” enthält den Feldnamen . Das Feldsymbol wird wie eine Variable verwendet . Verwendung von externen Unterprogrammen . Die Befehlsergänzungen . Typveränderung und/oder lokale Kopie . Zusätzliche Änderung des Datentyps . Zusätzliches Anlegen einer lokalen Kopie von “(v1)” . Feldauswahl nur aus dem TABLES-Workbereich zulassen . Weitere Informationen zum allgemeinen Thema “ASSIGN” . Report-Beispiel 1 – 3 Der Zeitpunkt der Zuordnung . Dynamischer ASSIGN . Anwendungsbeispiele . Datenfelder aus externer Tabelle lesen . Die Sortierfelder werden über Parameter ausgewählt . Adressierungsart . Ein Beispiel: ASSIGN (BOX) TO <fs1>. . Statischer ASSIGN (1. Befehlsparameter ohne Klammern) . Zuordnung einer fest vorgegebenen Variablen . Adressierungsarten . Unterschiedliche Auswahl des zugeordneten Datenfeldes . Welche Datenfeldarten können Feldsymbolen zugeordnet werden? . Lokales Datenfeld (nur im jeweiligen FORM . Globales Datenfeld (im gesamten Programm . Teil einer internen Struktur (Feldleiste) . Teil einer externen Struktur (Tabelle) . Teil eines USING-Parameters . Ein Datenfeld aus einem externen Perform … . Datenfeld aus einem Funkionsbaustein … . Externe Unterprogramme des Funktionsbausteines . Welche Zuordnungsreihenfolge bei gleichem Feldnamen? . Befehlsergänzung “ASSIGN TABLE FIELD (v1) TO . Keine Angabe von “ASSIGN TABLE FIELD …” . Der Returncode SY-SUBRC . Die Suche im Programmpool . Anwendungsmöglichkeiten in Report-Beispielen . Allgemeine Informationen . Globales und lokales Datenfeld als Feldsymbol . Interne und externe Tabellenstruktur als Feldsymbol . Alternativer Workbereich als Feldsymbol . Struktursymbol und Feldsymbol . USING-Parameter als Feldsymbol . Feldsymbol als Verbindung von Haupt- zu Unterprogramm . REPORT-LOKAL-GLOBAL-ASSIGN Beispiel-1 – 3 . Gleiche Datenfeldnamen . Lokales Feldsymbol “<LOCFS1>” . Lokaler Befehlsparameter “LOCBOX” . Inhalt des lokalen Feldsymbols <LOCFS1> . Inhalt des globalen Feldsymbols <fs1> . Beispiel-Reports REPORT-UPRO-ASSIGN Das Hauptprogramm . Modifizierung von Hauptprogrammen . Das externe Unterprogramm . Ergänzungen in einem USER-Programm ASSIGN COMPONENT … – Adressen von Komponenten einer Struktur . Die Kurzbeschreibung . ASSIGN COMPONENT x OF STRUCTURE stru1 TO <fs1> . Ein Beispiel . ASSIGN . COMPONENT X OF STRUCTURE T1 . COMPONENT X . Angabe einer Zahl als Literal . Verwendung einer Variablen, die eine … . Schleifenverarbeitung . OF STRUCTURE stru1 . Nur interne Strukturen verwenden . Feldleisten . Interne Tabellen . Die Angabe der Struktur muß direkt . Keine externen Tabellen verwenden . Ort der Deklaration . Geltungsbereich der Struktur “stru1” . Globale Struktur “stru1” . Lokale Struktur “stru1” . Datenfelder der Struktur “stru1” . Namensgebung . Returncode auswerten . Befehlswort “TO” . <fs1> . Name des Feldsymbols . Spitze Klammern verwenden . Namensgebung . Die Praxis . Geltungsbereich des Feldsymbols . Globales Feldsymbol . Lokales Feldsymbol . Adressierung des Feldsymbols . TYPE t. . Ein Beispiel . Die allgemeine Wirkung von “ASSIGN COMPONENT …” . Formelle Schreibweise . Formelles Beispiel . Ein allgemeines Report-Beispiel . Weitere Informationen zum allgemeinen Thema “ASSIGN” . ASSIGN COMPONENT … (Weitere Einzelheiten) . Dynamische Festlegung des Strukturfeldes . Nur bekannte Strukturen können verwendet werden . Externe Tabellen . Wahlfreier Zugriff auf Strukturfelder . Die Bestimmung des Datenfeldes innerhalb der Struktur . Reihenfolgenummer als Literal . Reihenfolgenummer in einer Variablen . Das Feldsymbol wird wie eine Variable verwendet . Struktursymbol . Lokale oder globale Strukturfelder zuweisen . Globale Struktur = globale oder lokale . Lokale Struktur erfordert lokales Feldsymbol . Das Thema der lokalen oder globalen Strukturfelder . Befehlsergänzungen . Typveränderung . Zusätzliche Änderung des Datentyps . Anwendungsmöglichkeiten in Report-Beispielen . Allgemeine Informationen . Datenfeldauswahl statisch und dynamisch . Globale und lokale Strukturen . Verbindung von Struktursymbol und Feldsymbol . Beispiel-1 . Beispiel-2 . Das Systemfeld SY-INDEX . Das Systemfeld SY-SUBRC . Anzahl der Schleifendurchläufe . Beispiel-1 . Beispiel-2 . Beispiel-3 . Report-Beispiel Step-1 – 5 . IF v1 bitOp … – Der spezelle IF-Befehl . Kurzbeschreibung der Funktion . O – One (geprüft wird der 1. Operand auf “1”) . Z – Zero (geprüft wird der 1. Operand auf “0”) . M – Mixed (geprüft wird der 1. Operand auf “0 . IF v1 bitOP v2 befehle1 ELSE befehle2 ENDIF . Die Gesamtanweisung für den Bitvergleich mit “IF …” . Ein Beispiel: . IF . bitOp (Bit-Operator) . Bitoperator: O (One) . Ein Beispiel: . Ergebnis: TRUE . Bitoperator: Z (Zero) . Ein Beispiel: . Ergebnis: TRUE . Bitoperator: M (Mixed) . Ein Beispiel: . Ergebnis: TRUE . Zusätzliche Verknüpfung durch boolesche … . Boolesche Operatoren . Ein Beispiel: . Klammern . Ein Beispiel: . Zusätzliche Bedingungen (logische Operatoren) . Kleiner LT, < . Gleich EQ, = . Größer GT, > . Kleiner oder gleich LE, <=, =< . Ungleich NE, <>, >< . Größer oder gleich GE, >=, => . Ein Beispiel: . befehle1 . Befehle im IF-Zweig . Ein Beispiel: . ELSE . Weglassen von “ELSE” . befehle2 . Befehle im ELSE-Zweig . ENDIF . Weitere IF-Befehlsarten . Logische Vergleiche von Operanden . Vergleich vom Zeichenketten . Vergleich von Selektionskriterien . Zur Wiederholung: “Ein Byte enthält 8 Bits …” . Das Byte . Der Binärcode . Eine kleine Tabelle . Die Binärzahl . Der Binärwert . Beschreibung der Funktion von “IF v1 bitOp v2” . Bitausdruck prüfen und Anweisung ausführen . Als Operanden nur einstellige X-Felder verwenden . Literale sind nicht erlaubt . Bedingungsergebnis ermitteln . Ausführung der TRUE- oder FALSE-Befehle . “O” (steht für ONE) . Das Bedingungsergebnis . “Z” (steht für ZERO) . Das Bedingungsergebnis . “M” (steht für MIXED) . Das Bedingungsergebnis . Anwendungsmöglichkeiten in Report-Beispielen . Allgemeine Informationen . Erläuterung der Listausgabe . Beispiel-Report-O Beispiel 1 – 3 . Beispiel-Report-Z Beispiel 1 – 3 . Beispiel-Report-M Beispiel 1 – 3 . Beispiel-Report-CHANGE-BITS Die Aufgabe . Die verwendeten Bit-Operatoren . Die kleinste zu adressierende Einheit: Das Byte . Der “Positionierer” . Die Listausgabe . SchleifenNr. für jeden Durchlauf . Die einzelnen Verarbeitungsschritte LOOP AT Txxxx …. ENDLOOP – Ein Auslaufmodell . Die Kurzbeschreibung . Die Befehlsergänzung “LOOP AT Txxx VERSION xtab …” . LOOP AT Txxxx …. ENDLOOP. (Syntaxerläuterung) . Definition im Report . Arbeitsbereich für jede externe Tabelle . Automatisches Füllen der Kopfzeile . Eine Auswahl von Tabellenzeilen lesen . Alle Tabellenzeilen lesen . SHOW Txxxx . “LOOP AT Txxxx VERSION xtab … ENDLOOP” . Eine zusammenhängende Betrachtung von “LOOP AT Txxxx …” . Anwendungsbereich des Befehls . Schleifenverarbeitung . Sequentielles Lesen einer externen Tabelle . Einstellen der Schlüsselbegriffe . Befehle innerhalb der Schleife . Verarbeitungsreihenfolge . Ende der Schleifenverarbeitung . Keine weiteren Tabellendaten vorhanden . Abbruch der Schleifenverarbeitung . Die Befehlsergänzung “… VERSION xtab …” . Variabler Tabellenname . Kopfzeile mit anderer Struktur . Geringe Häufigkeit der Befehlsanwendung . Einige Einzelinformationen zum “LOOP AT Txxxx”. . Die Schleifenverarbeitung . Das Systemfeld SY-TABIX . Das Füllen einer internen Tabelle . Feldsymbole nicht zulässig . Anwendungsmöglichkeiten in Report-Beispielen . Allgemeine Aufgabenstellung . Beispiel-Report “LOOP AT Txxxx” Aufgabenstellung . LESEN-LOOP-ETAB . LESEN-LOOP-ARGUMENT . Beispiel-Report “LOOP AT Txxxx VERSION xtab” Aufgabenstellung . Lesen einer beliebigen Tabelle mit Txxxx . Tabellenname zur Laufzeit bestimmen . Kopfzeile nur als C-Feld bearbeiten . Ausreichend große Kopfzeile einrichten X-Felder – innerhalb von MOVE-Befehlen . Die allgemeine Funktionsbeschreibung von “MOVE v1 TO v2” . Die Übertragung von X-Feldern (Einzeldarstellung) . Allgemeine Informationen . Der Feldinhalt im Memory . Die “Umwertung” eines Feldes durch … . Ein Fazit … . Die Dateneingabe kann direkt als Halbbyteangabe . Die Konvertierung eines X-Feldes . Der Feldinhalt in der Druckausgabe . Die Druckausgabe eines X-Feldes . Die Übertragung eines X-Feldes in ein C-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Jedes Halbbyte bekommt einen “vollen” … . MOVE X(002) TO C(006). . Der Sendefeldinhalt wird als String aufgefaßt . MOVE X(005) TO C(006). . Die Übertragung eines X-Feldes in ein N-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Die Einzelbeispiele MOVE X(002) TO N(005). . Das Empfangsfeld muß ausreichend groß sein . MOVE X(003) TO N(008). . Wenn das Empfangsfeld zu klein ist … . MOVE X(003) TO N(005). . Die Übertragung eines X-Feldes in ein I-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Die Darstellungsform eines I-Feldes . Der zu übertragende Hexa-Wert wird in ein . MOVE X(003) TO I(004). . Auch ein I-Feld kann zu klein werden . MOVE X(005) TO I(004). . Die Übertragung eines X-Feldes in ein P-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Der in ein P-Feld zu übertragende Wert ist . MOVE X(003) TO P(007). . Die nicht benötigten Stellen im P-Feld werden mit . MOVE X(002) TO P(008). . Die Übertragung eines X-Feldes in ein D-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Der Hexadezimalinhalt wird konvertiert in . MOVE X(001) TO D(008). . Drei Bytes in einem X-Feld genügen zur . MOVE X(003) TO D(008). . Die Sendefeldinformation ist zu groß für ein . MOVE X(005) TO D(008). . Die Übertragung eines X-Feldes in ein T-Feld . Die Zusammenfassung . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Aus einer Hexadezimalzahl wird eine Uhrzeit . MOVE X(001) TO T(006). . Auch “realistische” Uhrzeiten können falsch sein . MOVE X(003) TO T(006). . Die Übertragung eines X-Feldes in ein X-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Wenn das Empfangsfeld größer ist als das . MOVE X(003) TO X(005). . Wenn das Empfangsfeld zu klein ist …. . MOVE X(008) TO X(005). . Die Übertragung eines X-Feldes in ein F-Feld . Die Konvertierung eines Hexadezimalwertes in eine . MOVE X(002) TO F(008). . Mit einem X-Feld lassen sich auch größere Zahlen . MOVE X(008) TO F(008). . OPEN DATASET name – Vorbereitung für Dateibearbeitung . Die Kurzbeschreibung . Schreib- oder Lesemodus wählen . OPEN DATASET name1 FOR INPUT . OPEN DATASET name1 FOR OUTPUT . OPEN DATASET name1 FOR APPENDING . Verarbeitungsart je Modus (Binärdaten oder … . OPEN DATASET name1 … IN TEXT MODE . OPEN DATASET name1 … IN BINARY MODE . Positionierung innerhalb der Datei . OPEN DATASET name1 … AT POSITION . Kommunikation mit dem Betriebssystem . OPEN DATASET name1 … MESSAGE v1 . OPEN DATASET name1 … TYPE typ . OPEN DATASET name1 … FILTER bef1 . OPEN DATASET name1 FOR INPUT IN TEXTMODE MESSAGE msg2 (Syntax) . OPEN DATASET name1 FOR INPUT IN TEXTMODE MESSAGE msg2 . Gemeinsame formelle Anwendung . OPEN DATASET . READ DATASET . CLOSE DATASET . DELETE DATASET . NEW-PAGE PRINT ON LIST DATASET . Die formellen Anforderungen an den Dateinamen . Dateiname als Literal . Dateiname als Variablenangabe . Die Länge der Variablen . Groß-/Kleinschreibung . Ein Beispiel: . Unterschiedliche Normen der Betriebssysteme . FOR INPUT . IN TEXT MODE . MESSAGE msg1 . Die verschiedenen Befehlsergänzungen . “OPEN DATASET name … FOR OUTPUT” . OPEN DATASET name1 FOR OUTPUT …. . FOR OUTPUT . OPEN DATASET name1 FOR APPENDING … . FOR APPENDING . OPEN DATASET name1 FOR OUTPUT IN BINAY MODE … . IN BINARY MODE . OPEN DATASET name1 FOR OUTPUT AT POSITION n2 . AT POSITION n2 . Positionsangabe als Literal . Positionsangabe als Variableninhalt . Die praktische Bedeutung der Positionierung . Die Betriebssystem-Kommunikation . OPEN DATASET name1 FOR OUTPUT MESSAGE msg2. . MESSAGE msg2 . OPEN DATASET name1 … TYPE typ . TYPE order1 . OPEN DATASET name1 … FILTER bef1 . FILTER bef1 . Allgemeine Hinweise zum Befehl “OPEN DATASET ….” . Der Befehl “OPEN DATASET …” wird häufig unterschätzt . Eine kleine Checkliste … . Wenn eine externe Datei bearbeitet werden soll, . Die Anzahl der gleichzeitig geöffneten Dateien . Der Funktionsbaustein “FILE_GET_NAME” . Tabellen zur Bestimmung von Dateinamen . Tabelle “FILENAME” (Typ: transparent) . Tabelle “FILEPATH” (Typ: transparent) . Tabelle “FILESYS” (Typ: transparent) . Tabelle “FILETEXT” (Typ: transparent) . Tabelle “PATH” (Typ: transparent) . Tabelle “OPSYSTEM” (Typ: transparent) . Transaktionen . SF01 (logische Dateinamen) . SF02 (logischer Pfad) . SF03 (physischer Pfad) . SF04 (Syntaxgruppen/Betriebssystem) . SF05 (Syntaxgruppen) . SF06 (Ersetzungsnamen für physische Dateinamen) . Kein OPEN-Befehl vor TRANSFER oder READ ? . Die Kompatibilität von Betriebssystem und … . TRANSFER-Befehl ohne vorherigen OPEN-Befehl . TRANSFER-Befehl ohne OPEN-Befehl (Datei besetzt) . Gleichzeitige Bearbeitung derselben Datei . Komprimierte Dateien . Berechtigungsprüfung für den Dateizugriff (ab Release 3.0) . S_DATASET . S_PATH . Die Tabelle SPTH . Anwendungsmöglichkeiten in Report-Beispielen . OPEN_000 (Lesen Testdatei-1) . OPEN_001 (Schreiben Testdatei) . OPEN_002 (Lesen Testdatei-2) . OPEN_003 (OPEN … FOR APPENDING …) . OPEN_004 (TRANSFER … LENGTH v2 ) . OPEN_005 (READ DATASET … LENGTH v2 ) . OPEN_006 (OPEN … IN BINARY MODE FOR . OPEN_007 (OPEN … IN BINARY MODE FOR OUTPUT) . OPEN_008 (OPEN … IN BINARY MODE .. AT POSITION) . OPEN_009 (OPEN … FOR OUTPUT FILTER ‘compress’ ) . OPEN_010 (OPEN … FOR INPUT FILTER ‘uncompress’ ) . Der verantwortungsvolle Gebrauch der Dateinamen . Die Reportbeschreibung gilt auch für andere . Beispiel-Report OPEN_000 Der Modus . Der Workbereich . Die Satzlänge . Beispiel-Report OPEN_002 “FORM LESEN-DATASET” . “FORM DISPLAY-ISATZ” . “FORM CLOSE-DATASET” . Beispiel-Report OPEN_003 “PRUEFEN-OB-DATEI-VORHANDEN” . Falls die Datei noch nicht vorhanden ist . “OPEN-APPENDING” . “TRANSFER-ZUSATZDATEN” . “CLOSE-DATASET” . Beispiel-Report OPEN_004 “FORM OPEN-PRUEFEN” . “FORM TRANSFER-AUS-T100” . “FORM CLOSE-DATASET” . Beispiel-Report OPEN_005 Beispiel-Report OPEN_006 Aufgabenstellung . “FORM OPEN-BINAER” . “FORM ERWEITERN-DATEI” . “FORM CLOSE-DATASET” . Beispiel-Report OPEN_007 “FORM TRANSFER-BINAER” . Beispiel-Report OPEN_008 “FORM ERMITTELN-BYTEZAHL” . “FORM OPEN-BINAER-MIT-POSITION” . OPEN DATASET FNAME . IN BINARY MODE . FOR INPUT . AT POSITION BYTEZAHL . MESSAGE MSG . “FORM LESEN-DATEI-DIREKT” . Beispiel-Report OPEN_009 Beispiel-Report OPEN_010 PERFORM upro(pname) – Externe Programmverzweigung . Kurzbeschreibung von “PERFORM upro(progname)…” . Statische externe Aufrufe . Dynamischer externer Aufruf . Art der Datenfelder (Variablen, Feldleisten …) . Gemeinsamer Memorybereich . COMMON PART . Globales Memory . “PERFORM upro(progname)” (Syntax) . “PERFORM upro(progname) USING v1 v2 …” . PERFORM . Das Schlüsselwort . upro(progname) . Wenn das Unterprogramm nicht existiert . ” … IF FOUND” . Wenn der externe Report nicht existiert . “USING”, “CHANGING”, “TABLES”, “IF FOUND … ” . “… USING p1 p2 … ” . “… TABLES itab ” . “… IF FOUND” . “DATA: BEGIN OF COMMON PART name” . “DATA: END OF COMMON PART ” . “FORM upro USING p1 VALUE(p2) CHANGING p3 …” . “FORM upro USING p1 ….” . “FORM upro CHANGING p1 ….” . “FORM upro VALUE(p1) VALUE(p2) …” . “FORM upro VALUE(p1) CHANGING p2 p3 …” . Allgemeine Hinweise zum statischen externen PERFORM . Zusätzlicher Speicherplatz erforderlich . Der Reportname und der Unterprogrammname . Der Programmname . Der Unterprogrammname . Verwechselung von Variablennamen und … . Welches Unterprogramm wird extern aufgerufen? . Häufige Fehlermeldungen . Aufruf einer nicht existierenden externen … . Die Länge des COMMON PART stimmt nicht . Das aufgerufene Programm wurde nicht gefunden . Feldsymbole im COMMON PART . Keine Übereinstimmung der Parameteranzahl . Anwendungsmöglichkeiten in Report-Beispielen . Allgemeine Informationen . Die Unterprogramme . Die Listausgabe . Report-CALLER “PERFORM UPRO-INTERN-2 …” . “PERFORM UPRO1(progname) USING p1 …” . “PERFORM UPRO-INTERN-2 …” . Report-AUFGERUFEN URPO-1 . STEP 1 . STEP 2 . STEP 3 . UPRO-2 . Beispiel-Report-3 Aufgabenstellung . “PERFORM UPRO-INTERN-2 …” . “PERFORM UPRO1(progname) USING feldleiste …” . “PERFORM UPRO-INTERN-2 …” . “PERFORM UNTERPROGRAMM-4(progname) TABLES …” . “PERFORM UNTERPROGRAMM-5 TABLES … . “PERFORM UPRO-6(progname) USING …” (einzelfelder . Beispiel-Report-4 “FORM UPRO-1 USING STRU STRUCTURE FELDLEISTE” . “FORM UNTERPROGRAMM-4 TABLES ….” . “FORM UPRO-6 USING …” (einzelfelder, . Beispiel-Report-5 “PERFORM UPRO-INTERN-2 …” . “PERFORM UPRO1(progname) USING p1 p2 …” . “PERFORM UPRO-XX(prog-y) USING p1 IF FOUND”. . Beispiel-Report-6 “FORM UPRO-1 USING p1 VALUE(p2) CHANGING p3” . “FORM UPRO-2 USING p11 p22 p33 …”. . Report-CALLER “EXPORT v1 … TO MEMORY.” . “PERFORM UPRO-0(progname).” . “IMPORT v1 … FROM MEMORY.” . Report-AUFGERUFEN “FORM UPRO-0.” . “FORM UPRO-2 USING v1 VALUE(v2) CHANGING v3 …” . REPORT-KLEINE-FALLE-PERFORM “Parameterfelder werden nicht weitergegeben” . “Warum werden die Datenbereiche nicht geändert?” . REPORT-CALL-TABLES PERFORM UNTERPROGRAMM-1(externes Programm) TABLES … FORM INTERN-2 TABLES XYTAB STRUCTURE ITAB7 PERFORM upro in PROGRAM (name) – dynamischer externer Programmaufruf . x PERFORM upro IN PROGRAM name USING p1 p2 …; . Ein Überblick zum Thema “externer PERFORM” . Der dynamische externe Unterprogrammaufruf . Die Anwendung der Variablen “upro” und “pname” . Der Hinweis auf den statischen externen Perform-Befehl . Eine Kurzbeschreibung . Die variable Angabe von Unterprogramm und Reportname . Der Unterprogrammname in einer Variablen . Die Angabe als Konstante . Die Parametersteuerung im PERFORM-Aufruf . Die Art der Datenfelder . Gemeinsamer Memorybereich . Der COMMON PART . Das globale Memory . “PERFORM upro IN PROGRAM name USING …” . “PERFORM (upro) IN PROGRAM (name) USING v1 v2 …” . Ein Beispiel (Report-1) Ein Beispiel (Report-2) PERFORM . Das Schlüsselwort . (upname) oder UPNAME (der Name des Unterprogramms) . Art der Namensangabe . Der Unterprogrammname in einer Variablen . Der Unterprogrammname als Konstante . Wenn das Unterprogramm nicht existiert . ” … IF FOUND” . Wenn der externe Report nicht existiert . IN PROGRAMM . (pgname) oder PGNAME (der Name des externen Programms) . Der Programmname als Variable . Der Programmname als Konstante . USING/CHANGING/TABLES/IF FOUND … . “… USING p1 p2 … ” . “… TABLES itab” . “… IF FOUND” . “DATA: BEGIN OF COMMON PART name” . “DATA: END OF COMMON PART ” . “FORM upro USING p1 VALUE(p2) CHANGING p3 …” . “FORM upro USING p1 ….” . “FORM upro CHANGING p1 ….” . “FORM upro VALUE(p1) VALUE(p2) …” . “FORM upro VALUE(p1) CHANGING p2 p3 …” . Allgemeine Hinweise zum dynamischen externen PERFORM . Zusätzliche Systemressourcen sind erforderlich . Der Reportname und der Unterprogrammname . Der Programmname . Der Unterprogrammname . Verwechselung von Variablennamen und Parameternamen . Welches Unterprogramm wird extern aufgerufen? . Das Fehlen von Klammern bei variablem Perform . Direkter Aufruf des aktuellen Reports . Häufige Fehlermeldungen . Aufruf einer nicht existierenden externen Routine . Das aufgerufene Programm wurde nicht gefunden . Die Länge des COMMON PART stimmt nicht . Feldsymbole im COMMON PART . Anwendungsmöglichkeiten in Report-Beispielen . Allgemeine Informationen . Die Listausgabe . Beispiel-Report-1 “PERFORM (UPNAME) IN PROGRAM (PRNAME) USING …” . Beispiel-Report-2 Beispiel-Report-3 “PERFORM (UNAME) IN PROGRAM (PNAME) USING feldleiste” . “PERFORM UPRO-INTERN-2 …” . “PERFORM (UNAME) IN PROGRAM (PNAME) TABLES itab1 …” . “PERFORM UNTERPROGRAMM-5 TABLES … . “PERFORM (UNAME) IN PROGRAM (PNAME) USING diverses” . Beispiel-Report-4 “FORM UPRO-1 USING STRU STRUCTURE FELDLEISTE” . “FORM UNTERPROGRAMM-4 TABLES ….” . “FORM UPRO-6 USING …” (einzelfelder, READ TEXTPOOL – Die TEXTelemente eines Reports . READ TEXTPOOL name INTO itab LANGUAGE x Die Syntax und die Funktion des Befehls . Eine Kurzbeschreibung . Die zusätzlichen Reportelemente . Reportüberschrift (= Typ R) . Listenüberschrift (= Typ T) . Spaltenüberschrift (= Typ H) . Textelemente (= Typ I) . Selektionstexte (= Typ S) . “READ TEXTPOOL name INTO itab LANGUAGE x” (Syntax) . READ TEXTPOOL name INTO itab LANGUAGE x . READ . TEXTPOOL name . Größeres Variablenfeld . Der Variableninhalt . Die Schreibweise . INTO itab . Ergänzungen der Tabellenstruktur . Ein Beispiel: . Ein Hinweis: . LANGUAGE x . Einige Hinweise zum “READ TEXTPOOL name INTO itab …” . Textelemente je Reporttyp . TYP 1 (Online-Report) . TYP I (Includemember) . TYP M (Modulpool) . TYP V (Verbuchungsprogramm) . Weitere Typen . Die Datenstruktur “TEXTPOOL” . TEXTPOOL-ID (1 Byte) . R = Reportüberschrift . T = Listenüberschrift . H = Spaltenüberschrift . I = Textelemente . S = Selektionstexte . TEXTPOOL-KEY (3 Bytes) . TEXTPOOL-ENTRY (255 Bytes) . Einige Anwendungsmöglichkeiten des Befehls in Report-Beispielen . Zusammenfassung . Report-LANGUAGE “FORM LESEN-REPORT-TEXTELEMENTE USING ‘D’ ” . “FORM REIHENFOLGE-FESTLEGEN” . Report-INFOS Aufgabenstellung . “FORM LESEN-REPORT-TRDIR” . “FORM LESEN-REPORT-TEXTELEMENTE USING REPO LANGU” . “FORM REIHENFOLGE-FESTLEGEN ” . “FORM SORTIEREN-ZTAB” . “FORM DISPLAY-TABELLE-ZTAB” READ DATASET – Lesen einer externen Datei . READ DATASET name1 INTO satz2 Die Syntaxbeschreibung des Befehls . READ DATASET name1 INTO fl2; … LENGTH v1; . Eine Kurzbeschreibung . Der externe Datenbestand . Vor dem “READ … ” ist der “OPEN ..” erforderlich . Das Lesen der Daten vom CLIENT-PC . Die Befehlsergänzung “… LENGTH v3” . “READ DATASET …” (Syntaxerläuterung) . READ DATASET name1 INTO satz2 . DATASET name1 . Dateiname als Literal . Dateiname als Variablenangabe . Die Länge der Variablen . Groß-/Kleinschreibung . Ein Beispiel: . Unterschiedliche Normen der Betriebssysteme . INTO satz2 . Der variable Workbereich . READ DATASET name1 INTO satz2 LENGTH v3 . READ DATASET name1 INTO satz2 LENGTH v3 . Ein Beispiel: . READ . DATASET name1 . INTO work2 . LENGTH v3 . Einige Anwendungshinweise zum “READ DATASET ….” . Die Befehle der Dateibearbeitung im Zusammenhang . OPEN . READ . TRANSFER . CLOSE . Das Problem der Dateinamen . Die Tabellen der Dateinamensteuerung . SF01 (logische Dateinamen) . SF02 (logischer Pfad) . SF03 (physischer Pfad) . SF04 (Syntaxgruppen/Betriebssystem) . SF05 (Syntaxgruppen) . SF06 (Ersetzungsnamen für physische Dateinamen) . Lokale und globale Dateien . Die Abstimmung mit dem Befehl “OPEN DATASET…” . Der Eingabebereich (Workbereich) . Der Befehlszusatz “READ DATASET … LENGTH v3” . Die Verwendung von lokalen Dateien auf dem CLIENT-PC . Funktionsbaustein “WS_UPLOAD” . EXPORTING FILENAME = client-dateiname . TABLES DATA_TAB = itab1 . Funktionsbaustein “WS_DOWNLOAD” . EXPORTING FILENAME = client-dateiname . TABLES DATA_TAB = itab1 . Der Returncode SY-SUBRC . SY-SUBRC = 0000 . SY-SUBRC = 0004 . Einige Anwendungsmöglichkeiten in Report-Beispielen . Allgemeine Informationen . Report-LESEN-SERVERDATEI “FORM OPEN-DATASET” . “FORM READ-DATASET” . “FORM DISPLAY-ISATZ” . Report-WS_DOWNLOAD “FORM UPLOAD-FUNKTION” . “FORM DISPLAY-IT100” . Report-OPEN-FALSCH Der Zusatz “READ DATASET … LENGTH v2” TRANSFER satz1 – Schreiben in eine externe Datei . TRANSFER satz1 TO fname2; Kopieren von Daten . externen Daten; externe Daten erzeugen; . Eine Kurzbeschreibung . Der Grundbefehl . Der “OPEN-Befehl” als Voraussetzung . Textmode . Binärmode . Die Befehlsergänzung ” … LENGTH v3″. . “TRANSFER satz1 TO fname2” (Syntax) . Die Länge des übertragenen Datenbereiches . TEXT MODE . BINARY MODE . TO . fname2 . “TRANSFER satz1 TO fname2 LENGTH n3” . TRANSFER satz1 . TO fname2 . LENGTH n3 . Anwendungsinformationen zum “TRANSFER satz1 TO fname2” . Kein OPEN-Befehl vor dem erstmaligen TRANSFER-Befehl? . Löschen einer namensgleichen Datei . BINARY MODE = feste Satzlänge . Die Dateibearbeitungsbefehle im Zusammenhang . OPEN DATASET . TRANSFER DATASET . CLOSE DATASET . READ DATASET . DELETE DATASET . INITIALIZATION . “FORM OPEN-DATASET” . “FORM CLOSE-DATASET” . Report-DOWNLOAD “FORM AUFBAU-IT100” . “FORM DOWNLOAD-FUNKTION”