cancel
Showing results for 
Search instead for 
Did you mean: 

Data Type enhancement in Proxy-Proxy ECC-SRM scenario

Former Member
0 Kudos

Hello,

We are using the standard proxy interfaces between ECC and SUS(SRM) - ECC 6.0 EHP6 and SUS/SRM 7.01. We need some custom fields to be passed from ECC to SUS and we want to use the data type enhancement. This is for the scenario of sending PO from ECC to SUS. What we have done is as below:

1. Created data type enhancement in a custom SCV for the standard ECC PO Item data type of standard SCV SAP ALL 6.06

2. Created data type enhancement in a custom SCV for the standard SRM PO Item data type of standard SCV SAP SRM SERVER 7.01

3. Generated proxies in SPROXY in both ECC and SRM for the data type enhancement

4. Checked the standard proxy structures in ECC and SRM and verified the new fields are available as Append structures in standard proxy

4. Implemented a BADI to send data from ECC in these custom structures

5. The XML messages in ECC, PI and SRM contain this custom segment with the data sent from ECC

Even though the data is in XML, the data is not mapped to the INPUT which is sent to the proxy class when the inbound processing in SRM gets processed. This means the SRM system is not able to map the data in the incoming XML into the custom append structure in the inbound proxy.

Anyone has any clues or suggestions? Thanks in advance.

Best regards,

Prasanna

Accepted Solutions (1)

Accepted Solutions (1)

MichalKrawczyk
Active Contributor
0 Kudos

Hi,

it should be pretty easy to check it with the tip from my blog:

http://scn.sap.com/community/pi-and-soa-middleware/blog/2012/06/20/michals-pi-tips-how-to-recordtest...

with this you will be able to find the cause,

Regards,

Michal Krawczyk

Former Member
0 Kudos

Hi Michal,

Thanks for your reply - but let me explain in more detail:

We have a custom SCV ZECC_SCV which has underlying standard SCV SAP APPL 6.06 and also a custom SCV ZSRM_SCV which has underlying standard SCV SRM SERVER 7.01.

SAP provides standard proxy-proxy communication through PI between ECC and SUS for PO transfer. We have configured standard interfaces and everything works well.

Now we need to transfer some custom data for PO item level and for this, we have done as below:

In the ECC and SRM systems, the proxy for data type enhancement is generated. And when we see the standard proxy structures I can see the APPEND in both these systems.

Now the data is flowing from ECC to SRM/SUS and in the incoming XML in SUS we can see the values coming in these custom segments. But this data is not mapped from the XML to the inbound proxy structure. I debugged the XML transformation routine and I think probably this is the issue:

<n0:ZZCONDITIONS_V1 xmlns:n0="http://xyz.com/xi/R3"> - http://xyz.com/xi/R3 is the namespace in which ZECCPurchaseOrderERPRequestMessage_V1 was created in the ZECC_SCV.

But in the XML transformation,it is expecting

<n0:ZZCONDITIONS_V1>

And the loop in XML transformation for this is not getting executed at all - not sure if the enhancement should be created in same namespace for both the SRM and ECC standard data types. Could you please let me know?

Best regards,

Prasanna

Former Member
0 Kudos

Hi Prasanna,

Would a custom message mapping and operation mapping in PI not solve this issue? You could then use the operation mapping in the interface determination that you have configured in the Integration Directory.

You have 2 namespaces between source and target message. Once you add a third (custom) namespace for the enhancements on either side you have then deviated from the standard implementation. So consumer proxy --> PI pass through --> Server proxy is no longer an option because of the namespace variations.

Try:

consumer proxy --> PI Mapping: Source to Target including Enhancements --> Server proxy

Then advise of the result.

Regards, Trevor

Former Member
0 Kudos

Hi Trevor,

Thanks and here is the actual thing:

Standard Interface:

  • ECC SCV: SAP APPL 6.06
  • SRM SCV: SRM SERVER 7.01

  • Sender Interface:    PurchaseOrderERPRequest_Out_V1    
  • Namespace           http://sap.com/xi/APPL/Global2           
  • MessageType        PurchaseOrderERPRequest_V1
  • Data Type              PurchaseOrderERPRequestMessage_V1    PO item Data TYpe    PurOrdERPReq_V1Itm

  • Reciever Interface    PurchaseOrderERPRequest_In_V1   
  • Namespace            http://sap.com/xi/SRM/SE/Global       
  • Message Type        PurchaseOrderERPRequest_V1
  • Data Type              PurchaseOrderERPRequestMessage_V1    PO item Data Type    PurOrdERPReq_V1Itm

No mapping exists for this interface between proxies.

============================================================================================

Custom changes with data type enhancement:

ZECC_SCV: Underlying SCV SAP APPL 6.06        Namespace http://xyz.com/xi/R3

ZSRM_SCV: Underlying SCV SRM SERVER 7.01        Namespace http://xyz.com/xi/SRM

In the namespace http://xyz.com/xi/R3, created the data type enhancement for PurOrdERPReq_V1Itm(http://sap.com/xi/APPL/Global2) to add custom fields. And in the namespace http://xyz.com/xi/SRM, created the data type enhancement for PurOrdERPReq_V1Itm(http://sap.com/xi/SRM/SE/Global) to add custom fields. There are no new proxies created as such and only data type enhancements.

After doing these enhancement we have not changes anything in Integration directory configurarion. I understand that now the namespace might have got changed - but the sender ECC still send the message as part of namespace http://sap.com/xi/APPL/Global2 and not http://xyz.com/xi/R3 as it is the standard program in ECC sending the message.

So could you please let me know what mapping we have to do in PI? As it is a proxy-proxy scenario, there is no mapping in standard interface. Is it that we have to create a new service interface with the enhanced data type for SRM and then map the ECC standard proxy to the custom proxy to pass customer fields? 

Best regards,

Prasanna

Former Member
0 Kudos

Hi Prasanna,

There is no mapping in the standard interface for the same reason, it's standard and the data structures are identical.

Once you add a DT enhancement in custom SWCV and custom namespace, it's no longer standard and as a result needs to be explicity mapped.

I would have done it as follows:

- Added one custom SWCV (e.g. ZSRM SERVER 1.0 of xyz.com) to manage all required SRM enhancements. Then SAP APPL 6.06 & SRM SERVER 7.01 underlying. You could still keep separate namespaces for enhancements on ECC side and enhancements on SRM side (i.e. http://xyz.com/xi/R3 & http://xyz.com/xi/SRM)

- Create your respective DT enhancements under each namespace. Generate the proxies at each end

- Maybe add a 3rd name space for integrated content (e.g. mapping that that uses objects between the 2 namespaces above. Then create a message mapping of the source message type PurchaseOrderERPRequest_V1 (Appl/Global2) and message type PurchaseOrderERPRequest_V1 (SRM/SE/Global).

- For your message mapping you'll need to select your message types from the 'Basis Objects' node (underlying SWCV's) of your custom SWCV otherwise you won't see the DT enhancements in graphical mapping. Just do a map all identical fields, this will all map the enahcement fields.

- Then create a corresponding Operation Mapping for the message mapping.

- Then in your interface determination, select this newly created operation mapping.

- Test proxy from ECC side and advise of result.

Regards, Trevor

Former Member
0 Kudos

Hello Trevor,

Thanks and yes your reply completely makes sense to have both these ECC and SRM as underlying SCV under one custom SCV instead of two. That probably would solve the issue - we will try this and will let you know.

Thanks a lot for all your help.

Best regards,

Prasanna

Former Member
0 Kudos

Hi Trevor,

This worked - we created one custom SCV and included both SRM and ECC as underlying SCV. And then extended data types of both systems in same namespace. With this we did not need any custom operation mapping etc and everything worked well.

Thanks for all your replies.

Best regards,

Prasanna

Former Member
0 Kudos

Glad to hear Prasanna!

This is also a good option. You would have probably had to use custom operation mapping if you had opted for separate namespaces and extended the data types in each of those namespaces.

Regards, Trevor

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Prasanna,

I have a requirement equal your, but I have a question.

What BADIs you had to implement in both systems (ECC and SRM)?

Please, can you help me?

Kind Regards,

Dhan