cancel
Showing results for 
Search instead for 
Did you mean: 

BADI BADI DPR_FIN_GECCO_ATTR: Account assignment of task level to WBS

Former Member
0 Kudos

When creating a project in cProjects I am using BADI BADI DPR_FIN_GECCO_ATTR to manipulate the external WBS ID that is created in SAP PS.

SAP accepts the ID that I pass for the Phase level, but for the Task level SAP appends a string "/TTO" to the end of my WBS ID. Any idea why this happens and how I can get rid of it. The "/TTO" violates or masking structure in PS?

constants: lc_phase_id_ps type char30 value 'DPR_TV_PROJECT_ELEMENT_ID_PS',
             lc_task_id_co  type char30 value 'DPR_TV_PROJECT_ELEMENT_ID_CO'.

  field-symbols: <project_ext> type dpr_ts_project_ext,
                 <project_int> type dpr_ts_project_int,
                 <phase_ext>   type dpr_ts_phase_ext,
                 <phase_int>   type dpr_ts_phase_int,
                 <task_ext>    type dpr_ts_task_ext,
                 <task_int>    type dpr_ts_task_int,
                 <attributes>  type dpr_ts_iaom_object_attribute.

  case ir_common->get_object_type( ).
    when cl_dpr_co=>sc_ot_project.
      assign ir_project_ext->* to <project_ext>.
      assign ir_project_int->* to <project_int>.  "not doing anything with this data yet

    when cl_dpr_co=>sc_ot_phase.
      assign ir_attributes_ext->* to <phase_ext>.
      assign ir_attributes_int->* to <phase_int>.
      read table ct_attributes assigning <attributes>
        with key data_element = lc_phase_id_ps.
      if sy-subrc = 0.
        <attributes>-value = <phase_ext>-phase_id.  "something like Z/001-001
      endif.

    when cl_dpr_co=>sc_ot_task.
      assign ir_attributes_ext->* to <task_ext>.
      assign ir_attributes_int->* to <task_int>.
      read table ct_attributes assigning <attributes>
        with key data_element = lc_task_id_co.
      if sy-subrc = 0.
        <attributes>-value = <task_ext>-search_field.  "something like Z/001-001-001
      endif.
  endcase.

Accepted Solutions (0)

Answers (2)

Answers (2)

0 Kudos

Hello,

I have a similar requierement to have a custom numbering for the PPM cProject and to synchronize the numbering with the PS project.

I am stacked for the moment, to have the right spot to enhance to be able to create custom numbering for the PPM cProject.

Could you please advise on that ?

Former Member
0 Kudos

I have found the spot where SAP changes the WBS:

In Class CL_IM_CPRO_PROJECT_LABEL method IF_EX_GCC_PS_PROJECT_LABEL~GET_WBS_ELEMENT there is the following logic:

if lv_object_type_co ne 'DPO'.
  read table attributes_of_ext_obj
       into ls_attribute
       with key data_element = 'DPR_TV_PROJECT_ELEMENT_ID_CO'.
  if sy-subrc = 0.
    if lv_object_type_co eq 'TTO' or     "Aufgabe            "H860739
       lv_object_type_co eq 'ITO'.       "Checklistenpunkt   "H860739
      concatenate ls_attribute-value                         "H860739 
                  lv_object_type_co                          "H860739
                  into ls_value.         "<<==Here it is     "H860739
      wbs_element = ls_value.                                "H860739
    else.                                                    "H860739
      wbs_element = ls_attribute-value.
    endif.                                                   "H860739
  else.
    message e013(iaom_cprojects)
      with 'DPR_TV_PROJECT_ELEMENT_ID_CO'
      raising error_occurred.
  endif.
  "...
  "... Code removed
endif.

This is part of a standard BAdI implementation for GCC_PS_PROJECT_LABEL.

I have solved the problem by enhancing the method using the implicit enhancement point at the end of the method and resetting the WBS element there.