PDA

View Full Version : Bei Aufruf _C_IFS_FOPEN Deskriptor - Fehler



Seiten : [1] 2

WiedemeierP
05-04-19, 09:28
Hallo!

Ich bin gerade dabei eine Datei aus dem IFS mit der c-Funktion '_C_IFS_FOPEN zu laden. Dabei habe ich die Schwierigkeit, das ich einen 'ERR <open ungültig.="" Deskriptor=""> Fehler bekomme.
Ich habe mir die Berechtigungen für das Verzeichnis angesehen. diese stehen alle auf *Public *RWK. Das Problem scheint das Initiale Verzeichnis zu sein! Dieses Steht auch dem Home Verzeichnis '/home/<user>. Meiner Meinung nach müsste es aber auf dem Root Verzeichnis stehen. Leider hat auch der Befehl CHGCURDIR DIR('/') keine Auswirkungen auf den _C_IFS_FOPEN- Befehl!

Wie kann ich das initiale Verzeichnis des Benutzers noch ändern, das der OPEN-Befehl greift!
</user></open>CHGVAR VAR(&FNAME) VALUE(&FNMI *TCAT &X00)
CHGVAR VAR(&OMODE) VALUE('r, crln=y' *TCAT &X00)

CALLPRC '_C_IFS_fopen' ( &fname &omode ) rtnval( &atfdi )

IF COND(&ATFDI *EQ &ATNULL) THEN(DO)
CHGVAR VAR(&ERRLOCN) VALUE('OPEN')
CALLSUBR SUBR(GETERROR)
RETURN
ENDDO

Danke für eure Hilfe!

Gruß Peter

Fuerchau
05-04-19, 11:50
CHDIR ändert das aktuelle Verzeichnis.
Was allerdings nicht relevant ist, wenn man den Dateinamen absolut mit dem kompletten Namen angibt.

Also wie gibst du den Namen vor?
"/Home/Dir/Filename"
oder
"Filename"

Welche Fehlermeldung kommt tatsächlich genau?

WiedemeierP
05-04-19, 11:59
Hallo Fuerchau!

Die Fehlermeldung ist 'ERR <OPEN Deskriptor ungültig.><open Deskriptor="" ungültig.=""><open Deskriptor="" ungültig.=""><open Deskriptor="" ungültig.="">' ohne weitere Dokumentation beim Drücken der F1-Taste!

Ich gebe den Namen mit '/PCTransfer/SAP_PI/SAP_DISPO/Filename' vor.

Vor dem _C_IFS_fopen steht das Default - Verzeichnis aber auf /home/<user></user></open></open></open>

WiedemeierP
05-04-19, 12:32
Hallo Fuerchau!

Die Fehlermeldung ist 'ERR OPEN Deskriptor ungültig<open Deskriptor="" ungültig.=""><open Deskriptor="" ungültig.=""><open Deskriptor="" ungültig.=""><open Deskriptor="" ungültig.=""><open Deskriptor="" ungültig.="">' ohne weitere Dokumentation beim Drücken der F1-Taste!

Ich gebe den Namen mit '/PCTransfer/SAP_PI/SAP_DISPO/Filename' vor.

Vor dem _C_IFS_fopen steht das Default - Verzeichnis aber auf /home/<user></user></open></open></open> </open></open>

TheDevil
05-04-19, 12:35
Hallo.

Versuch doch mal
'/home/PCTransfer/SAP_PI/SAP_DISPO/Filename'

Gruß
Ralf

Fuerchau
05-04-19, 13:12
Mittels "/xxx" gibst du einen absoluten Pfad an.
Somit sollte die Datei auch da stehen, wo du sie erwartest.
Wie mein Vorredner ja schrieb, ist der Pfad ja vielleicht in "/Home/....".

WiedemeierP
08-04-19, 07:36
Guten Morgen!
Ich weiss, das ich damit den absoluten Pfad angebe! Das File steht in diesem Pfad. Das File sehe ich sowohl im IFS des RDi als auch im Green Screen über den Befehl WRKLNK. Über beide Wege kann ich auch auf diesen Pfad zugreifen und die Datei öffenen, nur nicht mit dem '_C_IFS_fopen' im CL-Programm!

Gruss Peter

Fuerchau
08-04-19, 10:30
Wo liegt denn nun deine Datei wirklich:

Zitat: "Dieses Steht auch dem Home Verzeichnis '/home/"
'/PCTransfer/SAP_PI/SAP_DISPO/Filename'

oder

'/Home/PCTransfer/SAP_PI/SAP_DISPO/Filename'

Desweiteren sind manche API's auch noch case sensitive und da benötigt man die genau Schreibweise.
Manchmal, das habe ich auch schon erlebt, ist es auch nur ein zusätzliches Leerzeichen am Ende, was weder per WRKLNK noch in Windows angezeigt wird.
In Windows hilft da u.U. mal der Versuch, den Namen zu ändern. In dem Eingabefeld findet man dann die am Ende vorhandenen Leerzeichen.

WiedemeierP
09-04-19, 10:34
Hallo!

Der genaue Pfad ist '/PCTransfer/SAP_PI/SAP_DISPO/BEST.TXT'. Dieser ist so über den wrklink zu erreichen und wird auch so als Variable an den '_C_IFS_fopen' übergeben!

Gruß Peter

Fuerchau
09-04-19, 12:26
Ja ja, die C-Funktionen:
C-Funktionen benötigen i.d.R. einen Nul-Terminated String, also X'00'.
Hänge mal per *TCAT ein X'00' an den Dateinamen. Dasselbe gilt auch für den Openmode.
Definiere die Felder 1 Byte größer also du brauchst für das X'00'.