Thursday, October 27, 2011

Getting on the road to South Florida

The next three days are going to challenging and fun. I get to work with my close friend Jason Vickery to install and migrate from a Power 5 to Power 7 machine. While we video hangout on Google Plus every day it will be good to get out of the home office for a while and see everyone at NanjingUSA. And best of all I get paid for this!

Have a great weekend everyone!

~Richard

Saturday, October 22, 2011

Challenging past couple days with EDI order processing


While working on planning for next weeks install of a new Power 7 an issue with automated order creation from inbound EDI data popped up.

I was informed that about three months ago Sears order processing started taking up to six hours to complete. This is unusual since we process thousands of Wal-mart orders a day with no visible issues. One difference with Sears verses other EDI partners is that the BEG segment of the EDI order Sears contains two different PO numbers. The first five digits are the only difference between the PO numbers, one for the store and one for the DC. This is how Sears avoids having to use SDQ segments in the EDI detail to determine the mark for store.

The programs are coded to use the DC PO number as key to the detail from the header. In this case we end up with many orders with the same PO (ship and bill DC). Without going into a lot of detail the programs were growing the detail file exponentially incorrectly. One order with nine lines was creating 999 detail lines. There are several programs that massage the same file so in the end a batch detail file that originally and should contain 3000 records grew to hundred of thousands detail records. All this code was originally put in to handle Wal-Mart type 73 SDQ orders, ship to mark for. So what is working well for Wal-mart is not working for Sears. This programming is supposed to be generic.

It is so frustrating to see how a EDI translator packages are not used to there full capabilities. In my last position I saw the same thing happen. EDI translators are just that, translators. Many people don not take the time to fully under stand the translator capabilities. So what happens is data is translated into work files and then many programs are developed to convert the trading partner data to local values before creating orders. This can be extremely difficult to manage when you have many trading partners as you have to keep changing your order processing code for every little change a trading partner makes.

The right way is to use the translation map for each trading partner to handle all the conversions such as customer numbers, item numbers, pricing, ship to locations. This way you only have to work with a particular trading partner map to change processing without affecting all you’re trading partners. Once the order creation program is written you should not be changing unless you really need to. At Pylon I did just that, once created I never had to change the main order processing program and did not have any post translation programs. There are instances where you may have post processing and SDQ is one of them and is acceptable. This is where EDI translators like Extol really shine.    

After spending several hours digging in to the ten different post processing programs I found where the problem is. I was able to use the document number instead of the PO number to link the header and detail. After a few hours of testing the change with all the trading partners I was able to reduce the six hour processing time to one hour. During the analysis I determined that three other programs have the same problem, just not as bad. I believe I can cut the processing time down to 20 minutes by redoing the entire process. It was determined to put it aside for now and focus on the upgrade next week. After the upgrade we will come back and revisit the entire process.

I love being on the hunt and solving problems. It is tremendously satisfying to be able to have such an effect like saving five hours of processing. And best of all they pay me for this!

~Richard

Tuesday, October 18, 2011

Tape drive rent and install...


To complete the migration from IBM Power5 9405-520 running I5 V5R4 OS to IBM Power7 8202-E4B (720) running I5 V6R1 requires that I temporarily install a tape controller on the old 520. It made no sense to purchase a compatible tape drive for the new 720 since the 520 has a ¼” tape drive and LTO technology is far superior in capacity and speed.

To complete the migration we decided to rent a 5702 PCI Tape controller card and a LTO-2 tape drive rather than buy. Over time I have installed hard drives, memory and battery caches but I have never had the opportunity to install a tape controller card.

To install a 5702 PCI Tape Controller IOA you need to have available or install a 2844 PCI IOP. In my case I do not have a 2844 available so I will have to install that as well. To make things easier the 520 has slots C1, C2 and C3 available. From the IBM documentation I was able to determine that the 2844 goes into C1 and the 5702 will go into C2.

I will be doing the install following the IBM documentation and do not expect any problems.

This is going to be a good refresher for me. I am a little confused over how the IBM documentation designates the 9405 and a POWER5 and POWER6. If anyone has an answer for this anomaly I would like to hear it.

~Richard


Monday, October 17, 2011

MS Outlook Transition to Gmail...


Due to reformatting and upgrading of PC's I ran out of valid license keys for MS Office 2010 which became the driving force to switch everything over to Google. Since leaving my last job and losing access to an Exchange server, I have been slowly migrating all my Office activities to Google Docs and Gmail. After 20 years of learning, working and migrating from version to version with MS Office the culture shock is daunting.

Everyone hates change and even though I am always involved in change one way or another, I am no exception. I guess it’s easier on me since I am usually preparing change for someone else. It just takes a little patience and time.

So far everything I can do with MS Outlook I can do with Gmail. Cross referencing the terminology is the killer part. Folders in Outlook are Collections in Gmail and the All Mail collection is really an archive of already read mail.

In Outlook I keep my inbox as a working folder and when finished with an E-mail message I would move to an All Ready Read folder. I did this by creating the folder and a rule in Outlook.

In Gmail an Archive button exists so if a message did not fit specifically into a Collection I created I can select the Archive button. I also created several rules to direct mail to specific Collections such as my Bellsouth E-mail. Since it did not make any sense to check two E-mail boxes I configured my Bellsouth / AT&T mail to forward to my Gmail.

Another cool feature is chat integrated into Gmail and being able to open browser windows and slide them among any of my three monitors which is really productive. Also, now that Gmail has offline capability everything that exists in Outlook I have in Gmail. I can access Gmail and Docs from any of my six devices with no problem.

I did not go into detail about Goggle Docs but it is worth mentioning that there is offline capabilities. I'm still learning the little nuances.
So I am officially no longer using Office or Outlook. The time is coming when we can close the book on Microsoft.

I wonder how long it will take before Microsoft OS is just a footnote in history. Anybody remember Netscape?

~Richard

Thursday, October 13, 2011

Word Clouds

While listening to a video by Greig Wells of BeFoundjobs.com on job searching techniques I picked up on word clouds as a way to see how your resume matches up to job postings. I used the free tool at http://www.wordle.net/  to generate a cloud based on my resume. Really cool and artistic, do think I might have some AS/400 experience? Now I am wondering if I should be documenting AS/400 as iSeries. What do you think?

   

Tuesday, October 11, 2011

Never say never....


Yesterday I received a E-mail from one of my clients asking me to look into an invoicing problem. I have worked for this client  for over 18 years and they are using VAI S2K ERP on an iSeries model 520.

The problem is a discount amount of $100000.00 printing on the invoice when there is no discount. The user reported that the amounts in the invoice and history files are correct and the problem is only with printing.

VAI invoicing routines recalculate the amount when printing invoices. The print program is COFOBL and over the years, at the customers request, I have changed the layout of the invoice twice. I am familiar with this program due to most customers wanting to customize the default invoice layout.

The invoice was last changed in 2004. During the redesign process it was determined there was not enough room on the invoice to have the quantity, part number, description list/unit price and net extended on the same line. We discussed changing the font size and/or multiple lines for the 30 position description. We looked at the unit price and extended price it was decided that we would never have a unit or extended price greater than $99,999.99. At the customers request I modified the two price fields from 9 positions 2 decimal places to 7 positions 2 decimal places.

And so, 7 years later, the customer decides to sell off some excess inventory which was added to the invoice as a single MISC line item at a unit price of $187,000.00. The program multiplies the quantity by the unit price with half adjust. The amount printed is $87,000.00 and during final calculations is subtracted from the invoice total to come up with the discount amount of $100,000.00.

The customer has extensive modifications to the discounting process and when first put in place 18 years ago I was just learning programming. The initial modifications were done by another programmer and for the most part works fine.  

With some discussion the customer decided it is not a big enough issue to find the 4 additional positions needed to correct the invoice print lines. They just wanted to know why it happened. The work around solution is to have two lines of $93500.00 each.

Bottom line is never say never because it will always happen sooner or later.

~Richard  

Nothing is impossible, anything can happen, as in Mary said Tom would never call her again, but I told her, "Never say never." This expression was first recorded in Charles Dickens's Pickwick Papers (1837).

Monday, October 10, 2011

PC's, oh what fun....

All the upgrade planning for NanjingUSA to a 8202-E4B (IBM Power 720 Express)  is done and have a scheduled arrival date of 10/14/2011.

Since I have a couple of weeks before install / upgrade (10/28/2011) I decided to drink the cool aid and nuke the Motion Computing LE1600 tablet. The tablet is six years old and I retired it two years ago when I won a ASUS PC1000 net book online.

The LE1600 was really running slow and I knew I needed to refresh Windows XP but was never really motivated. I located the box with software LE1600 came with and found they were still shrink wrapped. I dug up the external DVD drive and proceeded to load the Motion rescue CD. I forgot just one thing, I have a Bluetooth keyboard for the tablet but it is not usable until after I reload the OS and drivers. No problem, right? Wrong, the keyboard for my desktop is PS2, can you believe that? I guess over the years with laptop's and net books I never upgraded the HP desktop. Nanjing gave me a Core2 but no keyboard.

How unfortunate, I now have to go to Best Buy and get a keyboard, such a burden. :)  Since I am driven not to buy just one item in my favorite store, I shall also buy a copy of Windows 7 Upgrade for the Core2 Desktop.

With all the tools now acquired I proceeded with refreshing the LE1600. I deleted the partition and created a new one. Formatted the 60GB drive and let the software do the rest. The process may be time consuming but totally painless. I was not worried about losing any data since I had migrated all to the HP desktop a couple of years ago. I manually installed the Bluetooth drivers but everything else just loaded fine. All the drivers and software is available on Motion Computing's website. I loaded up Chrome and the Logitec notebook webcam and now I have an extra web cam enabled device.

Now I will be able to Hangout with myself on Google Plus! It is really weird to have the two web cams going, one on each side. I move my head to the right and the other goes left. Yes, I am a little over the edge on this one but it's fun.

Now on to my second challenge, upgrade Windows XP to Windows 7. Since there is no upgrade path I will have to blow away XP and do a custom install of 7. I down loaded the Microsoft Windows 7 Upgrade Advisor which informed me that everything will upgrade except for the Web Cam and IBM Access 5.4. The advisor provided me a link for the Web Cam software and iSeries Access will have to wait until tomorrow. Jason received the first box from IBM last Friday with the iSeries Access 6.1 software.

The upgrade was the easiest I have ever done. One of the driving reasons to upgrade was to be able to install a third monitor, Dell 15" LCD to go with my dual 19" Samsung SyncMasters. When NanjingUSA sent me the Core2 it came with on board video only. My old HP has a dual monitor card that I acquired 6 years ago and designed for a AGP slot. The Core2 does not have any AGP slots but does have PCIe slots a x1 and x16. I have been so busy with AS/400 and business operations that I missed when PCIe slots became standard, just blink and technology will pass you by.

After a little research I settled on a ATI Radeon HD 5450 DMS59 for $120.00. This little jewel has the capability of three monitors if using a Display Port with VGA Active Adapter. I only missed one little fact, windows XP does not support 3 monitors.

A couple of hours later I am running Windows 7 and loving it. The HD 5450 is awesome. There was absolutely no problem installing 7.

Now all the fun of reloading all the software starting with WDSC 6.0...........

Happy Columbus Day!

Have a great week everyone!

~Richard

Sunday, October 2, 2011

Mystery library.........



I have completed permanently applying all PTF’s. This process cleared up another 4%of disk. At this point most of the preparation tasks for the new iSeries hardware and software have been completed. I am going to spend a couple of days going back over all the tasks seeing if I can tighten up a little more.

I was looking through the end of day job logs and I noticed that the Friday log is 13k pages and other days of the week it’s around a couple hundred. I found, for 15 minutes, the system is spinning around one command that is consistently failing. It’s really not a big problem but waste is waste and lean doesn’t only apply to manufacturing. My Six Sigma Green Belt lean training kicking in.

Message . . . . :    76700 - RMVM FILE(EXTSYSF/SAVOBJ) MBR(D112670122)
*NONE  Command  09/24/11  01:27:14.392440  QCADRV QSYS   03C4     RECYCLE     NANUTL      0012
Message . . . . :     1200 - RTVJOBA USER(&USER)

*NONE Command    09/24/11  01:27:14.392528  QCADRV  QSYS   03C4 RECYCLE     NANUTL      0026
Message . . . . :     1800 - RTVMBRD FILE(RECYCLEBIN/JASON) MBR(D112670122)  RTNLIB(&RTNLIB)

CPF9815  Escape 40  09/24/11  01:27:14.392704 QWHRMBRD QSYS  0426  RECYCLE NANUTL      0026
Message . . . . :   Member D112670122 file JASON in library RECYCLEBIN not found.
                                    Cause . . . . . :   The member D112670122 in file JASON in library RECYCLEBIN
                                      was not found.  The member specified in the command was not found. If the
                                      member name is *N, there are no members in the file. If the member name is
                                      *ALL, then the file is not a partition file. Recovery  . . . :   Add the
                                      member (ADDLFM command or ADDPFM command) and try the request again.

*NONE Command  09/24/11  01:27:14.392784  QCADRV  QSYS   03C4     RECYCLE     NANUTL      0043
Message . . . . :     2100 - CPYSRCF FROMFILE(EXTSYSF/SAVOBJ)  TOFILE(RECYCLEBIN/JASON)    FROMMBR(D112670122)

CPF2801 Diagnostic 30 09/24/11 01:27:14.393056  QCPEX0FL  QSYS  072B  RECYCLE NANUTL      0043
                                    Message . . . . :   From-file SAVOBJ in EXTSYSF not allowed.
                                    Cause . . . . . :   File SAVOBJ in library EXTSYSF is not the correct file
 type for the copy command. C


In looking at the job log; RMVM command is being run to delete a member in a file. The next command run RTVJOBA to retrieve the user name from the job attributes. This seems a little strange to me so I start looking in the RECYCLEBIN library and find only SRC-PF for each user most are empty with the except for me and Jason. No real clues here except that only the users that program had any members with records.

I searched the Net looking for information on RECYCLEBIN and Iseries and find nothing of any substance. I then looked at the library description and found the following text: Recycle Bin - Copy of member before RMVM. At this point I am not sure where to look to find out how members are being added to the SRC-PF. I checked all the job scheduled jobs and the end of day program and found no refernece to RECYCLEBIN. Sure wish I had Hawkeye, I would have found the culprit by now. I do have a handy free find source program created by my good friend Rick Santiago. I search for any source that starts with RECYC and a program RECYCLE in NANUTL Library pops right to the top of the list.

The code is display below with no title block or any information on what this program does. The source member text, Jun 2002 - Save source file member before deletion. At this point I’m pretty sure this program came from an article on the net.

I then displayed the program information and find the source file actually came from a library PWRTOOLS. Now I do remember awhile back about a suite of free code called Power Tools for the AS/400 but when I search the Net I cannot find any reference. I am going to assume that someone bought them out and removed the free code from the Net.

In looking at the program and the understanding what is happening seems pretty cool but how is this program being run? I then searched all the source code on the system looking for  usage of RECYCLE and find nothing.

RECYCLE - CLP

  PGM PARM(&QUALFILE &MBR)

  DCL VAR(&QUALFILE)   TYPE(*CHAR) LEN(20)
  DCL VAR(&FILE)       TYPE(*CHAR) LEN(10)
  DCL VAR(&LIB)        TYPE(*CHAR) LEN(10)
  DCL VAR(&RTNLIB)     TYPE(*CHAR) LEN(10)
  DCL VAR(&MBR)        TYPE(*CHAR) LEN(10)
  DCL VAR(&USER)       TYPE(*CHAR) LEN(10)

  MONMSG (CPF0000 MCH0000)

  RTVJOBA USER(&USER)

  CHGVAR VAR(&FILE) VALUE(%SST(&QUALFILE 1 10))
  CHGVAR VAR(&LIB) VALUE(%SST(&QUALFILE 11 10))

  IF COND(&LIB *NE 'RECYCLEBIN') THEN(DO)
     RTVMBRD FILE(RECYCLEBIN/&USER) MBR(&MBR) RTNLIB(&RTNLIB)
     MONMSG MSGID(CPF9812) EXEC(CRTSRCPF FILE(RECYCLEBIN/&USER) +
        RCDLEN(112))
     CPYSRCF FROMFILE(&LIB/&FILE) TOFILE(RECYCLEBIN/&USER) +
        FROMMBR(&MBR)
  ENDDO

  ENDPGM                                                    

I scratched my head for a minute and then ran DSPCMD RMVM and all be darned if there is not a command option to add a validity checking program and RECYCLE is specified. This is something I had never used before but looks handy.

I now understand how the source file members are being created in RECYCLEBIN. I quiclky realized that the issue is the CPYSRCF command which is throwing the error. The CPYSRCF command can only copy members from SRC-PF and not from a PF.

Unfortunately RTVOBJD does not contain the file attribute. DSPFD will give me what I need to identify the type of file but I would have to output to file and then retrieve the information. If anyone has any other ideas I am all ears.

Mystery solved and since there does not seem to be a quick fix I am just going to add it to the wish list for future work.

Richard