Visual Basic Project – Positive Pay translation program

Last year the company I work for decided to begin using the Positive Pay process offered by Key Total Treasury*.  The issue we had when we were looking to implement was that we had three separate bank accounts and no easy way to program an export within each system to match the format needed for the Positive Pay file used by Key Bank.  Fortunately though, we could get CSV (comma delimited) check reports rather easily out of each system.  Although I knew next to nothing about programming in any of the three systems that we use, I knew that I could cobble something together in Visual Basic that could translate, or convert, the CSV file formats to the semi-proprietary fixed width format required by Key Bank.  After a period of use, I requested permission to make a more generic version of our translator programs that others might make use of.  In my spare time I acquired enough knowledge about XML programming to put together the program below that uses an XML initialization file:

http://cid-f206759e5151f410.skydrive.live.com/self.aspx/PositivePayFiles/positive%20pay%20translator.zip (requires a Live ID I think)

The 2.0 version of the .Net runtime is required, and also although it’s not required I would recommend compiling your own version from the source due to the sensitive nature of the information that the program handles (otherwise the executable is under the ‘bin’ folder).  If you do not have Visual Studio, you can download the free Express version.  If you do not use Windows, Mono’s migration tool states that the program should run under the Mono framework, though I have no experience in that area.

When exporting a CSV from your system the fields will need to be in the following order (unless you change the ‘Read_Exported_File’ method in the program):

  • The first field is the check number
  • The second field is the check date
  • The third field is the check amount
  • The fourth field is the void code
  • The fifth field is the vendor name

With the program is an example of the XML configuration file (ppaysettings.xml) which has the following options:

  • AcctName – generally the bank’s name.  It is used for operator verification
  • AcctNum – the bank account number that will appear in the positive pay file
  • VoidCode – string code in the CSV that designates that a check has been voided (can be blank)
  • NonVoidCode – string code in the CSV that designates that a check has NOT been voided (can be blank)
  • OmitPayee – do not put the customer name in the Positive Pay file.  Required for checks printed with dot matrix printers (True or False only, not blank)

In the not too distant future I should have a more fully vetted version along with some exception conditions that would be related to how wire transfers are handled.

As a note, this version drops checks that are canceled in the same run.  This is typically due to a printer malfunction and since the check is never cut, it is never verified against the positive pay data anyway.

Notes 11/28/2008:

This is an early build and may not be bug free as I haven’t tested it fully.  The information in the Paysettings.xml file is not required, but the file itself is at this time.

*Key Bank/Key Total Treasury does not endorse anything to do with this program

Windows Mobile Issues

As I scroll through them each new message spins up from the bottom of the screen in what looks like a tornado of whirling letters before coalescing into a readable message. however as soon as I want to reply or get more information the TouchFlo interface disappears and I’m shoved into windows. This is true for each and every one of the phones features. contacts, programs, email all of it. It all looks great for about a second but as soon as you try to actually use any of this stuff the facade disappears and you’re navigating through f*****g windows.
He goes on to voice other concerns, many of which are applicable to the platform in general.  My first Windows Mobile phone was the HTC/Cingular 8125.  This phone had it’s issues, the first of which was the fact that the screen was prone to becoming "de-synced", forcing me to occasionally have to navigate the menus using other methods to get to the little screen calibration program.  Additionally though, the device was also slow and perpetually starved for resources.
 
Due to the fact that AT&T is a dreadful company, we switched providers at work when our contract was up.  Since we went with T-Mobile I elected to get the HTC Wing.  My belief was that since the phone was a generation or two newer and had a newer version of Windows Mobile that it would be a vast improvement over my old 8125 (which had since died).  Fortunately the screen seems much more well behaved, but little else improved.  Despite the price drops for comparable memory in the intervening years, the Wing comes with the same 64MB of user memory that the 8125 did (most of which is eaten up by the programs needed to run the device).  If you want to make use of an SD card it will require a generous amount of registry hacking using a third party utility, at which point the card is married to the phone and you can forget about taking it out.  Speed and memory management, always issues for Windows Mobile, persist in this latest rev and I’ve made ample use of the reboot button on the phone during the number of times that I’ve locked it up doing fairly innocuous tasks (such as loading a decent sized web page).  It goes without saying that the interface is the same mediocre experience.  With all the faults I feel like I’m transported back to using a desktop in 1995 whenever I use my Wing phone to any great extent.
 
As insult on injury, I had a brief chance to use a friend’s iPhone and I was amazed at how much better the whole package was, everything from interface to speed were much, much better.  Insult on injury was the fact that at the time of my purchase, the iPhone sold for the same (list) amount as the Wing.  Getting an iPhone wasn’t an option for myself, but I don’t see how Microsoft is going to pull this out considering that their cutting edge phone products are suffering from the very same faults that have dogged the Windows Mobile products for years.

Failed Windows Marketing

A friend sent along this note which points out some various positive points about ‘Windows 7’.  It is a microcosm of everything that was wrong with Windows Vista’s marketing effort.  To be fair, the marketing folks didn’t have much to work with in Vista, but still.

I recall going to the big launch party for the 2007 products and while the presenter (Matt Hester as I recall) had a lot of nice, informative things to say about Exchange 2007 and Office 2007, when it came to Vista all he had were second rate versions of features that appeared on Macs years ago, and a refresh of the video games that come packed with Windows.  In hindsight he had to know that Vista was a weak link in his presentation, especially when he’s giving a prolonged speech to an auditorium full of tech professionals about the new graphic schemes for Minesweeper.

Windows 7 might be a slightly different beast though.  I like that they’re trying to correct some of the aggravations of Vista, but let’s face it they could do that to the existing product if they cared to (though they probably won’t, thereby turning Vista into abandonware).  What I do like is the fact that they’re finally cleaning up the interface and centralizing the presentation around the ‘ribbon’ which is in my opinion the best interface idea to come out of Microsoft EVER.