In the sequence of my last post, and following the result obtained while trying to solve the problems that had been originated by the SAP system migration to a newer version, I end up receiving another error. This time the connectivity problem with SAP was overcome, however, without any reason I started to receive an error saying that the schema was not known
I got the following error:
“There was a failure executing the receive pipeline: “Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35” Source: “XML disassembler” Receive Port: “IN_IDOC_PORT” URI: “sap://CLIENT=[SAPClientID];LANG=[LANG];@A/[SAPServer]/[SystemID]?ListenerGwServ=[GWServer]&ListenerGwHost=[GwHost]&ListenerProgramId=[ProgID]&RfcSdkTrace=True&AbapDebug=False” Reason: Finding the document specification by message type “http://Microsoft.LobServices.Sap/2007/03/Idoc/3/IDOC_NAME//740/Receive#Receive” failed. Verify the schema deployed properly.”
It was strange to receive this kind of error because the process was in the testing stage for about a month and working properly.
Cause
After the SAP System migration to a newer version, the process started also to use the newest IDOC Schemas versions. I really don’t know if the SAP team change anything on the SAP side of it had to do with the migration itself, however, when I checked the source code I noticed that we were using the 711 version of the schema:
- http://Microsoft.LobServices.Sap/2007/03/Idoc/3/IDOC_NAME//711/Receive#Receive
And now the SAP system process was using and sending the 740 version of the schema:
- http://Microsoft.LobServices.Sap/2007/03/Idoc/3/IDOC_NAME//740/Receive#Receive
Solution
The solution is very simple, you just need to generate and import the newest version of IDOC Schema (740) to your BizTalk Solution, make all the necessary changes and redeploy all the required artifacts (schemas, orchestrations, maps, and so on)
You can also set the segment release to 700 (or other) when generating your schema. And to make sure that SAP is sending this segment release set this in your outbound parameter (WE20 -> LS -> -> outbound parameters -> -> Outbound options -> segment release). But be aware that some IDOCs (e.g. MATMAS) have different application releases. You can see that in WE31 choosing the segment you want to check.