on 11-26-2013 9:43 AM
Hi Experts ,
I have configured 1 sender and 2 receiver channels(IDOC and RFC) with same business component and when I am sending message I am getting the below Error in MONI:
At least two of the sub messages deal with different Adapter Engine types. Check the channels.
Can any body suggest.
Hi Rajiv
The problem is happening because you have used two differernt types of adapter engine.
for IDOC u have used 'Integration Server'
for RFC u have used 'Central adapter engine'
The problem will be solved if you create two operation mapping and two message mapping in ESR.
In the integration directory, for interface determination use condition as below
if cond == 1 then call OM1 for IDOC
if cond == 2 then call OM2 for RFC
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Indrajit,
I did the same thing by creating two OP and two MM, but it is calling one mapping only,
for example I am Passing two records
Case1
------------
First record to trigger IDOC
Second record to trigger RFC
but it always calling IDOC trigget and ignoring RFC
in another scenrio:
Case 2
-----------
First record RFC trigger
Second record RFC trigget
in this it is calling RFC two times and working as expected.
Case 3
------
First record IDOC trigger
Second record IDOC trigger
in this it is calling IDOC two times and working as expected
Hi Indrjit,
Conditions are maintained correctly,here I am attaching payload and condition:
Payload:
----------
<?xml version="1.0" encoding="utf-8"?>
<ns:master xmlns:ns="urn:materialmaster">
<Recordset>
<Rec_Type>M</Rec_Type>
<CRUD>U</CRUD>
<Matcode>901015</Matcode>
<Ind>Z</Ind>
<Type>ZEIS</Type>
<Plant>1000</Plant>
<Sorg>1000</Sorg>
<Dchannel>10</Dchannel>
<Desc>This is Test from PI</Desc>
<Uom>EA</Uom>
<Taxclass>S</Taxclass>
<PC>91000</PC>
<GLAssignment>Z1</GLAssignment>
<GICG>LEIS</GICG>
<PG>101</PG>
<OMN>12345</OMN>
<ItemCat>LEIS</ItemCat>
<DPlant>1000</DPlant>
<Channel>Z99</Channel>
<DType>Z99</DType>
<Supdate>1</Supdate>
</Recordset>]
<Recordset>
<Rec_Type>M1</Rec_Type>
<CRUD>U</CRUD>
<Matcode>901015</Matcode>
<Ind>Z</Ind>
<Type>ZEIS</Type>
<Plant>1000</Plant>
<Sorg>1000</Sorg>
<Dchannel>10</Dchannel>
<Desc>This is Test from PI</Desc>
<Uom>EA</Uom>
<Taxclass>S</Taxclass>
<PC>91000</PC>
<GLAssignment>Z1</GLAssignment>
<GICG>LEIS</GICG>
<PG>101</PG>
<OMN>12345</OMN>
<ItemCat>LEIS</ItemCat>
<DPlant>1000</DPlant>
<Channel>Z99</Channel>
<DType>Z99</DType>
<Supdate>1</Supdate>
</Recordset>
</ns:master>
condition
----------------
(/p1:master/Recordset/Rec_Type = M) -- Trigger IDOC
(/p1:master/Recordset/Rec_Type ≠ M) -- Trigger RFC
Hi Rajiv,
I think your problem can solved by ERD,
Check below thread that may help:
http://scn.sap.com/thread/3286784
Regards
Gagan
Hi Rajiv,
I have one more doubt on your logic?
1.How you trigger multiple idoc did you change the IDOC occurance in mapping after downloading it to local and upload as extenal defination
2. i have another doubt in your condition of "Rec_Type=M" becaue it may or may not check for second occurance of Rec_Type that is why it may fail
(/p1:master/Recordset/Rec_Type = M)
for that you can go for mult-mapping rather then define condtion in ID(interface determination)
define in itself mapping and create require structure
Or other option is define a parameter Rec_Type with spaical value which define it have
ex:
RI for RFC & IDOC both
R for only RFC
I for only IDOC
and in interface determination put condtion like
if Rec_Type = RI or Rec_Type=R then call RFC mapping
if RecType = RI or Rec_Type= I then call IDOC mapping
Regards
Gagan
Hi,
As you want to update a Ztable in ECC for found mapping errors, AND to create IDoc in ECC (also!!).
May I suggest you this flow:
Other solution:
Does your control are only on mandatory data ?
if yes, why you don't this mandatory fields as mandatory in your souce file ? (flat file or XML)
regards.
Mickael
Hi Mackael,
Thank you for your response, it seems option 1 looks better over options 2.
>>>Does your control are only on mandatory data ?
>>>if yes, why you don't this mandatory fields as mandatory in your souce file ? (flat file or XML)
Yes control is only on mandatory data , if I use mandatory option on source file it will reject whole file if any one record fails, I need to skip error records and process the correct one.
In your option 1 do I need to createZ custom IDOC with custom process code and RFC fucntion module linked with it.
yes, usually we have to have a ZFunctionModule (ZFM) beside a Zidoc type.
in your case, as it's to have only error... well this error info + relevant business data could be put in your Zidoc itself, and maybe you can avoid to have abap code inside this ZFM... maybe...
what you can do it's (in addition to your N std idocs) to create only ONE Zidoc per file with ALL erroneous data (so several segments per rejected lines), and then in ECC, inside this ZFM of this Zidoc, you can send directly your email with all the collected errors (all segment). So no need to have Ztable !!
is that better ? for me, yes.
Note: do not forget also to send in this ZIdoc the source filename (easy to get from DynamicConfiguration).
regards
Mickael
Hi Rajiv,
Another solution is to create a Z RFC to wrap the IDOC in the ECC endpoint.
Regards.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Rajiv,
Mickael is right. You have to use BPM for your scenario or use an RFC Lookup in mapping to trigger the RFC scenario (not recommended).
Regards,
Mark
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
not sure you can achieve it by a simple multi-mapping, because IDoc is asynchronous, whereas RFC is usually synchronous as it return either Exception or a status or a BapiReturn table...
so in my mind, in addition to having different adapter type, you have also different process mode Asynch / Synch...Not possible for a multi-mapping in my mind...
regards.
Mickael
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
91 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.