PDA

View Full Version : CPYTOSTMF in "/home/..."



Seiten : [1] 2

mahones
25-03-09, 15:25
Hallo liebe Helfer!
Ich will in einem CL-Programm einen relativ einfach gestrickten Befehl einsetzen:
CPYTOSTMF (mit folgenden Parametern)
CHGVAR VAR(&DBPFAD) VALUE('qsys.lib/' *TCAT &BIBL *TCAT '.lib/' *TCAT &DATEI *TCAT '.file/' *TCAT &MEMBER *TCAT '.mbr')

CHGVAR VAR(&ZIELPFAD) VALUE('mail/' *CAT &ANHA)

CPYTOSTMF FROMMBR(&DBPFAD) TOSTMF(&ZIELPFAD) STMFCODPAG(*PCASCII)

Leider kommt eine Fehlermeldung "Objekt ist kein QSYS.LIB-Objekt. Das Objekt ist
/home/USER/qsys.lib/LIB1.lib/FILE.file/MBR1.mbr"

Wieso wird das /home/USER vorangestellt?
Wo konfiguriere ich diese Einstellung ggf.?
Denn interessanterweise läuft das Programm durch, wenn es jemand anderes aufruft!

Pikachu
25-03-09, 16:06
Da fehlt ein / (Schrägstrich) vor qsys.lib

mahones
25-03-09, 16:11
Das klingt auf den ersten Blick logisch...
aber warum funktioniert es trotzdem bei anderen Usern?

Pikachu
25-03-09, 16:17
Wenn als aktuelles Verzeichnis / eingestellt ist, geht das natürlich. Sieh mal bei den betreffenden Benutzerprofilen nach (DSPUSRPRF), was da als "Benutzerverzeichnis" eingestellt ist. Eventuell wird von diesen Bentzern irgendwo auch ein cd / abgesetzt.

mahones
26-03-09, 07:34
Auch das wäre logisch...wäre, denn bei beiden Benutzern steht
"/home/USER" im Benutzerverzeichnis.
Und ein cd / wird auch nicht abgesetzt, denn wenn ich z.B. das Programm mit den o.g. Befehlen als SBMJOB unter dem anderen Benutzer laufen lasse, klappt es auch.
Mystisch, oder?

Pikachu
26-03-09, 08:12
Wenn es das entsprechende Arbeitsverzeichnis nicht gibt, wird / als Arbeitsverzeichnis genommen (sowas steht zumindest im Hilfetext zum Parameter "Arbeitsverzeichnis" beim WRKUSRPRF und DSPUSRPRF). Mach mal WRKLNK bei den betreffenden Benutzern und guck mal in welchem Verzeichnis du landest.

mahones
26-03-09, 08:45
Das ist tatsächlich unterschiedlich...
bei mir: /home/USER
bei "dem anderen": /

Ist denn das Benutzerverzeichnis = Arbeitsverzeichnis?
Und wenn ja: warum steht beim DSPUSRPRF dennoch bei beiden quasi das gleich, in Wirklichkeit arbeitet das System aber mit anderen Werten?

Ich habe es auf jeden Fall mal auf / geändert und teste jetzt.

Pikachu
26-03-09, 08:51
Also vor qsys.lib muß auf jeden Fall ein / egal was als Benutzerverzeichnis oder Arbeitsverzeichnis bei den Benutzern eingetragen ist!

Sind denn die ganzen Benutzerverzeichnisse wirklich im Dateisystem vorhanden oder gibt's da einige vielleicht nicht (sieh' mal nach mit WRKLNK)?

mahones
26-03-09, 09:11
Ich glaube, da liegt der Hund begraben.
Mein Verzeichnis gibt es unter /home.
"Die anderen" sind nicht vorhanden...

Somit wird bei Nicht-Finden wahrscheinlich die Root verwendet, oder?

Wir ändern auf jeden Fall den Eintrag mit /qsys.

Wenn man weiß, wo man suchen muss, ist es ja richtig einfach:)

Fuerchau
26-03-09, 10:18
Bei Nicht-Finden gibts immer eine Escape-Nachricht !