on 2005 Nov 15 4:20 PM
Can anyone tell me which table contains the cost element groups and which cost elements are related to them
You can start with:
SETHEADER
SETNODE
SETLEAF
Rob
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I want to know from where the system creates the tree in the transaction KAH3
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
Hi rodolfo,
If you can say which field in which transaction
cost element group exits it would be helpful to answer.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
66 | |
10 | |
10 | |
10 | |
10 | |
8 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.