cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with Enhanced Receiver Deterrmination

Former Member
0 Kudos

Hi,

I am facing an issue with the Enhanced Receiver Deterrmination (ERD) at runtime for an EOIO scenario. When a message gets split for the defferent service it fails complaining about mapping. If I retrigger it gets delivered.

However if I provide a queue filter this failure does not occur even if logically that queue filter definition does not make any sense to the scenario. for eg: The filter is maintained for a different scenario say A, but scenario B which has ERD will work. I am well confused, shoot your questions pls. Please help in case you have faced similar issue. We are on 07s SP17.

regards

Unni

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Unni,

Can you clarify if you are using Extended Receiver determination or Enhanced Interface determination

I assume you are facing problems while extended receiver determination routing.

Are you sure that you have provided all the objects required for each of the services?

Please check if u have created the Recvr determination, Interface determination, sender / recvr agreements for each of the services.

also check if the display is definitely generating the node.

Can you provide the condition you gave in there? and exact error message you are getting? is it something like split messages created no mapping?

Thanks,

Venkat.

Edited by: Venkat Anusuri on Aug 5, 2009 10:32 AM

Former Member
0 Kudos

Hi Venkat,

You are correct, I use extended Receiver determination. As I have mentioned earlier, the scenario works well if I specify the queue filter, so all related objects exists.

Basically the split message with out a queue filter is poinitng back to the source message. But if I re-trigger from moni it goes well. With a queue filter, it works without a cause.

See the sample message for error

- <SAP:Receiver>

<SAP:Party agency="http://sap.com/xi/XI" scheme="XIParty" />

<SAP:Service>BS_ENVISION_SAP_EMERG</SAP:Service>

<SAP:Interface namespace="urn:sap-com:document:sap:rfc:functions">ZWM_INBOUND_NOTIFICATION_EMERG</SAP:Interface>

- <SAP:Mapping notRequired="M">

<SAP:ObjectId>oPLLbgxJOWimAK6rdZb/MA==</SAP:ObjectId>

<SAP:SWCV>oZGAQNmpEdym2dnSCqoHjQ==</SAP:SWCV>

<SAP:SP>-1</SAP:SP>

</SAP:Mapping>

</SAP:Receiver>

*<SAP:Interface namespace="http://enbridge.com/envision/envision2/jdbc">MI_TBL_WMS_SOURCE_STAGING_SDW_EGD</SAP:Interface> *

</SAP:Main>

*The actual should be *

- <SAP:Receiver>

<SAP:Party agency="http://sap.com/xi/XI" scheme="XIParty" />

<SAP:Service>BS_ENVISION_SAP_EMERG</SAP:Service>

<SAP:Interface namespace="urn:sap-com:document:sap:rfc:functions">ZWM_INBOUND_NOTIFICATION_EMERG</SAP:Interface>

- <SAP:Mapping notRequired="M">

<SAP:ObjectId>RNPgv18MOBmjhpr+oO1mNw==</SAP:ObjectId>

<SAP:SWCV>oZGAQNmpEdym2dnSCqoHjQ==</SAP:SWCV>

<SAP:SP>-1</SAP:SP>

</SAP:Mapping>

</SAP:Receiver>

*<SAP:Interface namespace="urn:sap-com:document:sap:rfc:functions">ZWM_INBOUND_NOTIFICATION_EMERG</SAP:Interface>*

</SAP:Main>

Former Member
0 Kudos

Hi Venkat,

Split messages are created but no mapping. The interface name space seems to be worng, see the log I posted earlier from the moni.

Regards

Unni

Former Member
0 Kudos

Hi,

1. Which kind of mapping are you using(MM, JM, XSLM)?

2. Have you tested your interface mapping in the IR?

Regards

Ivan

Former Member
0 Kudos

Its JM + MM on the interface mapping step. The interface mapping works fine on test, it shows the split.

Regards

Unni

Former Member
0 Kudos

Hi,

Here in ny work, som time ago we have a similiar problem. In design time while IM was working correctly but in runtime we was getting an error, the problem was because in design time for multimapping PI uses a certain namespace however in runtime uses other one . So Use the following javamapping(JM) to copy the payload content between the multimapping(MM). Put this between you JM and MM.


import com.sap.aii.mapping.api.StreamTransformation;
import com.sap.aii.mapping.api.StreamTransformationException;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Map;

/**
 *
 * @author jose.reyes
 */
public class InputFileWriter implements StreamTransformation {

    public void setParameter(Map map) {
    }

    public void execute(InputStream in, OutputStream out)
    throws StreamTransformationException {
        try{
            File f=new File("C:\\PayloadContent.xml");
            FileOutputStream fosPayload = new FileOutputStream(f);
            byte[] content= new byte[in.available()];
            int c;
            int i=0;
            String sb =  "";
            while ((c = in.read()) != -1){
                content<i>=(byte)c;
                sb += (char)content<i>;
                i++;
            }
            fosPayload.write(sb.getBytes());
            fosPayload.close();

            out.write(sb.getBytes());
            out.close();
        }catch(Exception ex){
            ex.printStackTrace();
        }
    }

}

Than use that payload to test your message mapping and see what happend.

Regards

Ivan

Former Member
0 Kudos

Hi Ian,

I am not doing a multi mapping to split the message. Do you mean using multiple mapping in interface determination. Why do you require the File? is that necessary? Please take a look at my earlier message. Looks like what you said makes sense. Your thoughts please

Regards

Unni

Former Member
0 Kudos

Just have a double check if that Business system is assigned with correct message interfaces and interface determination is assigned with correct MM.

have a look at following thread with similar requirement.

Also check..

Thanks,

Venkat.

Former Member
0 Kudos

Hi Venkat,

Basically I believe the RD ID are all complete. The scenario works if I have the queue filter on. Any thoughts? But this issue is consistant in (prod) though the filter is on.

regards

Unni