Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member

In this document i will describe how we can mannage navigation from Charm documents to SOLAR01/02 based on project roles.

There is a possibility to navigate from Charm Change Transactions only to SOLAR01 directly, so if you work as developer or configuration consult you always need to do additional step jump to SOLAR02 from SOLAR01 and then choose needed tab to start work.

We can manage this behavior! why this need?

SOLAR01/02 can be central workspace for any sort of project memebers: customization consulting, developers, managers, administrators and more...

Main point is to have a single space of truth Project and database as Solution.

Scenario: in project ZXXX we have role (09)Application Implementation and config. When user who has role (09) navigating from Charm Transaction to SOLAR01/02 he directly navigates to SOLAR02 - Configuration tab.

Project members assigned to roles you can find in SOLAR_PROJECT_ADMIN - "Proj. Team Memeber tab" you can find project roles in same tab button Roles in project ( view V_CPIS_PARTROLE )

There is no standard for this yet, so for this you need a little development but don't worry i will explain how to!

We have to do 2 things :

  1. Create Customer Table where we will customize - Role: what transaction will be launched solar01 or 02 and wich tab will be displayed by default.
  2. Enhance Class CL_CHARM_PROJECT_INTERFACE - method GOTO_PROJECT.

1. Customization table

Tcode SE11 need to create 1 domain,  1  data element and 1 customizatoin table all in Z-Y namespace other fields for table exist in standard.

first create domain type Char8 with fix.val NAVSOL01 and NAVSOL02 this will need later.

Second create customizing table how to - https://scn.sap.com/thread/779661

Input this fields

MANDT

ZTSOLI002_LINE

SPROJ_ROLE

TEXT40

PROJ_TABTYPE

PROJ_TABTEXT

Complete table we look like this:

2. Enhance CL_CHARM_PROJECT_INTERFACE

Tcode SE24 enter CL_CHARM_PROJECT_INTERFACE now press menu Class - Enhance

Give Implementation name Z_anytext, short description and Composite Enhancement, if there is no create one

Now mark method GOTO_PROJECT and choose menu Edit-Enhancement Operations-Insert Overwrite-Methode.

***************************************************************************************************************************************

TIP( you may skip it )

why we are doing this? because navigation in method GOTO_PROJECT hardcoded to navigate always in SOLAR01

TIP end

***************************************************************************************************************************************

You will se icon on right side of method

Now Create own method f.e. ZGOTO_PROJECT and copy all parameters from original GOTO_PROJECT


METHOD zgoto_project_sol02 .
**********************************************************************
* Logic:
* For the consults to work via WEB UI f.e. from Normal Change
* and navigate directly to SOLAR02 instead of SOLAR01.
**********************************************************************
  DATA:
      ls_proj_role TYPE tressp
     ,ls_solarxx TYPE ztsole002_nav
     ,lv_check_ok TYPE boolean
     .
  CONSTANTS: aisol_c_dir_proj_nav_solar01(8)   TYPE c VALUE 'NAVSOL01'.
  lv_check_ok = abap_false.
* Check existens of user in project team
  SELECT SINGLE role INTO ls_proj_role-role
    FROM tressp
    WHERE sap_user = sy-uname
      AND project_id = i_project_id.
  IF sy-subrc = 0.
    lv_check_ok = abap_true.
  ENDIF.
* Check mapped tcode and tab
  SELECT SINGLE solarxx tabtype INTO CORRESPONDING FIELDS OF ls_solarxx
    FROM  ztsole002_nav
    WHERE role_id = ls_proj_role-role.
  IF sy-subrc = 0.
    lv_check_ok = abap_true.
  ELSE.
    lv_check_ok = abap_false.
  ENDIF.
* Navigate to mapped transaction SOLARXX and mapped TAB
  CALL METHOD cl_sproject_navigate=>call_ta_solar_static
    EXPORTING
      project_id             = i_project_id
      node_id                = i_node_to_navigate
      rep_type               = ls_solarxx-solarxx
      i_v_tab                = ls_solarxx-tabtype
*     start_in_new_task      = 'X'
    EXCEPTIONS
      no_structure_available = 1.
* if no mapping exist navigate standard SOLAR01
  CHECK lv_check_ok = abap_false.
* Navigate to the project in transaction SOLAR01
  CALL METHOD cl_sproject_navigate=>call_ta_solar_static
    EXPORTING
      project_id             = i_project_id
      node_id                = i_node_to_navigate
      rep_type               = aisol_c_dir_proj_nav_solar01
      i_v_tab                = i_tab
*     start_in_new_task      = 'X'
    EXCEPTIONS
      no_structure_available = 1.
ENDMETHOD.

Last we need to call our Z method in overwrite, now jump in this icon

Copy paste this:


    CALL METHOD core_object->ZGOTO_PROJECT_SOL02
      EXPORTING
        i_node_to_navigate = !i_node_to_navigate
        i_project_id       = !i_project_id
        i_tab              = !i_tab.

Activate everything!

Done! now we just enter needed data in table

MANDT         100

SOLARXX     NAVSOL02

ROLE ID        9

ROLETEXT   Application Implementation and Config.

TABTYPE      CONFIG

TABTEXT      CONFIGURATION

Result:

Check that in project you are exist as team member with role type 09

Launch SM_CRM and choose or create any change document insert Project business scenario and jump in it

You will be navigated to SOLAR02 tab Configuration!

So now you can play with customization table as much as you need. dont forget also there is a pfcg + project control of tabs. this is other topic.

6 Comments
Labels in this area