The EnableBizTalkLayeredChannel property affects both, the outbound (SendPort) and inbound (ReceiveLocation) scenarios. In this post, I'll explain the inbound (ReceiveLocation) scenario.

If this property is set to true, then, when an IDOC is received by the adapter, the adapter looks at the first control record received, and copies some properties (name-value) pairs to the Biztalk Message Context. It copies all the values available in the control record (e.g., DOCNUM, IDOCTYP, SNDPOR, RCVPOR, etc).

However, BizTalk has a requirement - each Name-Value pair "written" to the Message Context must have a namespace associated with it, and must have a schema (containing the definitions of these Name-Namespace combinations) deployed in the BizTalk Application. When you install the BizTalk Adapter Pack, we install a dll - Microsoft.Adapters.SAP.BiztalkPropertySchema.dll into the installation directory. This schema contains the appropriate definitions required by BizTalk.

Here's how you can associate this Schema dll with your BizTalk Application:

  1. Open BizTalk Server 2006 Administration Console.
  2. Navigate to the appropriate BizTalk Application under ConsoleRoot\BizTalkServer2006Administration\BizTalkGroup\Applications.
  3. Click on the "Resources" node (its in the left pane, under your BizTalk Application node)
  4. In the right pane, right click, and choose Add->BizTalkAssemblies.
  5. Navigate to the folder where you installed the BizTalk Adapter Pack, (for example, C:\Program Files\Microsoft BizTalk Adapter Pack\bin), and choose the Microsoft.Adapters.SAP.BiztalkPropertySchema.dll.
  6. Restart your BizTalk Service.