Skip to Content

SAP Solution Manager Development has received many customer requests to add new object types to the tabs of transactions SOLAR01, SOLAR02 and SOLMAN_DIRECTORY. Although we have added some new object types, we could not satisfy all requests, because of the development effort required for each new type. Some customers also wanted to hide object types they did not use in their projects.

With support package 9 in release 7.0 and ST-PI 2005_1_700 SP3 in the satellite systems a dream comes true for all our customers: We have encapsulated the object type functionality so that customers with basic ABAP development skills can extend it for their own needs. You can now add or hide object types to the Type value help.

image

This includes full support for navigation, reporting, where-used list, history, blueprint and configuration guide generation, copying, comparing etc. as for any standard object type we ship. This can be done for the tabs “Transactions”, “Configuration” and “Development”.

As of SP15 you can implement note 1302204 that allows you to add new types on the Development tab and to create new ones. It will be part of the standard in EHP2. With the implementation of this note in the Solution Manager system and
the managed systems, you will receive a new enhancement spot SA_TYPES_ON_DEV_TAB that and some implementations of new development objects that add the following new object types to the development tab:

  • XI BAdi Implementation (for classical BAdIs)
  • ENHO Enhancement Implementation
  • SFPF Form (Adobe)
  • TABL Table (Database Tables)
  • WDYA Web Dynpro Application
  • WDYN Web Dynpro Component/Interface

These new object types behave exactly as the existing ones on the tab. They can be added directly by typing into the ID field or using the value help there. They support also multiple value selection in F4. Implementing a further development object type that is fully supported by the Object Navigator framework of the Development Workbench (SE80) is possible in less than an hour of time since it requires only the implementation of the enhancement spot SA_TYPES_ON_DEV_TAB in the Solution Manager system and no custom developments in the managed systems. How to find out if an object type is fully supporting the Workbench Framwork and how it can be implemented is described in section “Adding Object Types to Dev Tab” below.

The entry point for this customizing is the SAP Solution Manager IMG. Call transaction SPRO and push button “SAP Reference IMG”. Expand SAP Solution Manager – (Advanced Configuration) – Scenario-Specific Settings – Implementation – Tabs – Tab Extension. Here you find the activities “Tab Page Extension” and “Reduction of Object Types on Tab Pages by BAdIs”.

If you have never implemented a BAdI before, you should read the blog How to implement a BAdI And How to Use a Filter – Part 4 of the Series on the New Enhancement Framework, ignoring the part about filters that is not required here.

Let’s start with the second BAdI, to reduce object types as a warm up.

Reduction of Object Types on Tab Pages by BAdIs

Assume you want to hide the object type ‘eCatt Test Configuration’ from the Configuration tab, on all types of nodes in projects and solutions. Access the BADI_SA_HIDE_TYPES_ON_TABS, as described above, via the IMG, or call it directly via transaction SE18. Now read the IMG description (or BAdI documentation, and click on the Execution icon of the activity. Choose the button “Create Implementation” in the pop-up window displayed. Enter a descriptive name for the “Enhancement Implementation”, e.g. “z_hide_ecatt_on_config_tab” and a corresponding short text. Choose a package and a transport request. In the next screen, specify a name for the BAdI Implementation, e.g. “z_hide_ecatt_on_config_tab”. Now go to the tab “Enh. Implementation Elements”, choose the “Implementing Class” node in the hierarchy and enter a class name in the field “Implementing Class”, e.g. “z_hide_ecatt_on_config_tab”. Press Enter. Answer the question “Class does not exist. Do you want to create the object?” with “Yes”. Double-click on the class name to navigate to your class. When you are prompted to save, save your work. Now you should be in the class builder for your new class and can edit it’s method IF_SA_HIDE_TYPES_ON_TABS~CHECK_TYPE. Go to change mode and double-click on it. To test it, generate everything you have done so far and set a break-point at the “endmethod” statement. Now when you start transaction SOLAR01, SOLAR02 or SOLMAN_DIRECTORY, you should stop at this break-point. If not, check that your BAdI implementation is in state active (an active flag needs to be set at the BAdI implementation, as well as generating the developments). When you stop at the break-point, you can check what parameters need to be passed to your BAdI.  The BAdI is called once for every type. Depending of the parameters, you can return the flag “hide_type”. For the Config. tab in a project, you might see the following values for the parameters of the BADI, after pushing F8 a few times.

How do you tell which is the object type you want to hide? How do you know eCATT is object type ECTC? Here’s the trick: Click Alt+F12 and choose “Options…” and the “Expert” tab. Check “Show Keys in All Drop-Down Lists”.

If you want to hide this eCATT type, put the following code into your implementation:

The object type ECTC will be hidden when you restart the transaction. You can limit this hiding to certain tabs or projects or solutions. If you don’t want to hide the type in Directory you can check whether SOLUTION_ID is initial. By checking the node type you can limit hiding to specified node types, e.g. configuration structure or scenarios nodes. The following code would only hide ECTC for scenarios in projects (not in Directory):

Adding Object Types to Role Tab

You can add additional existing HR object types e.g. position to the role tab simply maintaining mainenance view V_SAROLECUST in transaction SM30.

 

Adding Object Types to Dev Tab

Before you can start adding new object types you need to imlement note 1302204
with transaction SNOTE in you solman and satelite systems. After the implementation you will find the new object types

  • XI BAdi Implementation (for classical BAdIs)
  • ENHO Enhancement Implementation
  • SFPF Form (Adobe)
  • TABL Table (Database Tables)
  • WDYA Web Dynpro Application
  • WDYN Web Dynpro Component/Interface

on the dev tab. If you want to add further development workbench objects on the tab you should first check if the prerquisites are fulfilled for that:

  1. Find out the transport or TADIR object id. This is maximum 4 digits long and can be displayed from almost every editor via menu “Goto – Object directory entry”. If you don’t find it change or create a new object and look at it’s object type ID in the transport order.
  2. Call transaction SE16 for table EUOBJ and enter this ID into field ID. Check if you find an entry.
  3. Call transaction SE16 for table WBREGISTRY, enter the TYPE found in EUOBJ into field TYPE and check if you find an entry. If you don’t you will not be able to navigate to the apropriate tool for this object type from the tab to display it using the workbench framework. In this case you should give up this approach and continue with the next chapter “Adding Object Types to Tabs by BAdI”.
  4. Check if your new object can be found in the Repository Info System (SE90). If you don’t find it there look for a search help. You often find a search help in the maintenance transaction on the ID field. The name of the search help can be found with F1 on the field and then button “Technical Information”.

If you are successfull in all three steps you have a 90% chance to implement the object type in just a few minutes work. If you do not find a value help, it is still possible to use the object for manual entry and for navigation.

To implement the BAdI go to SE18, enter Enhancement Spot SA_TYPES_ON_DEV_TAB and push display. You should first look at some existing implementations to understand what you have to do.

Start with looking at SA_TYPES_ON_DEV_TAB_WDYN, that implements the object type WDYN Web Dynpro Component and is also the sample implementation to copy from. The TADIR object type is WDYN to explain the name. The implementating code looks like this:

You just need to fill structure l_object_type and append it to table object_types. At runtime this Implementation is called for each type until all object type definition data are in that table.

  1. In the field obj_type you enter the transport or TADIR object type.
  2. In field ddic_type you enter the name of the dataelement that is used for maintaining the object ID. You find it in the maintenance transaction on the ID field. The name of data element can be found with F1 on the field and then button “Technical Information”.
  3. in field text you add the name for the type. Don’t forget to doubelclick it to update the text symbols.

In most of the cases you are done with these few steps. So here are the exceptions: If the object type is not supported by the repository info system you have two options: Either you set no_f4 = ‘X’, then of course there will be no value help available or you set the name of the search help you found in field search_help. An example for this is the imlementation SA_TYPES_ON_DEV_TAB_SFPF. In implementation SA_TYPES_ON_DEV_TAB_XI the field selection_variant is filled, since the Repository Info System function module REPOSITORY_INFO_SYSTEM_F4 needs to be called with a parameter variant for this object type, which is a quite exotic case.

Still you may find object types that are not fully supported by the workbench framwork, E.g. CMOD projects or SMARTFORMS. You can add them, select them but you can’t navigate to them because there is no entry in WBREGISTRY (and of course no implementation!).

 

Adding Object Types to Tabs by BAdI

Now let’s have a look at the first IMG activity “Tab page extension”. Here you have two options:

  • Add an object type that is already implemented but currently not offered in the object type F4 help on the tab where you want to use it. For example, you could add the type Web-Dynpro for ABAP Applications on the Development or Config. tab
  • Add an object type that is already implemented but is currently not used on any SAP Solution Manager tab. For example, you may want to add the type Role (BMSO_PFCG_ROLE) to the Configuration tab, to centrally administrate PFCG roles in your satellite systems. Basically you can add any objects in the Easy Access menu (the first thing you see when you enter an SAP system) by choosing Ctrl+Shift+F7 (The “Role” type is hidden there by default.)
  • Add any object type from that list to any of the tabs Transactions, Configuration and Development. For example, you could add the object type Dictionary Table. We come to this later.

Let’s now go through what you have to do to add an existing object type step by step:

Add an existing object type to another tab

If you want to use the type “Web Dynpro Application” on the “Configuration” tab as well as the “Transactions” tab, you need to implement the BAdI at the above-mentioned IMG activity “Tab Page Extension”,or via SE18, under the name BADI_SA_OBJECT_TYPE_ACTIVATION.

Go ahead as you did with BADI_SA_HIDE_TYPES_ON_TABS. In this case you will get a pop up asking you:

Sample classes specified for BAdI definition

You can:

  • Create a new empty class
  • Copy one of the sample classes
  • Inherit from a sample class not declared as final.

Select the example CL_EX_OBJECT_TYPE_ACTIVATION and push the button “Copy Sample Class.” Then navigate into the generated method. You should see the following parameters and code

This is sample code that has changed with SP17. When you activate it, the behavior in SAP Solution Manager will immediately change: You will see a new type, SAPSCRIPT, on the Transaction tab. This is an object type used in the Easy Access menu, but not in SAP Solution Manager by default. Compare it with the fall-back implementation in CL_SA_OBJECT_TYPE_ACTIVATION, which is the standard code that is active when no BAdI has been implemented. You can find the TAB_NAME and NODE_TYPE by debugging. The OBJECT_TYPES passed to this method are the complete list of object types you can use (see the next chapter to extend that list). Most of them are in the Easy Access menu value help (see above). When you test them you will find that, some of them do not seem to work. In this case it doesn’t help much asking me. Instead you can create a customer message and ask if the function modules need any specific customizing or parameters to work. Table URL_EXITS tells you which function modules implement each object type and where they originate. Now coming back to our example activating the web dynpro object type, you need to remove the SAPSCRIPT object type if you don’t want it, and add  WDY_APPLICATION to the TAB_NAME CONFIG. Respond to the three comments:

* activate selected object types

* describe the maximum lenght of the concatenated URL of that URL type

* determine which object types should be called in remote system via rfc

In our example:

  • Activate WDY_APPLICATION for the Transaction and Config tabs.
  • Set the maximum length of the URL to 255 (longest possible value). For other object types you should use the key length here.
  • Determine that the object type is to be called in the satellite system. The logical component field will then be enabled for the object type. Otherwise it is gray, and all objects are created in the SAP Solution Manager system.

Our coding looks now like this, and the job is done:

I have split up the activation and the setting of the maximum length for clarity. You may wonder why there is a check for tab_name IS INITIAL. This is to get the object type in value helps outside tabs, e.g. in reporting. You may also wonder why we need an additional BAdI to hide object types when we could deactivate them here, but this only works for the “Other objects” from Easy Access which we use, not for the hard-coded object types on our tabs. To hide those you need the BAdI BADI_SA_HIDE_TYPES_ON_TABS.

As of SP17 the behavior will change slightly so that you will always see your self defined object typs plus the SAP defined. So you will never miss new object types SAP delivers by default with an upcoming support package. However this implies that you must hide all SAP standard object types that you don’t want to see impelmenting BAdI BADI_SA_HIDE_TYPES_ON_TABS. Also as of SP17 the BAdI definition allows multiple implementation of the BAdI.

Play around with this and activate some more (or all) object types on the Development tab, or go straight to the last chapter.

Add a completely new object type

Now we want to enhance the existing functionality dramatically, for example by adding the object type “database table” to the Development tab. Unfortunately you won’t find such object in the Easy Access menu or in the table URL_EXITS. Adding a type using SM30 alone won’t help. You need some function modules to provide value help and navigation capability. And if you want to assign objects in the satellite systems, you need these functions and the URL_EXITS entry, in each of those systems. Luckily you need to build this only once in one satellite system and can transport it to all other systems later. This is not a modification of the satellite systems, just an enhancement. If you define the interfaces of your function modules as described here, they will work even down to a 4.6B release satellite system (requires 4.0 SP10 or note 1007462 in the SAP Solution Manager system). Now here is what you exactly have to do:

First of all you need to find an existing value help and (if required) a navigation functionality that you can use. In our example, you want to select a DB table from the Data Dictionary of the satellite system, and you want to be able to navigate to that development object. To find it you first need to get some knowledge of the standard functionality. You will find that there is a value help for tables in SE11 and in SE90. In the list provided by SE90, you can navigate to a table. Now you have to find out how this is implemented. For the value help, first check if there is a search help available. Push F1 on the field, and then go to “Technical Info”. Check whether there is a search help attached to the dynpro field and the data element. If so, you can call it as I called the PFCG role search help in the function module /SDF/BMSO_PFCG_ROLE_CREATE. But unfortunately for tables you won’t find a search help. In this case you need to debug the value help with /h. Set a breakpoint at statement “CALL FUNCTION” and step through all the function calls you find. With this method you will probably find what you are looking for. In our example, you’ll find the function module ‘RS_DD_F4_OBJECT’. Unfortunately it doesn’t return the table text. If you want that, you need to either continue searching, or find a function that reads the text of a table. The same debugging procedure works to find a navigation function module. In our example this is ‘RS_TOOL_ACCESS’.

Second you need to decide whether to build your prototype in the SAP Solution Manager system or in your satellite system. In the first case you need to maintain table URL_EXITS and the function modules in the SAP Solution Manager system only. In the second case you need the table entry in both systems and the function modules in the satellite system. If you decided create the entry using transaction SM30. You need to enter a function module name for “Create a node”, “Change a node” and “Call a node”. With “Availability of type” you can hide your new type from the Easy Access menu, as in /SDF/BMSO_PFCG_ROLE_AVAILABLE. This is optional. All other function modules are not called by SAP Solution Manager.

Implement the BAdI as described above, to see your new type in the value help where you want to add it. You can copy them from the /SDF/BMSO_PFCG_ROLE* function modules or create them manually with the parameters described below (If you copy then from other function modules in the URL_EXITS table, they may not run in all releases!).

Sample for the create module:

The change function looks the same but has the following parameters:

It is good practice to encapsulate the value help in a form and use it in both functions as in /SDF/BMSO_PFCG_ROLE_CREATE and /SDF/BMSO_PFCG_ROLE_CHANGE.

Fourth you need to test this. If you get the error message SOLAR241 that tells you to implement note 951018, when you test the navigation, implement it using transaction SNOTE.

Fifth you need to transport your development to every satellite system in which you want to use it.

You have now finished this project. Congratulations! If you have any additional questions or issues, you can raise them in the following section.


What Happens With Custom Object Type in Content Activation from 7.1 to 7.2?


In Content Activation also custom obect type assignments get migrated.

If there are customer BAdI implementations of BADI_SA_OBJECT_TYPE_ACTIVATION the element type “Extra Navigation Object” will be visible also for creation of new elements. Basic navigation services are supported but not guaranteed. The SAPgui value help cannot be called from Web Dynproand the Dynpro based create and change function modules of table URL_EXITS cannot be called anymore in 7.2. for technical reasons.

Customer BAdi imlementations of BADI_SA_TYPES_ON_DEV_TAB are migrated to element type “Extra Workbench Object“.  Basic navigation services are supported but not guaranteed. The SAPgui value help cannot be called from Web Dynpro for technical reasons. However with this new generic element type you can add all kinds of workbench objects without need for a BAdI implementation.

As of SP05 we offer an additional generic element type which you can use for all kind of SAP and non-SAP cloud services. It should replace the simple URL type. In type URL you can use place holders for severs etc. within <> brackets maintained in maintenance view SSM_VAR. The drawback is here that these parameters are global. They do not react on selected branch, system role and site context. Therefore we have the new “Custom URL” type. If you want to use it you need to define subtypes of this generic type. This is done again by a BAdI SMUD_EXECCUSTLOGCOMP. The customizing of a new Custom URL sub type is explained in SOLMAN_SETUP – Process Management – Configure Solution Documentation Model.

 

To report this post you need to login first.

59 Comments

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

  1. Morten Bjerkan
    Thank you for a very good and interesting web blog.
    I’m wondering if it’s possible to create a new object type which points to a Change Request in Reason why is that we want to show wich Change Request that had occured for each business process node, and clockwise to show the business structure node in the particular Change Request.

    Best Regards

    (0) 
    1. Andreas Diebold Post author
      Hi Morten,
      to create a new object type “Change Request” that allows you to assign a Change Request should be possible with the help of my blog. However I can’t tell you, if it’s possible to extend Change Requests in a similar way, so that you can build the “Where used” functionality you want.
      Regards
      Andreas
      (0) 
  2. Anonymous
    Hello Andreas,

    is it so easy to extend other tabs, for example, Development?
    We need to add Workflow to the Development tab, is it possible?

    Thanks and best regards,
    Vlad

    (0) 
    1. Andreas Diebold Post author
      Hi Vlad,
      yes Development tab can be extended as described above. If you want to add Worfflow objects that should be possible.
      Regards
      Andreas
      (0) 
  3. Sujan Gade
    Hi Andreas,

    Great weblog and it is kind of ray hope for our project.

    We have a unique requirement.

    In configuration tab we have the table which allows to maintain entries for IMG object, Documentation object.

    Requirement is to maintain some attributes for the configuration objects, which are useful for our objective.

    Is there any way where we can add a column in the table under configuration tab where I can maintain some custom data for each entry.

    Does any of the BADI’s perform this kind of function…

    Also in your adding a tab example, can I assign a subscreen and add a table control to add some custom data maintanance…

    Thanks in advance
    Sujan

    (0) 
    1. Andreas Diebold Post author
      Hi Sujan,
      your requirement to have custom adtributes for the objects on our tab has already been catered for by a new development that is part of an extension package to Solution Manager that is planned to be generally available soon. However the details (name, pricing) are not set yet so I can’t give you any more information about this by now.

      I don’t understand what you meant with “adding a tab example”.

      Regards
      Andreas

      (0) 
  4. Sujan Gade
    Hi Andreas,

    Thanks for the response. Appreciate if you could tell the time line of release when the new feature could be released.

    Let me frame my second question in a different way
    “Can we add a new tab to the tabstrip that appears on SOLAR01/02 transactions”

    Thanks in advance.
    Sujan

    (0) 
    1. Andreas Diebold Post author
      Hi Sujan,
      didn’t forget you. The mentioned attribute functionality includes:
      Customer defined attributes at objects on tab Development, Transaction and Configuration including electronic signature
      Customer defined attributes for nodes of process structure including electronic signature for projects and solutions allow for a transparent “system documentation”
      Lock of process substructures (only structure not the tabs) with possibility of electronic signature
      Lock of assignments at nodes including electronic signature
      and will be available
      in priced Extended Traceability (E.T.) Package
      with SP15 planned for Jan. 2008. 

      Regards
      Andreas

      (0) 
  5. Anonymous
    Great Blog.

    Are there any risks, issues or impacts we should be aware of when performing this development on a project where a documents, config entries, transactions, etc have been assigned to a Business Process Structure?

    i.e. can we reduce objects on an existing project with a fully defined BPS or must it occur upon project creation.

    Regards,
    Nathan

    (0) 
    1. Andreas Diebold Post author
      Hi Nathan,
      the BADI_SA_HIDE_TYPES_ON_TABS only reduces the entries in the value helps on these tabs and in Reporting. Already existing entries stay where they are. Nothing get’s deleted. So there is no risk.
      Regards
      Andreas
      (0) 
  6. SOLMAN_NEW N
    Hi Andreas,
    Thanks a lot for the detailed explanation. I have been trying to find a way to create a new tab in SOLAR01 and SOLAR02 transactions under business process. When a new business process is created it should show a new tab along with all other tabs. Say after End user roles I want to add custom tab Additional fields. Please pass on your valuable comments on this. This would really help me a lot…
    Thanks a lot.

    (0) 
    1. Andreas Diebold Post author
      Hi,
      we don’t offer any BAdI to add a new tab. To do it as a modification is very difficult. I would not recommend to do it except you have an unlimited budget and your customer doesn’t care if you modify half of solman and he has to cope with lot’s of manual work after next upgrade. I guess you would be the first to accomplish that task at a customer site. I won’t be able to support you in that task. You should better extend an existing tab, there is plenty of them.
      Regards
      Andreas
      (0) 
      1. Ankit Sharma
        Hi Andreas,

        Is there any BADI/ Screen Exit to extend any existing Tab?

        Above mentioned BADI can be used to add new object types to tabs “Transaction”, “Development”, “Configuration”.I need some BADI to modify “Proj. Documentation” Tab.
        If some BADI exists to modify this Tab or to add a new Tab in SOLAR01, please help.

        (0) 
      2. Ankit Sharma
        Hi Andreas,

        BADI mentioned above just allows us to add new Object type in Tabs “Configuration”, “Transaction”, “Development”.
        Is it not possible to modify the Tab “Proj Document” and add some new fields or to add new Tab (if SAP has released any)?

        If possible please suggest the BADI, that can work.

        (0) 
  7. Raphael Zimmer
    Hello Mr. Diebold,

    thanks for your great web-blog. I´ve one additional question.

    Let´s presume the following situation: I add an DDIC Table to the tab “development” according to your kind description. Some time after I added the table, the table is deleted. The entry in the tab “development” in SOLAR remains and now I go there and try to execute it.

    Is there a way to display an error message “object does not exist” for the user in SOLAR02? I tried to set the status-bar, but unfortunately I changed the status-bar in the target system (called via RFC)… Is there an interface to give an error message to the RFC-calling transaction “SOLAR2”? In your example any errors are ignored – but it would be kind to inform the user about the erros.

    Thanks for your help in advance.

    Greetings
    Raphael

    (0) 
    1. Andreas Diebold Post author
      Hi Raphael,
      unfortunately the function PRGN_START_EXECUTE_MODULE I am using doesn’t have any exceptions. It belongs to an old framework that comes from basis and so I can’t change it. You should try to send a message directly without using an exception. Try different message types.
      Regards
      Andreas
      (0) 
      1. SOLMAN_NEW N
        I am not sure whether this is the correct place to post this query. If not, I apologize.
        In transaction SOLAR02, is there any way we can perform authority check before a document is deleted from the Project Documentation Tab or General Documentation tab?

        Thanks a lot!!

        (0) 
  8. Anonymous
    Hi Andreas

    It’s been a very long time….

    We have a very simple task that we just can’t find any way to do it. We want to simply add a value to the Priority attribute of documents. Also to control the default value.

    Can someone help?
    Judy

    (0) 
  9. Juan Carlos Ames
    Hello Mr. Diebold,

    This is a great blog. We are trying to use new objects types for Development tab, I understand that we have to create if it is needed and register in table URL_EXITS the corresponding FM’s according to the behavior of each new object type. But, for example we plan to use objects type ZREP-Reports and ZINT-Interfase that could reuse existing FM of standard PROG and CLAS object types. Is it possible to identify these FM?

    Thanks.

    Regards,

    Juan Carlos Ames

    (0) 
    1. Andreas Diebold Post author
      Hi Senor Ames,

      I don’t understand why don’t you use the existing object types PROG and CLAS? Why do you want to create new object types for existing types?

      I hope next week I can publish a new BAdI by note and by this blog, that will allow to use the SE80 framework more directly and is much more easy to implement without the need of having developments in the satelite systems. Furthermore the behavior will be just as teh behavior of the existing types and will allow even multiple object selection by value help. Maybe this will be a solution to your problem.

      Regards
      Andreas

      (0) 
    2. Andreas Diebold Post author
      I forgot to mention the note number 1302204. Of course I will update this blog to explain how to implement a new object type with this new BAdI.
      Regards
      Andreas
      (0) 
  10. Frank Folsach Olsen
    Dear Mr. Diebold,

    With note 1302204 the object type TABL is added the DEV tab. How can I add this type to CONFIG tab. The type is not part in table object_types in IF_SA_OBJECT_TYPE_ACTIVATION~ACTIVATE_OBJECT_TYPES.

    Regards
    Frank

    (0) 
    1. Andreas Diebold Post author
      Hi Frank,
      why do you want to add the SE11 definition of a DB table to the config tab? Howewever, type TABL  will only appear on config tab if you implement it like described in chapter “Adding Object Types to Tabs by BAdI”.
      Regards
      Andreas
      (0) 
  11. Guillaume De Renty
    As NW Content in tab ‘Configuration’ do not provide the specific BW NW Content, I would like this type (BIZC) in the development tab.

    I did what you ask for (BADI in SOLMAN) and I see the new type BIZC in my development tab but when I click on the selection button, it says me that “Object type NW Content is not supported in the satellite system”.

    What do I have to do to fulfill the development ?

    Thanks in advance

    (0) 
    1. Satyanarayan Panigrahi
      Standard FM POPUP_WITH_2_BUTTONS_TO_CHOOSE which is in ECC is not available in Solution manager. Is it possible to add this FM in SLM or we need to use the alternative FMs available .

      Can someone help.

      (0) 
    2. Satyanarayan Panigrahi
      Standard FM POPUP_WITH_2_BUTTONS_TO_CHOOSE which is in ECC is not available in Solution manager. Is it possible to add this FM in SLM or we need to use the alternative FMs available .

      Can someone help.

      (0) 
    1. Andreas Diebold Post author
      Hi Raf,
      I think there are no test cases for ABAP unit you could use. But you could for instance create some types like  “ABAP-Unit for Class”, “ABAP-Unit for Program” and “ABAP-Unit for Function module” with value helps for these development objects. For the execute function you could trigger the execution of the ABAP unit test.
      Regards
      Andreas
      (0) 
  12. Rakesh Chaitanya Makkapati
    Hi Andreas,

    Actually we have a requirement for adding Smartform and SAPScript to the Dev tab. For this I have found out the search help object for Smartform i.e., SH_STXFADM and I have added the smartform by implementaing SA_TYPES_ON_DEV_TAB.

    Now the issues is i am able to get the Smartform in the dropdown list on Dev tab but i am not able to navigate to the smartform. The message that I am getting is “Object Type doesn’t supprot this function” so for this I think I need to add an entry to URL_EXITS table, but I could not find the navigation function module for Smartform.
    So could you please help us in this regard, also please let us know if we have done anything wrong.

    Thanks a ton in advance.

    Thanks & Regards,
    Rakesh

    (0) 
    1. Andreas Diebold Post author
      SFPF Forms (Adobe) – if that is what you mean –  are fully supported by the Badi implementation I delivered via the note as far as I remember. If it doesn’t work maybe the note has not been implemented in the managed system.
      (0) 
      1. Rakesh Chaitanya Makkapati
        Hi Andreas,

        SFPF Forms (Adobe) is for Adobe forms but, what we want is SSFO normal smartforms and FORM for SAPScripts to be linked to the dev tab. SH_STXFADM is the search help object that I have found for smart forms and added the smartform to the dev tab by implementing SA_TYPES_ON_DEV_TAB.

        Now the issues is I am able to get the Smartform in the dropdown list on Dev tab but not able to navigate to the smartform when double clicked on the smartform name that we have selected. The message that I am getting is “Object Type doesn’t supprot this function” so for this I think I need to add an entry to URL_EXITS table, but I could not find the navigation function module for Smartform.

        So could you please help me in this regard, also please let us know if we have done anything wrong.

        (0) 
        1. Asif Rahmetulla
          Hi Andreas,

          We want to tie SAPScripts to be linked to the developments tab. What object type is available in Solution Manager to link SAPScripts in the Dev tab?

          We are on Solution manager release 7.01 EHP1 SP24. Also I have implemented the note 1302204 in Solution Manager. Do we need this note (1302204) to be implemented on the satellite system as well?

          Regards,
          Asif

          (0) 
          1. Andreas Diebold Post author
            Hi Asif,
            how to tie SAPScripts to be linked to the developments tab is described in my blog at “Add an existing object type to another tab”.
            Implementing note 1302204 is not required for SAPscript.
            Regards
            Andreas

            (0) 
    2. Andreas Diebold Post author
      Yes Rakesh, you are right. Unfortunately Smartforms are not navigatable. Therefore I did remove this object type from my note again. Its a limitation of the development workbench. I am sorry I can’t help here. SAPscript is no problem. There is already an existing entry SAPSCRIPT in URL_EXITS and I think I created this as sample implementation in the BAdI.
      Regards Andreas
      (0) 
      1. Rakesh Chaitanya Makkapati
        Hi Andreas,

        Thanks a lot for your responses to my questions.

        I have found a Function Module which can navigate to a smartform by giving the name of the smartform as import parameter to the FM, that FM is EFG_SMARTFORM_DISPLAY, so is there any way we can use this FM as navigation FM for smartforms.

        Please let me know your concerns in this regard.

        Thanks & Regards,
        Rakesh

        (0) 
        1. Andreas Diebold Post author
          Hi Rakesh,
          if you follow my instructions given at
          “Adding Object Types to Tabs by BAdI” above, this should work.
          Regards
          Andreas
          (0) 
        2. Srinivasa Rao Aravelli
          Hi Andreas,

          We are trying to added new Object Types  like CMOD,SMARTFORMS,SMOD,SMARTSTYLE,SAPSCRIPT etc  in Solar02 through BADI enhancement.

          As per the Blog and the note FM ‘PRGN_START_EXECUTE_MODULE_RFC’ should be triggered for the ‘Object Types’ added in table ‘URL_EXITS’.
          But this is not happening.

          We have tried in Satellite systems with the same Function Modules whatever we have created entries in TABLE ‘URL_EXITS’ in Solution Manager as per the blog 5337.

          These Function Modules are working fine when we execute them individually. The only difficulty is they are not able to identify the ‘Target System’ for navigation.

          How table ‘URL_EXITS’ Links b/w Solution Manager and Satellite system? We have checked by keeping all the break points by executing Transaction SOLAR02. But no clue.

          This table or the Function Modules we have added in table ‘URL_EXITS’ are not getting triggered.
          Is there any configuration or a Plug-in/Exit point is required to call the above function module in SOLAR02 Transaction for Navigation.?

          Kindly suggest us.

          Regards
          Vijaya Lakshmi

          (0) 
  13. Pascal Seguin
    Hi Andreas,
    Nice Blog!!

    We have a requirement for adding Java and PI objects on the dev tab. They reside on the JAVA stack only(ie. PI Service Interface, PI communication Channels) and others objects like JAVA class and JAVA packages. The F4 and navigation functionnalities on those types are not needed.

    So could you please help me in this regard.

    (0) 
    1. Andreas Diebold Post author
      Hi Pascal,
      for this task you should analyse the object type WDY_JAVA_SOLMAN closely. Look into URL_EXITS and look at the function modules. For this type the system ID is handed over to the URL by the framework and the function modules change this to server and port for the URL.

      But if you don’t need any F4 or Navigation you can also just add some new types to the table and use the standard default function modules for URLs (just leave the fields for the function modules initial. You then of course have to implement the BAdI BADI_SA_OBJECT_TYPE_ACTIVATION to make your new types visible in Solman. That’s all.

      Regards
      Andreas

      (0) 
  14. Srinivasa Rao Aravelli
    Hi Andreas,

    We are trying to added new Object Types  like CMOD,SMARTFORMS,SMOD,SMARTSTYLE,SAPSCRIPT etc  in Solar02 through BADI enhancement.

    As per the Blog and the note FM ‘PRGN_START_EXECUTE_MODULE_RFC’ should be triggered for the ‘Object Types’ added in table ‘URL_EXITS’.But this is not happening.

    We have tried in Satellite systems with the same Function Modules whatever we have created entries in TABLE ‘URL_EXITS’ in Solution Manager as per the blog 5337.

    These Function Modules are working fine when we execute them individually. The only difficulty is they are not able to identify the ‘Target System’ for navigation.

    How table ‘URL_EXITS’ Links b/w Solution Manager and Satellite system? We have checked by keeping all the break points by executing Transaction SOLAR02. But no clue.

    This table or the Function Modules we have added in table ‘URL_EXITS’ are not getting triggered.

    Is there any configuration or a Plug-in/Exit point is required to call the above function module in SOLAR02 Transaction for Navigation.?

    Kindly suggest us.

    Regards
    Vijaya Lakshmi

    (0) 
    1. Andreas Diebold Post author
      Hi Vijaya,
      I have two ideas:
      1. the table entry in URL_EXITS must be both in the solman system and in the target system.
      2. in the BAdI implementation you must set the Flag “remote_callable” for each type.
      You can debug this when you set a break-point in class CL_SA_BMSO_HANDLER.
      Regards
      Andreas
      (0) 
  15. Vijaya Lakshmi
    Hi Andreas,
    We were able to create all the object Types in the SOLMAN.
    We have followed the below process to Add new object Types in SOLMAN.

    To add a New Object Type into SOLMAN
    BADI   ‘BADI_SA_OBJECT_TYPE_ACTIVATION’
    Go to SPRO->SAP IMG Reference to implement the BAdI at the above-mentioned   click on ‘IMG activity’, “Tab Page Extension”, or via SE18, under the name BADI_SA_OBJECT_TYPE_ACTIVATION
    As in the below screen shot.

    Execute ‘Tab page extension’ and a pop-up which will ask you to implement   BADI ‘BADI_SA_OBJECT_TYPE_ACTIVATION’.
    Click on yes and implement the BADI.

    Added code in the method as in the below screen shot for all object types.

    After adding the code then Table ‘URL_EXITS’ should have same entries in both SOLMAN and Target systems as below.


    When you click on the field ‘Logical component’   in TCODE ‘SOLAR02’ it goes to the selected system (Target System) and checks for F4 functionality through Create a Node Function Module which will have the F4 functionality as in the below screen shot.
    Prerequisites for FM:
    •     Search for any Standard FM’s  are available for F4 Functionality
    •     Search for any Standard FM’s are available for displaying the object of particular object type.
    Here SCRIPT doesn’t have any F4 FM. We have directly submitted the program to get   F4 Functionality as below.
    FUNCTION z_sap_script_create.
    *”———————————————————————-
    *”*”Local Interface:
    *”  EXPORTING
    *”     VALUE(URL) TYPE  C
    *”     VALUE(SHORT_TEXT) TYPE  C
    *”     VALUE(NODE_DATA) TYPE  C
    *”  EXCEPTIONS
    *”      ACTION_CANCELLED
    *”———————————————————————-

      DATA l_tdform TYPE rstxd-tdform.
      SUBMIT rstxfcat VIA SELECTION-SCREEN AND RETURN.
      GET PARAMETER ID ‘TXF’ FIELD l_tdform.

      IF NOT l_tdform IS INITIAL.
        node_data = url = l_tdform .

        SELECT SINGLE tdtitle
          INTO short_text
          FROM stxh
         WHERE tdobject = ‘FORM’
           AND tdname = l_tdform
           AND tdid = ‘TXT’
           AND tdspras = sy-langu.

        IF short_text IS INITIAL.

          SELECT SINGLE tdtitle
            INTO short_text
            FROM stxh CLIENT SPECIFIED
           WHERE mandt = ‘000’
             AND tdobject = ‘FORM’
             AND tdname = l_tdform
             AND tdid = ‘TXT’
             AND tdspras = sy-langu.
        ENDIF.
      ELSE.
        MESSAGE i000(ZSOLMAN) WITH text-001. “Display
        RAISE action_cancelled.
      ENDIF.

    ENDFUNCTION.

    Display a Node will navigate to the particular object in the selected system (Target System) and displays it.
    Here for example SCRIPT doesn’t have any Display FM. We have created BDC program to Display the Script.
    FUNCTION z_sap_script_execute.
    *”———————————————————————-
    *”*”Local Interface:
    *”  IMPORTING
    *”     REFERENCE(URL) TYPE  C OPTIONAL
    *”     REFERENCE(NODE_DATA) TYPE  C OPTIONAL
    *”     REFERENCE(TARGET_SYSTEM) TYPE  C OPTIONAL
    *”———————————————————————-
      DATA l_tdform TYPE rstxd-tdform.

      DATA: bdcdata_wa  TYPE bdcdata,
            bdcdata_tab TYPE TABLE OF bdcdata.

      DATA opt TYPE ctu_params.

      IF NOT node_data IS INITIAL.
        l_tdform = node_data.
      ELSE.
        l_tdform = url.
      ENDIF.

      CLEAR bdcdata_wa.
      bdcdata_wa-program  = ‘SAPMSSCF’.
      bdcdata_wa-dynpro   = ‘1102’.
      bdcdata_wa-dynbegin = ‘X’.
      APPEND bdcdata_wa TO bdcdata_tab.

      CLEAR bdcdata_wa.
      bdcdata_wa-fnam = ‘BDC_CURSOR’.
      bdcdata_wa-fval = ‘RSSCF-TDFORM’.
      APPEND bdcdata_wa TO bdcdata_tab.

      CLEAR bdcdata_wa.
      bdcdata_wa-fnam = ‘RSSCF-TDFORM’.
      bdcdata_wa-fval = l_tdform.
      APPEND bdcdata_wa TO bdcdata_tab.

      CLEAR bdcdata_wa.
      bdcdata_wa-fnam = ‘BDC_OKCODE’.
      bdcdata_wa-fval = ‘=SHOW’.
      APPEND bdcdata_wa TO bdcdata_tab.

      opt-dismode = ‘E’.
      opt-defsize = ‘X’.

      CALL TRANSACTION ‘SE71’
      USING bdcdata_tab OPTIONS FROM opt .

    ENDFUNCTION.

    Regards
    Vijaya Lakshmi

    (0) 
  16. sreekala rapuru
    Hi,

        As per my requirement, I want to make disable a project field i.e top hierarchy node in solar01 tcode. How can I achieve this? I tried in serivce market place and SDN. I did not get any messahe on this. Could you please through some input on this.

    Thanks and Regards,
    Sreekala Rapuru.

    (0) 
    1. Andreas Diebold Post author
      Hi Sreekala,
      with 7.1 it is possible to hide the following top level nodes in SOLAR_PROJECT_ADMIN in the ‘Edit’ menu of a project:
      Configuration
      Organizational Units
      Master Data
      Interface Scenarios
      Of course the root node cannot be hidden.
      Kind
      Anrdeas
      (0) 
      1. sreekala rapuru
        Thank you very much for your reply. I dont want to hide the tab. I want a make disable a project field like buiness scenario and business process.

        When we go to SOLAR01 or SOLAR02 tcode at very top node –> down to the system role –> project name will be there. If I am in change mode or display mode I want to make it is Input disabled.

        How can we achieve this? Can you please help? As an example when we goto business scenario or business process level the steps are in input disable mode. I want to make project field also like that.

        (0) 
  17. sreekala rapuru
    Hi Andrews,

          In SOLAR01 I am linking documents from End to End test to Business process. They link fine. When i go back to attributes tab, I cant see the linked objects any more. They do show up when I do a “where used”. But If I wanted to remove one, I wouldnt be able to.

          Now we are in 7.0 EHP1. The links are not appearing any more. Could you please suggest something.

    (0) 
  18. Lior Grinberg

    Hi all,

    I hope you can help me.

    I’m trying to add  SAP BW QUERY.

    I saw it in the table URL_EXITS.

    I don’t know what to right in the badi:

    I wrote:

       DATA l_object_type TYPE if_sa_types_on_dev_tab~obj_type.

      l_object_type-obj_type = ‘SDMA’.
      l_object_type-ddic_type = ‘SEU_OBJ’.
      l_object_type-text = ‘SAP BW QUERY’(001).
      APPEND l_object_type TO object_types.

    And it doesn’t work.

    Can any one please help me? I don’t think I fully understood the blog.

    Thanks

    Lior Grinberg

    (0) 
    1. Andreas Diebold Post author

      You must proceed as described under

      Adding Object Types to Tabs by BAdI

      But you should test this object type first by adding it in the favorites in the Easy Access Menu. It has a promising name, but it doesn’t seem to work. Don’t ask me why. I didn’t build it. Maybe you need to use a special sytax for the URL. I have no Idea.

      (0) 
  19. Ranjith Raghunathan

    Hi Andreas,

    could you kindly advise on how to create “Position” as an object type under “End User Roles” tab. I am wondering why position is not an option already!

    because in PPOMA_CRM or PPO1 I can create a Position. All I can see are Organizational Unit, Job, User but no position! Why is this missing? Looking forward for help.

    (0) 
    1. Andreas Diebold Post author

      Hi Ranjith,

      just add the corresponding entry with transaction SM30 in view V_SAROLECUST and you’re done. I wonder why this is not documented in IMG.

      Kind Regards

      Andreas

      (0) 
  20. Andreas Diebold Post author

    In release 7.2 old SAP GUI based SOLAR01/02 and SOLMAN_DIRECTORY will be retired an replaced by a web dynpro based application. Since it is not possible to integrate SAP GUI pop-ups in web dynpro, extensions, that have been created via the two BAdIs described in this blog will only have limited functionality in 7.2. Navigation may still be possible for URL_EXIT types. But the dynpro based create and change function modules of table URL_EXITS cannot be called anymore in 7.2. Also naviagation and value help for custom development objects will not work anymore. Existing data is migrated from 7.1 to 7.2. In 7.2 creating and maintaining these custom objects will only be possible by entering the values in simple character fields. In a future release we might provide functionality to bould custom webdynpro based object extensions.

    (0) 

Leave a Reply