Programming RPG With Style
In this session, Paul discusses the what and why of standards and guidelines for modern RPG development. Topics include:-
• Make Use of the Tools
• RPG is FREE
• Modern RPG Programs and Subprocedures
• What's in a Name?
• Structuring Code
• Use Templates and Qualified Data Structures
• Qualify Wherever Possible
• Out With The Old
• Embedded SQL
• Global Definitions
• Parameters, Prototyping and Procedure Interfaces
• The Integrated Language Environment
• Roll Your Own
I Didn't Know You Could Do That Using SQL
You have started to master SQL but you have a sneaky suspicion that there might be more to it.
In this session you will learn valuable and time saving techniques with SQL that let you avoid writing code. You will learn how to use SQL Subquery or Subselect in an SQL SELECT, INSERT, UPDATE, DELETE or CREATE TABLE statement to reference multiple tables without having to do a join of the tables involved. You will see how to use CASE and UNION statements, Common Table Expressions (CTEs) and where to use Full Outer Join and Hidden Time Stamp columns.
This session is based on the SQL function available in V5R4, V6R1, and V7R1 of OS/400 or i5/OS, assumes you have a basic understanding of relational database concepts and SQL.
Modernization - What, Why, Where, When and How
The world of business applications has become a fast moving, ever changing environment. The web, mobile computing and the cloud have quickly followed the impact of graphical interfaces. Who knows what will be next on the list? The i community is facing an ever-changing environment and it must ensure that applications may be easily enhanced and maintained when dealing with these environments.
The need to modernize legacy applications is now an urgent requirement for most i shops.
Modernization means different things to different people. In this session, Paul discusses what modernization might mean for you and different approaches to modernization - regardless of whether you are a one person or one hundred person shop!
Topics covered include:-
• What is Modernization?
• Approaches to Modernization
• The Need for Modernization
◦ The Need for Database Modernization
◦ The Need for Interface Modernization
◦ The Need for Program Modernization
• The Benefits of Modernization
• Where are You Starting From?
• The Challenges
• Laying the Ground Rules
• What is a Modern Application?
• The Roadblocks
Development Strategies on Power
In this session, Paul Tuohy discusses the key factors in determining development strategies on Power systems.
The challenges facing companies, as they progress through different levels of modernization, are many. How does a company change from a traditional development and maintenance environment to a more robust, modern development environment? What is new, what is different, what are the major and minor obstacles.
Paul also discusses the challenges faced by developer and what makes a modern developer on Power systems.
Embedded SQL in RPG Programs
Many RPG programmers have used interactive SQL as a tool to quickly browse data or to create test data scenarios, but have stopped short of embedding it into their RPG programs. Come to this session to learn why, when and how you may want to use SQL in conjunction with RPG. We will cover the basics of embedding SQL into RPG, including using SQL cursors and a few tips on getting good performance from your SQL applications.
This session looks at:-
• Why use embedded SQL?
• Basic Syntax
• Using host variables
• Using a SELECT statement
• Using a Cursor
• Identifying and handling errors
• The power of INSERT, UPDATE and DELETE
• Compile options
• When and how to use dynamic SQL
• Using PREPARE and EXECUTE
• Performance tips
Prerequisite: This session assumes you are familiar with the basics of the SQL language, such as the SQL SELECT and UPDATE statements
Embedded SQL in RPG - Beyond the Basics
You have been using embedded SQL in RPG. You have mastered the syntax, tried a few selects, declared a cursor, performed an update - you may even have tried some dynamic SQL!
Time to take it to the next stage and see what you can do with embedded SQL - beyond the basics
Topics covered in this session include:-
• Discussion of the key points in writing powerful embedded SQL
• What tools should you use to write and test SQL prior to embedding it?
• Controlling CRTSQLRPGI
• SQLCA and SQLCODE considerations
• Getting data without SELECT - GET DIAGNOSTICS and VALUES INTO
• Mastering Multi Row Fetch
• Handling NULL
• Dates, Times and Timestamps
Prerequisite: This session assumes you are familiar with the topics covered in Embedded SQL - the Basics
Handling the Weird Stuff in RPG Programs
In this session, Paul offers a practical guide to handling some of the more esoteric problems in RPG programs (whether using native I/O and Embedded SQL) such as
• Messaging in a multi client environment
• Trigger Failures
• Constraint Violations
• Commitment Control
• And other bits and pieces...
Should You COMMIT?
Commitment control has always been available on the system but is very rarely used. But that doesn't mean that you shouldn't be using it.
Commitment control is an application decision as opposed to a programming decision. As companies look at modernizing their applications commitment control is a feature they should be considering.
This session looks at:-
• What is Commitment Control?
• When is Commitment Control useful?
• Requirements for Commitment Control.
• How to code and implement Commitment Control in RPG programs.
• How journaling is used for Commitment Control.
• Commitment Control and Activation Groups.
• Commitment Control and the world of SQL.
RPG Tricks and Techniques
This session covers tricks and techniques for the RPG IV programmer.
Come to this session and learn some of the things that you may not have known about
• The H Spec
• Compiler Directives
• The D Spec
• Sorting Arrays
• Using dynamic memory allocation
• Using integers
• Using indicators
• Record Locking techniques
• Other bits and pieces
Getting to Grips with Pointers and User Spaces in RPG IV
What are pointers? What are User Spaces? What can you do with them? This session guides the programmer through the implementation of pointers in RPG IV, how they extend the capabilities of the language, their importance in an ILE environment and how they are used with APIs - especially those dealing with User Spaces!
By the end of this session, attendees will be able to:
• Understand the benefits of pointers and the benefits of User Spaces in RPG IV
• Understand how to implement and use pointers and User Spaces in RPG IV
Modern Approach to Exception/Error Handling
Learn all about the various options for error handling in RPG IV.
This session explains:
• What is Exception Error Handling
• Trapping operation errors
• Monitor Groups
• Program and File Information Data Structures
• ILE Error Handling Options
Triggers and Referential Integrity
This session discusses, in detail, two of the more powerful features of DB2 for i - Triggers and Referential Integrity. Both provide powerful means of implementing business rules and data integrity and are a requirement for any web enabled or client server development.
Getting Started with RSE
Have you seen that message that asks you if you have tried the modern alternative to PDM? Then it's time to have a look at using RSE - the Remote Systems Explorer, which is part of RDi and WDSC? This session will provide you with the first steps you should take in making the transition from SEU and PDM for RPG development to this modern productive toolset.
The session demonstrates both the basic features of RSE as well as the really cool features that will make you a more productive programmer.
It's time to start making headway into that application backlog!
Considerations for a Successful ILE Implementation
Although it is very rare that the implementation of any two ILE projects are exactly the same, there are a lot of ground rules that are required in all implementations.
This session discusses some of the considerations for a successful ILE implementation including how to control and manage the development environment, development tools to use, design considerations (Activation Groups, Binding Directories, using Service Programs) and documenting procedures.
Prerequisite: Attendees must have a basic understanding of the components of ILE.
Externalizing Database Processing in RPG IV
One of the major considerations for the ongoing modernization of applications is how to make functionality accessible to multiple interfaces. But no matter how the application interfaces may change (green screen, web, client server, mobile phones etc.) or how data may arrive on the system (FTP, EDI, XML etc.) you can be sure that all of the data is going to end up in a database.
Externalized database processing provides a means of encapsulating database access. This session discusses why you may want to externalize database processing in RPG IV and how to do it.
Getting Started With APIs
System APIs can be challenging and, at some stage, nearly every programmer is confronted with using them. But once you get to grips with interpreting the documentation, you will find that the system APIs offer a host of opportunities
This session explains how to get to grips with System APIs and expand the possibilities of what the system has to offer your applications.
• Finding APIs
• Type of API
• Documentation of an API
• Prototyping and Using a simple API
• Pointers and User Spaces
• List APIs
• The UNIX Type APIs
RPG on the Move: Mobilize Your i
Choices and challenges in the world of mobile applications
Mobile applications are the hot topic of the day and your old RPG green-screen skills and tools are just not going to make the grade.
In this session Paul discusses some of the factors you have to consider when embarking on the development of your first mobile applications.
Topics to be covered include:
• Design considerations for mobile - from F-keys to touch sensitivity
• Platform options - iPad? iPhone? Android? Blackberry? Tablets?
• Local processing or server/browser based?
• Can you do it with RPG? And what are your other language choices
Introduction to AJAX for RPG Programmers
AJAX provides a means of having a web page communicate with a server, either synchronously or asynchronously. Combined with CGI programming techniques (CGIDEV2 is used in the presentation), you now have a means of dealing interactively with a web page i.e. changing the contents of a web page without having to re-write the whole page.
And best of all, it is already installed on every PC, all you have to do is use it!.
In this session you will learn:-
• The background to AJAX
• How it works
• Examples of how to use it
An RPGer's Adventures in Webland
At System i Developer we like to practice what we preach. The company web site is designed for and is served from a System i. An application is used to manage conference information which, in turn, is used to generate web pages. There are also interactive web pages that communicate directly with RPG programs (e.g. selecting your session grid and repeat sessions).
This session shows you how the web site was built and how the following items played a key part in the development of the web site:
• Design Decisions
• Tools Used - WDSC, Navigator
• Creating the Database using DDL (SQL)
• Externalizing the Database
• The public and the private web sites
• Maintaining information (using CGIDEV2)
• Making use of PHP
• Generating Static Web Pages
• Using and tuning embedded SQL
• Using AJAX
Introduction to SQL
SQL is a data language that may be used to create, control, access, and manipulate OS/400 databases. The data language is both simple to use and extremely powerful. Since it is the standard cross-platform language for accessing relational databases, it serves as a foundation for nearly all cross-platform and inter-language database access technologies, such as ODBC and JDBC. If you have been wondering what this language is like and what it can do, this session is for you.