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.]