ABA bank payment file format (Australian Bankers Association)

I’m currently working on an application for a un-named organisation. As part of this, I need to export files for processing in the Australian defacto standard for Electronic Funds Transfer (EFT) files – the ABA format.

I’m using BizTalk of course, and it can handle this weird format, however all I had was the sample file, which for a fixed width flat file is not great.

I found the format documented here: http://ddkonline.blogspot.com/2009/01/aba-bank-payment-file-format-australian.html

Apparently the banks have all agreed on this format, which is firstly Ancient in origin and format, and design Highlighting that it’s a flat file, of fixed field lengths..

If this was re-factored into a XML format, it would be much easier to generate, highly flexible, and they could expose an interface, via a simple web service to accept this format. All authentication could be done via a secure https web service, with encryption on the web service.

Let’s understand that this is used to effect payments from a company’s bank account to individuals, this is highly sensitive and needs to be secured.

This format of this file is NOT encrypted in anyway; it is open, readable, and modifiable. There are no check digits, no certificate of authentication or any of the modern features you would expect in such a file.

By Exposing a WCF endpoint, which had authentication via certificate, using an https/transport encryption/security would handle some of this requirement; the rest is in the detail of the message itself.

Currently what happens is we output this file to the file system, and then someone picks it up… and processes it…

If a WCF or web service endpoint was open by the bank, we could securely communicate with this, and send the payment file, someone could log onto their secure interface and approve the transfers still, however there would be zero chance of someone modifying this file before it got there….

Before we got involved, this was just popped onto the file system somewhere, generated via a different method

I am not one to mess around when it comes to security, and this smells to me. The banks need to provide an interface. I’ll happily build it, securely and flexible enough for all platforms to communicate with it.

Managing your application lifecycle with TFS – Workshop

QuickLearn’s MVP Anthony Borton is scheduled to teach the pre-conference hands-on workshop Managing your Application Lifecycle with TFS at next week’s ALM Summit.

Audience

This pre-conference workshop has been developed as a level 200 event to help get conference attendees up to speed with TFS and maximize their understanding of the product and its features prior to the ALM Summit kicking off.

Course Abstract

Many organizations use only part of what Microsoft Team Foundation Server (TFS) has to offer and as a result are not realizing the full range of benefits available to them. This workshop will give you a hands-on walk through of the many ways TFS can help your team realise more frequent successes with software development projects.
The workshop will start by evaluating and selecting a suitable process template for the project. We’ll work through an end to end project and examine the many capabilities of TFS that can help you start your project off on the right track and keep it there. Some of the key topics we’ll look at include:

  • Ensuring effective team communication
  • Configuring version control and enabling release management through branching
  • Maintaining quality across all parts of the project
  • Creating automated builds and seeing how we can customize the build process
  • Leveraging the out of the box reports and creating ad-hoc reports

About Anthony Borton

Anthony has designed and developer all of QuickLearn’s ALM curriculum. Anthony is a Microsoft Visual Studio ALM MVP with over 20 years’ experience in the software development and training industries. Anthony is a sought after trainer and has delivered technical training and consulting in the United States and all across the Asia Pacific region. He is a Microsoft MVP (Visual Studio ALM), a Professional Scrum Developer Trainer and a Microsoft Certified Trainer.

View all of Anthony’s upcoming training courses at QuickLearn: http://www.quicklearn.com/tfs-training.aspx

WCF, OneWay and BizTalk

In WCF there is an option in your contract to markup as an OneWay method like this:

        [OperationContract(IsOneWay=true)]

You will get the following error when you try to send a message from BizTalk to this WCF Service:

Details:”System.ServiceModel.CommunicationException: The server did not provide a meaningful reply; this might be caused by a contract mismatch, a premature session shutdown or an internal server error.

The problem with this is that BizTalk can’t consume the WCF service as it only supports the Request/Reply pattern of WCF, so what options do you have when you have a fire-and-forget WCF service that you want to consume from BizTalk:
  1. Change the attribute in your WCF Service, so the “IsOneWay” is set to “false”. This is only an option if you have control over your WCF Service
  2. Create a wrapper around the WCF Service that wraps you service. This blog post is one way to do it: http://www.pvle.be/2008/12/calling-one-way-wcf-service-with-biztalk-wcf-adapter-part-2/
You should go for the solution it the order listed above. Other possible solutions that I haven’t tried, but might work (could be fun to try out at some point in time):
  1. Implement a custom behavior (could maybe also be a solution as you hook into the WCF model, but I am not sure if it will work)
  2. Implement your own WCF adapter using the WCF SDK (A lot of work, should work as you have complete control over the message flow)