cancel
Showing results for 
Search instead for 
Did you mean: 

Organization of Models in ESR via SWCV

Former Member
0 Kudos

Dear Experts,

I am trying to understand what is the best approach to organize our design objects in ESR. My current strategy up to now consists in having 3 different Software Component (SWC)/Products one for Sender, one for PI objects (mapping..) , Receiver) (interface objects). Now i try to integrate in concept the models. I decided to use Process Component Model (PCM) as the Process Interaction Model as I can generate out of this the interface objects.

But now I have a problem with my concept. I have added the PCM for the sender in the corresponding SWC. Now I want to make a reference to the PCM of the receiver to model a sync interface i can not assign the objects from the receiver as the objects are in another SWC.

I also can not put every model in the same SWC because then the assignments (creation of objects) are all made in the same SWC.

Now I am not sure if the concept is wrong or if there is another solution to integrate the models into the concepts?

Thanks in advance,

Best Regards,

Karsten

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Karsten,

Gourav's suggested approach is a good one & it worked well until the arrival of PI 7.1, SOA enablement & modeling. Creating dependancies between the SWCV's would solve your problem by creating visibility between them but you need to do it both ways.

Where you really need to be very weary is when dealing Enterprise Services, re-use of SAP GDT's & a hybrid of SAP standard GDT's & custom data types. If you understand visibility, inheritance etc. in terms of Java you could end up getting yourself in a huge recursive mess & your services behaving strangely & referencing different data types than you intended.

Having said that, because of SOA & modeling, you are at some point going to end up modeling a process that cuts across different SWCV's & projects so you will need lots of visibility. Whatever you decide, you will need to do some careful planning & devise something that's extensible without major impact.

I would at worst have 1 SWC per business system & create the PCM in the initiating business system, even then I think you would need to carefully plan it according to your own scenario/s because this can be quite disruptive if you need to change the methodology at a later stage.

Regards, Trevor

Former Member
0 Kudos

Hi Trevor, Gourav,

well, the idea of separation the objects in 3 independent SWCV is not mine but Best Practice of SAP. In the How To Guide: Naming Convention 7.1 you can find under the chapter SWCV strategy recomendations:

*********

Three

An extension on the previous strategy is to use three software components to represent an integration scenario. One for the sender, another for the receiver and a final software component for the objects which cross both. This allows for clear conceptual separation and a high level of re-use. Please see u201CXI 3.0 Best Practices for Naming Conventionsu201D for more information.

*******

and for One:

*******

One (horizontal approach)

Using one software component to hold all your design objects may be possible but does not promote re-use and is devoid of clear conceptual separation. Would you put every line of code into one program? The same rule applies here: you need some method of demarcation.

********

I also thought about to create dependecies to reuse the objects later, but it looks quite complex as I need to reuse every SWCV in every SWCV....

Not sure now if the recomendation made in this how to guide is wrong or how is then the Best Practice from SAP to integrate the SOA models.....

Any opinion on that?

Thanks.

Best Regards,

Karsten

Former Member
0 Kudos

Hi Karsten,

I didn't read that guide before but it similar to what I was thinking. I must admit I also missed some information when I read your question the first time.

The more I think about it, the 3 software component best practice suggestion does sound like the best option. You create the 3rd SWCV for your modeling objects. In your modeling SWCV you create a dependancy on the other 2 SWCV's (send & receiver) & that's it. No need to create additional dependancies anywhere else & you won't get yourself into a recursive mess. A nice & clean approach, your 3rd software component manages any interaction

I also thought about to create dependecies to reuse the objects later, but it looks quite complex as I need to reuse every SWCV in every SWCV....

This is what I'm referring to as a recursive mess

Regards, Trevor

Former Member
0 Kudos

Hi Trevor,

thanks for the fast reply, i will try it and lt you know.

Best Regards,

Karsten

Former Member
0 Kudos

Hi all,

the approach works, even with some restrictions.

So I created SWCV A and defined dependencies in ESR to SWCV B + C. A contains common objects (mapping.. models), B+C sender and receiver specific components.

When you create the model you can create the service interface in the underlying SWCV. But if you want then create the operation you must first activate the service interface to be able to create the operation out of the model. And activation is not possible as, when you create the Service Interface you already has a faked operation created which you normaly delete when you create the real operation, but you can not activate the service interface as the faked operation does not contain any message type. So as a workaround you have to assign a faked message type to the faked operation -> aktivate the service interface and then you are able to create the real operation in the service interface.

I am not 100% sure if that is really wanted or I still have choosen an approach which works but which is not really Best Practice... anyway if there are no further coments i thing i will go for it.

Another doubt arose during configuration of the prototype: What is the diference if i define the Software Dependencies in the ESR or in the SLD? I checked for documentation but only found explanaitions in the online help about how to create the dependency in the SLD. For me it is more comftable to create the dependency in the ESR. Is there any impact (transport...)?

Thanks.

Best Regards,

Karsten

Former Member
0 Kudos

Hi Karsten,

What I usually do before modeling is identify which enterprise services (or SAP GDT's or whatever else is closest to my needs) kinda suit my requirements. I then create my DT's, MT's & Service Interfaces accordingly knowing that they could possibly change quite drastically (but at least it's a start). Then I begin the modeling. If you don't have any idea of what they will look like you will have to do a lot of faking. What usually happens is that there is normally & standard request header & response header across the enterprise, you could just create the operations relevant for you with just the standard request & response headers & fill in the blanks at a later stage when they become know. Other than that I have no futher comments with the approach you've chosen.

Regarding the dependencies:

You can do it whichever way suits you & both will have the same result, see the documentation below for a brief mention:

[http://help.sap.com/saphelp_nwpi711/helpdata/en/7d/0b623c4f69b712e10000000a114084/frameset.htm]

Regards, Trevor

Former Member
0 Kudos

Hi,

In my opinion your approach is not effective.

You should use 1 SWCV to organize your development related to single project (including sender/receiver interface and mappings) however there could be different approach as well (SWCV based on Business Units/Sub-Units) but it is upto Architect to decide and often mix approach is used.

You can folders and namespace to organize different objects and projects within SWCV (folders available in PI 7.1),

Not sure if it will work but try to create design time dependency between SWCV, this way you can access objects of another SWCV for PCM.

Regards,

Gourav