Professional Documents
Culture Documents
Submitted to
Page 1 of 36
DOCUMENT INFO
Created by Created On Current ownership Reviewed by Contributions from Project Purpose
Mukeshlal Parida, Kannan Kailas 09/Nov/2005 Mukeshlal Parida, Kannan Kailas Manish Agrawal Mukeshlal Parida, Kannan Kailas BPNAEAIE BoK
DOCUMENT HISTORY
Ver
1.0
DD/MM/YYYY
10/11/2005
1.1
11/11/2005
Description
TABLE OF CONTENTS
1 2 DECLARATION ...................................................................................................................................... 4 INTRODUCTION .................................................................................................................................... 5 2.1 2.2 3 OVERVIEW .......................................................................................................................................... 5 INTENDED READERS ............................................................................................................................ 5
SAP XI LANDSCAPE ............................................................................................................................. 6 3.1.1 3.1.2 Introduction ............................................................................................................................... 6 SAP XI Architecture ................................................................................................................. 6
WEB SERVICE TO RFC SCENARIO .................................................................................................. 9 4.1 INTERFACE LANDSCAPE ...................................................................................................................... 9 4.2 STEP BY STEP APPROACH FOR WEB SERVICE TO RFC SCENARIO...................................................... 10 4.2.1 System Landscape Directory .................................................................................................... 10 4.2.2 Integration Repository .............................................................................................................. 10 4.2.3 Integration Directory................................................................................................................ 13 4.2.4 Sender System ........................................................................................................................... 15 4.2.5 Receiver system......................................................................................................................... 15 4.2.6 Unit Testing .............................................................................................................................. 15
HTML TO WEB SERVICE SCENARIO ............................................................................................ 16 5.1 INTERFACE LANDSCAPE .................................................................................................................... 16 5.2 STEP BY STEP APPROACH FOR HTML TO WEB SERVICE SCENARIO .................................................. 16 5.2.1 System Landscape Directory .................................................................................................... 16 5.2.2 Integration Repository .............................................................................................................. 16 5.2.3 Integration Directory................................................................................................................ 19 5.2.4 Sender Service .......................................................................................................................... 21 5.2.5 Receiver Service........................................................................................................................ 22 5.2.6 Unit Testing .............................................................................................................................. 22
FILE TO DATABASE USING BPM .................................................................................................... 23 6.1 INTERFACE LANDSCAPE .................................................................................................................... 23 6.2 STEP BY STEP APPROACH FOR FILE TO DATABASE SCENARIO USING BPM ....................................... 23 6.2.1 System Landscape Directory .................................................................................................... 23 6.2.2 Integration Repository .............................................................................................................. 24 6.2.3 Integration Directory................................................................................................................ 25 6.2.4 Unit Testing .............................................................................................................................. 25
1 DECLARATION
It is hereby declared that this document is based on the development done for the project, details of which have been mentioned below. To the best of our knowledge, this document does not contain any material that infringes upon the copyrights of any other individual or organization including the customers of Infosys. Project Details Project Code Description Client Architect : : : : SYNGENTA XI POC This was the SAP XI PoC that was demonstarted to the Client SYNGENTA Switzerland Manish Agarwal & Paparao K V
: : : : :
BPNAEAIE BPNGL (Natural Gas Liquids) British Pertoleum USA Aditya Pratap Singh Manish Agarwal
2 INTRODUCTION
2.1 Overview
For the first time we did a PoC in SAP XI for client SYNGENTA. In this we have successfully demonstrated five complex scenarios along with maturity assessment and product capabilities. The OneNGL (British Petroleum) USA, happened to be the first middleware implementation project in SAP XI, which integrates the core SAP system to a number of third party legacy systems spread across different networks.
3 SAP XI LANDSCAPE
3.1.1 Introduction
SAP is the core system and it interacts with a host of external systems via the Middleware layer SAP Exchange Infrastructure (SAP XI).
SAP XI is much more than a simple Integration tool. It can execute business processes across business applications. It is used for integrating SAP and non-SAP applications, for A2A and B2B integration, for asynchronous and synchronous communication and cross component business process management. SAP XI is open and flexible and is based on open standards like XML (XSD), WSDL, BPEL and SOAP messaging for describing objects and communicating with other systems.
Integration Builder
Integration Server
Business Process Engine
Integration Repository (IR) Integration Directory (ID)
Adapter Engine
The main components of SAP XI are > Integration Builder > Integration Repository (Designer for development) > Integration Directory (Configuration) > Integration Server (Runtime Component)
> Integration Engine > Business Process Engine > Adapter Engine > Central Monitoring Tool > System Landscape Directory
Message Flow:
XI connects various applications via XML messaging using SOAP protocol. Messages received at the IS are processed through a defined series of steps called Pipeline Services.
The different pipeline steps are; Receiver Identification: Determine which systems should participate in an exchange with the incoming message. Interface Determination: For each receiver system determine which interfaces should receive a message. Message Branch: If multiple receivers are found, XI will instantiate a new message for each receiver. Request Message Mapping: Call the mapping program to transform the message structure to the receiver format. Technical Routing: Bind a specific destination and protocol to the message. Call Adapter: Send the transformed message to the adapter or proxy. Interfaces are classified based on Direction with respect to the SAP XI system. Outbound: All interfaces for which data in the form of files or IDOC or RFC messages is received by the middleware from the external systems are considered to be outbound interfaces. Inbound: Message going out of SAP XI system to external systems in the form of files, IDOC or RFC is considered as inbound message.
Version 1.12 INFOSYS Technologies Ltd Page 7 of 36
Messages coming into XI are called as inbound message and going out of XI is called as outbound message. Adapter Engine:
SAP XI adapters are based on Java connector architecture (JCA). Adapters after receiving message converts it into XML format and send it to IS. In the Integration Server the message is converted into the target structure after applying the necessary business logic. The receiver adapter will convert the XML message into application specific message format. SAP applications based on WAS 6.20 or above can directly communicate with XI using proxies. A proxy is a fragment of code in ABAP or Java which converts incoming message into XML and vice versa. Also establishes connectivity with XI Integration server. So proxies are adapter less communication with XI. Partner Connectivity Kit: Enabling smaller companies and subsidiaries to exchange XML documents with their business partners/ headquarters SAP XI infrastructure. PCK is deployed at the client side and natively communicates with SAP XI using XI message protocol.
SAP R/3
XI
EPSILON system is sending data to TIBCO. After processing the data TIBCO sends the data to SAP R/3 system using XI. The communication between TIBCO and XI is though Web Service call. So XI exposes an interface as a Web service which becomes a service provider. TIBCO makes a Web service call to the XI service provider. After processing the message XI makes an RFC call to R/3 system. SAP R/3 system sends a response back to XI which in turn is sent back to TIBCO web service client.
FinancialRequest_dt
Structure
Header OrderID DateofCreation Company BodyItem Type Quantity Price DeliveryDate Element Element Element Element Element String String String String String
Category
Element Element Element
Type
String
Occurrence
1:1 1:1 1:1 1:1 1:N 0:1 0:1 0:1 0:1
FinancialResponse_dt
Structure
Return item OrderID Status
Category
Element Element Element Element
Type
String String String String
Occurrence
1:1 0:N 0:1 0:1
Step4 Under Message Types right click and create FinancialRequest_mt and select the data type as FinancialRequest_dt and FinancialResponse_mt and select the data type as FinancialResponse_dt. Save it. Step5 Under Message Interfaces right click and create Financial_SYNC_OB. In this select category as Outbound and Mode as Synchronous. In this select Output message as FinancialRequest_mt and Input message as FinancialResponse_mt. Step6 While downloading the software component from SLD select the option Import of RFC and IDoc Interfaces from SAP Systems Permitted.. Under this software component and under Imported Objects RFCs and IDocs can be imported. Right click on it which will lunch a wizard in which provide the details to connect to the R/3 system and import the RFC ZBAPI_EPSILON_Finance. It has the below structure; ZBAPI_EPSILON_Finance
Structure
S_EPHDR
SAPTDID DSTDAT COMCOD
Category
Element Element Element Element Element TYPE QUANTITY PRICE MODDAT Element Element Element Element
Type
String String Date String String String String String Date
Occurrence
1:1 1:1 1:1 1:1 1:N 0:1 0:1 0:1 0:1
I_EPITM
ZBAPI_EPSILON_Finance.Response
Structure
I_RETURN Item TYPE ID NUMBER MESSAGE LOG_NO LOG_MSG_NO
Category
Element Element Element Element Element Element Element Element
Type
Occurrence
0:1 0:N
Step7 Under Mapping Objects-> Message Mappings right click and create MM_FinancialRequest_mt_To_ ZBAPI_EPSILON_Finance. Select the messages tab and select FinancialRequest_mt under Source Messages and ZBAPI_EPSILON_Finance Under Target Messages. Under the Design tab do the following mapping.
MM_FinancialRequest_mt_To_ ZBAPI_EPSILON_Finance
Source Message Type Element Target Message Type Element Functions to be used
FinancialRequest_mt
Header OrderID DateofCreation Company BodyItem Type Quantity Price DeliveryDate
ZBAPI_EPSILON_Finance
S_EPHDR
SAPTDID DSTDAT COMCOD
I_EPITM
TYPE QUANTITY PRICE MODDAT
Create another message mapping MM_ZBAPI_EPSILON_FinanceResponse_To_ FinancialResponse_mt. Select ZBAPI_EPSILON_Finance.Response as the source message and FinancialResponse_mt as the target message. MM_ZBAPI_EPSILON_FinanceResponse_To_FinancialResponse_mt Source Message Type Element Target Message Type Element Functions to be used FinancialRequest_mt
Return item OrderID Status
ZBAPI_EPSILON_Finance
I_RETURN Item ID MESSAGE
Step8 Under Interface Mappings create IM_Financial_SYNC_OB_TO_ZBAPI_EPSILON_Finance and select Source Interface as Financial_SYNC_OB and target interface as ZBAPI_EPSILON_Finance and request mapping as MM_FinancialRequest_mt_To_ZBAPI_EPSILON_Finance and response mapping as MM_ZBAPI_EPSILON_FinanceResponse_To_FinancialResponse_mt
Step5 Create sender agreement with following parameters; Sender Service: EPSILON Interface: Financial_SYNC_OB Namespace: http://infosys.com/demo/webservice_scenario Receiver Service: IDESDEV_600 Sender Communication Channel: SOAP_SND_EPSILON_Financial_001 Create receiver agreement with following parameters; Sender Service: EPSILON Receiver Service: IDESDEV_600
Interface: ZBAPI_EPSILON_Finance Namespace: http://infosys.com/demo/IDESDEV_600 Receiver Communication Channel: RFC_RCV_SAP_001 Step6 Create Interface Determination and use the below objects; Sender Service: EPSILON Interface: Financial_SYNC_OB Namespace: http://infosys.com/demo/webservice_scenario Receiver Service: IDESDEV_600 and select Inbound Interface ZBAPI_EPSILON_Finance and Interface Mapping as IM_Financial_SYNC_OB_TO_ZBAPI_EPSILON_Finance. Step7 Create Receiver Determination and use the below objects; Sender Service: EPSILON Interface: Financial_SYNC_OB Namespace: http://infosys.com/demo/webservice_scenario Receiver Party: * Service: * and in Configured Receivers select service as IDESDEV_600. Save it. Step8 From the menu bar select Tools-> Define Web Service >Under specify URL select propose URL. This will give http://blrkecsaptst2:8000/sap/xi/engine?type=entry. Basically this the URL of the XI server. >Select the interface Financial_SYNC_OB. >Specify the sender Service: EPSILON Interface: Financial_SYNC_OB Namespace: http://infosys.com/demo/webservice_scenario Save it and it will generate the WSDL file.
HTML Request
Web Service
HTML Client
HTML Response
XI
This scenario can be modified in a number of ways using complex BPM to meet the real life requirements like alerting support issues by SMS. But for learning prospective we will configure it to see how data can be sent from HTML to web service and get the response back and send SMS from the web service. Here HTML client sends data through XI to make a Web Service call. So XI acts as a web service client on behalf of HTML client and makes the web service call. This web service will send a SMS based on some condition/business logic to the concerned people. Web service will also send a response back to HTML client about the status of the call.
http://infosys.com/demo/SMSWebService for SMSWebService_BS and save it. Step3 Under namespace http://infosys.com/demo/HTML Interface Objects-> Data Types right click and create SupportRequest_dt and SupportResponse_dt. It has the below structure;
SupportRequest_dt
Structure
Header ReceiptantMobileNumber FromEmailAddress BodyItem Message DeliveryDate
Category
Element Element Element Element Element Element
Type
String String
Occurrence
1:1 1:1 1:1 1:N
String String
0:1 0:1
SupportResponse_dt
Structure MessageStatus
FromEmailAddress
ReceiptantMobileNumber Element Element Element Element Element String String String String String 0:1 0:1 0:1 0:1 0:1
Category
Type
Occurrence
Under the namespace http://infosys.com/demo/HTML, right click on Message Types and create SupportRequest_mt and select the data type as SupportRequest_dt and SupportResponse_mt and select the data type as SupportResponse_dt. Save it. Step5 Under Message Interfaces right click and create SupportMessage_SYNC_OB. In this select category as Outbound and Mode as Synchronous. In this select Output message as SupportRequest_mt and Input message as SupportResponse_mt. Step6 Under namespace http://infosys.com/demo/SMSWebService, Interface Objects-> External Definitions right click and create an object called SMSWebService. In the File, browse and select the WSDL file. PFA of the file here of you can download it from http://www.webservicex.net/SendSMS.asmx?WSDL
SendSMS.asmx
Step7 Create Message Interface called SendSMSToIndia_SYNC_IB. In this select category as Inbound and Mode as Synchronous. In this select Input message as SendSMSToIndiaSoapIn and Output message as SendSMSToIndiaSoapOut.
Step8 Under namespace http://infosys.com/demo/HTML, Mapping Objects-> Message Mappings right click and create MM_SupportRequest_mt_To_ SendSMSToIndiaSoapIn. Select the messages tab and select SupportRequest_mt under Source Messages and SendSMSToIndiaSoapIn Under Target Messages. Under the Design tab do the following mapping.
MM_SupportRequest_mt_To_ SendSMSToIndiaSoapIn
Source Message Type Element Target Message Type Element Functions to be used
SupportRequest_mt
Header ReceiptantMobileNumber FromEmailAddress BodyItem Message
SendSMSToIndia
MobileNumber FromEmailAddress
Message
Use concat with delimiter as on: For concating Message and DeliveryDate and map it to Message on the target side.
DeliveryDate
Create another message mapping MM_SendSMSToIndiaSoapOut_To_SupportResponse_mt. Select SendSMSToIndiaSoapOut as the source message and SupportResponse_mt as the target message.
MM_SendSMSToIndiaSoapOut_To_SupportResponse_mt
Source Message Type Element Target Message Type Element Functions to be used
SendSMSToIndiaReponse SendSMSToIndiaResult FromEmailAddress MobileNumber Provider State Status SupportResponse_mt MessageStatus
FromEmailAddress
ReceiptantMobileNumber
Step8 Under Interface Mappings create IM_SupportMessage_SYNC_OB_To_SendSMSToIndia_SYNC_IB and select Source Interface as SupportMessage_SYNC_OB and target interface as SendSMSToIndia_SYNC_IB and request mapping as MM_SupportRequest_mt_To_ SendSMSToIndiaSoapIn and response mapping as MM_SendSMSToIndiaSoapOut_To_SupportResponse_mt
In the configure proxy option give proper host and port. In the example I have given Bangalore DC host and port. Give your Infosys login username and password. Step4 Create receiver agreement with following parameters; Sender Service: HTML_Service Receiver
Version 1.12 INFOSYS Technologies Ltd Page 20 of 36
Service: SMS_Service Interface: SendSMSToIndia_SYNC_IB Namespace: http://infosys.com/demo/SMSWebService Receiver Communication Channel: SOAP_RCV_SendSMS_001 Step5 Create Interface Determination and use the below objects; Sender Service: HTML_Service Interface: SupportMessage_SYNC_OB Namespace: http://infosys.com/demo/HTML Receiver Service: SMS_Service and select Inbound Interface SendSMSToIndia_SYNC_IB and Interface Mapping as IM_SupportMessage_SYNC_OB_To_SendSMSToIndia_SYNC_IB. Step6 Create Receiver Determination and use the below objects; Sender Service: HTML_Service Interface: SupportMessage_SYNC_OB Namespace: http://infosys.com/demo/HTML Receiver Party: * Service: * and in Configured Receivers select service as SMS_Service. Save it.
XI_httpClient.html
Give correct Sender Service, Sender Interface and Sender Namespace. And XI username and password to connect to XI server. In the payload put this structure; ----------------------------------------------------------------------------------------------------<?xml version="1.0" encoding="UTF-8"?> <ns:SupportRequest_mt xmlns:ns="http://infosys.com/demo/HTML"> <Header> <ReceiptantMobileNumber>9845469318</ReceiptantMobileNumber> <FromEmailAddress>mukeshlal_parida@infosys.com</FromEmailAddress> </Header> <BodyItem> <Message>Hi, Please solve the issue. The server is down.Restart it.</Message> <DeliveryDate>25/10/2005</DeliveryDate> </BodyItem> </ns:SupportRequest_mt>
FILE System
Business Data
Dir A
Status Report
XI
Database
Status Report
Dir B
In this scenario we will receive business data in flat files which needs to be uploaded into database using stored procedure. After uploading the stored proc will return back the status of the execution like the number of records update or inserted in the table. This status data will be written in a file. Message Flow: Flat File containing business data will be received in a particular directory. XI polls that particular directory every 15 min. Flat file structure is converted into database stored procedure structure. Data is sent from XI to database using JDBC adapter where the Proc is executed. After uploading or inserting data into table stored proc returns the status to XI. This status is converted back to flat file structure and written in a particular directory called Status. This is basically a Async-Sync communication. So we have to use BPM here to capture the data coming back from stored proc to XI and writing it to a file.
6.2 Step by Step Approach for File to Database Scenario using BPM
To configure the File to Database scenario using BPM for the above requirement follow the following steps
CustomerDetails_dt Structure
CustomerDetails CustomerID Name Address HouseNo Street City PhoneNo QueryDetails
Category
Complex Type Element Element Element Element Element Element Element Element
Type
String String String String String String String String
Occurrence
1:N 1:1 1:1 1:1 1:1 1:1 1:1 1:1 1:1
DBCustomer_dt Structure
Statement dbStmt action table CustomerID isInput isOutput type Name isInput isOutput type HouseNo isInput
Category
Element Element Attribute Element Element Attribute Attribute Attribute Element Attribute Attribute Attribute Element Attribute
Type
String String String String String String String String String String String String String String
Occurrence
1:1 1:N optional 1:1 1:1 optional optional optional 1:1 optional optional optional 1:1 optional
isOutput type Street isInput isOutput type City isInput isOutput type PhoneNo isInput isOutput type QueryDetails isInput isOutput type NoRowsInserted isInput isOutput type NoRowsUpdated isInput isOutput type
Attribute Attribute Element Attribute Attribute Attribute Element Attribute Attribute Attribute Element Attribute Attribute Attribute Element Attribute Attribute Attribute Element Attribute Attribute Attribute Element Attribute Attribute Attribute
String String String String String String String String String String String String String String String String String String String String String String String String String String
optional optional 1:1 optional optional optional 1:1 optional optional optional 1:1 optional optional optional 1:1 optional optional optional 0:1 optional optional optional 0:1 optional optional optional
DBCustomer_dt_response Structure
Statement_response NoRowsInserted NoOfRowsUpdated
Category
Element Element Element
Type
Integer Integer
Occurrence
1:1 0:1 0:1
DBStatus_dt Structure
NumberOfRowsInserted NumberOfRowsUpdated
Category
Element Element
Type
Integer Integer
Occurrence
0:1 0:1
Step4 Under Message Types right click and create message type CustomerDetails_mt, DBCustomer_mt, DBCustomer_mt_response and DBStatus_mt selecting the data types CustomerDetails_dt, DBCustomer_dt, DBCustomer_dt_response and DBStatus_dt respectively.
Step5 Under Message Interfaces right click and create message interfaces of following types; Message Interface CustomerDetails_Async_OB CustomerDetails_Async_ABS DBCustomer_Sync_IB DBCustomer_Sync_ABS DBCustomerProc_req_ABS DBCustomerProc_res_ABS DBStatus_Async_IB DBStatus_Async_ABS Step6 Under Mapping Objects-> Message Mappings right click and create MM_CustomerDetails_mt_To_DBCustomer_mt (source as CustomerDetails_mt and target as DBCustomer_mt) and MM_DBCustomer_mt_response_To_DBStatus_mt (source as DBCustomer_mt_response and target as DBStatus_mt). Message Types CustomerDetails_mt CustomerDetails_mt DBCustomer_mt, DBCustomer_mt_response DBCustomer_mt, DBCustomer_mt_response DBCustomer_mt DBCustomer_mt_response DBStatus_mt DBStatus_mt Attributes Async, Outbound Async, Abstract Sync, Inbound Sync, Abstract Async, Abstract Async, Abstract Async, Inbound Async, Abstract
MM_CustomerDetails_mt_To_DBCustomer_mt
Source Message Type Element Target Message Type Element Functions to be used
Statement CustomerDetails dbStmt action table CustomerID CustomerID isInput isOutput type Name Name isInput isOutput type HouseNo HouseNo isInput isOutput type Constant=CHAR Constant=TRUE Constant=CHAR Constant=TRUE Constant=CHAR Constant=TRUE Constant=EXECUTE Constant = Give Stored Procedure Name
Street
City
PhoneNo
QueryDetails
QueryDetails isInput isOutput type NoRowsInserted isInput isOutput type NoRowsUpdated isInput isOutput type Constant=TRUE Constant=NUMERIC Constant=TRUE Constant=NUMERIC Constant=UpdateCount Constant=CHAR Constant=InsertCount Constant=TRUE
MM_DBCustomer_mt_response_To_DBStatus_mt
Source Message Type Element
Statement_response NoRowsInserted NoOfRowsUpdated NumberOfRowsInserted NumberOfRowsUpdated
Functions to be used
Count Count
Step7 Under Interface Mappings create IM_CustomerDetails_Async_ABS_TO_DBCustomerProc_req_ABS and select Source Interface as CustomerDetails_Async_ABS and target interface as DBCustomerProc_req_ABS and request mapping as MM_CustomerDetails_mt_To_DBCustomer_mt. IM_DBCustomerProc_res_ABS_TO_DBStatus_Async_ABS and select Source Interface as DBCustomerProc_res_ABS and target interface as DBStatus_Async_ABS and request mapping as MM_DBCustomer_mt_response_To_DBStatus_mt.
Step8 Under namespace http://infosys.com/demo/FILE_scenario create Integration Process FILE_TO_STOREDPROC_BPM. The BPM looks like
First of all define the BPM flow and then configure it. The steps in the above BPM are Receive, Transform, Send, Transform and Send. In the container area define variables as Name CustomerDetails Category Abstract Type CustomerDetails_Async_ABS
Select the Receive step to configure it. In its properties area select Mode as Asynchronous, Tick the start process and Message as CustomerDetails. In the Transform1 step for Interface mapping select IM_CustomerDetails_Async_ABS_TO_DBCustomerProc_req_ABS and Source Message as CustomerDetails and Target Message as ProcReq. In the Send1 step select mode as Synchronous. In synchronous select DBCustomer_Sync_IB. Request message as DBCustomerProc_req_ABS, Response Message as DBCustomerProc_res_ABS. In the Transform2 step for Interface mapping select IM_DBCustomerProc_res_ABS_TO_DBStatus_Async_ABS and Source Message as ProcRes and Target Message as Status. In the Send2 step select mode as Asynchronous and message as Status.
FILE_RCV_STATUS_CRM_001
Step6 Create sender agreement with following parameters; Sender Service: FILE_DEV Interface: CustomerDetails_Async_OB Namespace: http://infosys.com/demo/FILE_scenario Receiver Service: FILE_TO_STOREDPROC_BPM Sender Communication Channel: FILE_SND_CRM_001
We have to create two receiver agreements. One for JDBC adapter and other for FILE adapter used for creating status file. Create receiver agreement with following parameters; Sender Service: FILE_TO_STOREDPROC_BPM Receiver Service: DB_DEV Interface: DBCustomer_Sync_IB Namespace: http://infosys.com/demo/DB_scenario Receiver Communication Channel: JDBC_RCV_CRM_001 Create receiver agreement with following parameters; Sender Service: FILE_TO_STOREDPROC_BPM Receiver Service: FILE_DEV Interface: DBStatus_Async_IB Namespace: http://infosys.com/demo/FILE_scenario Receiver Communication Channel: FILE_RCV_STATUS_CRM_001 Step7 In this case we will have three interface determinations. > Create Interface Determination and use the below objects; Sender Service: FILE_DEV Interface: CustomerDetails_Async_OB Namespace: http://infosys.com/demo/FILE_scenario Receiver Service: DB_DEV Select Inbound as Interface CustomerDetails_Async_ABS and there will be no Interface Mapping. >Create Interface Determination and use the below objects; Sender Service: FILE_TO_STOREDPROC_BPM Interface: DBCustomer_Sync_ABS Namespace: http://infosys.com/demo/FILE_scenario Receiver Service: DB_DEV Select Inbound Interface as DBCustomer_Sync_IB and there will be no Interface Mapping. >Create Interface Determination and use the below objects; Sender Service: FILE_TO_STOREDPROC_BPM Interface: DBStatus_Async_ABS Namespace: http://infosys.com/demo/FILE_scenario Receiver Service: FILE_DEV Select Inbound Interface as DBStatus_Async_IB and there will be no Interface Mapping.
Step8 We have to create three Receiver Determinations. >Create Receiver Determination and use the below objects; Sender Service: FILE_DEV Interface: CustomerDetails_Async_OB Namespace: http://infosys.com/demo/FILE_scenario Receiver Party: * Service: * Select service as FILE_TO_STOREDPROC_BPM in Configured Receivers. Save it. >Create Receiver Determination and use the below objects; Sender Service: FILE_TO_STOREDPROC_BPM Interface: DBCustomer_Sync_ABS Namespace: http://infosys.com/demo/FILE_scenario Receiver Party: * Service: * Select service as DB_DEV in Configured Receivers. Save it. >Create Receiver Determination and use the below objects; Sender Service: FILE_TO_STOREDPROC_BPM Interface: DBStatus_Async_ABS Namespace: http://infosys.com/demo/FILE_scenario Receiver Party: * Service: * Select service as FILE_DEV in Configured Receivers. Save it.
PROCEDURE [CustomerProc] [char](30), [char](30), [char](30), [char](30), [char](30), [char](10), [char](100) [numeric](4) OUTPUT ,
@NoRowsUpdated )
[numeric](4) OUTPUT
AS If (Select CustomerID from CustomerDetails where CustomerID=@CustomerID) IS NULL BEGIN INSERT INTO [Northwind].[dbo].[CustomerDetails] ( [CustomerID], [Name], [HouseNo], [Street], [City], [PhoneNo] [QueryDetails]) VALUES (@CustomerID, @Name, @HouseNo, @Street, @City, @PhoneNo @QueryDetails) Select @ NoRowsInserted = @@ROWCOUNT END ELSE BEGIN UPDATE [Northwind].[dbo].[CustomerDetails] SET [CustomerID]=@CustomerID, [Name]=@CustomerName, [HouseNo]=@HouseNo, [Street]=@Street, [City]=@City, [QueryDetails]=@ QueryDetails WHERE [CustomerID]=@CustomerID Select @ NoRowsUpdated = @@ROWCOUNT END GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
NOTE:The above scenario can be modified a little bit using action as UPDATE_INSERT. In this case we dont have to use stored procedure. If the records are present in the table then this will be updated or it will be inserted. In response we will get the number of records inserted or updated which we will map to the status file structure. So in the above scenario use the below mentioned target request and response structure. Everything else will remain as usual and we dont have to use stored proc.
DBCustomer_dt Structure
root Statement dbTable action table access CustomerID Name HouseNo Street City PhoneNo QueryDetails Key CustomerID
Category
Element Element Element Attribute Element Element Element Element Element Element Element Element Element Element Element
Type
Occurrence
1:1 1:1
String String
String
1:1
During mapping in action use constant=UPDATE_INSERT, in table give the table name. The response from the database will look like
DBCustomer_dt_response Structure
root_response update_count insert_count
Category
Element Element Element
Type
Integer Integer
Occurrence
1:1 0:1 0:1
P.S: If any difficulties are being faced while configuring the above scenarios please contact me Mukeshlal_parida@infosys.com and Kannan_Kailas@infosys.com.