Standard Program created in SE38 or SE80
This is the orgtest.htm page of the example SAP HR org structure BSP, this is being used to demonstrate the use of javascript retrieve the SAP HR org structure and display it to the SAP bsp user. Please note although this will work as a standalone abap program it provides very little as output as it is designed to be implemented as part of the whole SAP HR org structure BSP
*&-------------------------------------------------------------**& Report ZORG_RETRIEVE * *& * *&-------------------------------------------------------------* *Standard Program created in SE38 or SE80 REPORT zorg_retrieve . TYPES: tt_hrp1001 TYPE STANDARD TABLE OF hrp1001 INITIAL SIZE 0. DATA: it_hrp1001 TYPE tt_hrp1001. TYPES: BEGIN OF t_orgdisplay, level(40) TYPE c, id type i, parent type i, objid TYPE hrp1001-objid, orgtx TYPE string, begda TYPE hrp1001-begda, endda TYPE hrp1001-endda, display type string, END OF t_orgdisplay. DATA: it_orgdisplay TYPE STANDARD TABLE OF t_orgdisplay, wa_orgdisplay TYPE t_orgdisplay. DATA: wa_hrp1001 LIKE LINE OF it_hrp1001, wa_objid TYPE hrp1001-objid, wa_objid1 TYPE hrp1001-objid, wa_objid2 TYPE hrp1001-objid, wa_objid3 TYPE hrp1001-objid, wa_objid4 TYPE hrp1001-objid, wa_objid5 TYPE hrp1001-objid, wa_objid6 TYPE hrp1001-objid, gd_branchid type i, gd_parent1 type i, gd_parent2 type i, gd_parent3 type i, gd_parent4 type i, gd_parent5 type i, gd_parent6 type i, gd_parent7 type i. SELECT * FROM hrp1001 * up to 500 rows INTO TABLE it_hrp1001 WHERE otype = 'O' AND plvar = '01' AND rsign = 'B' AND ( relat = '002' OR relat = '003' ) AND begda LE sy-datum AND endda GE sy-datum. clear: gd_branchid. *level 1 gd_parent1 = 0. LOOP AT it_hrp1001 INTO wa_hrp1001 WHERE objid = '50000025'. wa_objid = wa_hrp1001-varyf+2(8). wa_orgdisplay-level(2) = wa_orgdisplay-level(2) + 1. perform append_org_data using gd_branchid gd_parent1. gd_parent2 = gd_branchid. * WRITE:/ 'level1'. * level 2 LOOP AT it_hrp1001 INTO wa_hrp1001 WHERE objid = wa_objid AND varyf(1) = 'O'. wa_objid1 = wa_hrp1001-varyf+2(8). wa_orgdisplay-level+2(2) = wa_orgdisplay-level+2(2) + 1. perform append_org_data using gd_branchid gd_parent2. gd_parent3 = gd_branchid. * WRITE:/ 'level2'. * level 3 LOOP AT it_hrp1001 INTO wa_hrp1001 WHERE objid = wa_objid1 AND varyf(1) = 'O'. wa_objid2 = wa_hrp1001-varyf+2(8). wa_orgdisplay-level+4(2) = wa_orgdisplay-level+4(2) + 1. perform append_org_data using gd_branchid gd_parent3. gd_parent4 = gd_branchid. * WRITE:/ 'level3:', wa_objid2 . * level4 LOOP AT it_hrp1001 INTO wa_hrp1001 WHERE objid = wa_objid2 AND varyf(1) = 'O'. wa_objid3 = wa_hrp1001-varyf+2(8). wa_orgdisplay-level+6(2) = wa_orgdisplay-level+6(2) + 1. perform append_org_data using gd_branchid gd_parent4. gd_parent5 = gd_branchid. * WRITE:/ 'level4:', wa_objid3. * level5 LOOP AT it_hrp1001 INTO wa_hrp1001 WHERE objid = wa_objid3 AND varyf(1) = 'O'. wa_objid4 = wa_hrp1001-varyf+2(8). wa_orgdisplay-level+8(2) = wa_orgdisplay-level+8(2) + 1. perform append_org_data using gd_branchid gd_parent5. gd_parent6 = gd_branchid. * WRITE:/ 'level5:', wa_objid4. * level6 LOOP AT it_hrp1001 INTO wa_hrp1001 WHERE objid = wa_objid4 AND varyf(1) = 'O'. wa_objid5 = wa_hrp1001-varyf+2(8). wa_orgdisplay-level+10(2) = wa_orgdisplay-level+10(2) + 1. perform append_org_data using gd_branchid gd_parent6. gd_parent7 = gd_branchid. * WRITE:/ 'level6:', wa_objid5. * level7 LOOP AT it_hrp1001 INTO wa_hrp1001 WHERE objid = wa_objid5 AND varyf(1) = 'O'. wa_objid6 = wa_hrp1001-varyf+2(8). wa_orgdisplay-level+12(2) = wa_orgdisplay-level+12(2) + 1. perform append_org_data using gd_branchid gd_parent7. * WRITE:/ 'level6:', wa_objid6. ENDLOOP. CLEAR: wa_orgdisplay-level+12(2). ENDLOOP. CLEAR: wa_orgdisplay-level+10(2). ENDLOOP. CLEAR: wa_orgdisplay-level+8(2). ENDLOOP. CLEAR: wa_orgdisplay-level+6(2). ENDLOOP. CLEAR: wa_orgdisplay-level+4(2). ENDLOOP. CLEAR: wa_orgdisplay-level+2(2). ENDLOOP. CLEAR: wa_orgdisplay-level(2). export it_orgdisplay to memory id 'ZORGSTRUCT'. *&---------------------------------------------------------------------*