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 ended 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 was working properly.
📝 One-Minute Brief
Troubleshooting the BizTalk error “Finding the document specification by message type failed” for SAP IDOCs. This issue often occurs after an SAP system upgrade where the IDOC release version (e.g., from 711 to 740) changes in the message namespace. Learn how to identify the version mismatch and resolve it by updating your BizTalk schemas and artifacts to match the new SAP release.
Cause
After the SAP System migration to a newer version, the process also started to use the newest IDOC Schemas versions. I really don’t know if the SAP team changed 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).
Hope you find this helpful! If you liked the content or found it useful and would like to support me in writing more, consider buying (or helping to buy) a Star Wars Lego set for my son.
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.