Learning Adapters : SAP

With my current client I've had a chance to work with the SAP adapter for the first time, which is a treat since most of my work with BizTalk has revolved around HIPAA and EDI.  So I've been working with it for several weeks, and I very much like the delivery of the adapter with one, glaring gotcha which I'll discuss.

The way the adapter works is that you can access any iDoc or RFC from SAP by creating a port configured with identity you will connect with, and then selecting to add items to your solution and select Add Generated Items... and finally select "Add Adapter Metadata".  You can then walk through the process of selecting your port and searching for your RFC or iDoc.  When you've completed the wizard you will have a newly generated XSD schema added to your project.  Happy days, and off you go, until deployment time.

You see, when the wizard walked through that process, for an RFC, it generated an assembly, quietly, in a directory which on most boxes will be : C:\Program Files\Microsoft BizTalk Adapter v2.0 for mySAP Business Suite\Bin.  That assembly is required for the Adapter to work at runtime, and as such must be included in your deployments.  Add to this pickle that the assembly is not strongly named, so you can't put it in the GAC like everything else and life get's really interesting. 

This one caught me completely off guard, and personally I consider this a major flaw in the design of the adapter.  I've now added two new items to my "To Do" list.  First, implement Scott Colestock's deployment framework on my project so I don't have to deal with external resources and the BizTalk "Export MSI" functionality.  Second, learn more about the Line of Business Adapter SDK and the new WCF adapters to systems like SAP that I attended a talk about at TechEd this year.