Skip to Content
There’s been quite a few questions on the XI forum
(and also on my e-mail) about the SLD dependencies configuration.

So as not to show just the dependencies configuration let’s try to ask ourself a few questions first:

What’s their use:

Mr. SAP:
“You use usage dependencies to define the software components on which the new software component is based”
(from: Creating Software Components in the SLD ).

Right but when should we use them in case of the XI?

Mr. SAP:
“To make the objects shipped by SAP available in your software component version, assign the SAP BASIS 640
software component version to your software component version as a subordinate software component version”
(from: Defining the Dependencies ).

This makes sense – if you want to use standard objects shipped by SAP you can define dependencies.

But…what about if your not using shipped scenarios (also called “XI Content”) ?

What should be the procedure ?
When should you define them?

There are no “direct, one way suggestions” let me just present you a few thoughts you can consider before creating
a product and software component.
One approach suggests to create products/components in the SLD on the basis of real products/components.
This means that if we’re connecting CRM with R/3 we have to define at least two products, so you need to define
dependencies in order to do the mapping for instance. But what happens when you transport your scenario
from DEV to QAT? Are you sure you got all of your objects ? What if your scenario is based not on two
but plenty systems? The truth is that this might be the best way if you can handle the change… that means you have to keep track
of EVERY change in every software component version to be sure that the next system receives all of the newest changes.

If you can handle that this means that you’re free from worries…

If you know that your XI will never handle many scenarios you can try a little different approach.
Fill every software component with all of the objects. This means that you create everything in one software
component, if you’re sending ORDERS idoc to a supplier and in another different scenario to a mobile system
you have to upload idoc ORDERS05 two times…) With this approach you can have many redundant objects but
the process of transfering them may be a lot easier as you can only trace one software component and not
all of those dependencies – also if you change something in one of your SWCV you can be sure that no other
SWCV uses this so no worries with checking the where-used list)

I hope that by this time you know which scenario you want to use.
If you still want your dependencies then you can procees further:

Step 1:

– on the initial SLD page choose Software Catalog

– choose your Software Component

– choose Usage Dependencies

– change the Dependency Context from BuildTime to Installation Time

image

Step 2:

– define your dependency (choose the Software Component which objects you want to use)

image

Step 3:

– now the hint – don’t try to refresh SLD cache inside Integration Repository – most probably it won’t work

– reimport your Software Component Version instead

image

Now, you should be ready to use “new” objects inside your software component.

To report this post you need to login first.

4 Comments

You must be Logged on to comment or reply to a post.

  1. Gopesh Agarwal
    Hi Michal,
    This is one of the very good weblogs.

    I have an issue for how to transport the usage dependency objects from Development to Consolidation (QA).

    We have done the usage dependency in the SLD for one swcv and after reimporting it into DEV from SLD , we can see the node basis objects but we are facing the problem in transporting the objects under basis objects of our new swcv to Cons(QA). other objects under the namespace of our swcv is already transported to QA.
    If you have some idea then pls. let me know.

    Regards,
    Gopesh

    (0) 
  2. Christoph Gerber
    Hi Michal,

    nice blog, anyway I do not understand the following:

    You mention “One approach suggests to create products/components in the SLD on the basis of real products/components. This means that if we’re connecting CRM with R/3 we have to define at least two products, so you need to define dependencies in order to do the mapping for instance.”

    Why do I need dependencies in order to develop the mapping? I think I can select any source / target structure in my mapping, independent of the SWCV it belongs to?

    Thanks!

    Chris

    (0) 
  3. Anonymous
    Hello,

    I created a Software Component Version in the SLD and imported it into the integration repository. After the import I created a dependency in this Software Component to another Software Component, but I don’t see the dependency in the integration repository as a basis object. In your blog you mention that refreshing is not working and that you need to reimport the software component. I think this is very annoying, especially if you already defined a lot of objects. You need to copy all the objects to the newly imported object and delete the old one. Is the only way to “refresh” the dependencies? What about the links from the Integration Directory to the deleted software component, are these links changed to the new version of the software component?

    Kind Regards,
    Mark van Dooren

    (0) 

Leave a Reply