I’m working for a client new to the world of software development and unencumbered by familiarity with development lifecycles and environments. (Not their fault; it just places the onus on us to teach them.) I’m not sure how long my company has been working with them; I just joined the project a couple of months ago.

Somewhere in the past, some percentage of the developers on the project acquiesced to doing development work in their production environment, probably because they were asked to do so to help them with some tight deadlines or urgent requirements. The short term effect was that it helped the client meet whatever deadlines or requirements they had; the long term effect is… disastrous.

Continue reading

I have a client who wants to track all outgoing messaging from all of their K2 applications to assist in troubleshooting if someone says they didn’t receive a notification.

Normally, no big deal; create a database table or two, a database view and an insert and a list proc, turn those procs into methods in a SmO and call it from a SmartObject event after each of the email events in the workflow. Good to go, right?

But all outgoing messaging includes escalation e-mails… trickier, but I’ve got a slick little trick up my sleeve.

Continue reading

I’m working on re-creating a SmartForms application for a client — which was already in progress when I took over for another engineer — when I bumped into the exception described in the the title. This application was deployed from another environment.

Where’s the problem?

Continue reading

I think it’s fair to say that most of us in this industry at least started out taking over someone else’s project. The original developer left long before you got there, leaving you to figure out what’s what.

Some of us are still in that position, or find ourselves back in that position at some point. So if you can take the time to inventory all of your SmartForms objects at the start, you can let your shiny new object relational management (ORM) database do a lot of your grunt work for you later on.

Continue reading

My client was looking for a way to export a list produced by a reporting engine to a Microsoft Excel® spreadsheet file (.xlsx). Other applications in the company have made use of an Excel Export control, so I thought I’d better figure the thing out.

Continue reading

This was a really weird one. A client’s application suddenly suffered from this error in all environments simultaneously. The root cause had nothing at all to do with K2 blackpearl, but it affected the service keys of the instance of a service, which brought down the service and caused the exception.

Continue reading

I can’t recall the last time I’d been this excited about building a new feature.

My client has a high-touch, high-visibility application — and I mean “high-touch” more in the sense that a lot of people use it, rather than it gets used often (quantity as opposed to duration, I guess). At the top of my clients’ Christmas list this year was a new feature for building and persisting reports that can be used to monitor the progress of work items through their process.

I wanted to build them a reporting engine that was flexible enough to provide insight from multiple data sources, and with an interface that was as familiar and intuitive as possible.

Continue reading