-
API Hilfe
Hi,
ich muss für alle user den "local Path name" und "Supp. groups" ausgeben. Da ich keine Erfahrung mit API's habe, speziell mit Offsets wie sie hier im QSYRUSRI-API gefordert sind, bräuchte ich einen Tip wie man so etwas in RPG III/IV löst. Hat vielleicht jemand eine Idee oder ein kleines Beispiel? Die Beispiele aus dem API-Handbuch behandeln das ja leider nicht (oder ich habs nicht geschnallt).
Danke schon mal.
-
Also :
die supp.Grp bekommst du einfacher mit RTVUSRPRF. Das USRHOME ist etwas schwieriger, da dies im Unicode (UCS-2)abgelegt ist.
Das heißt, daß API QSYRUSRI reicht nicht.
Mit dem API CDRCVRT kannst du den String in z.B. die Job CCSID umwandeln.
Hier ein kleines CL-Programm :
Code:
RTVUSRHOME: PGM PARM(&USRPRF &HOMEDIRN)
DCL VAR(&USRPRF) TYPE(*CHAR) LEN(10) /**/
DCL VAR(&RCV) TYPE(*CHAR) LEN(9999) /**/
DCL VAR(&RCVLEN) TYPE(*CHAR) LEN(4) /**/
DCL VAR(&ERR) TYPE(*CHAR) LEN(100) /**/
DCL VAR(&FORMAT) TYPE(*CHAR) LEN(8) +
VALUE('USRI0300') /**/
DCL VAR(&OFSHOME) TYPE(*CHAR) LEN(4) /**/
DCL VAR(&OFSHOMED) TYPE(*DEC) LEN(9) /**/
DCL VAR(&HOMEDIR) TYPE(*CHAR) LEN(512) /*IN UCS*2*/
DCL VAR(&CCSID) TYPE(*CHAR) LEN(4) /**/
DCL VAR(&LOHOME) TYPE(*CHAR) LEN(4) /**/
DCL VAR(&ST1) TYPE(*CHAR) LEN(4) /**/
DCL VAR(&L1) TYPE(*CHAR) LEN(4) /**/
DCL VAR(&CCSIDN) TYPE(*CHAR) LEN(4) /**/
DCL VAR(&CCSIDNN) TYPE(*DEC) LEN(5 0) /**/
DCL VAR(&ST2) TYPE(*CHAR) LEN(4) /**/
DCL VAR(&GCCASN) TYPE(*CHAR) LEN(4) /**/
DCL VAR(&L2) TYPE(*CHAR) LEN(4) /**/
DCL VAR(&HOMEDIRN) TYPE(*CHAR) LEN(256) /*IN EBCDIC*/
DCL VAR(&L3) TYPE(*CHAR) LEN(4) /**/
DCL VAR(&L4) TYPE(*CHAR) LEN(4) /**/
CHGVAR VAR(%BIN(&RCVLEN)) VALUE(9999)
IF COND(&USRPRF = '*CURRENT ') THEN(RTVJOBA +
CURUSER(&USRPRF) DFTCCSID(&CCSIDNN))
/* RETRIEVE USER INFORMATION (QSYRUSRI) API */
CALL PGM(QSYRUSRI) PARM(&RCV &RCVLEN &FORMAT +
&USRPRF &ERR)
CHGVAR VAR(&OFSHOME) VALUE(%SST(&RCV 601 4))
CHGVAR VAR(&OFSHOMED) VALUE(%BIN(&OFSHOME)) /* OFFSET TO HOMEDIR-BLOCK */
CHGVAR VAR(&OFSHOMED) VALUE(&OFSHOMED + 1)
CHGVAR VAR(&CCSID) VALUE(%SST(&RCV &OFSHOMED 4)) /* CCSID OF HOMEDIR IS 61952 UCS-2 */
CHGVAR VAR(&OFSHOMED) VALUE(&OFSHOMED +4+2+3+3+4)
CHGVAR VAR(&LOHOME) VALUE(%SST(&RCV &OFSHOMED 4)) /* NUMBER OF BYTES HOMEDIR UCS*2 */
CHGVAR VAR(&OFSHOMED) VALUE(&OFSHOMED +4+2+10)
CHGVAR VAR(&HOMEDIR) VALUE(%SST(&RCV &OFSHOMED 512)) /* HOMEDIR IN UCS*2 */
CHGVAR VAR(%BIN(&ST1)) VALUE(0)
CHGVAR VAR(&L1) VALUE(&LOHOME) /* NUMBER OF BYTES INPUT STRING */
RTVJOBA DFTCCSID(&CCSIDNN) /* CONVERT IN DFT JOB CCSID */
CHGVAR VAR(%BIN(&CCSIDN)) VALUE(&CCSIDNN)
CHGVAR VAR(%BIN(&ST2)) VALUE(2) /* 2 = SPACE PADDED, SO L2 = L3 */
CHGVAR VAR(%BIN(&GCCASN)) VALUE(0)
CHGVAR VAR(%BIN(&L2)) VALUE(256) /* ALLOCATED OUTPUT LENGTH IN BYTES */
/* CONVERT A GRAPHIC CHARACTER STRING (CDRCVRT) API */
CALL PGM(CDRCVRT) PARM(&CCSID &ST1 &HOMEDIR &L1 +
&CCSIDN &ST2 &GCCASN &L2 &HOMEDIRN &L3 +
&L4 &ERR)
/* SNDPGMMSG MSG(&HOMEDIRN) */
ENDPGM
Viel Spaß
Sven
[Dieser Beitrag wurde von Sven Schneider am 23. Mai 2003 editiert.]
-
Vielen Dank Sven, ich werde gleich mal mein Glück versuchen.
Willi
-
Hi Sven,
alles paletti es hat funktioniert.
Danke!!
Similar Threads
-
By TMusolf in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 25-01-07, 12:42
-
By remo2010 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 23-11-06, 13:31
-
By jogisarge in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 22-11-06, 16:02
-
By lyrics in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 29-08-06, 09:03
-
By marcel331 in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 12-08-06, 13:01
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks