Definition
Im File-Layout ist jedem Block ein Blockpuffer zugeordnet. Die Interface-Toolbox schreibt die Felder eines Blockes zunächst in dessen Blockpuffer. Erst nach der Verarbeitung eines Blockes überträgt die Toolbox den Blockpuffer in die Exportdatei.
Verwendung
Wenn Sie bei der Blockbearbeitung die Funktion
User-Exit nachher verwenden, können Sie bestimmen, ob der Interface-Blockpuffer in die Exportdatei geschrieben wird.Die Toolbox definiert den Interface-Blockpuffer und kann von der benutzerdefinierten Form-Routine angewendet werden. Verwendet Ihr Programm, das die benutzerdefinierte Form-Routine enthält, das Include RPCIFI26 der Interface-Toolbox, dann haben Sie uneingeschränkten Zugriff auf den Interface-Blockpuffer.
Im Include RPCIFI26 wird der Interface-Blockpuffer als interne Tabelle mit dem Namen BLOCKS_OUTPUT definiert:
DATA: BLOCKS_OUTPUT TYPE PINTF_OUTPUT OCCURS 10 WITH HEADER LINE.
TYPES: BEGIN OF PINTF_OUTPUT,
SNAME(25),
LENTH(6) TYPE N,
VALUE TYPE PINTF_MAX_RECORD,
END OF PINTF_OUTPUT.
TYPES: PINTF_MAX_RECORD (4096) TYPE C.
Das Feld BLOCKS_OUTPUT-SNAME enthält den Namen einer Struktur, die einem Block zugeordnet ist. BLOCKS_OUTPUT-LENTH enthält die Länge dieser Struktur und BLOCKS_OUTPUT-VALUE ihren Inhalt.
SNAME |
LENTH |
VALUE |
STRUCTURE_01 |
17 |
12199601010002X00 |
STRUCTURE_02 |
20 |
Bond, James |
STRUCTURE_03 |
8 |
19961010 |
Die Toolbox schreibt den Wert des Feldes BLOCKS_OUTPUT-VALUE in der Länge des Felds BLOCKS_OUTPUT-LENTH in die Ausgabedatei.
Wenn Sie eine benutzerdefinierte Form-Routine einsetzen, die für Blöcke die Funktion User-Exit nachher verwendet, können Sie den Interface-Blockpuffer manipulieren, indem Sie Einträge löschen, ändern, verschieben oder hinzufügen.
INCLUDE RPCIFI26.
FORM MAINTAIN_BLOCK USING PAR_01
PAR_02
PAR_03
PAR_04
PAR_05
PAR_06
PAR_07
PAR_08
PAR_09
PAR_10
PAR_11
PAR_12
PAR_13
PAR_14
PAR_15 "Eingabeparameter 1 - 15
RETURN_VALUE. "Rückgabeparameter
RETURN_VALUE = `1`.
LOOP AT BLOCKS_OUTPUT.
IF BLOCKS_OUTPUT-SNAME = `STRUCTURE_A` AND
BLOCKS_OUTPUT-VALUE(2) = `XS`.
CLEAR BLOCKS_OUTPUT-VALUE.
BLOCKS_OUTPUT-LENTH = 10.
BLOCKS_OUTPUT-VALUE = `DS19960125`.
MODIFY BLOCKS_OUTPUT.
ENDIF.
ENDLOOP.
ENDFORM.

Wenn Sie den Interface-Blockpuffer BLOCKS_OUTPUT ändern und den Rückgabewert 1 in die Toolbox zurückschreiben, dann exportiert die Toolbox den genauen Inhalt des Interface-Blockpuffers. Es ist nicht möglich, den vorherigen Inhalt des Interface-Blockpuffers wieder herzustellen.
Sie können den Interface-Blockpuffer nur für diejenigen kundeneigenen Form-Routinen verwenden, die für Blöcke die Funktion User-Exit nachher benutzen.
Beispiel für einen Interface-Blockpuffer
vorher |
SNAME |
LENTH |
VALUE |
|
STRUCTURE_A |
12 |
XS0123456789 |
nachher |
SNAME |
LENTH |
VALUE |
|
STRUCTURE_A |
10 |
DS 19960125 |