Recently I found myself challenged to proof BizTalk (and the 2.0 adapter pack) were a relatively easy way to dig up the chest with RFC treasures buried within my clients SAP R3 installation.
Up untill this point SAP had been a well avoided obstacle in my career but now I thought, why not. How tough can it be.
It turned out to be relatively simple, ONCE you had all drivers in place :)
Using my brand new Windows Server 2008R2 VHD image with BizTalk 2009 running in Sun Virtualbox, I went on to install the necessary 64-bit SAP client dll's and 64-bit BizTalk adapterpack 2.0.
At the site I was then pleasantly surprised with several errors.
First several entries in the machine.config were not set by the installer. This was promptly corrected using the info found here
Second, Visual Studio informed of the fact that the SAP client dll's were not valid win32 images. That made sense: I was running 64-bit stuff. So what was the problem here?
It seems that the Visual Studio 2008 Consume Adapter Service dialog has a 32-bit dependancy. So you need both 32-bit AND 64-bit versions of BOTH the BizTalk adapter pack and the SAP client dll's.
Also you need to place the 64-bit SAP dll's into your Windows\System32 folder and the 32-bit dll's into the SysWOW64 folder.
Remember though that you may only install one version (64-bit of course) of the LOB Adapter SDK.
After all this the wizard did what it was supposed to do, offering the SAP binding. After creating schema's for a few sample RFC's the client was interested in, setting up a generic test and demonstrating the results we were done well within an hour.
So the steps:
1) Instal LOB Adapter SDK 64-bit with latest SP
2) Install 32-bit BizTalk Adapter pack 2.0*
3) Install 64-bit BizTalk Adapter pack 2.0
4) Install SAP client 32-bit dll's in SysWOW64*
5) Install SAP client 64-bit dll's in System32
*This is only needed on development stations. 64-bit Production servers do not need 32-bit installations of the adapter pack or the SAP client dll's UNLESS you are somehow required to run a 32-bit adapter, host instance or client. Then all, client, host and adapter, need to be 32-bit