Starting remote printers

If you support multiple remote printers you'll want to review this CL program.

We support more than 130 remote printers in several locations. The naming conventions for writers and outq's are less than consistent. To make it easier to start these devices, especially when the host iSeries 400 is unattended, we wrote a little CL program called STRPTRS.


A physical file called PRINTERS includes the following information:

 
 A         R STRPRTFM              
 A            WORKSTN       10A     
 A            DEV           10A       
 A            OUTQ          10A      
 A            FORMTYPE      10A     
 A            FILESEP        6A      
 A            ALIGN          6A       
 A        K WORKSTN    

The program is called as part of every sign on where it starts the printer(s) attached to a work station. It may also be called externally with parm 'ALLALLALL ' to start all printers.

 
             PGM        PARM(&WSID)                                 
             DCLF       PRINTERS                                    
             DCL        VAR(&WSID) TYPE(*CHAR) LEN(10)              
                                                                    
             IF         COND(&WSID *NE 'ALLALLALL ') THEN(GOTO +      
                          CMDLBL(ALLLOOP))                          
                                                                    
             OVRDBF     FILE(PRINTERS) POSITION(*KEYAE 1 STRPRTFM + 
                          &WSID)                                    
                                                                    
 LOOP:                                                              
             RCVF                                                   
             MONMSG     MSGID(CPF0864) EXEC(RETURN)                 
             IF         COND(&WORKSTN = &WSID) THEN(RETURN)        
             STRPRTWTR  DEV(&DEV) OUTQ(&OUTQ) FORMTYPE(&FORMTYPE) + 
                          FILESEP(&FILESEP) ALIGN(&ALIGN)           
             MONMSG     MSGID(CPF3310 CPF3347)                      
             GOTO       LOOP                                        
                                                                    
 ALLLOOP:                                                           
             RCVF                                                   
             MONMSG     MSGID(CPF0864) EXEC(RETURN)                 
STRPRTWTR  DEV(&DEV) OUTQ(&OUTQ) FORMTYPE(&FORMTYPE) +     
                          FILESEP(&FILESEP) ALIGN(&ALIGN)               
             MONMSG     MSGID(CPF3310 CPF3347)                          
             GOTO       ALLLOOP                                         
             ENDPGM

==================================
MORE INFORMATION ON THIS TOPIC
==================================

The Best Web Links: tips, tutorials and more.

Ask your systems management questions--or help out your peers by answering them--in our live discussion forums.

Ask the Experts yourself: Our systems management gurus are waiting to answer your technical questions.

This was first published in February 2002

Dig deeper on iSeries CL programming

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

-ADS BY GOOGLE

SearchEnterpriseLinux

SearchDataCenter

Close