DB2 for i › Introducing DB2 Web Query DataMigrator!

February 27th, 2015 Comments off
IBM has announced a new product offering in the DB2 Web Query family portfolio.

DB2 Web Query DataMigrator ETL Extension (i.e. DataMigrator) provides extract, transformation, and load (ETL) capabilities integrated with DB2 Web Query and DB2 for i.

Users looking to isolate their query workloads from production environments, or needing to automate the consolidation of data from a variety of data sources will be interested in this solution.

DataMigrator allows you to automate the process of extracting data from any DB2 Web Query supported source database, the process of transforming or cleansing the data and loading the data into an optimized DB2 for i reporting repository. Depending on the design and use of that repository, the industry refers to this as an operational data store, data mart, or data warehouse.

While leveraging the same graphical look and feel of DB2 Web Query, there are also integration points with DB2 Web Query. For instance, synchronize meta data defined either in DataMigrator or DB2 Web Query.

For more information, refer to the following documents:

IBM US Announcement

IBM Europe, Middle East, and Africa Announcement

Frequently Asked Question document

If you need assistance with architecture, design or implementation of your analytics environment running in IBM i, please reach out - we are here to make you successful!

Read the original at DB2 for i.

Categories: Blogs Tags:

RPGPGM.COM - From AS400 to IBM i › Changing Case using SQL

February 25th, 2015 Comments off
select upper and lower case conversion translation

Last week I discussed how to change the case of alphabetic characters using the new %UPPER and %LOWER BIFs, built in functions, added to CL in IBM i 7.2, you can read it here. I mentioned the limitations of using the %XLATE BIF in RPG to accomplish the same. But there is an easier way using embedded SQL in the RPG to emulate the functionality of CL's %UPPER and %LOWER do.

RPG's %XLATE requires that you need to give all of the characters that should be replaced with what you need them to be replaced by. This is useful for so many situations. But when converting case most programs I have seen many that just have the following:

Read more »

Read the original at RPGPGM.COM - From AS400 to IBM i.

Categories: Blogs Tags: ,

Alan Seiden Consulting: PHP and IBM i Expertise › Video promo for WMCPA IBM i conference: March 10-12, 2015

February 22nd, 2015 Comments off

Join me and 20 other speakers at the Wisconsin Midrange Computer Professional Association (WMCPA) spring technical conference, March 10-12, 2015, at the Lake Lawn Resort on the shores on Delavan Lake.

Speakers: Aaron Bartell, Rob Bestgen, Larry Bolhuis, Tom Cremieux, Floyd Del Muro, Raymond Everhart, Margaret Fenlon, Susan Gantner, Charles Guarino, Scott Klement, Chris Koppe, Jon Paris, Mike Pavlak, Jim Ritchhart, Debbie Saugen, Alan Seiden, Dr. Frank Soltis, Robert Swanson, Robin Tatam, Jeff Tickner, Steve Will

Details: http://wmcpa.org/index.php/conference-2015/ibmi-conference-2015

Read the original at Alan Seiden Consulting: PHP and IBM i Expertise.

RPGPGM.COM - From AS400 to IBM i › IBM i facts to surprise you CIO

February 19th, 2015 Comments off

There are times I come across an article on another website I think is worth sharing with you. Alex Woodie's "Five IBM i facts that will surprise your CIO" is one.

Trying to keep the IBM i relevant in your organization? It probably seems like an uphill battle at times, especially if you have a CIO who knows next to nothing about the platform. Here are five fun facts that may help save the platform at your organization, or at least get the CIO to give it a second look before he kicks it to the curb.

You can read it here, and feel free to share it with the "AS400 is dead" naysayers.

Read the original at RPGPGM.COM - From AS400 to IBM i.

Categories: Blogs Tags:

Pete's Wordshop › The great open source mashup on IBM i

February 18th, 2015 Comments off

To the outside world and perhaps 80% of the established IBM i community running open source applications on the IBM i operating system is irrelevant.  This is a crime of monumental proportions in that folks are standing up *NIX and Windows servers while they let their IBM i’s languish with “legacy” applications.  How sad for them. They are missing out on the benefits of leveraging those legacy apps with ‘state of the art’ open source frameworks that could make their shops more productive, scalable and secure.

Node is getting the latest buzz on the web and in the small but active open source community on IBM i.  I gotta admit that getting that first node app up was my goal (be first!) when it was first announced but my younger alter-ego, Aaron Bartell beat me to it (as usual).  But getting node.js stood up as a server is only the first step.  Getting a “hello world” app working is perhaps the second but the real fun is taking a few existing technologies and putting together a mashup that leverages old with new.  You IBM i folks have a boatload of RPG apps, how the heck would you hook them up with node.js?

socket.io and express.js being TCP/HTTP friendly make that a good place to start!  The IBM i is a rock solid HTTP server platform.  There are plenty of open source technologies that leverage HTTP on IBM i so using HTTP is a logical place to start.  How could we link things up so that node.js serves up apps that can communicate with and use other HTTP technologies?  Well, I threw together an RPG app that uses an HTTP POST to post data to the chat application example.  Check out a quick and dirty example I put together on my Github repo here. It isn’t as robust as I want it to be but I am just getting started here (and wanted to do more than just ‘Hello World’!)

Just think of the possibilities!  HTTP is the perfect way to mash up all things IBM i.  More to come!

Read the original at Pete's Wordshop.

RPGPGM.COM - From AS400 to IBM i › CL Built in Functions to Change Case

February 18th, 2015 Comments off
built in function to change upper to lower case %bif

IBM i 7.2 brought us two new CL built in functions (BIFs), %UPPER and %LOWER, that are used translate the contents of a variable or string to upper or lower case. I have always used the RPG BIF %XLATE to achieve the same result, I just wish IBM had added the same BIFs to RPG.

The syntax for both of these CL BIFs is similar to each other with just two parameters:

  1. Variable or string to convert - mandatory
  2. CCSID - optional

For example:

Read more »

Read the original at RPGPGM.COM - From AS400 to IBM i.

Categories: Blogs Tags: ,

RPG and Programming › Over my head

February 15th, 2015 Comments off

It has been a long time since my last post. My blog has obviously not been the biggest blip on my radar, but things keep happening, and I say, “I ought to write about that.” So here goes:

The biggest thing was my attempt to write a system to handle financial transactions using sockets over the Internet. RPG was not the language finally chosen; you can do sockets programming in RPG, but much of the problem involved continuing to handle processing while we did nightly batch processing and system saves.

The language I finally chose was Object Pascal. Not a bad choice, but it finally became apparent that I was much too used to doing file processing in RPG; sometimes you have to jump through hoops in other languages that you take for granted in RPG.

The project itself contains extremely intricate data processing. After a while (over a year) of hammering at it, and having a few minor successes and many major roadblocks, I finally threw in the towel. I suggested using ASNA’s visual RPG, but it seems that the process is being passed off to another programmer more familiar with network programming. I continue to believe that the process could done more cleanly by buying a package, but for some reason there is an aversion at our company to that - they prefer home-grown. At any rate, I am glad it is out of my hands. I never felt more inadequate as a programmer than when I was trying to make this process work. I was willing to keep on trying, but I would not have been able to make any promise as to when it would be done.

As always, I promise to try to write more. Hopefully, this will break the ice.

Read the original at RPG and Programming.

Categories: Blogs Tags: ,

RPGPGM.COM - From AS400 to IBM i › Reading a SQL table in SQL

February 11th, 2015 Comments off
sql fetch update insert to red update write to sql table

In a previous post I explained how to handle a SQL table using RPG operation codes to perform the file access. The post was just to illustrate that it was possible. I received messages expressing surprise that I had chosen to use RPG and not SQL. I think those who sent me those messages missed the point of the post. Anyway in this post I am going to show the same example, but using SQL for accessing the SQL table.

If I was doing this myself I would probably replace the entire DO loop in the RPG program with the following SQL statement:

Read more »

Read the original at RPGPGM.COM - From AS400 to IBM i.

Categories: Blogs Tags: ,

Alan Seiden Consulting: PHP and IBM i Expertise › Overcome 8-character user profile limit in SSH for IBM i

February 6th, 2015 Comments off

By default, user profiles longer than eight (8) characters cannot connect to IBM i via Secure Shell (SSH). This limitation affects tools such as Zend Studio, which will show a message similar to “Failed to connect sshd on “<some ip address>.” Beginning with IBM i release 6.1, however, IBM provided a means of removing this limitation, so that user profiles longer than 8 characters could connect. Releases 6.1 and 7.1 require a PTF and a configuration change; release 7.2 and higher require only the configuration change.

For details, see  Zend Support specialist Rod Flohr’s article about how to remove the 8-character limit on user profiles when connecting via SSH.

Read the original at Alan Seiden Consulting: PHP and IBM i Expertise.

Categories: Blogs Tags: , , , ,

Pete's Wordshop › Stumbling startup with node.js on IBM i

February 5th, 2015 Comments off

My 7.2 upgrade was done specifically to get going with an “officially” supported version of node.js.  Installing 5733OPS is a no brainer (either RSTLICPGM or just using the option to install a licensed program in the LICPGM menu will work).  Node worked great.  Already creating much mayhem with socket.io, express.js, and a bunch of other stuff I will eventually break.  The problem I had is that I could only do this stuff when I was in the Node/bin folder.  Otherwise I would see:

node -v
exec(): 0509-036 Cannot load program node because of the following errors:
0509-150   Dependent module libstdc++.a(libstdc++.so.6) could not be loaded.
0509-022 Cannot load module libstdc++.a(libstdc++.so.6).
0509-026 System error: A file or directory in the path name does not exist.

What?   I am only a noob when it comes to *NIX environments and I know there are a bunch of moving parts that need to be correctly aligned.  I thought my PATH was the only thing I needed to look at but I was missing something essential: The LIBPATH environment variable.  Many executables share functionality so the “helper” objects need to be in the PATH as well so they can be found (like service programs or DLL’s) so the LIBPATH needs to be set as well.  My “Brogrammer” in the Open Source space, Aaron Bartell, turned me on to that fact and he proposes a couple of solutions.  You could just manually set the PATH and LIBPATH:

[Depending on the shell you use you can either do it in one step like this]

export PATH=/QOpenSys/QIBM/ProdData/Node/bin:$PATH
export LIBPATH=/QOpenSys/QIBM/ProdData/Node/bin:$LIBPATH

[or your shell may require that you do it in two steps like this]

export PATH
export LIBPATH

Or you could create a script and just run it when needed.  Here are some screen shots that show the problem and solutions:


So the problem occurs in #1 above even though I have the node/bin folder on my path (#2).  If I check the LIBPATH environment variable, it is empty so I append the path to the shared library to the LIBPATH (which just happens to be the same as the node/bin folder).  Adding the path and exporting it makes it available to my environment so now when I run node – v I get the version listed rather than an error.  Nice!  Aaron pointed me here to find this info and recommended that I post questions here so that others might benefit.  Agreed!  But I’ll probably also post here since I tend to forget where I posted solutions to my issues.

The script to do this is simple as well.  You should have a folder in your IBM i “home” folder under your IBM i user name.  Mine would be /home/PETE/  You could either use this command on IBM i:

EDTF ‘node_env.sh’   (you can call the script whatever you want) :


If you want to up your *NIX geek cred, you could use vi in SSH (or call qp2term):

vi /home/PETE/node_env.sh


However you get there!  Then when you are in the console you can just execute the script:


So, all is well.  Just remember to execute the node_env.sh script, OR, if you are going to launch a node server instance using CL, I usually create a script and then just execute the script in the CL program so you don’t have to have multiple entries to set the environment.  Just do your heavy lifting in the script, let your CL do the easy part.

So, that’s it!  There is probably more detail here than most folks need but for folks who are new to open source on IBM i, a little extra instruction can fill in a lot of blanks.


Read the original at Pete's Wordshop.