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.
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 a 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.
blog posts. So 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: Valence Portal Tricks
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?
The Nitro Query app included with Valence is designed to quickly take large volumes of IBM i data and make it easily accessible to your users in the form of a dashboard or query. Management and company executives in particular love the intuitive nature of being able to click through charts, graphs or grids, and optionally download the data to Excel. And, of course, IT developers love the ease and speed in which these apps can be created for both desktop and mobile interfaces.
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.
By far the most popular UI component in the Valence modernization framework is the subfile-on-steroids known as the Ext JS grid. And for IBM i developers and super users alike, there is simply no faster way to roll out a web or mobile application exploiting this powerful functionality than through the grid widget in Valence's Nitro Query tool.
Sometimes the best way to get a business point across to someone, or get them to look at something at all, is to make it insanely easy for them to get where they need to go with a single click. The Valence 5 portal makes it possible to do this with just about any app or Nitro Query you've got set up. Simply construct a special URL and email it!
AutoCode apps generated with Valence 4.2 use Ext JS 4.2 -- the fact that these are the same version numbers iwherever possible it is recommended that you just regenerate the app using the new autocode that comes with valence 5. However, if you've made enhancements to AutoCode apps generated in Valence 4.2 then regeneration from scratch isn't a very viable option.