During a recent SmarTeam implementation, we encountered an issue when using Microsoft BizTalk Server to exchange data between ENOVIA SmarTeam and an ERP system. A couple of simple SmarTeam configuration changes later, and the problem was solved. Here’s the scenario:
- SmarTeam Gateway sends a message to update Items in an ERP system (via Microsoft BizTalk Server)
- The ERP system sends an acknowledgement back to SmarTeam Gateway Inbound (via Microsoft BizTalk Server).
In this scenario, when a large number of messages are sent in rapid succession, we received a message stating “Inbound Processor is not in appropriate state to start processing”. However, the error did not occur if we sent one update at a time from SmarTeam to the ERP system. In our case, we were using a File Receive location transport (because of an unrelated issue with BizTalk Server’s pipelines handling special characters when using the SmarTeam/SOAP transports).
We were able to overcome the issue by changing some settings in BizTalk Server. We made the following changes to the Receive Port coming from SmarTeam to the BizTalk Server, and also in the Send Port which sends information back to SmarTeam Gateway:
In the properties of the File Transport (Receive Port from SmarTeam to BizTalk), click on the Configure button next to the FILE Transport type, then select the Batching tab, and set the “Number of messages in a batch:” option to 1.
Next, in the Send Port that sends messages back to the SmarTeam Gateway, go to the Transport Advanced Options, and set the Ordered Delivery option (it should be checked).