At least part of the SAP application connector software needs to be implemented as a Windows service installed under a domain user account. This Windows service would be set to check the incoming MSMQ queue at regular intervals for messages from the Web middleware layer. The interval for checking could be short (a few seconds, for example) so that under normal circumstances the SAP system is updated in almost real time. This interval could also be set much longer (an hour or a day, for example) so that updates to the SAP system would be closer to a batch process. If a long interval were selected, then the adapter connector layer could be implemented as an application rather than a service that is executed at some regular interval using the Task Scheduler.
Once a message is detected in the incoming queue, the message is retrieved and the information is sent to the SAP R/3 system. The removal of the message from the incoming queue and the successful update of the SAP system must be coordinated as a distributed transaction.
The Object Builder tool included with the SAP R/3 DCOM Connector is used to build COM proxies to the BAPI methods and RFCs needed to interface to the SAP system. The DCOM Connector, which forms a part of the SAP RFC SDK, must be installed on a development system that has Visual Studio 6.0 or Visual Studio ,NET. The SAP R/3 DCOM Connector is based on a series of COM components and has a somewhat strange interface for users.
Before the SAP DCOM Connector can be used, the SAP COM for ABAP Service must be started. The shortcut to the SAP DCOM Connector is actually to a Web page loaded on the local computer during the RFC SDK install. This Web page is opened using Internet Explorer in order to start the DCOM Connector and gain access to the tools, A destination has to be configured to a SAP system where the developer has a SAP logon. Once a destination is configured, the Object Builder can be invoked from the DCOM Connector menu bar across the top of the page.
As shown in the illustration, the Object Builder allows you to select specific BAPIs or RFCs functions and add them to the list of COM proxies that will be generated. The tool allows you to select or browse to the C++ project where the source code and output from generating these COM proxies will be stored. Other options can be set including the target DLL name, the namespace in the source code to be generated, the MTS package name, the type of RFC mechanism to use, and whether a login session should be included in the code generated.
When all of the BAPIs and RFCs have been selected, the Build Component button will generate the source code to the COM proxies and build the COM components using Visual C++. Note that the VCVARS32.bat file from Visual C++ needs to be on your path or the environment variables from this file need to be set prior to starting the Object Builder tool. The Object Builder depends on parsing the VCVARS32 file or using environment variables to invoke the C++ compiler and find the needed include and library files.
After the COM DLL has been built successfully, the COM DLL can also be installed using the Object Builder. The IDL, include, and typelib files created for the COM DLL can be used to interface with these COM proxies to the BAPIs and RFC functions from other code. The process of creating these COM proxies to the SAP interfaces is simple once you get used to the tool interface.