Hi,
I am using RH_STRUC_GET with evalPath O-O-S-P and get the or g structure. I then loop through the table obtained from RH_STRUC_GET and re-use RH_STRUC_GET with a evaluation path 'bossonly' to find out who the managers are. But it does not work. I get No ROOTS FOUND error.
When I try the function module RH_STRUC_GET separately with the same input fields then it works!!!
Please let me know if I am doing anything wrong. My code is shown below....
FUNCTION Z_ORGBUILDER_CONN.
*"----
""Local interface:
*" IMPORTING
*" VALUE(OTYPE) LIKE OBJEC-OTYPE
*" VALUE(OBJID) LIKE OBJEC-OBJID
*" VALUE(PATHID) LIKE GDSTR-WEGID
*" VALUE(PLVAR) LIKE OBJEC-PLVAR
*" EXPORTING
*" VALUE(RETURN) LIKE BAPIRET2 STRUCTURE BAPIRET2
*" TABLES
*" L_ZCONN_TAB TYPE ZCONN_TAB
*" RESULT_TAB STRUCTURE SWHACTOR OPTIONAL
*" RESULT_OBJEC STRUCTURE OBJEC OPTIONAL
*" RESULT_STRUC STRUCTURE STRUC OPTIONAL
*" L_ZCONN_ORG TYPE ZCONN_TAB
*" L_ZCONN_POS_HOLDER TYPE ZCONN_POS_TAB
*" L_MANAGERS STRUCTURE OBJEC
*"----
DATA: z_struc type zconn_struc.
DATA: xresult_struc like result_struc.
DATA: yresult_struc like result_struc.
DATA: z_struc1 type zconn_struc.
DATA: z_struc_pos type zconn_position.
DATA: temp_tab LIKE SWHACTOR occurs 0 with HEADER LINE.
DATA: temp like struc-objid.
CALL FUNCTION 'RH_STRUC_GET'
EXPORTING
act_otype = otype
act_objid = objid
act_plvar = plvar
act_wegid = pathid
TABLES
result_tab = result_tab
result_struc = result_struc
result_objec = result_objec
EXCEPTIONS
no_plvar_found = 1
no_entry_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
RAISE no_roots_found.
ENDIF.
LOOP AT result_struc into xresult_struc.
read table result_struc into yresult_struc with key seqnr =
xresult_struc-pup.
if sy-subrc = 0.
z_struc-objectID = xresult_struc-OBJID.
z_struc-objectType = xresult_struc-otype.
z_struc-parentID = yresult_struc-objid.
z_struc-parentType = yresult_struc-otype.
endif.
Append z_struc to l_zconn_tab.
ENDLOOP.
LOOP AT l_zconn_tab.
if l_zconn_tab-objectType = 'O' or l_zconn_tab-objectType = 'S'.
z_struc1-objectID = l_zconn_tab-objectID.
z_struc1-objectType = l_zconn_tab-objectType.
z_struc1-parentID = l_zconn_tab-parentID.
z_struc1-parentType = l_zconn_tab-parentType.
Append z_struc1 to l_zconn_org.
endif.
ENDLOOP.
LOOP AT l_zconn_tab.
if l_zconn_tab-objectType = 'P'.
z_struc_pos-position = l_zconn_tab-parentID.
z_struc_pos-pos_holder = l_zconn_tab-objectID.
Append z_struc_pos to l_zconn_pos_holder.
endif.
ENDLOOP.
loop at result_struc.
if result_struc-otype = 'O'.
CALL FUNCTION 'RH_STRUC_GET'
EXPORTING
act_otype = 'O'
act_objid = result_struc-objid
act_plvar = '01'
act_wegid = 'bossonly'
TABLES
result_tab = temp_tab
EXCEPTIONS
no_plvar_found = 1
no_entry_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
RAISE no_roots_found.
ENDIF.
APPEND LINES OF temp_tab to L_managers.
endif.
endloop.
ENDFUNCTION.