6.2.11

SAP Note 22053 - Verwendung von Dateien im TEXT MODE

Symptom:

Die in einem ABAP-Report spezifizierte Datei soll in der Form verwendet werden, als ob sie in Zeilen aufgebaut ist. D.h. mehrere Datensätze sollen nicht als ein einziger Datenstrom behandelt werden.

Weitere Begriffe
Ursache und Voraussetzungen

Unterschiede zwischen R/2 und R/3.

Lösung
Umformatierung auf UNIX Ebene oder Anpassung der betroffenen Reports.
Diese besteht grundsätzlich darin, daß die Datei im TEXT MODE eröffnet werden muß. Außerdem ist beim TRANSFER der Daten die Länge des Datensatzes anzugeben.
Bitte beachten Sie die mit "<<<===============" markierten Stellen im Source-Coding.

Themenkreis: Erstattungsanträge gem. Entgeltfortzahlungsgesetz
Betroff. Member: RPCEFRA0
Routine: INIT_DTA

FORM INIT_DTA.

...
...
* Datei eroeffnen
OPEN DATASET DTASET FOR OUTPUT "<<<============================
IN TEXT MODE. "<<<============================

CHECK: SY-SUBRC <> 0. "Fehler aufgetreten?

...
...
ENDFORM.


Routine: CREATE_DATASET

FORM CREATE_DATASET.

PERFORM FILL_RECORD. "Datensatz fuellen

TRANSFER REC TO DTASET "Ausgabe des <<<===============
LENGTH REC_LEN "Datensatzes <<<===============
ENDFORM.
Routine: CLOSE_DATASET

FORM CLOSE_DATASET.

...
...

TRANSFER FIN TO DTASET "<<<============================
LENGTH FIN_LEN. "<<<============================

...
...
ENDFORM.


Betroff. Member: RPCEFTA0

...
...
RES3(14), "Reserve
END OF REC,
*
REC_LEN TYPE I, "Satzlänge von REC <<<=========
FIN_LEN TYPE I, "Satzlänge von FIN <<<=========
*
* letzter Datensatz des Datenbestandes
*
BEGIN OF FIN,
SART(2) VALUE 'E9', "Satzart
...
...


Betroff. Member: RPCEFCA0
Routine: SET_START_VALUES

FORM SET_START_VALUES.

...
...

DESCRIBE FIELD: MODI LENGTH MODI_LEN,"Feldlaengen <<<===============
REC LENGTH REC_LEN, "bestimmen <<<===============
FIN LENGTH FIN_LEN. " <<<===============

...
...
ENDFORM.
Themenkreis: Lohnzettel L16
Betroff. Member: RPC16CA0
Routine: INIT_DTA

FORM INIT_DTA.

...
...
* Datei eroeffnen
OPEN DATASET DTAFILE FOR OUTPUT "<<<============================
IN TEXT MODE. "<<<============================

CHECK: SY-SUBRC <> 0. "Fehler aufgetreten?

...
...
ENDFORM.


Betroff. Member: RPC16LA0
Routine: FILL_INFO_DTA

FORM FILL_INFO_DTA.

...
...

TRANSFER INF TO DTAFILE "Ausgabe des <<<===============
LENGTH INF_LEN. "Datensatzes <<<===============

...
...
ENDFORM.


Routine: WRITE_DTA

FORM WRITE_DTA.

TRANSFER DTA TO DTAFILE "Ausgabe des <<<===============
LENGTH DTA_LEN. "Datensatzes <<<===============

CHECK: NOT P/PRIREC IS INITIAL. "Kontrollausgabe erwuenscht?

REC = DTA. "Daten uebernehmen
APPEND REC. "und archivieren
ENDFORM.
Betroff. Member: RPC16DA0

...
...
NUSED(76), "not used yet
END OF DTA,
*
DTA_LEN TYPE I, "Satzlaenge von DTA <<<=========
INF_LEN TYPE I, "Satzlaenge von INF <<<=========
*
* Informationssatz
*
BEGIN OF INF,
INFID LIKE DTASET-INFID, "Satzart
...
...


Betroff. Member: RPCL16A2
Routine: INIT_VALUES

FORM INIT_VALUES.

...
...

* Anzahl der Lohnarten bestimmen, welche auf Lohnzettel ausge-
* geben werden muessen
* Laenge der Datensaetze ermitteln
DESCRIBE: TABLE LGPOS LINES LGART_NUMS, "<<<=======================
FIELD DTA LENGTH DTA_LEN, "<<<=======================
FIELD INF LENGTH INF_LEN. "<<<=======================

...
...
ENDFORM.

No comments:

Post a Comment