on 01-02-2013 6:13 AM
Hi Experts,
I already created a thread for multi-mapping - inbound with two business service,but i didint get exact solution ; http://scn.sap.com/message/13746678#13746678 , so i am trying a different scenario.
Sender channel (business service) - Oracle DB , Adapter Sender JDBC
Two Receiver channel's (business system): ECC , Adapter : XI(proxy) & JDBC
Data will be picked from DB and the record should be splitted based on id=1 or 2
if id=1 - data should be sent to ECC via XI(proxy)
if id=2 - data should be sent to DB using JDBC adapter which has been configured in business system.
Note: If i send 1 record , it is properly updating in ECC or DB based up on id=1 or 2.
If i send 2 record with id=1 , those 2 records sent to ECC , likewise if i send 2 record with id=2, it is written to DB.
But if i send 2 records , which has id=1 for 1st record and id=2 for 2nd record. it throws below error, In Technical Routing.and no records sent to ECC or DB.
<SAP:Stack>At least two of the sub messages deal with different Adapter Engine types. Check the channels</SAP:Stack>
Please help me on this issue.
Thanks,
Baskar
Hi,
Check your mapping...whether it generating the expected results or not...
I tried the above scenario and it works fine for me...but i have used both java adapters only..
May you need to specify more details like how the ID objects have been configured ?
HTH
Rajesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Rajesh,
if i use java adapters, it works fine for me too. when i use XI and JDBC i am getting error.
My scenario is to split records based on some conditions and valid records should go to ECC and invalid records should go to oracle DB.
Is there any other option to achieve this scenario?
Thanks,
Baskar
Hi Baskar,
It would be better if you change the design as below.
1)Use ERD
and use the below sample code to open respective BC/BS .
Adv:By using ERD you can handle scenarios like (when all the records are related to ECC or when all the records are related to d/b)
int ABAPCount =0;
int OracleCount =0;
for(int i=0;i< ID.length;i++)
{
if(ID[i].equals("1")){
ABAPCount++;
}
else if(ID[i].equals("2")){
PICount++;
}
}
if(ABAPCount !=0){
result.addValue("BS_ECC");
}
if(OracleCount !=0){
result.addValue("BC_Oracle");
}
Now use two mappings 1 for JDBC-->JDBC and other for JDBC -->ECC.
In mappings distinguish the records as below
Regards
Venkat
Hi Venkat,
i have created a below udf. and tried ERD. now i am getting "Missing or Invalid receiver agreement"
int x = 0;
int y = 0;
for(int i = 0;i < var1; i++)
{
if(var1 == 1){
x = x + 1;
}
else if(var1 == 2){
y = y + 1;
}
}
if(x !=0){
//result.addValue("SAMPLE_TEST");
return "SAMPLE_TEST";
}
if(y !=0){
//result.addValue("SAMPLE_TEST_1");
return "SAMPLE_TEST_1";
}
return "false";
=========
help me on this please.
Thanks,
Baskar
Hi,
You can achieve your scenario without multi-mapping as well. Use normal split scenario with two mappings and use conditions either in receiver determination/interface determination.
Regards,
Praveen
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
did you specify the condition id=1 for Receiver ECC and id=2 for Receiver JDBC in condition editor of Receiver Determination either in the form of XPATH expression or Context Objects?
Also did you perform "Test Configuration" in ID for both cases?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
As per the below thread, Non-Java Stack adapters like IDOC, HTTP and ABAP Proxy will not supported.
Gabriel is right. You can check for my blog if PI version <= 7.0 to post message to ECC proxy via SOAP adapter with HTTP protocol: http://scn.sap.com/community/pi-and-soa-middleware/blog/2010/01/14/calling-abap-proxies-using-soap-a...
if PI version >= 7.1 (Enhancement Package 1 with PI 7.1), you can use SOAP adapter with XI3.0 protocol to send message directly to ECC proxy instead of XI adapter.
Regards,
Praveen
Message was edited by: Praveen Gujjeti
Hi Baskar,
It seems your PI installation has more than one Adapter Engine. For receiver communication channels, make sure that same Adapter engine is selected as adapter type in Integration directory configuration for these communication channels.
Regards,
Praveen
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
82 | |
10 | |
10 | |
9 | |
6 | |
6 | |
5 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.