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 BegriffeUrsache und Voraussetzungen
Unterschiede zwischen R/2 und R/3.
LösungUmformatierung 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