cancel
Showing results for 
Search instead for 
Did you mean: 

External Definitions for Idoc in SAP PI7.4

Former Member
0 Kudos

Hi All,

We are on SAP PI 7.4 and have a requirement where in we have to map an incoming file to Idocs.Each file will have to generate multiple Idocs based on few conditions which we handle in mapping.

In order to create multiple idocs,I have changed the occurance and I have imported the same into an external definition.I have created a Service Interface for this.

However,on running the scenario,I am getting errors when PI is trying to post the Idocs.It says that the port and partner settings are incorrect.

I have done the following steps:

1.Disabled the EDIDC40 field and in the Idoc AAE Receiver Advanced properties,I selected Not mandatory for the Control Record in Idoc xml.For this,I am getting the error :"The Configuration for Sender/Receiver Partner Number/Port is incorrect. Enter proper values in Sender/Receiver Component".I tried with and without header mappings as well.

2.I enabled the EDIDC40 segment,maintained the SNDPRT and SNDPRN values as per this discussion http://scn.sap.com/thread/3439059.

Maintained my ECC system details in the SNDPRT and SNDPRN values and maintained the name of the ECC system in the Sender in Header Mapping.I have checked Manatory in the Receiver Idoc channel for Control Record in Idoc xml and also the option "Apply sender from payload".

However,for this I get the following error : "java.lang.NullPointerException: while trying to invoke the method java.lang.String.length() of a null object loaded from local variable 'chars'".

For this error,there is a note which is given for the resolution : SAP Note 1862655.

However,in this note it is mentioned that the interface name and namespace naming convention should be <MSGTYP>.<IDOCTYP>.<CIMTYP>

and urn:sap-com:document:sap:idoc:messages.Mine is an external definition as I have changed the occurance and hence there is a Service interface and the namespace is also different.Is there any way to handle this in SAP PO?

Request you to share your thoughts on this as I have been stuck in this issue since quite long.

Thanks and Regards,

Induja

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Induja,

Just use the external defination idoc file while creating message mapping only (i.e occurance changed file)

and the remaining part keep same as general idoc to file interface.

i believe no need to create SI using external defination file. instead of that u can use the imported idoc as SI in operation mapping.

no need to create Data type,msg type, Service interface for ecc imported objects.

Former Member
0 Kudos

Hi Subhani,

Thank you for your timely help.

This is what I did:

1.I did the Message Mapping using the external definition of the Idoc.

2.I created an Operation Mapping and used the Standard Idoc and Standard Idoc namespace as target.I gave the taget as "Any" in the Message mapping select option and selected my mapping.I ignored the warning while activation.
3.I used the standard Idoc and standard namespace in the receiver interface name in ICO.

4.Mapped Sender Port and Sender Partner in EDIDC40.Used header mapping in the receiver and took sender from payload.

Now I am able to post the Idoc successfully

Thanks and Regards,

Induja

Answers (0)