With
our application now built and deployed, we are ready to begin testing
by performing the following steps: After bouncing the
BizTalkServerApplicationHost instance(s) and starting the application,
we can process an instance of our MaterialDetailRequest.xsd.
Note: The values that have been provided in this
sample file represent master data that exists in the SAP system that was
used to build this solution. These values will probably not be valid in
your SAP system. It is recommended that you consult an SAP resource
within your organization so that they can provide you with data that
exists in your system.
BizTalk should consume this file, contact SAP, receive a response from SAP, and write the results back out to the same folder.
When we inspect the MaterialsOutput{GUID}.xml file, we will discover information pertaining to the Material we are interested in including the Moving Price.
In this example, we used asynchronous messaging
between our calling client and BizTalk. Using asynchronous communication
in this scenario gives us a little more breathing room when
communicating with SAP. Calling the SAP RFC, in this situation, is a
very quick operation (~2 seconds), but for some reason if SAP is down,
we have time to retry calling SAP.
If we had a synchronous scenario with our client
application, then we would not have much time to retry calling SAP
before the client times out. In these synchronous situations, I
recommend setting the SAP's Send port retry value to 0 and then ensure I
return a response back to the client indicating that SAP was not
available. This provides a few benefits:&;
We are not trying to retry connecting to SAP when the client has already timed out and severed its connection to BizTalk.
If
SAP is down, BizTalk will be able to immediately detect this situation
and send a negative acknowledgement message back to the client
application. Otherwise, we would not know this until BizTalk had
exhausted its retry threshold.
Client system can then provide a clear, user friendly error message to the client indicating that there is a problem.