1. Ich öffene Dateien die in einer internen Tabelle stehen über einen loop.
2. lese den ersten Datensatz aus jeder geöffneten Datei
3. schliese die Dateien.
eigenlich recht simple, diese 3 Schritte werden auf einem Dynpro durch einen Button gestartet.
Beim 2. Click auf den Button -> stürtz das Programm ab und ich bekomme die Fehlermeldung das die Datei die ich öffnen möchte schon geöffnet ist.
tja lauf meinem Prozess habe ich diese Datei im 3. Schritt ja geschlossen und ein überprüfen der Dateinamen habe ich auch schon gemacht. hmmmm woran kann das wohl liegen, ???
Codeschnipsel:
1. Dateien öfffen
LOOP AT p_tabelle INTO ab_tabelle.
OPEN DATASET ab_tabelle-name FOR INPUT IN TEXT MODE ENCODING DEFAULT.
p_sub = sy-subrc.
IF p_sub NE 0.
CONCATENATE 'Datei ' ab_tabelle-name ' konnte nicht geöffnet werden'
INTO meldung.
APPEND meldung TO it_protokoll.
p_sub = 'X'.
EXIT.
ELSE.
CONCATENATE 'Datei ' ab_tabelle-name ' wurde geöffnet'
INTO meldung.
APPEND meldung TO it_protokoll.
ENDIF.
*lach ... mal wieder selbst auf mich reingefallen ..... kleine Sachen->grosse Wirkung ..... habe vergessen die interne Tabelle mit den Einträgen am ende des Prozesses zu löschen, dadurch stehen die einträge doppelt drinn, dh sie werden dann auch wiede doppelt geöffnet !!!!