09-15-05 10:59 PM
Hi guys,
I've seen a number of posts about using BizTalk to integrate with SAP
and the Web, but I haven't found one that addresses high-level design
considerations using all three. I'm looking for a solution that will
handle both real-time and batch processing between an e-Commerce web
site and an SAP backend (both R/3 and CRM). Here are my requirements:
1. Orders are taken on the site and must be sent to SAP in real-time
for fulfillment.
2. Accounts and product registrations can also be created on the site,
which are to be extracted in a batch fashion to be sent to SAP.
3. Material and Inventory information must be sent to BizTalk by SAP in
a batch fashion to be sent to the site and loaded into the site's
database.
Right now there is only a single web site. However, there are plans to
scale this out to a number of other internal websites in the future
(with there own databases), and perhaps even expose it to external
vendor sites as well.
We've already made the investment in the mySAP Adapter v2.0 and are
planning to use that for both real-time communication via BAPIs and
batch processing via IDocs with SAP. The Web is using SQL Server 2000
as its database. Here is how we are planning to orchestrate each of the
flows above.
1. Orders will be sent via a Web Service call to BizTalk using the Web
Services Adapter. BizTalk will map this XML document to a BAPI call and
send the order to SAP via the mySAP Adapter. The synchronous BAPI
response will then be mapped to the web response XML which is sent back
as the response to the initial Web Service request.
2. Account and Product Registrations will be extracted from the web
database directly by BizTalk using the SQL Adapter since both BizTalk
and the web DB are on the same server. These will be mapped to IDocs
and sent to SAP via the mySAP Adapter in a one-way send (asynchronous).
3. Material and Inventory data will be pushed by SAP on a schedule
using an IDoc to BizTalk via the mySAP Adapter. BTS will load the IDocs
directly into the web DB using the SQL Adapter.
So here are my questions:
1. Should we be using the SQL Adapter to talk directly to the web DB?
We are not just doing simple SELECTs and INSERTs. SELECTs need to make
sure they only pull data that has changed and INSERTs might have to
purge existing data before new rows are loaded. Plus the documents we
are loading might get fairly large (~10MB), so updategrams might not be
ideal. Should SQL DTS be considered for this batch processing?
2. What if BizTalk is down? Should we be using MSMQ instead of Web
Services for communication between the Web and BTS to ensure that all
real-time orders eventually get to BTS?
3. What if SAP is down or is in one of its scheduled maintenance
windows, which happens for a couple hours each month? Can I rely on the
built-in BTS suspended queues and retries to ensure that everything
gets to SAP eventually? Or do we need to introduce MSMQ for guaranteed
delivery?
Thank you very much for taking the time to help. Any insight could save
my design team hours of time.
[ Post a follow-up to this message ]
|