November 1, 2017
- LEAD ARTICLE: Practical RPG: APIs, Part 2 - Changing Objects Using the QLICOBJD API
- FEATURED ARTICLE: RPG Academy: Debug Done Right - Working with Watch Conditions
- FEATURED ARTICLE: How MVC Can Simplify and Modernize Your IBM i Applications
- NEWS HIGHLIGHT: IBM Board Approves Quarterly Cash Dividend; Authorizes $3 Billion For Stock Repurchase
- WEBCAST: IBM i Resources Retiring?
- FEATURED VIDEO: Design an Invoice in 10 Minutes
- EVENT: NGS-IQ - Advanced Functionality for Every Twist and Turn Your Queries Need to Take
- MC PRESS MAGAZINE: A Small Intro to Big Data, Part 3: HFDS and the MapReduce Algorithm
APIs are one of the most powerful tools provided by the IBM i; here is a practical example of using one.
By Joe Pluta
In my previous article, I explained the basics of error reporting when calling APIs. This next installment brings those basics into focus with a real-world illustration that you can experiment with on your own and also use as a practical addition to your development environment.
Knowing your way around a debug source and knowing how to set and remove breakpoints is very important, but sometimes you need more than that. That’s where watch conditions come into play.
By Rafael Victória-Pereira
You use a watch condition to monitor whether the current value of an expression or a variable changes while your program runs. Setting watch conditions is similar to setting conditional breakpoints, with one important difference: Watch conditions stop the execution of the program as soon as the value of a watched expression or variable changes from its current value, regardless of the place in the code where that change occurs. Conditional breakpoints, on the other hand, stop the program only if the variable has the value specified in the breakpoint condition when the execution reaches the line where the breakpoint was set. In other words, a watch condition monitors the value of the variable globally, while the breakpoint simply checks whether a certain condition is met before the execution of a given line of code.
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:
- Why IBM i skills depletion is a top concern
- How leading organizations are coping
- Where automation will make the biggest impact
Download your copy today!
The annual Profound Logic ‘State of IBM i Modernization Survey” takes a look at the trends and attitudes that shape the IBM i modernization market. We reached out to the IBM i community, and the response was outstanding: close to 800 people, nearly 300 more than last year, took the survey. This enthusiasm resulted in very interesting findings for how businesses plan to use and modernize the platform in the coming year.
As you read through each section of the survey, you will see our summary of the results and suggestions for the future. We hope the survey will help your business better understand what is possible for your IBM i platform in the coming year.
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.
Part 1 will teach you what Node.js is, why it's a great option for IBM i shops, and how to take advantage of the ecosystem surrounding Node.
In addition to background information, our Director of Product Development Scott Klement will demonstrate applications that take advantage of the Node Package Manager (npm).
Can 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 month 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:
- How phishing attacks are becoming more sophisticated
- Three little-known ways malicious programs can reach your IFS
- Why the IFS is IBM i’s “Typhoid Mary”
You’ll also learn why some of the most common malware solutions still leave IBM i systems vulnerable—and what you can do to protect your organization.
The 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:
- Automated report distribution
- View online without delay
- Browser interface to make notes
- Custom retention capabilities
- Seamless product integration
Rerun another report? Never again. Try the Robot Report Management Solution FREE for 30 days.
TRY 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.
Want to make your big ol’ RPG programs more modular and easier to maintain? Then give the MVC design pattern a try.
by David Shirey
Editor’s note: This article is excerpted from chapter 24 of 21st Century RPG: /Free, ILE, and MVC.
Model-View-Controller (MVC) is a design pattern. Unlike many of the design patterns that have been defined, it is not uniquely oriented to object-oriented (OO) programming, but can easily be used with procedural languages as well.