21
Thu, Nov
1 New Articles

From Green-screens to Visual Vistas

Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

In the old days, AS/400 trends and directions changed slowly (if they changed at all). There was a time when knowledge of CL, DDS, and RPG (or COBOL) empowered a programmer to do everything and anything with the AS/400. Alas, today’s AS/400 lives in a changed world: TCP/IP has replaced SNA, Windows desktops are the workstations of choice, new-hire users think green-screen is an environmentally friendly suntan lotion, and everyone wants GUIs.

Today, AS/400 programming teams are squeezed between user demands and management demands for GUIs. It’s a no-win situation; either you deliver applications with the user interface that your users demand, or the programmer who takes your place will! Users demand snazzy GUIs because they’re used to using GUIs with their spreadsheets and word processors and because they perceive GUIs as easier to use. Managers and decision-makers want snazzy GUIs because GUIs keep them competitive at the country club, because they also perceive GUIs as easier to use, and because they equate GUIs with modern applications.

What’s an AS/400 programmer to do? Can you leverage your traditional AS/400 programming skills to deliver the kinds of applications demanded of you today? Can you bootstrap what you know about the AS/400 to deliver modern AS/400 applications without investing hundreds of hours of your free time to learn a new programming model? Can you learn to leave SEU behind and still enjoy programming? The answer is a resounding yes!

A handful of Windows-based development environments target the AS/400 for application development. As a category, these tools create Windows executables (EXEs) that connect in real time to the AS/400 database. This article focuses on the RPG skills transference that ASNA Visual RPG (AVR) offers. AVR offers a Windows-based Integrated Development Environment (IDE) powered by good ol’ RPG. With AVR, you put your RPG skills to work immediately, creating freestanding Windows EXEs with all the bells and whistles the Windows interface has to offer to connect in real time to the AS/400, NT Server, or local PCs.

Is there a learning curve for Windows development? Of course there is, but as this article explains, you’re quite likely to be pleasantly surprised at how low that learning curve is. You’ll also be amazed at how quickly you can create robust, deployable, line-of- business applications for both Windows and the Web.

Maintaining Your Self-confidence

As you move from traditional AS/400 programming languages to modern development environments, the first speed bump you need to clear is culture shock. Gone are your old friends SEU, PDM, and RLU. At first, if you’re like most RPG programmers, moving from RPG to a Windows-based development environment is like hopping from behind the wheel of a VW Beetle into the cockpit of a 747. First and foremost, you mustn’t lose your self-confidence because of your early lack of control in the new development environment. It’s easy for RPG programmers to take for granted how hard they’ve worked to acquire the green-screen development skills they have today. Think back to the period when you were learning AS/400 subfiles; now, there is a tricky technology to master completely. (Does anyone ever really master green-screen subfiles?)

The point is that you’ve worked hard to learn subfiles. You’ll also have to work hard to learn other models of programming. However, it can be done; you already have the basic skill set. Windows programming isn’t inherently any more mysterious than working with RPG subfiles. Remember, too, that while you may not be able to render a fractal as well as a PC cowboy can, you have very valuable experience building business applications. (When did you last need to make a general ledger application fractal-friendly?) Concepts such as record locking, appropriate use of indexed files, and subfile knowledge all map directly into Windows programming.

Learning the Event-driven Programming Model

A lot has been written about how most Windows-based application development environments use event-driven programming, so it’s easy to blow the event-driven programming concept out of proportion. Event-driven simply means that an internal event monitor is implicitly present in Windows programs. This monitor watches for mouse clicks or keystrokes and then directs action to the appropriate chunk of code.

It’s often written that, with event-driven programming, the program, not the user, is in control. Nonsense! Polling for a mouse click in a Windows program is no more sophisticated than watching for an F7 stroke in RPG. Event-driven programming is hardly a mysterious Zen science. In fact, although you may not have realized it, you’ve been doing event-driven programming since day one with CL’s Monitor Message (MONMSG) command.

With MONMSG, an event monitor calls the appropriate stub of CL code. Just as MONMSG works with a CL GOTO, Windows programs let you easily associate subroutines with Windows events. In fact, as bizarre as it may seem, all Windows programs have an implicit loop, just as RPG programs do. This Windows loop polls for “events” (such as buttons being pressed) and implicitly directs code execution to the programmer-provided code for the corresponding event. Imagine a program with two events: an Exit button press and a Find Customer button press. The programmer doesn’t write logic for the loop (it’s there in Windows programs implicitly), only for subroutines that should be activated when the button is pressed. The only thing the programmer does explicitly in this “link” between the internal polling loop and writing code is to identify, in the code, which subroutine goes with which event.

Learning to Program by Form

Windows applications don’t use display files; they use Windows forms. As you create Windows programs, you need to change your mental model of application segregation from display file formats to forms. This challenge actually transforms itself very quickly into a huge visual programming asset because creating forms is done visually by dragging and dropping user interface components on forms. Unlike RPG or COBOL, most Windows programming environments do not separate creating the user interface from creating the application.

In fact, not only do Windows development environments tightly integrate creating the user interface with creating the application, but they also provide built-in debugging and on-the-fly program testing. Beyond being extremely productive, the tight edit/compile/run/debug cycle helps you to overcome visual programming culture shock quickly. It’s often as easy to write code and test its behavior as it is to check documentation.

Understanding Database Access

Another huge challenge of creating Windows-based applications is mastering typical Windows database access methods. These are the three most widely used ways to connect Windows applications to the AS/400:

• ODBC. For ad hoc query and reporting use, ODBC is a de facto standard. Unless you use ActiveX Data Objects, ODBC requires programming with a complex set of APIs; for the best performance, you should also use OS/400 stored procedures. ODBC drivers are very mature, and 25 major database platforms currently support ODBC databases access.

• OLE DB. OLE DB is the follow-on technology to ODBC. It uses an object-based programming interface (as opposed to ODBC’s API interface). OLE DB is quickly becoming the de facto standard for cross-platform database access. However, the quality of OLE DB access is directly proportional to the quality of the OLE DB database provider (OLE DB’s analog to an ODBC driver).

• Record-level access. Many Windows-based AS/400 application development environment eschew both ODBC and OLE DB for database access. These environments all use a variation of an AS/400-hosted server program tightly coupled to the Windows environment. With AVR, all of your RPG data access techniques (i.e., CHAIN, SETLL, READ, and UPDAT) work unchanged.

In addition to making AS/400 database access easy, AVR also makes cross- platform applications a snap. By deploying AVR's Acceler8DB (ADB) database on NT Server or local PCs, you can, at runtime, easily point your AVR application to any of the three supported database locations (AS/400, NT Server, and local PCs). This database support is identical across the three platforms. Through ADB's interactive user interface, you manage the databases independent of their platform locations. AVR's multiplatform support makes it easy to deploy NT Server or local PC versions of what would otherwise be typically considered an AS/400-only application. Many AVR customers use AVR to create NT Server-specific applications.

Using Components to Build Software

Most Windows development environments make extensive use of Windows ActiveX controls. ActiveX controls are components you drag and drop into your application and are most widely used to provide user interface widgets such as buttons or input fields. However, an ActiveX control occasionally doesn’t provide a user interface, as is the case with a timer control or custom control written to include business logic.

Green-screen programming has no direct analog to Windows component-based architecture. ILE service programs, with their inherent reusability, are perhaps the best RPG concept mappable to ActiveX controls. To create a display file in RPG, you must first handwrite the DDS and then handwrite the RPG code to fill the subfile. AVR and most other Windows programming environments use ActiveX controls to create user interface widgets. For example, AVR provides a subfile control that, using drag-and-drop capability, is placed on a form. There, you assign it properties (such as the column widths and number of rows) and add event-driven code to fill the subfile.

Most Windows development environments also allow you create ActiveX controls. Thus, you could use a tool such as AVR or Visual Basic to create a file-specific subfile

control for your customer master file. Once created, you could easily drop that file-specific subfile control into 10 different programs.

Another thing that ActiveX controls do for you is to enable specialized, sophisticated user interfaces. One programmer used third-party ActiveX controls to add mapping and geo coding to his AS/400 law enforcement dispatching application. Adding these mapping facilities to a green-screen application would be all but impossible.

Taking Your Applications to the Web

You don’t need to be told how important the Web is today. Virtually every organization wants some part of its business put on the Web in some fashion. Because of the popularity of the Web, almost every AS/400-Windows development tool offers some way of putting AS/400 data on the Web. AVR’s method is to support Microsoft’s Component Object Model (COM), the low-level interface through which Windows processes communicate. With AVR, you can use your RPG skills to create AVR COM objects that build superb interactive Web sites.

Build for Today, but Prepare for Tomorrow

As an RPG programmer looking to move beyond host-based RPG, remember to think long-term. It’s important to select a tool that helps you to create deliverables for your business quickly and to prepare you personally for the future. Although such features may seem way off to you now, you should factor in Web-based development capabilities, cross-platform database access, and tool extendability. Don’t waste your time with stopgap solutions; focus on those that can serve as long-term enterprise application development tools.

An old RPG dog can learn new tricks. It’s simply a matter of selecting new development tools that let you leverage your existing programming skills and are sophisticated enough to let you build next-generation applications.

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  • SB Profound WC 5536 Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application. You can find Part 1 here. In Part 2 of our free Node.js Webinar Series, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Brian will briefly discuss the different tools available, and demonstrate his preferred setup for Node development on IBM i or any platform. Attend this webinar to learn:

  • SB Profound WP 5539More than ever, there is a demand for IT to deliver innovation. Your IBM i has been an essential part of your business operations for years. However, your organization may struggle to maintain the current system and implement new projects. The thousands of customers we've worked with and surveyed state that expectations regarding the digital footprint and vision of the company are not aligned with the current IT environment.

  • SB HelpSystems ROBOT Generic IBM announced the E1080 servers using the latest Power10 processor in September 2021. The most powerful processor from IBM to date, Power10 is designed to handle the demands of doing business in today’s high-tech atmosphere, including running cloud applications, supporting big data, and managing AI workloads. But what does Power10 mean for your data center? In this recorded webinar, IBMers Dan Sundt and Dylan Boday join IBM Power Champion Tom Huntington for a discussion on why Power10 technology is the right strategic investment if you run IBM i, AIX, or Linux. In this action-packed hour, Tom will share trends from the IBM i and AIX user communities while Dan and Dylan dive into the tech specs for key hardware, including:

  • Magic MarkTRY the one package that solves all your document design and printing challenges on all your platforms. Produce bar code labels, electronic forms, ad hoc reports, and RFID tags – without programming! MarkMagic is the only document design and print solution that combines report writing, WYSIWYG label and forms design, and conditional printing in one integrated product. Make sure your data survives when catastrophe hits. Request your trial now!  Request Now.

  • SB HelpSystems ROBOT GenericForms of ransomware has been around for over 30 years, and with more and more organizations suffering attacks each year, it continues to endure. What has made ransomware such a durable threat and what is the best way to combat it? In order to prevent ransomware, organizations must first understand how it works.

  • SB HelpSystems ROBOT GenericIT security is a top priority for businesses around the world, but most IBM i pros don’t know where to begin—and most cybersecurity experts don’t know IBM i. In this session, Robin Tatam explores the business impact of lax IBM i security, the top vulnerabilities putting IBM i at risk, and the steps you can take to protect your organization. If you’re looking to avoid unexpected downtime or corrupted data, you don’t want to miss this session.

  • SB HelpSystems ROBOT GenericCan you trust all of your users all of the time? A typical end user receives 16 malicious emails each month, but only 17 percent of these phishing campaigns are reported to IT. Once an attack is underway, most organizations won’t discover the breach until six months later. A staggering amount of damage can occur in that time. Despite these risks, 93 percent of organizations are leaving their IBM i systems vulnerable to cybercrime. In this on-demand webinar, IBM i security experts Robin Tatam and Sandi Moore will reveal:

  • FORTRA Disaster protection is vital to every business. Yet, it often consists of patched together procedures that are prone to error. From automatic backups to data encryption to media management, Robot automates the routine (yet often complex) tasks of iSeries backup and recovery, saving you time and money and making the process safer and more reliable. Automate your backups with the Robot Backup and Recovery Solution. Key features include:

  • FORTRAManaging messages on your IBM i can be more than a full-time job if you have to do it manually. Messages need a response and resources must be monitored—often over multiple systems and across platforms. How can you be sure you won’t miss important system events? Automate your message center with the Robot Message Management Solution. Key features include:

  • FORTRAThe thought of printing, distributing, and storing iSeries reports manually may reduce you to tears. Paper and labor costs associated with report generation can spiral out of control. Mountains of paper threaten to swamp your files. Robot automates report bursting, distribution, bundling, and archiving, and offers secure, selective online report viewing. Manage your reports with the Robot Report Management Solution. Key features include:

  • FORTRAFor over 30 years, Robot has been a leader in systems management for IBM i. With batch job creation and scheduling at its core, the Robot Job Scheduling Solution reduces the opportunity for human error and helps you maintain service levels, automating even the biggest, most complex runbooks. Manage your job schedule with the Robot Job Scheduling Solution. Key features include:

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • LANSAWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed. Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

  • LANSASupply Chain is becoming increasingly complex and unpredictable. From raw materials for manufacturing to food supply chains, the journey from source to production to delivery to consumers is marred with inefficiencies, manual processes, shortages, recalls, counterfeits, and scandals. In this webinar, we discuss how:

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • Profound Logic Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application.

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: