I’ve noticed on quite a few occasions, on different systems that when the Metastorm designer issues a runtime exception it can corrupt the saving of your Metastorm procedure if you opt to save your xep post exception. I’ve had a 300 kb file be reduced to a 240 kb file on a save and unwittingly I have published this reduced version of the procedure many times before noticing that Metastorm has ‘stripped’ out parts of my procedure (usually the forms).
Let me explain some more…
I’ve been working on a project for the last few months and the xep file is around the 300 kb mark at the moment. I’ve noticed on a few occasions that when I save the procedure file, the Metastorm Designer fails to save the full procedure and the resulting xep is heavily reduced in size. The main problem is that as I develop new functionality and deploy new versions of the xep, I’m unaware that I’m working with a corrupt procedure and that half of the forms I had designed previously had been stripped out of the file and my published work was in fact a reduced version of the system I am designing. Once I’m aware of the problem, I can obviously back track to previous deployed versions of the procedure by retrieving those published xep’s, but of course this means I lose work I have spent valuable time developing and have to bring the file up to date with lost changes.
After a few noted occurrences, the common pattern seems to be when the Metastorm designer throws an exception of some sort. If I attempt to save my procedure or library after the exception has been thrown, the designer is sometimes unable to save the xep in full and so appears to only save half (watch the save bar closely when this occurs… it will get to 50% of the way and disappear).
My conclusion is that my scenario may have something to do with the problem. I run Metastorm on a Windows Server 2003 VM and save state a lot of the time meaning that the Metastorm designer stays open pretty much all of the time. The fact that the designer is open all of the time appears to be a contributing factor to the programs exceptions and so the corrupt saving of procedures. My advice is to close the designer regularly. I tend to find that designer runtime exceptions only occur when the application has been resident in memory for a long period of time and so to avoid the problem of losing your hard work in the form of corrupt saves, close the designer regularly.
I find that another best practice is to save daily instances of the procedure in separate directories. Naming each directory in a date format (01122009) works well for me.
One final point on this… The Metastorm designer still throws quite a few run time errors and considering we are on v7 of the designer, this is really not good. I’ve read a few articles and forum posts about version 9 and the overall view is that it appears to be a good upgrade on v7… Let’s hope the designer has been worked on!