Today I finished the first pass on generating an SDIF file for the roster. I sent it to Hy-Tek and it doesn’t import. Great. Apparently they don’t seem to support all of the SDIF specification, just some of it. No mention of that anywhere on their web site.
On the plus side, I found a better version of the SDIF specification on the WinSwim web site. If I can get WinSwim to digest the SDIF file I generated, I may push our team to use it.
I haven’t had a lot of time to work on the plugin but got back to it last night and am really trying to get the roster export completed. It isn’t hard but it is tedious as there is lots of data to output in the SDIF format. I am close to being done and found an inconsistency with the D1 record. It allocates 12 characters for the USS# field however the USS# field is 14 characters long. Since it looks like it is only mandatory for submitting data to USS, I may omit it. I also sent an e-mail to Hy-Tek to see how they handle it, we’ll see if they respond. For now I think I will omit it and move on. I need a copy of Team Manager to test with – that is my next dilema.
I am back working on the plugin after almost a three week hiatus. I went to Japan on vacation for 10 days so the time leading up to our trip and the week or so afterward were both busy getting ready to be gone from work and dealing being gone from work. Japan was great and we had a wonderful time.
Now that I am back, I am working on the plugin again. I have a April 14th deadline of sorts as that is the day our swim team registration ocurrs. Most of what is necessary for registration is already working so I think I am ok but I really want to nail down this Hy-Tek import stuff. I found a few bugs in the roster and profile code from when touching the data as an admin but now that those bugs are sorted out, I can truly focus on the export function.
In the time I have been gone, WordPress has released verion 2.5 which is a fairly significant change. I think I will wait to deal with upgrading WordPress until after I work out the export function.
Last night I completed the initial PHP include file for SDIF support. As I mentioned previously, I thought it would take a while and it did. The upside is taking the time to go through the specification to create all the PHP constants has made me more familiar with SDIF. I don’t think it will be too hard to generate SDIF from the registration information the plugin already collects however, there are parts of the plugin which will need some additions. For example – the SDIF team records (there are two of them) require detail which wasn’t collected previously and the swimmer records prefer to have the middle name because the USA Swimming Id is constructed from portions of the swimmer’s first, middle, and last names along with their birthdate. Looks like to me like you can still end up with conflicts but that is what the specification outlines. So now off to enhance the team and swimmer forms.
This evening I have been working on generating SDIF but before I can generate it, I need to define all of the constants necessary to constuct the records. I won’t get it done tonight but I made a big dent in it. To define all of the possible record types I will probably end up with about 750 constants. This is incredibly tedious work – necessary, but tedious.
I have learned quite a bit about Swim Team software in the past month or so that I have really been working on this project. Once I got the basic plugin working, I started looking into how we can use the registration data we collect with some of the commercial Meet Manager software. Hy-Tek seems to have the vast majority of the market for Swim Team and Meet management. Unfortunately Hy-Tek has a really closed software solution and have no plans to open it up.
I find it amazing that Team Manager cannot import a roster from Excel or other ASCII (CSV, tab delimited, etc.) file. I spoke at length with their tech support yesterday and they fully believe all of the data entry should happen in their tool. That would be ok if it was the least bit user friendly but it isn’t. One of our coaches shuddered at the thought of entering the roster in Team Manager this year – after enter a couple of swimmers, I completely understand why. It will take a long time. A really long time.
I am now on a mission to produce US Swiming’s SDIF v3 files from our database to try and import them into Team Manager. If this works, then we should be ok. The SDIF v3 specification is old – about 10 years old and reminds of old FORTRAN punched cards or CoBOL. Each record has specific character widths and positions. It doesn’t look to hard. USA Swiming’s new XSDIF specification would be better but Hy-Tek has no plans to support it. XML is absolutely the way to go with this sort of interchange data.