04-24-2007 7:54 AM
Hi All,
I have cost center available with me, and I want cost center group for that. How do I do this??? Plz tell me the relevant tables or FMs.
Plz help soon
thanks & regards
Niyati
04-24-2007 8:17 AM
Hi Niyathi,
The followin code will help you very much because here i am passing the Cost center and getting the cost center group and its description. you can solve your problem.
Please award me if this will help you.
CALL FUNCTION 'K_COSTELEM_SELECT'
EXPORTING
KOKRS = '0100'
CE_FROM = T_FINAL-KSTAR
* CE_TO =
* CE_GROUP =
* DATE_FROM =
* DATE_TO =
* LANGU = SY-LANGU
* ONLY_COMPLETE = ' '
* WITH_TEXT = 'X'
* BYPASSING_BUFFER = ' '
* FILL_BUFFER = 'X'
* TABNAME = 'CSKB_EX'
TABLES
IT_RESULT = IT_BUFFER
EXCEPTIONS
NO_RECORD_FOUND = 1
GROUP_NOT_FOUND = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE T_CSKU WITH KEY KSTAR = T_FINAL-KSTAR.
READ TABLE IT_BUFFER INDEX 1.
MOVE IT_BUFFER-KTEXT TO T_FINAL-KAGRU.
MOVE T_CSKU-KTEXT TO T_FINAL-KTEXT.
MODIFY T_FINAL FROM T_FINAL TRANSPORTING KTEXT KAGRU.
Warm Regards,
Vijay
04-24-2007 8:42 AM
Hi Vijay,
Thanks for the help. I had following confusions.
U are passing cost element, not cost center. I have only cost center available with me.
Also plz tell me where are u getting the internal table T_CSKU from, and what information r u getting in this.
Kindly help soon
Thanks a lot
Niyati
04-24-2007 8:56 AM
try this..
select SETID
from SETLEAF
into V_CCGROUP
where setclass eq '0101' and
VALFROM LE V_CCENTER and
VALTO GE V_CCENTER.
Here V_CCENTER is the cost center
04-24-2007 9:20 AM
Hi,
Thanks for this code.
I also need cost center group text. From where do i get this???
Thanks a lot..
Niyati
04-24-2007 9:27 AM
select DESCRIPT
from SETHEADERT
into V_TEXT
where setclass eq '0101' and
SETNAME EQ V_CCGROUP
and LANGU EQ 'E'.
<b>Reward and close thread for helpful answers</b>
04-24-2007 9:46 AM
I am getting that information from the table
SELECT * FROM CSKU INTO TABLE T_CSKU.
In my report i am using only 2 tables COEP, CSKU.
Here i am sending the code for my report. You just try to execute it then you will get an idean about it.
TABLES
TABLES : COEP,
PRPS,
BAPISET_HIER ,
ZFI_BURDEN.
TYPES
TYPES: BEGIN OF YT_TEMPLATE,
KSTAR LIKE COEP-KSTAR,
WOGBTR LIKE COEP-WOGBTR,
END OF YT_TEMPLATE.
DATA VARIABLES
DATA: W_FI LIKE COEP-WOGBTR,
W_PROJECT LIKE COEP-WOGBTR,
W_ABSORPTION LIKE COEP-WOGBTR,
W_TNAME LIKE TSTC-TCODE VALUE 'ZFP1',
W_SUBRC LIKE SY-SUBRC.
*CONSTANTS
CONSTANTS: C_X TYPE C VALUE 'X',
C_ABB LIKE BAPICO_GROUP-CHRT_ACCTS VALUE 'ABB',
C_GROUPNAME LIKE BAPICO_GROUP-GROUPNAME VALUE 'FI_'.
INTERNAL TABLES
DATA: T_FI TYPE STANDARD TABLE OF YT_TEMPLATE WITH HEADER LINE,
T_PROJECTS TYPE STANDARD TABLE OF YT_TEMPLATE WITH HEADER LINE,
T_TEMP TYPE STANDARD TABLE OF YT_TEMPLATE WITH HEADER LINE,
T_COEP TYPE STANDARD TABLE OF COEP WITH HEADER LINE,
T_CSKU TYPE STANDARD TABLE OF CSKU WITH HEADER LINE.
DATA : BEGIN OF T_NODES_MAIN OCCURS 0.
INCLUDE STRUCTURE BAPISET_HIER.
DATA END OF T_NODES_MAIN .
DATA : BEGIN OF T_VALUES_MAIN OCCURS 0.
INCLUDE STRUCTURE BAPI1113_VALUES.
DATA : END OF T_VALUES_MAIN.
DATA : BEGIN OF T_NODES OCCURS 0.
INCLUDE STRUCTURE BAPISET_HIER.
DATA END OF T_NODES .
DATA : BEGIN OF T_VALUES OCCURS 0.
INCLUDE STRUCTURE BAPI1113_VALUES.
DATA : END OF T_VALUES.
DATA : BEGIN OF T_GROUP OCCURS 0,
GROUPNAME LIKE BAPISET_HIER-GROUPNAME,
DESCRIPT LIKE BAPISET_HIER-DESCRIPT,
VALFROM LIKE BAPI1113_VALUES-VALFROM,
END OF T_GROUP .
DATA: BEGIN OF T_FINAL OCCURS 0,
KSTAR LIKE COEP-KSTAR,
KTEXT LIKE CSKU-KTEXT,
KAGRU LIKE CSKU-KTEXT, "TYPE KAGRU,
FI_WOGBTR LIKE COEP-WOGBTR,
PR_WOGBTR LIKE COEP-WOGBTR,
DF_WOGBTR LIKE COEP-WOGBTR,
END OF T_FINAL.
*SELECTION SCREEN
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_GJAHR FOR COEP-GJAHR OBLIGATORY NO INTERVALS NO-EXTENSION,
S_PERIO FOR COEP-PERIO OBLIGATORY NO INTERVALS NO-EXTENSION.
SELECTION-SCREEN : END OF BLOCK B1.
SELECTION-SCREEN : BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
PARAMETERS : P_SUM RADIOBUTTON GROUP SUM user-command SUM DEFAULT 'X',
P_DETAIL RADIOBUTTON GROUP SUM.
SELECTION-SCREEN : END OF BLOCK B2.
*START-OF-SELECTION.
START-OF-SELECTION.
*Authorization check for this transaction.
CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
EXPORTING
tcode = W_Tname
EXCEPTIONS
ok = 1
not_ok = 2.
IF sy-subrc = 2.
MESSAGE e172(00) WITH W_Tname.
ENDIF.
CALL FUNCTION 'SUSR_AUTHORITY_CHECK_S_TCODE'
EXPORTING
tcode = W_Tname
IMPORTING
rc = W_subrc.
IF W_subrc <> 0.
MESSAGE e172(00) WITH W_Tname.
ENDIF.
*SELECT KSTAR WOGBTR FROM COEP INTO TABLE T_FI
WHERE PERIO EQ S_PERIO-LOW
AND GJAHR EQ S_GJAHR-LOW
AND KOKRS EQ '0300'
AND BUKRS EQ '0300'
AND WRTTP EQ '04'
AND VERSN EQ '000'
AND GSBER EQ '9950'.
*
*SELECT KSTAR WOGBTR FROM COEP INTO TABLE T_PROJECTS
WHERE PERIO EQ S_PERIO-LOW
AND GJAHR EQ S_GJAHR-LOW
AND KOKRS EQ '0300'
AND BUKRS EQ '0300'
AND WRTTP EQ '04'
AND VERSN EQ '000'
AND GSBER EQ '9950'
AND ( OBJNR LIKE 'PR%' OR OBJNR LIKE 'NV%' ).
SELECT * FROM CSKU INTO TABLE T_CSKU.
****TEST SCENARIO
SELECT KSTAR WOGBTR FROM COEP INTO TABLE T_FI
WHERE KOKRS EQ '0100'
AND BUKRS EQ '0310'
AND WRTTP EQ '04'
AND VERSN EQ '000'
AND GSBER EQ '3410'.
SELECT KSTAR WOGBTR FROM COEP INTO TABLE T_PROJECTS
WHERE KOKRS EQ '0100'
AND BUKRS EQ '0310'
AND WRTTP EQ '04'
AND VERSN EQ '000'
AND GSBER EQ '3410'
AND ( OBJNR LIKE 'VB%' OR OBJNR LIKE 'AO%' ).
****TEST SCENARIO
REFRESH T_TEMP.
LOOP AT T_FI INTO T_TEMP.
COLLECT T_TEMP.
ENDLOOP.
REFRESH T_FI.
APPEND LINES OF T_TEMP TO T_FI.
REFRESH T_TEMP.
LOOP AT T_PROJECTS INTO T_TEMP.
COLLECT T_TEMP.
ENDLOOP.
REFRESH T_PROJECTS.
APPEND LINES OF T_TEMP TO T_PROJECTS.
CLEAR T_PROJECTS.
CLEAR: W_FI, W_PROJECT, W_ABSORPTION.
LOOP AT T_FI.
READ TABLE T_PROJECTS WITH KEY KSTAR = T_FI-KSTAR.
MOVE: T_FI-KSTAR TO T_FINAL-KSTAR,
T_FI-WOGBTR TO T_FINAL-FI_WOGBTR,
T_PROJECTS-WOGBTR TO T_FINAL-PR_WOGBTR.
T_FINAL-DF_WOGBTR = T_FINAL-FI_WOGBTR - T_FINAL-PR_WOGBTR.
IF T_FINAL-DF_WOGBTR IS NOT INITIAL.
APPEND T_FINAL.
W_FI = W_FI + T_FINAL-FI_WOGBTR.
W_PROJECT = W_PROJECT + T_FINAL-PR_WOGBTR.
W_ABSORPTION = W_ABSORPTION + T_FINAL-DF_WOGBTR.
ENDIF.
ENDLOOP.
****One of the method to get cost group name
DATA: it_buffer LIKE cskb_ex OCCURS 0 WITH HEADER LINE.
LOOP AT T_FINAL.
CALL FUNCTION 'K_COSTELEM_SELECT'
EXPORTING
KOKRS = '0100'
CE_FROM = T_FINAL-KSTAR
CE_TO =
CE_GROUP =
DATE_FROM =
DATE_TO =
LANGU = SY-LANGU
ONLY_COMPLETE = ' '
WITH_TEXT = 'X'
BYPASSING_BUFFER = ' '
FILL_BUFFER = 'X'
TABNAME = 'CSKB_EX'
TABLES
IT_RESULT = IT_BUFFER
EXCEPTIONS
NO_RECORD_FOUND = 1
GROUP_NOT_FOUND = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE T_CSKU WITH KEY KSTAR = T_FINAL-KSTAR.
READ TABLE IT_BUFFER INDEX 1.
MOVE IT_BUFFER-KTEXT TO T_FINAL-KAGRU.
MOVE T_CSKU-KTEXT TO T_FINAL-KTEXT.
MODIFY T_FINAL FROM T_FINAL TRANSPORTING KTEXT KAGRU.
ENDLOOP.
****Anothe method to get Cost group and Description
PERFORM GET_GROUPS .
*LOOP AT T_FINAL.
READ TABLE T_GROUP WITH KEY VALFROM = T_FINAL-KSTAR .
MOVE T_GROUP-GROUPNAME TO T_FINAL-KAGRU .
MOVE T_GROUP-DESCRIPT TO T_FINAL-DESCRIPT.
MODIFY T_FINAL FROM T_FINAL TRANSPORTING KAGRU.
*ENDLOOP.
*END-OF-SELECTION.
END-OF-SELECTION.
IF P_SUM EQ C_X.
PERFORM DISPLAY_SUMMARY.
ELSE.
PERFORM DISPLAY_DETAIL.
ENDIF.
&----
*& Form GET_GROUPS
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_GROUPS .
*This routine get Cost elements for cost element group " BURDENRATE" .
CALL FUNCTION 'BAPI_COSTELEMENTGRP_GETDETAIL'
EXPORTING
CHARTOFACCOUNTS = C_ABB
GROUPNAME = C_GROUPNAME
IMPORTING
RETURN =
TABLES
HIERARCHYNODES = T_NODES_MAIN
HIERARCHYVALUES = T_VALUES_MAIN
.
T_NODES_MAIN index 1 has heading for cost element group which needs to
be deleted
DELETE T_NODES_MAIN INDEX 1 .
looping Cost element groups for corresponding cost elements.
LOOP AT T_NODES_MAIN.
CALL FUNCTION 'BAPI_COSTELEMENTGRP_GETDETAIL'
EXPORTING
CHARTOFACCOUNTS = C_ABB
GROUPNAME = T_NODES_MAIN-GROUPNAME
IMPORTING
RETURN =
TABLES
HIERARCHYNODES = T_NODES
HIERARCHYVALUES = T_VALUES.
LOOP AT T_VALUES.
MOVE T_NODES-GROUPNAME TO T_GROUP-GROUPNAME.
MOVE T_NODES-DESCRIPT TO T_GROUP-DESCRIPT.
MOVE T_VALUES-VALFROM TO T_GROUP-VALFROM.
APPEND T_GROUP.
CLEAR T_GROUP.
ENDLOOP.
ENDLOOP.
ENDFORM. " GET_GROUPS
&----
*& Form DISPLAY_SUMMARY
&----
This subroutine displays summary information
----
FORM DISPLAY_SUMMARY .
DATA: T_TEMP_FINAL LIKE STANDARD TABLE OF T_FINAL WITH HEADER LINE,
WV_TEMP TYPE I.
LOOP AT T_FINAL INTO T_TEMP_FINAL.
CLEAR: T_TEMP_FINAL-KSTAR,
T_TEMP_FINAL-KTEXT.
COLLECT T_TEMP_FINAL.
ENDLOOP.
REFRESH T_FINAL.
APPEND LINES OF T_TEMP_FINAL TO T_FINAL.
REFRESH T_TEMP_FINAL.
WRITE: 1(21) TEXT-003, W_FI,
/1(21) TEXT-004, W_PROJECT,
/1(21) TEXT-005, W_ABSORPTION.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
SKIP 3.
WRITE: (96) SY-ULINE.
WRITE: / SY-VLINE, (20) TEXT-006, SY-VLINE, (21) TEXT-007 CENTERED, SY-VLINE,
(21) TEXT-008 CENTERED, SY-VLINE, (21) TEXT-009 CENTERED, SY-VLINE.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: (96) SY-ULINE.
LOOP AT T_FINAL.
WV_TEMP = SY-TABIX MOD 2.
IF WV_TEMP EQ 0.
FORMAT COLOR COL_NORMAL INTENSIFIED ON.
ELSE.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
ENDIF.
WRITE:/ SY-VLINE, (20) T_FINAL-KAGRU,
SY-VLINE, (21) T_FINAL-FI_WOGBTR , SY-VLINE, (21) T_FINAL-PR_WOGBTR,
SY-VLINE, (21) T_FINAL-DF_WOGBTR, SY-VLINE.
ENDLOOP.
IF T_FINAL IS INITIAL.
WRITE: / SY-VLINE, TEXT-013,96 SY-VLINE.
ELSE.
WRITE: (96) SY-ULINE.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE:/ SY-VLINE, (20) TEXT-012,
SY-VLINE, (21) W_FI , SY-VLINE, (21) W_PROJECT,
SY-VLINE, (21) W_ABSORPTION, SY-VLINE.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
ENDIF.
WRITE: (96) SY-ULINE.
ENDFORM. " DISPLAY_SUMMARY
&----
*& Form DISPLAY_DETAIL
&----
This subroutine displays Detail information
----
FORM DISPLAY_DETAIL .
DATA: WV_TEMP TYPE I.
WRITE: 1(21) TEXT-003, W_FI,
/1(21) TEXT-004, W_PROJECT,
/1(21) TEXT-005, W_ABSORPTION.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
SKIP 3.
WRITE: (138) SY-ULINE.
WRITE:/ SY-VLINE, (16) TEXT-010,
SY-VLINE, (20) TEXT-011,
SY-VLINE, (20) TEXT-006,
SY-VLINE, (21) TEXT-007 CENTERED, SY-VLINE, (21) TEXT-008 CENTERED,
SY-VLINE, (21) TEXT-009 CENTERED, SY-VLINE.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: (138) SY-ULINE.
LOOP AT T_FINAL.
WV_TEMP = SY-TABIX MOD 2.
IF WV_TEMP EQ 0.
FORMAT COLOR COL_NORMAL INTENSIFIED ON.
ELSE.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
ENDIF.
WRITE: / SY-VLINE, (16) T_FINAL-KSTAR,
SY-VLINE, (20) T_FINAL-KTEXT,
SY-VLINE, (20) T_FINAL-KAGRU,
SY-VLINE, (21) T_FINAL-FI_WOGBTR, SY-VLINE, (21) T_FINAL-PR_WOGBTR,
SY-VLINE, (21) T_FINAL-DF_WOGBTR, SY-VLINE.
ENDLOOP.
IF T_FINAL IS INITIAL.
WRITE: / SY-VLINE, TEXT-013,138 SY-VLINE.
ELSE.
WRITE: (138) SY-ULINE.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE: / SY-VLINE, (16) TEXT-012,
SY-VLINE, (20) SPACE,
SY-VLINE, (20) SPACE,
SY-VLINE, (21) W_FI, SY-VLINE, (21) W_PROJECT,
SY-VLINE, (21) W_ABSORPTION, SY-VLINE.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
ENDIF.
WRITE: (138) SY-ULINE.
ENDFORM. " DISPLAY_DETAIL
Message was edited by:
Vijaya Bhaskarudu Gangisetty