cancel
Showing results for 
Search instead for 
Did you mean: 

Cost Element group table

Former Member
10,647

Can anyone tell me which table contains the cost element groups and which cost elements are related to them

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

You can start with:

SETHEADER

SETNODE

SETLEAF

Rob

suresh_datti
Active Contributor
0 Kudos

to add to Rob's reply..

SETHEADER table where SETCLASS = '0102'

SETNODE table where SETCLASS = SETHEADER-SETCLASS

and SUBCLASS = SETHEADER-SUBCLASS

subclass is the Cost Element Group

SETLEAF table where SETCLASS = SETHEADER-SETCLASS

and SUBCLASS = SETHEADER-SUBCLASS

and SETNAME = SETNODE-SETNAME

Good Luck,

Suresh Datti

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi!

FM K_HIERARCHY_TABLES_READ provides extensive info for different kinds of hierarchies in CO.

For example, for cost center group hierarchy:

FORM get_cost_center

USING

pu_kokrs TYPE kokrs

pu_ksgru TYPE n.

CONSTANTS:

c_setclass_ksgru TYPE sethier-setclass VALUE '0101'.

DATA:

setid_ksgru TYPE sethier-setid,

info TYPE grphinfo,

overwrite TYPE sy-datar,

it_nodes TYPE gseth_node_tab,

it_values TYPE gseth_val_tab.

CONCATENATE c_setclass_ksgru

pu_kokrs

pu_ksgru

INTO setid_ksgru.

CALL FUNCTION 'K_HIERARCHY_TABLES_READ'

EXPORTING

e_class = c_setclass_ksgru

e_setid = setid_ksgru

e_kokrs = pu_kokrs

  • E_MANDT =

  • E_MASTER_DATA =

  • E_STRUCTURE =

  • E_REPLACE_CLASS =

  • E_REPLACE_UNIT =

  • E_REPLACE_TABLE = ' '

  • E_REPLACE_FIELD = ' '

  • E_SUFFIX =

  • E_OLD_LINE_LEVEL = 0

  • IMPORTING

  • I_DOUBLE_CHECK =

  • I_MASTER_DATA =

TABLES

t_nodes = it_nodes

t_values = it_values

  • T_MASTER_DATA =

  • T_FORMULA =

  • T_FIELD_INFO =

  • T_NODE_LIST_OVERWRITE =

CHANGING

c_info = info

c_overwrite = overwrite

EXCEPTIONS

no_controlling_area = 1

no_chart_of_account = 2

different_controlling_areas = 3

different_chart_of_accounts = 4

set_not_found = 5

illegal_field_replacement = 6

illegal_table_replacement = 7

fm_raise = 8

convert_error = 9

no_overwrite_standard_hier = 10

no_bukrs_for_kokrs = 11

OTHERS = 12

.

...

ENDFORM.

it_nodes and it_values contains cost center group to cost center relationships.

Regards,

Maxim.

athavanraja
Active Contributor
0 Kudos

for cost elements the setclass is 0102

the advantage of using K_HIERARCHY_TABLE is that it dosent check authorization for cost center groups or cost element groups.

if you use the BAPI_COSTELMNTGROUP* OR BAPI_COSTCENTERGROUP*

it will check for authorization and you can read the hierarchy from the authorized level only.

Regards

Raja

Former Member
0 Kudos

Hi,

You can use the function modules BAPI_COSTELEMENTGRP_GETLIST and BAPI_COSTELEMENTGRP_GETDETAIL

to get the costelement groups and the nodes under that group. You need to pass the chart of accounts to get the list of cost element groups.

Thanks

Giridhar

Message was edited by: Giridhar Nayudu

Former Member
0 Kudos

I want to know from where the system creates the tree in the transaction KAH3

Former Member
0 Kudos

the cost element group is in structure GRPDYNP,and field name NAME_COALL.

Can u please mention the corresponding table name and field name

Thanks for answer.

kindly help in it also

athavanraja
Active Contributor
0 Kudos

you can get the same from setnode talbe or setheader table.

pass setclass as '0102' and subclass = <your chart of accounts>

field setname will hold the costelement group

Regards

Raja

Former Member
0 Kudos

Please.... Help!

I want to write data there can fix it ....!

---------      I want to record this record in the edit field -----------------------

code is:

REPORT NO STANDARD PAGE HEADING LINE-SIZE 100 LINE-COUNT 60

                                MESSAGE-ID zin.

TYPE-POOLS: gset, gseth, slis, kkblo.

TABLES: aufk.

TYPES: BEGIN OF t_datam.

        INCLUDE STRUCTURE GRPOBJECTS.

TYPES: END OF t_datam.

----------------

DATA: it_datam TYPE STANDARD TABLE OF t_datam WITH HEADER LINE.

DATA: gwa_datam TYPE t_datam,

      GRPOBJECTS TYPE t_datam.

----------------

DATA: pt_node TYPE gseth_node_tab,           "Nodos

      pt_valu TYPE gseth_val_tab,            "Valores

      pt_mast TYPE gseth_md_tab.             "Descripciones

DATA: ls_node LIKE LINE OF pt_node,

      ls_valu LIKE LINE OF pt_valu.

DATA:

      p_layout     TYPE slis_layout_alv,              " Layout inicial

      t_sortcat    TYPE slis_sortinfo_alv OCCURS 1,   " Orden ALV

      t_fieldcat   TYPE slis_t_fieldcat_alv,          " Atributos a mostrar

      t_events     TYPE slis_t_event,                 " Lista de eventos

      t_top_page   TYPE slis_t_listheader,            " Write ini pagina

*

      w_sort       LIKE LINE OF t_sortcat.

DATA: l_repid TYPE sy-repid.

SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-b01.

PARAMETERS:     p_kokrs LIKE aufk-kokrs       OBLIGATORY DEFAULT '300',

                p_class LIKE setnode-setclass OBLIGATORY DEFAULT '0101',

                p_subcl LIKE setnode-subclass DEFAULT '300',

                p_setnm LIKE setnode-setname  OBLIGATORY DEFAULT '300MPR2'.

SELECTION-SCREEN: END OF BLOCK b01.

PARAMETERS:     p_expor NO-DISPLAY,

                p_nivel NO-DISPLAY. "@01

*Initialization

INITIALIZATION.

  l_repid = sy-repid.

START-OF-SELECTION.

   PERFORM 1pro_data.

IF p_expor = 'X'.

    IF p_nivel = 'X'.                                       " @01

      EXPORT it_datam TO MEMORY ID 'T_DATAM'.

    ENDIF.

   ELSE.

    PERFORM 0_layout USING p_layout.

    PERFORM a_haz_alv.

    PERFORM c_haz_eventos CHANGING t_events.

    PERFORM d_call_alv.

  ENDIF.

END-OF-SELECTION.

FORM 1pro_data.

PERFORM obt_jerarquia  USING  p_kokrs      "Sociedad         (intput)

                               p_class      "Clase de set     (intput)

                               p_subcl      "Subclase

                               p_setnm.     "Nombre del set

* LLenado de datos del master

  LOOP AT pt_node INTO ls_node.

    it_datam-shortname = ls_node-shortname.

    it_datam-hlevel = ls_node-hlevel.

    it_datam-descript = ls_node-descript.

    it_datam-credate = ls_node-credate. "Fecha creada

    it_datam-creuser = ls_node-creuser. "usuario creador

    it_datam-ref_set = ls_node-ref_set. "Email

    APPEND it_datam.

  ENDLOOP.

sort it_datam by hlevel ascending.

ENDFORM.

FORM obt_jerarquia USING  pi_kokrs                      "Sociedad         (intput)

                          pi_class                      "Clase de set     (intput)

                          pi_subcl                      "Subclase         (intput)

                          pi_setnm.                     "Nombre de set    (intput)

  DATA:

    lf_info       LIKE grphinfo,

    lf_over       LIKE sy-datar,

    lf_class      LIKE sethier-setclass,

    lf_setid      LIKE sethier-setid,

    lf_kokrs      LIKE sethier-kokrs,

    lf_mandt      LIKE sy-mandt,

    lf_mast_datax LIKE grphp1,

    lf_structurex LIKE grphp2,

    lf_repl_class LIKE sethier-setclass,

    lf_repl_unitx LIKE sethier-kokrs,

    lf_repl_table LIKE sethier-fieldname,

    lf_repl_field LIKE sethier-tabname,

    lf_repl_suffi LIKE grpdynp-suffix,

    lf_nros_level LIKE sethier-level.

  DATA lf_strlen TYPE i.

* Data

  lf_class = pi_class.

*              CONCATENAMOS CLASE + SUBCLASE + NOMBRE DE GRUPO

*Si hay subclase (Centro de beneficio, clase de costo, centro de costo)

  IF pi_subcl NE space.

* Cargamos la clase de set con la subclase

    CONCATENATE lf_class pi_subcl INTO lf_setid.

    lf_strlen = STRLEN( pi_subcl ).

  ELSE.

* Si no hay subclase (orden interna), cargamos solo la clase de set

    lf_setid  = lf_class.

    lf_strlen = 0.

  ENDIF.

*Obtenemos cuántos espacios en blanco habrá entre la subclase y el nombre del set

  lf_strlen = 4 - lf_strlen.

  IF lf_strlen < 0. lf_strlen = 0. ENDIF.

  lf_strlen = 0.

*Si es > 0 concatenamos caracter para ser reemplazado por espacio en blanco

  DO lf_strlen TIMES.

    CONCATENATE lf_setid '&' INTO lf_setid.

  ENDDO.

*Cargamos nombre de set

  IF p_class = '0106' OR p_class = '0101'.

    CONCATENATE lf_setid '&' pi_setnm INTO lf_setid.

  ELSE.

    CONCATENATE lf_setid pi_setnm INTO lf_setid.

  ENDIF.

*Reemplazamos & por espacios en blanco

  TRANSLATE lf_setid USING '& '.

  lf_kokrs         = pi_kokrs.

  lf_mandt         = '100'.

  lf_mast_datax    = '   '.   "Los espacios evita mensaje verificación de datos maestros

  lf_structurex    = 'X  X0200'.

  lf_repl_class    = ' '.

  lf_repl_unitx    = ' '.

  lf_repl_table    = ' '.

  lf_repl_field    = ' '.

  lf_repl_suffi    = ' '.

  lf_nros_level    = '1'.

  REFRESH: pt_node, pt_valu, pt_mast.

*Obtiene lista de sub estaciones de la tabla objetos

  CALL FUNCTION 'K_HIERARCHY_TABLES_READ'

    EXPORTING

      e_class                     = lf_class

      e_setid                     = lf_setid

      e_kokrs                     = lf_kokrs

      e_mandt                     = lf_mandt

      e_master_data               = lf_mast_datax

      e_structure                 = lf_structurex

      e_replace_class             = lf_repl_class

      e_replace_unit              = lf_repl_unitx

      e_replace_table             = lf_repl_table

      e_replace_field             = lf_repl_field

      e_suffix                    = lf_repl_suffi

      e_old_line_level            = lf_nros_level

    TABLES

      t_nodes                     = pt_node         "Nodos

      t_values                    = pt_valu         "Valores

      t_master_data               = pt_mast         "Textos

    CHANGING

      c_info                      = lf_info

      c_overwrite                 = lf_over

    EXCEPTIONS

      no_controlling_area         = 1

      no_chart_of_account         = 2

      different_controlling_areas = 3

      different_chart_of_accounts = 4

      set_not_found               = 5

      illegal_field_replacement   = 6

      illegal_table_replacement   = 7

      fm_raise                    = 8

      convert_error               = 9

      no_overwrite_standard_hier  = 10

      no_bukrs_for_kokrs          = 11.

ENDFORM. 

FORM 0_layout USING ls_layout TYPE slis_layout_alv.

  CLEAR: ls_layout.

  ls_layout-zebra                 = ''.

  ls_layout-colwidth_optimize     = 'X'.

  ls_layout-box_fieldname         = space.

  ls_layout-no_input              = 'X'.

  ls_layout-no_vline              = ' '.

  ls_layout-no_colhead            = ' '.

  ls_layout-lights_condense       = 'X'.

  ls_layout-confirmation_prompt   = 'X'.

  ls_layout-detail_popup          = 'X'.

  ls_layout-detail_initial_lines  = 'X'.

  ls_layout-detail_titlebar       = 'Centro de Benef. vs Centro Costo'.

ENDFORM.  

FORM a_haz_alv.

  REFRESH: t_fieldcat.

  CLEAR:   t_fieldcat.

  PERFORM define_campo USING:

  'SHORTNAME' '' '' '25' 'GRPOBJECTS' '' '' 'ID Corto'       '' '' '' '' '',

  'HLEVEL' ''    '' '04' 'GRPOBJECTS' '' '' 'Nivel'          '' '' '' '' '',

  'DESCRIPT' '' ''  '35' 'GRPOBJECTS' '' '' 'Descripción'    '' '' '' '' '',

  'CREDATE' '' ''   '12' 'GRPOBJECTS' '' '' 'Fec.Creada'     '' '' '' '' '',

  'CREUSER' '' ''   '08' 'GRPOBJECTS' '' '' 'Usu.Creador'    '' '' '' '' 'X',

  'REF_SET' '' ''   '34' 'GRPOBJECTS' '' '' 'Correo E-mail asig.' 'Cor.Email' 'E-mail' '' '' 'X'.

ENDFORM.

FORM define_campo  USING fieldname        "Nombre de campo

                         emphasize        "Color

                         hotspot          "Evento click

                         outputlen        "Longitud

                         ref_tabname      "Tabla referencia

                         cfieldname       "Campo referencia

                         datatype         "Tipo de dato

                         seltext_l        "Texto largo

                         seltext_m        "Texto mediano

                         seltext_s        "Texto corto

                         do_sum           "Campo para suma

                         no_out           "No se visualiza

                         pi_edit  TYPE c. "Editar campos

  DATA: ls_fieldcat TYPE slis_fieldcat_alv.

  CLEAR ls_fieldcat.

  ls_fieldcat-fieldname   = fieldname.

  ls_fieldcat-tabname     = 'T_AUFK2'.

  ls_fieldcat-ref_tabname = ref_tabname.

  ls_fieldcat-outputlen   = outputlen.

  ls_fieldcat-emphasize   = emphasize.

  ls_fieldcat-hotspot     = hotspot.

  ls_fieldcat-cfieldname  = cfieldname.

  ls_fieldcat-datatype    = datatype.

  ls_fieldcat-seltext_l   = seltext_l.

  ls_fieldcat-seltext_m   = seltext_m.

  ls_fieldcat-seltext_s   = seltext_s.

  ls_fieldcat-do_sum      = do_sum.

  ls_fieldcat-no_out      = no_out.

  ls_fieldcat-edit        = pi_edit.

  APPEND ls_fieldcat TO t_fieldcat.

ENDFORM.                    "define_campo

FORM c_haz_eventos CHANGING lt_events TYPE slis_t_event.

  CONSTANTS:

    c_top_of_page  TYPE slis_formname VALUE 'TOP_OF_PAGE',

    c_end_of_page  TYPE slis_formname VALUE 'END_OF_PAGE',

    c_user_command TYPE slis_formname VALUE 'USER_COMMAND'.

  DATA: ls_event TYPE slis_alv_event.

  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

    EXPORTING

      i_list_type = 0

    IMPORTING

      et_events   = lt_events.

* tope de pagina

  READ TABLE lt_events WITH KEY name =  slis_ev_top_of_page INTO ls_event.

  IF sy-subrc = 0.

    MOVE c_top_of_page TO ls_event-form.

    APPEND ls_event TO lt_events.

  ENDIF.

* fin de pagina

  READ TABLE lt_events WITH KEY name =  slis_ev_top_of_page INTO ls_event.

  IF sy-subrc = 0.

    MOVE c_top_of_page TO ls_event-form.

    APPEND ls_event TO lt_events.

  ENDIF.

* eventos de usuario

  READ TABLE lt_events WITH KEY name = slis_ev_user_command INTO ls_event.

  IF sy-subrc = 0.

    MOVE c_user_command TO ls_event-form.

    APPEND ls_event TO lt_events.

  ENDIF.

ENDFORM.

FORM d_call_alv.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTING

      i_callback_program       = l_repid

      i_callback_pf_status_set = 'SET_STATUS'

      i_callback_user_command  = 'USER_COMMAND'

      is_layout                = p_layout

      it_fieldcat              = t_fieldcat[]

      i_save                   = 'X'

      it_sort                  = t_sortcat

*   is_variant               = g_variant_1

    TABLES

      t_outtab                 = it_datam

    EXCEPTIONS

      program_error            = 1

      OTHERS                   = 2.

ENDFORM. 

FORM set_status USING rt_extab  TYPE  slis_t_extab.

  SET PF-STATUS  'ALV_STATUS'.

ENDFORM.

FORM user_command USING r_ucomm     LIKE sy-ucomm

                        r_selfield TYPE slis_selfield.

  PERFORM sr_upd_alv.

DATA: wa_alv  LIKE it_datam.

r_selfield-refresh = 'X'.

*

  CASE r_ucomm.

    WHEN 'SAVE'.

      LOOP AT it_datam INTO gwa_datam.

  "Here you should go, because I have not created anything but just reads the data helps.

      ENDLOOP.

ENDFORM.

Former Member
0 Kudos

Hi rodolfo,

If you can say which field in which transaction

cost element group exits it would be helpful to answer.