With the advent of low-cost "Smart TV" units — flat screen monitors with integrated web browsing capability — it's easier than ever (and cheaper) to adorn your company's front lobby, cafeteria, shop floor or other high-traffic areas with automatically-updating displays that depict important business metrics in real time. Using these TVs, or even "dumb" monitors attached to low-end PCs, key stats like sales numbers, inventory levels, picking performance, etc. can be shown to employees and guests without the old-school hassle of printing and replacing paper displays.
Recently I've had some fascinating conversations with people regarding Nitro App Builder, the low-code app builder included with Valence. In case you've never heard of it before, Nitro App Builder is a tool that's quickly taking over as the development method of choice for many apps that would have been coded manually in Valence just a year or two ago. It creates really useful apps by configuring them interactively, with little or no programming required.
With IBM i turning 30 I thought it would be fun to recap the evolution of this amazing operating system over the years from my perspective. The first system I ever worked on was a model B50 way back in 1991, and of course it was called AS/400 at the time. I thought the machine was pure magic with its tan towers and reel-to-reel tape drive (some of you may have to look that up).
Twenty-two years ago today we officially registered CNX as an Illinois corporation (wow, that's a shocking thing for us to write), so we thought it might be fun to take a short trip down memory lane on this blog post. So much has transpired in those years that we could write a book, so we will necessarily need to keep it brief here — perhaps one of us will write that book later!
Anyway here it goes:
Your IBM i HTTP Server powered by Apache is a powerful web-serving system akin to a bank staffed with multiple fast-working tellers. The AJAX requests coming in from your front-end apps are like customers entering the bank to perform transactions. Each "customer" queues up in an orderly line on a first-in/first-out basis, and is serviced by the next available "teller" as soon as they're finished dealing with the prior customer.
Nitro Query apps containing charts or graphs can make conveying your company's business trends or performance metrics much more effective than showing raw numbers alone. It's particularly common (and easy) to create a dashboard app that includes a grid of monthly sales details supplemented by a chart showing month-to-month performance. This adds some great context to the lists of numbers.
Just about every business has a situation where users need to perform a single process against multiple items in one pass. For example, you might have a list of open invoices that you'd like to flag as ready for payment, or a group of inventory items that you would like to transfer out of a special holding area. Rather than making your users do individual transactions for each invoice that needs to be paid, or each product that needs to be moved, you could significantly speed up the operation by providing your users a list of selectable records and an action button.
Older Valence file maintenance apps created through Nitro AutoCode can sometimes exhibit a display problem upon migration to Valence 5.1. This can also be true for AutoCode-based file maintenance apps created in 5.1 builds prior to 5.1.20171202.0. The most common symptom is that a portion of the edit/add window displays outside of the portal boundary, as shown here.
Wrapping up 2017 with a simple but powerful tip for Nitro Query grid apps... Very often lists of business data include columns that can be classified as boolean, with text representing values of yes/no, true/false, 1/0, etc. When you're creating a Nitro Query grid app that includes such columns, you can make "truthy" values stand out much more clearly by replacing the column text with a visual checkmark.
Power Servers running IBM i are remarkably stable systems, to such a degree that it's easy to overlook those rare occasions when something on the system has gone awry and requires operator attention. When an exception does occur, many IBM i sites have third party monitoring tools or home-grown software in place to notify system administrators that an issue has occurred that may require some kind of action.
Whether you're a seasoned SQL pro or just learning the ropes of SQL syntax on IBM i, the SQL parser built into Nitro Query App Builder is an invaluable tool you can leverage to quickly generate a web-based report for your users, or even a file maintenance application containing multiple joined files. SQL-based data sources were introduced in Valence 5.1 back in May 2017, and the feature was formally removed from Beta status this month.
The tried and true IBM i Query Utility (as accessed via STRQRY or WRKQRY) is mainstay in many IBM i shops. But it goes without saying that the user interface associated with the configuration and the output of an IBM i Query leaves a bit to be desired. This is particularly true when users must navigate through the query's definition to change selection or sort criteria.
As we prepare for next month's release of Valence 5.1, we thought it'd be both interesting and useful to summarize some of the blog post contents in a single, categorized list. From customizing the look and feel of the Valence Portal to tips on back-end and front-end development, there's likely to be at least one or two blog posts to pique your interest. Without further ado, here's a categorized breakdown of the more useful blog posts from the past few years:
With every user action in the browser that results in a call to a Valence instance running on your IBM i Power Server, a wealth of data about the user's session is sent to the integrated Apache Server. This information can be accessed by your back-end RPG programs to potentially alter how they respond to the front-end. Want to know what URL is on the user's browser page? Or what type of browser is being used?
In a typical Valence app you have a myriad of front-end UI logic working in tandem with back-end RPG programs that process AJAX calls and perform functions to retrieve or update IBM i data. Whenever something goes wrong on the front-end, you can typically zero in on the issue by peering into the browser's console.