22.12.10

SAP Note 15348 - New Countries: how to modify RFFODOWN

Symptom:

Report RFFODOWN aborts with error 302 or 303.

Cause and prerequisites

There 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.

Solution

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