× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Only thing I would do differently is name my indicators so I don't have to remember that IN41 means Restricted_Mode, or whatever.

Mark Murphy
STAR BASE Consulting, Inc.
mmurphy@xxxxxxxxxxxxxxx

-----rpg400-l-bounces@xxxxxxxxxxxx wrote: -----
To: RPG programming on the IBM i / System i <rpg400-l@xxxxxxxxxxxx>
From: David FOXWELL
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
Date: 12/08/2010 10:14AM
Subject: trying to be modular

This is an attempt at modularising my code. At the risk of getting slammed, I ask if it is acceptable and to tell me what the disadvantages may be and how I should have done this.

Had to get an authorization level from a user information table to condition a screen indicator in an existing program. The user table contains lots of other information like name, department and telephone number, etc.

In my pgm :

// *IN49 is already on.

IF GetAutLevel >= '4';
   *IN49 = *OFF;

ENDIF;


In a separate module where the user table is already used, I added :
 

 P GetAutLevel     B                   EXPORT
 D                 PI                  LIKE ( DFN_AUTLV )
 D UserId                              LIKE ( DFN_USRID ) CONST
 D Error                               LIKE ( DFN_ERRMG )

 D wAutLv          S                   LIKE ( DFN_AUTLV )

       IF NOT SetUserInfo ( UserId : Error );
          RETURN *BLANK;

       ENDIF;

       RETURN UAUTNV; // From user table

 P GetAutLevel     E




 P SetUserInfo     B
 D                 PI              N
 D UserId                              LIKE ( DFN_USRID ) CONST
 D Error                               LIKE ( DFN_ERRMG )

 D wUserId         S                   LIKE ( DFN_USRID )
 D                                     STATIC

    IF wUsrId <> UserId;
       CHAIN UserId USRCFD;
        If not %found;
           error = ....
           RETURN *OFF;

        ENDIF;

     RETURN *ON;

 P SetUserInfo     B

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.