Accounting for Database Developers

I’ll be giving a presentation on the somewhat unlikely subject of the title at the next NYC SQL Saturday at Microsoft HQ on May 30, 2015.  It will be a largely non-technical, non-demo presentation about accounting and bookkeeping concepts developers are likely to encounter if they have to interact with financial recordkeeping applications, particularly in data warehousing and business intelligence contexts.  I will also offer reasons why learning about this (in more depth than is possible in this session) represents great career development for the average developer.

There will be one tech hook wherein I will demonstrate how Microsoft’s Analysis Services directly supports some of the mechanisms of bookkeeping.

The all-day event is free (except for lunch) and has a host of valuable sessions on a wide variety of mostly technical SQL Server topics.  Here is the link:



Posted in Analysis Services, Warehousing | Leave a comment

Enabling RDP on a VM Uploaded to Azure

The short version of this story is: Before uploading a VHD to Azure, make sure you’ve enabled remote RDP (installing Azure PowerShell is a good idea too).  But if you forget (and your VM is running Windows Server 2012), it can be fixed without having to redo a massive upload.

We recently did a demo for a prospective client, and wanted to give that client access to the VM the demo was on to further explore and tinker with the solution.  Azure IaaS makes perfect sense here – upload the VM right to Azure and let the client have access.  The VM can be spun up on demand, and can be removed when it’s no longer needed – and it won’t require any special permissions or network/firewall rules on either end.

There are several helpful guides to prepping and uploading a VHD to Azure:

The upload process went fairly smoothly – we let it run over night and in the morning our VHD was there and ready to be attached and booted.

For better or worse (maybe just because it should be so obvious), none of the guides mention the fact that remote RDP should be enabled before uploading your VHD (and I forgot to do so before starting the upload).    The process to do that is fairly trivial: run SystemPropertiesRemote and then use the GUI to configure your settings.

Read More »

Posted in Azure, Cloud, IaaS | Tagged , , , , , , | Leave a comment

Working with HIPAA Professional Claim (837P) Messages in BizTalk (Part2)

In the last post, I wrote about the overall structure of 837P claim messages.  837I and 837D messages have similar structures, though with some differences – for example, the 837I has many more diagnosis code options, and the 837D has more specific nodes for tooth identification, etc.  One important thing to note is that 837P, 837I, and 837D files are very similar, but not the same.  It’s not enough to simply change the version numbers in the GS and ST segments and then try to process one the same as the other!  If it were that easy, we wouldn’t need separate schemas for them in BizTalk!

BizTalk provides out of the box functionality to support these message types, with well developed functionality to translate the X12 EDI to XML and vice versa.  The schema nodes also have friendly names, translating something like this:


To this:



Read More »

Posted in BizTalk | Tagged , , , , , , , , | Leave a comment

Mobile Device Management

When choosing a Mobile Device Management (MDM) solution there are many features that need to be considered, along with pricing and hosting models.  The world of MDM can be cumbersome and confusing, so it is important to understand what is out there.

Read More »

Posted in 0-Uncategorized, Android, iOS, Mobile, Windows 8, Windows Phone | Tagged , , , | Leave a comment

Saving BizTalk Suspended Messages in Bulk using WMI

BizTalk is great in its ability to store messages within the MessageBox even after processing failure, however its not always so easy to get those messages back out!   I recently had a need to retrieve all messages that were currently suspended due to validation failures while attempting to generate X12 EDI messages using the Microsoft.Practices.ESB.

Read More »

Posted in BizTalk, Biztalk Tutorial | Tagged , , , , , , | Leave a comment

Working with HIPAA Professional Claim (837P) messages in BizTalk (Part 1)

Updated: part 2

Application integration is challenging in that it requires a wide breadth of knowledge: server and network architecture, object oriented programming and design patterns, messaging and communication patterns, workflow design, message translation, database design and programming, business rule processing, data validation and quality handling… the list goes on and on.  On top of that, it’s important to be familiar with the data you’re working with from various sources and feeds to be able to effectively transform it.

EDI presents a whole host of challenges, and the 837 Professional, Institutional, and Dental transactions are among the most challenging to grapple with.  This will be the first in a series covering a high level introduction and overview of the 837 Claim format in the BizTalk HIPAA EDI schemas.  It is not quite going to the level of a competent EDI Analyst, but should give an integration developer enough to make a good go at understanding the data.  I’ll focus on Professional claims, but much of this post would also apply to Institutional and Dental claims; and in this post, we’ll be starting closer to the raw EDI data.

Read More »

Posted in BizTalk | Tagged , , , , , , , | Leave a comment

Azure Startup Tasks

Recently we had a problem with an internal application that is hosted on Azure PaaS. Windows Authentication would be disabled periodically for our Cloud Service. This would cause our application to return a 403 error to all visitors because we required that users be authenticated before accessing the application. Originally we didn’t have this issue with our application on Azure, but at some point the default IIS configuration changed and we started seeing this issue when a new role was started.

Read More »

Posted in Azure, PaaS, PowerShell | Leave a comment

BizTalk Mapper file format (.btm) documented

The BizTalk mapper is a phenomenal tool and part of what sets BizTalk apart as an enterprise middleware platform.  Developers with little knowledge of XSLT can rapidly and accurately develop complicated transformations, and like all other aspects of the BizTalk engine it can be extended and heavily customized when necessary.  This more than makes up for any limitations in the mapping engine.  At the same time, sometimes the designer interface goes wrong and it’s difficult to figure out why: a functoid that has placeholders on a multipage map, or the desire to delete all functoids of a specific type from a specific page.  On smaller maps, this usually isn’t a problem, but when dealing with larger documents (like HIPAA 837 claim or 834 enrollment files), understanding the file structure of .BTMs can be a huge time saver.  It’s also possible to manually correct changes in your schema that would otherwise break the map (and perhaps cause a significant loss of development time and effort).  For demo purposes, I’ll use a fairly simple map with just a few links, using the 837I schema. Read More »

Posted in BizTalk | Tagged , , , | 1 Comment

Recovering a SQL Database Marked ‘Suspect’


If you’ve ever had to develop for SharePoint, you’ve likely had to develop using virtual machines from time to time.   Given the sheer size these VM’s grow to, I generally keep them on external drives.

Yesterday, I accidentally pulled the USB 3.0 cable for my external drive before my machine went into sleep mode while the VM was still running.  When I booted back up, I was met with the following error message in SharePoint:


I launched management studio and found the following:



Luckily, my colleague Brian Feldmann had been through this before and helped me find a solution to bring back a Suspect database.

Read More »

Posted in SharePoint, SQL Server, Tips and Tricks | Tagged , | Leave a comment

SharePoint 2013 Visual Web Part Auto Generated Files

As you may already know, SharePoint allows developers to create custom web parts a few different ways. You can create a web part through code using the Visual Studio Web Part Template or you can create it with a Visual Web Part Template. The Visual Web Part templates are nice because they allow you to use user controls (.ascx) files to generate your markup.

If you’ve ever created one of these Visual Web parts you’ve probably noticed that there is a code behind .ascx.cs file and another odd file with a ascx.g.cs extension. This .asxc.g.cs file is automatically generated by Visual Studio and is quite important. Every time you make an update or change the .ascx file and then press save, Visual Studio pushes those updates into this auto-generated file. The .ascx control is never actually deployed; instead the code files are packaged into an assembly and added to the GAC, creating the web part in SharePoint.

That’s all fine and dandy, but have you ever run into the issue where you’ve made some changes to the .ascx control, deployed the solution and the web part hasn’t updated? I can tell you that I’ve seen this happen more times than I’d like, but luckily there is a fairly simple fix for the problem.

Disconnected Web Part File

Visual Web Part Module with disconnected auto-generated file.

Read More »

Posted in SharePoint, Web Parts | Tagged , , | Leave a comment