Report RFFODOWN aborts with error 302 or 303.
Cause and prerequisitesThere exists hard-coded information for each country using RFFODOWN. A program modification has to be made to enable new countries to use the report.
Why country-specific information ?
Banks of different countries require different file-formats. The report checks whether the first record read contains a country-specific pattern. This is done to make sure, that a file for country A will not be sent to a bank in country B.
When deleting a file the same check is done. Only files with typical patterns can be deleted. This is done to avoid the deletion of arbitrary files on the file-system.
Most of the banks require, that the DME file has to have a specific name, e.g. DTAUSxxx for German data medium exchange. A check for a correct name is done before generating a new file on the PC.
What's to do now ?
The first step should be to contact SAP to find out, whether a modification for the country in question is planned.
If not, the report has to be modified as following:
- Copy the report to a name of your own, e.g. ZFFODOWN
- Edit the report:
- 1) Modify name-check of the new file, e.g. ETEBAC for France:
- Find 302:
- IF PAR_FILE(6) NE 'DTAUS0' AND
- ...
- PAR_FILE(6) NE 'ETEBAC' AND "<-- Insert your name requirements
- ...
- PAR_FILE(3) NE 'PBS'.
- SET CURSOR FIELD 'PAR_FILE'.
- MESSAGE E302.
- 2) Modify the pattern-check:
- Example: The first record of a French file contains one the following
- patterns: record+0(4) = '0302' OR
- record+0(4) = '0308'
- If the first record contains the bank key of the house bank,
- this key is to be copied to HLP_BLZ - otherwise the field has
- to be SPACE !
- Find 303:
- IF PAR_COPY NE SPACE.
- IF HLP_RECORD(5) EQ '0128A' AND PAR_FILE(6) EQ 'DTAUS0'.
- HLP_BLZ = HLP_RECORD+7(8).
- ...
- * begin of insertion
- ELSEIF HLP_RECORD+0(4) EQ '0302' AND PAR_FILE(6) EQ 'ETEBAC'.
- HLP_BLZ = SPACE.
- ELSEIF HLP_RECORD+0(4) EQ '0308' AND PAR_FILE(6) EQ 'ETEBAC'.
- HLP_BLZ = SPACE.
- *end of insertion
- ...
- ELSE.
- MESSAGE E303 WITH PAR_PATH.
- ENDIF.
- Find 303:
- IF PAR_DELE NE SPACE.
- IF PAR_COPY EQ SPACE
- AND HLP_RECORD(5) NE '0128A'
- ...
- AND HLP_RECORD+(4) NE '0302' "insert pattern check
- AND HLP_RECORD+(4) NE '0308' "insert pattern check
- ...
- AND HLP_RECORD(5) NE 'BS002'.
- MESSAGE E303 WITH PAR_PATH.
- ENDIF.
No comments:
Post a Comment