After what kind of changes in a display file (*DSPF), it must be re-compiled?

195 pts.
For e.g. If I change the display size, the program using the DSPF auto-understand the display size change. Hence I need not to compile it. So what all are the scenarios post which I must compile the DSPF?

Software/Hardware used:
IBM AS400, OS/400 (V5R3M0)

Answer Wiki

Thanks. We'll let you know when a new response is added.

If changing things like field names, field definitions like size and attributes, Indicators and command keys, error messages…Just about everything other than the screen size if you want it to function properly.

As stated below, anything that changes the input or output buffer requires a recompile. Changing constants on the screen will not. Adding function keys, changing the size of fields, etc. will require a recompile. 

Discuss This Question: 7  Replies

There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when members answer or reply to this question.
  • Splat
    Anything that changes the buffer layout (e.g.: repositioning/rearranging data fields on the screen) will require a recompilation of the program.

    Changing text on the format (e.g.: 'Field 01 .' to 'Customer .') won't require a recompilation of the program.
    12,915 pointsBadges:
  • pdraebel
    To get changes in the DSPF, even change constants on the screen, the DSPF needs recompilation. Programs using the DSPF will only need recompiling when the DSPF Format Level changes. Even only one Format Level.
    7,545 pointsBadges:
  • RossHowatson
    If you change ANYTHING on the source for a display (move a field position, lengthen a field position etc.) you will need to recompile the source member. When you run a program that uses the display the program uses the compiled version of the display. No compile then no level checks because the program is still using the old compiled display file. If you compile the display then you SHOULD recompile any program that uses that display member or enjoy having level checks.
    630 pointsBadges:
  • WoodEngineer
    For a good example of such changes check out IBM's guidelines for modifying their sign on screen.  IBM specifies which elements of the display file must not be changed.  Of course, since mortals like us do not have the source code for the sign on program we could not possibly recompile it.

    Some of the changes we made are:
    1) Make some of the fields non-display - we only want the user to see user ID and password.
    2) Add a literal to identify the company
    3) Add display of six messages from a user-defined message file.  This is a handy way to display critical info to users even before they log on.  
    8,225 pointsBadges:
  • TheRealRaven
    You can change the DEV(), MAXDEV(), LVLCHK(), TEXT(), ENHDSP(), RSTDSP(), DFRWRT(), CHRID(), DECFMT(), SFLENDTXT(), WAITFILE(), WAITRCD(), DTAQ() and SHARE() attributes without recompiling. You can't "change" the display size without recompiling (though a DSPF can be compiled to handle multiple sizes).
    36,035 pointsBadges:
  • TheRealRaven
    Screen text can be changed if the DSPF uses MSGID() to reference it. Changing the message description will change the output of a DSPF the next time the DSPF is used.

    Note that some changes mentioned above require recompilation in order to make them available.

    @WoodEngineer : "Six messages" aren't needed. One is all it takes for all six lines (or more).
    36,035 pointsBadges:
  • azohawk

    My practice has always been, if I change the source (not just adding a comment for the next person about what is happening- a real change) I recompile. If it is a file (pf, lf, dspf, prtf) I also recompile the program. (OK, if I need to change a pf, I use change physical file so I don't loose my data.) 

    You may be able to get around recompiling the program if the file level identifier hasn't changed. But you need to look at the program file refernce to see what level it is expecting, then see what is currently on the file. If they don't match, you chance getting a level check error. You can set the parms to igore level check errors, but I have witnessed to many issues with that.

    4,055 pointsBadges:

Forgot Password

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

Your password has been sent to:

To follow this tag...

There was an error processing your information. Please try again later.

Thanks! We'll email you when relevant content is added and updated.


Share this item with your network: