Hallo,
Ich habe eine probleme: Wenn ich meine Programm im Hintergrund Ausführe, im allen 2. ausführung will gebrochen. Also 1 gut, 1 gebrochene Job, usw.
(Im Forgrund Ausführung gibts keine Probleme.)
Immer kommt die volgende Probleme vor: " Die Datei konnte nicht geöffnet werden!", sy-subrc = 8.
Was hab' ich falsch gemacht?
Die Quelltext ist die folgende:
FORM daten_herunterladen USING id_pfad TYPE c
CHANGING ct_csvfile TYPE t_csvfile.
DATA: lw_csvfile TYPE csvfile.
* Für TEST
*if ( not id_pfad EQ gc_default_gaspfad )
*and ( not id_pfad EQ gc_default_strompfad ).
*MESSAGE e000(38) WITH 'Leere PFAD!' id_pfad
* gc_default_gaspfad
* gc_default_strompfad.
*endif.
OPEN DATASET id_pfad FOR INPUT IN TEXT MODE ENCODING UTF-8
IGNORING CONVERSION ERRORS.
IF sy-subrc NE 0.
MESSAGE e000(38) WITH 'Die Datei konnte nicht geöffnet werden!'(e01)
id_pfad
sy-subrc.
ENDIF.
DO.
READ DATASET id_pfad INTO lw_csvfile.
IF sy-subrc EQ 0.
APPEND lw_csvfile TO ct_csvfile.
ELSE. "Wann keine weitere Daten gibt
* CLOSE DATASET id_pfad.
EXIT.
ENDIF.
ENDDO.
CLOSE DATASET id_pfad.
*****
* Für TEST
WRITE: / 'CLOSE Dataset! Sy-subrc: ',
sy-subrc,
id_pfad.
ENDFORM. " DATEN_HERUNTERLADEN
Benenne in ID_PFAD den namen mal komplett und nicht mit /./.
Du weißt doch garnicht, von wo aus er hier zugreift, es könnte doch ein ganz anderer Ausgangspunkt sein.
Es sieht so aus, dass ich 2 Dateiname als Parameter angebe in der Selektionsbild (Parameter auswahl mit eingabehilfe). Dann möchte ich diese 2 CSV Datei herunterladen in 2 itab.
Also ID_PFAD ist immer anderes, nicht fix.
Also unabhängig die o.g. sollte ich absolute Pfad benutzen (ohne '\.\' , nur '\tmp\xxx.csv' ), anstatt realativ Pfad ('\.\tmp\xxx.csv') ??
Norbert, schreibe doch an die eine oder andere Stelle eine Write-Anweisung um zu sehen, wie weit du im Hintergrund kommst. Sollte dies nicht funktionieren alternativ eine Nachricht in das LogFile - Schreiben.
Dann siehst du woran dein Fehler liegt. Ist eine der beiden Dateien nicht auf einen Server oder gibt es Einschränkungen der Berechtigung. Hast du schon mal in die ST22 oder SM21 geschaut ob irgendetwas protokolliert wurde.
Was steht eigentlich im Log des Report (siehe SM37)?
Ich habe schon den ID-PFAD mit Wert '/tmp/gas_plz_netzbetreiber_testok.csv' früher ausprobiert, aber damit kommen die gleichen Ereignisse vor: einmal gut, einmal nicht...
Du sagst ja bei jedem 2ten lauf kommt der Fehler.
Läuft das Programm etwa (teilweise) zeitgleiche?
Wenn ja, dann ist die Antwort ganz einfach:
Einer hats im Zugriff, deshalb kann der andere nicht zugreifen. (Sperre)