• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • Keep Your Users Informed

    April 28, 2004 Hey, Ted

    Although we run an ERP package, we have plenty of homegrown programs that fill holes in the package. Most of them produce reports that the package doesn’t offer us. Sometimes a user keys runtime information into a prompt screen and presses a function key to submit a request to batch. However, if the results don’t come off the printer PDQ, the user may submit another request, thinking the first one was not accepted. How can we inform the user that the request was received?

    –George

    Your problem reminds me of something I’ve noticed: that homegrown software often does a poor job of keeping the user informed. I have received calls from users whose terminals had apparently “locked up.” The problem often turned out to be a long-running interactive program. The screen was blank, and there were no messages to tell the user what was going on.

    Fortunately, yours is a very easy problem to fix, George.

    Whenever you code a Submit Job (SBMJOB) command in a prompting program, make it a habit to follow SBMJOB with the Send Program Message (SNDPGMMSG) command, which informs the user that the job has been submitted to batch. The easiest way to accomplish this is to send a generic-type completion message.

    SNDPGMMSG  MSG('Job was submitted for processing.') +
                 MSGTYPE(*COMP)
    

    That should be easy enough. You might enhance the message by including values that the user just keyed into the prompt screen.

    SNDPGMMSG  MSG('Report for customer' *BCAT &CUSNO *BCAT + 
                  'was submitted for processing.') +           
                  MSGTYPE(*COMP)
    

    Including keyed values helps the user who is submitting multiple requests, perhaps taken from a list on paper.

    Another approach is to trap the message that OS/400 sends to the submitting program and send it to the caller.

    DCL        VAR(&MSGID) TYPE(*CHAR) LEN(7)                
    DCL        VAR(&MSGDTA) TYPE(*CHAR) LEN(80)              
    
    SBMJOB     CMD(DSPLIBL) JOB(TED)                         
    RCVMSG     MSGTYPE(*COMP) MSGDTA(&MSGDTA) MSGID(&MSGID)  
    IF         COND(&MSGID *EQ CPC1221) THEN(DO)             
    SNDPGMMSG  MSGID(CPC1221) MSGF(QCPFMSG) MSGDTA(&MSGDTA) +
                 MSGTYPE(*COMP)                              
    ENDDO
    

    The user will see a message like the following one at the bottom of his menu.

    Job 024488/AUSER/AJOB submitted to job queue QBATCH1 in library QGPL.
    

    Before you implement any of these ideas, first take a look at the ERP package. Packaged software, unlike much of the homegrown stuff I’ve seen, is usually built upon a strong architecture. That is, there are certain ways that things are done. How does your ERP package inform the user that a job has been submitted to batch? I suggest you use the same approach, if possible. I like consistency, mainly because I (as well as users) hate inconsistency. Even if you don’t like the way the ERP package does something, it would help the users to make your homegrown stuff work the way the ERP package does.

    –Ted

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Tags:

    Sponsored by
    VISUAL LANSA 16 WEBINAR

    Trying to balance stability and agility in your IBM i environment?

    Join this webinar and explore Visual LANSA 16 – our enhanced professional low-code platform designed to help organizations running on IBM i evolve seamlessly for what’s next.

    🎙️VISUAL LANSA 16 WEBINAR

    Break Monolithic IBM i Applications and Unlock New Value

    Explore modernization without rewriting. Decouple monolithic applications and extend their value through integration with modern services, web frameworks, and cloud technologies.

    🗓️ July 10, 2025

    ⏰ 9 AM – 10 AM CDT (4 PM to 5 PM CEST)

    See the webinar schedule in your time zone

    Register to join the webinar now

    What to Expect

    • Get to know Visual LANSA 16, its core features, latest enhancements, and use cases
    • Understand how you can transition to a MACH-aligned architecture to enable faster innovation
    • Discover native REST APIs, WebView2 support, cloud-ready Azure licensing, and more to help transform and scale your IBM i applications

    Read more about V16 here.

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    IBM Brings Rack-Mounted UPS to iSeries The eServer i5, i5/OS V5R3 Continue the AS/400 Transformation

    Leave a Reply Cancel reply

Content archive

  • The Four Hundred
  • Four Hundred Stuff
  • Four Hundred Guru

Recent Posts

  • Liam Allan Shares What’s Coming Next With Code For IBM i
  • From Stable To Scalable: Visual LANSA 16 Powers IBM i Growth – Launching July 8
  • VS Code Will Be The Heart Of The Modern IBM i Platform
  • The AS/400: A 37-Year-Old Dog That Loves To Learn New Tricks
  • IBM i PTF Guide, Volume 27, Number 25
  • Meet The Next Gen Of IBMers Helping To Build IBM i
  • Looks Like IBM Is Building A Linux-Like PASE For IBM i After All
  • Will Independent IBM i Clouds Survive PowerVS?
  • Now, IBM Is Jacking Up Hardware Maintenance Prices
  • IBM i PTF Guide, Volume 27, Number 24

Subscribe

To get news from IT Jungle sent to your inbox every week, subscribe to our newsletter.

Pages

  • About Us
  • Contact
  • Contributors
  • Four Hundred Monitor
  • IBM i PTF Guide
  • Media Kit
  • Subscribe

Search

Copyright © 2025 IT Jungle