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.
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.
One of the most powerful widgets available in Nitro Query is the Edit Grid. Traditionally queries are read-only, but with an Edit Grid you can actually allow users to update records in a single-file data source — right from within the query itself! In some cases you may find you can simply create a query for data entry in lieu of coding an actual app, saving yourself a ton of time and effort.
One common trait we see at companies small and large is that users have a seemingly insatiable appetite for queries, dashboards and Excel downloads. Fortunately, the Nitro Query app included with Valence provides a great mechanism for quickly whipping out these kinds of apps without any programming.
CNX Announces General Release of Valence 5
When working with dates on IBM i you will often need to deal with null date values of 0001-01-01. Depending on the display format you’ve chosen, in a Valence UI designed with Ext JS a null date field will be rendered like this: When the user clicks on the date selector trigger here, a calendar pops up based on the year and month specified in the field.