Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

setid hierarchy

Former Member
0 Likes
818

Hi Folks,

My requirement is to get an hierarchy from a setid.I need to display the balances against each company code and the output should look like this.

Legal

CA A B B-A

4001 $2000 $4000 $2000

4002 $3000 $4000 $1000

4003 $2000 $4000 $2000

Subtotal $5000

NE

3500 $2000 $4000 $2000

3501 $2000 $4000 $2000

Subtotal $4000

NY

2500 $2000 $4000 $2000

Subtotal $2000

Total $11000

The values are taken from different tables.

The hierarchy is from a setid (transaction code:GS03)

This is an alv report i guess and there will be a drilldown option in the next stage.

Please provide me any sample code if possible.

Thanks and regards.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
619

this is hierarchy compare report...Change it according to ur requirement.

REPORT y_hierarchies_in_tables

NO STANDARD PAGE HEADING.

PARAMETER: g_group TYPE grpname. " DEFAULT 'Z_GLAB0000'.

DATA:

g_setid TYPE setid,

g_class TYPE setclass.

DATA: lt_hier TYPE STANDARD TABLE OF sethier,

lt_val TYPE STANDARD TABLE OF setvalues.

DATA: hier LIKE sethier OCCURS 0 WITH HEADER LINE,

val LIKE setvalues OCCURS 0 WITH HEADER LINE,

setinfo LIKE setinfo OCCURS 0 WITH HEADER LINE.

DATA: zaccbas(20) TYPE c OCCURS 0 WITH HEADER LINE.

DATA: miss_val LIKE setvalues-from OCCURS 0 WITH HEADER LINE.

DATA: table_name TYPE tabname,

field_name TYPE setfld.

DATA: ambiguity_flag TYPE c.

    • Ambiguity check

PERFORM ambiguity_check.

    • Display Records

PERFORM display_records.

&----


*& Form AMBIGUITY_CHECK

&----


  • Ambiguity check

----


FORM ambiguity_check .

DATA: it_abaplist LIKE abaplist OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF it_ascilist OCCURS 0,

zeile(256) TYPE c,

END OF it_ascilist.

DATA: flag.

SUBMIT rgsovl00 "VIA SELECTION-SCREEN

WITH p_shrtn = g_group

WITH path = 'X'

EXPORTING LIST TO MEMORY

AND RETURN.

CALL FUNCTION 'LIST_FROM_MEMORY'

TABLES

listobject = it_abaplist

EXCEPTIONS

not_found = 1

OTHERS = 2.

CALL FUNCTION 'LIST_TO_ASCI'

TABLES

listasci = it_ascilist

listobject = it_abaplist

EXCEPTIONS

empty_list = 1

list_index_invalid = 2

OTHERS = 3 .

LOOP AT it_ascilist.

IF it_ascilist-zeile = text-001.

flag = 'X'.

ENDIF.

IF flag = 'X' AND

it_ascilist-zeile = text-002.

ambiguity_flag = 'X'.

CLEAR flag.

ENDIF.

ENDLOOP.

FREE MEMORY.

ENDFORM. " AMBIGUITY_CHECK

&----


*& Form DISPLAY_RECORDS

&----


  • Display the Records

----


FORM display_records .

PERFORM get_records.

PERFORM header_data.

PERFORM item_data.

ENDFORM. " DISPLAY_RECORDS

&----


*& Form GET_RECORDS

&----


  • Get all the Node values

----


FORM get_records .

    • Get the ID name for the Hierarchy

CALL FUNCTION 'G_SET_GET_ID_FROM_NAME'

EXPORTING

shortname = g_group

setclass = g_class

old_setid = g_setid

IMPORTING

new_setid = g_setid.

    • Get the Table and Field name for the Top Node

CALL FUNCTION 'G_SET_GET_INFO'

EXPORTING

setname = g_setid

no_set_title = 'X'

use_table_buffer = 'X'

IMPORTING

info = setinfo.

table_name = setinfo-tabname.

field_name = setinfo-fld.

    • Get all the Nodes for the Hierarchy

CALL FUNCTION 'G_SET_TREE_IMPORT'

EXPORTING

no_descriptions = ' '

no_rw_info = 'X'

setid = g_setid

TABLES

set_hierarchy = lt_hier

set_values = lt_val.

hier[] = lt_hier.

val[] = lt_val.

SELECT (field_name) FROM (table_name) INTO TABLE zaccbas.

LOOP AT zaccbas.

READ TABLE val WITH KEY FROM = zaccbas.

IF sy-subrc = 0.

DELETE zaccbas.

CLEAR zaccbas.

DELETE val INDEX sy-tabix.

CLEAR val.

ENDIF.

ENDLOOP.

ENDFORM. " GET_RECORDS

&----


*& Form HEADER_DATA

&----


  • Header Data

----


FORM header_data .

DATA: desc TYPE settext.

READ TABLE hier WITH KEY fieldname = field_name

shortname = g_group.

IF sy-subrc = 0.

desc = hier-descript.

ENDIF.

SKIP.

WRITE: 'Node :',g_group.

WRITE:75 'User name :', sy-uname.

WRITE:/ 'Description :', desc.

WRITE:75 'Date:', sy-datum.

WRITE:/ 'Table Name :' , table_name.

WRITE:75 'Time:', sy-timlo.

WRITE:/ 'Field Name :', field_name.

write:75 'Client:', SY-MANDT.

skip.

IF ambiguity_flag = 'X'.

WRITE:/ 'Ambiguity Check :'. WRITE: 'Success' COLOR 5.

ELSE.

WRITE:/ 'Ambiguity Check :'. WRITE: 'Failed' COLOR 6 .

ENDIF.

WRITE:/ sy-uline.

WRITE:/37 'Validation for Hierarchy'.

WRITE:/ sy-uline.

ENDFORM. " HEADER_DATA

&----


*& Form ITEM_DATA

&----


  • Output Report for Nodes

----


FORM item_data .

IF NOT zaccbas[] IS INITIAL.

WRITE:/ 'Missing Records from Hierarchy' COLOR 3.

LOOP AT zaccbas.

WRITE:/ zaccbas.

ENDLOOP.

ENDIF.

IF NOT val[] IS INITIAL.

SKIP 1.

WRITE:/ 'Additional Records in Hierarchy' COLOR 3.

LOOP AT val.

WRITE:/ val-from. ", 28 val-DESCRIPT.

ENDLOOP.

ELSEIF ZACCBAS[] IS INITIAL.

WRITE:/ 'No Missing Records Found' COLOR 3.

ENDIF.

ENDFORM. " ITEM_DATA

2 REPLIES 2
Read only

Former Member
0 Likes
620

this is hierarchy compare report...Change it according to ur requirement.

REPORT y_hierarchies_in_tables

NO STANDARD PAGE HEADING.

PARAMETER: g_group TYPE grpname. " DEFAULT 'Z_GLAB0000'.

DATA:

g_setid TYPE setid,

g_class TYPE setclass.

DATA: lt_hier TYPE STANDARD TABLE OF sethier,

lt_val TYPE STANDARD TABLE OF setvalues.

DATA: hier LIKE sethier OCCURS 0 WITH HEADER LINE,

val LIKE setvalues OCCURS 0 WITH HEADER LINE,

setinfo LIKE setinfo OCCURS 0 WITH HEADER LINE.

DATA: zaccbas(20) TYPE c OCCURS 0 WITH HEADER LINE.

DATA: miss_val LIKE setvalues-from OCCURS 0 WITH HEADER LINE.

DATA: table_name TYPE tabname,

field_name TYPE setfld.

DATA: ambiguity_flag TYPE c.

    • Ambiguity check

PERFORM ambiguity_check.

    • Display Records

PERFORM display_records.

&----


*& Form AMBIGUITY_CHECK

&----


  • Ambiguity check

----


FORM ambiguity_check .

DATA: it_abaplist LIKE abaplist OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF it_ascilist OCCURS 0,

zeile(256) TYPE c,

END OF it_ascilist.

DATA: flag.

SUBMIT rgsovl00 "VIA SELECTION-SCREEN

WITH p_shrtn = g_group

WITH path = 'X'

EXPORTING LIST TO MEMORY

AND RETURN.

CALL FUNCTION 'LIST_FROM_MEMORY'

TABLES

listobject = it_abaplist

EXCEPTIONS

not_found = 1

OTHERS = 2.

CALL FUNCTION 'LIST_TO_ASCI'

TABLES

listasci = it_ascilist

listobject = it_abaplist

EXCEPTIONS

empty_list = 1

list_index_invalid = 2

OTHERS = 3 .

LOOP AT it_ascilist.

IF it_ascilist-zeile = text-001.

flag = 'X'.

ENDIF.

IF flag = 'X' AND

it_ascilist-zeile = text-002.

ambiguity_flag = 'X'.

CLEAR flag.

ENDIF.

ENDLOOP.

FREE MEMORY.

ENDFORM. " AMBIGUITY_CHECK

&----


*& Form DISPLAY_RECORDS

&----


  • Display the Records

----


FORM display_records .

PERFORM get_records.

PERFORM header_data.

PERFORM item_data.

ENDFORM. " DISPLAY_RECORDS

&----


*& Form GET_RECORDS

&----


  • Get all the Node values

----


FORM get_records .

    • Get the ID name for the Hierarchy

CALL FUNCTION 'G_SET_GET_ID_FROM_NAME'

EXPORTING

shortname = g_group

setclass = g_class

old_setid = g_setid

IMPORTING

new_setid = g_setid.

    • Get the Table and Field name for the Top Node

CALL FUNCTION 'G_SET_GET_INFO'

EXPORTING

setname = g_setid

no_set_title = 'X'

use_table_buffer = 'X'

IMPORTING

info = setinfo.

table_name = setinfo-tabname.

field_name = setinfo-fld.

    • Get all the Nodes for the Hierarchy

CALL FUNCTION 'G_SET_TREE_IMPORT'

EXPORTING

no_descriptions = ' '

no_rw_info = 'X'

setid = g_setid

TABLES

set_hierarchy = lt_hier

set_values = lt_val.

hier[] = lt_hier.

val[] = lt_val.

SELECT (field_name) FROM (table_name) INTO TABLE zaccbas.

LOOP AT zaccbas.

READ TABLE val WITH KEY FROM = zaccbas.

IF sy-subrc = 0.

DELETE zaccbas.

CLEAR zaccbas.

DELETE val INDEX sy-tabix.

CLEAR val.

ENDIF.

ENDLOOP.

ENDFORM. " GET_RECORDS

&----


*& Form HEADER_DATA

&----


  • Header Data

----


FORM header_data .

DATA: desc TYPE settext.

READ TABLE hier WITH KEY fieldname = field_name

shortname = g_group.

IF sy-subrc = 0.

desc = hier-descript.

ENDIF.

SKIP.

WRITE: 'Node :',g_group.

WRITE:75 'User name :', sy-uname.

WRITE:/ 'Description :', desc.

WRITE:75 'Date:', sy-datum.

WRITE:/ 'Table Name :' , table_name.

WRITE:75 'Time:', sy-timlo.

WRITE:/ 'Field Name :', field_name.

write:75 'Client:', SY-MANDT.

skip.

IF ambiguity_flag = 'X'.

WRITE:/ 'Ambiguity Check :'. WRITE: 'Success' COLOR 5.

ELSE.

WRITE:/ 'Ambiguity Check :'. WRITE: 'Failed' COLOR 6 .

ENDIF.

WRITE:/ sy-uline.

WRITE:/37 'Validation for Hierarchy'.

WRITE:/ sy-uline.

ENDFORM. " HEADER_DATA

&----


*& Form ITEM_DATA

&----


  • Output Report for Nodes

----


FORM item_data .

IF NOT zaccbas[] IS INITIAL.

WRITE:/ 'Missing Records from Hierarchy' COLOR 3.

LOOP AT zaccbas.

WRITE:/ zaccbas.

ENDLOOP.

ENDIF.

IF NOT val[] IS INITIAL.

SKIP 1.

WRITE:/ 'Additional Records in Hierarchy' COLOR 3.

LOOP AT val.

WRITE:/ val-from. ", 28 val-DESCRIPT.

ENDLOOP.

ELSEIF ZACCBAS[] IS INITIAL.

WRITE:/ 'No Missing Records Found' COLOR 3.

ENDIF.

ENDFORM. " ITEM_DATA

Read only

Former Member
0 Likes
619

hi

good

try this report in se38 and try your requirement accordingly.

BCALV_GRID_02

thanks

mrutyun^