on 03-07-2006 7:14 PM
Hello,
do someone know if there is a function in SRM we can call to understand if a user is a manager ?
Is there any workaround ?
Thank you
Federico
Hello mysterious OSS user,
use BBPU_GET_MANAGER_FLAG to check if the user is a manager.
Rgds
Christophe
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Pras already gave us the follwing functions as a starting point :
FUNCTION Z_GET_MANAGER.
*"----
""Local Interface:
*" IMPORTING
*" VALUE(I_USER) TYPE SYUNAME
*" EXPORTING
*" VALUE(E_MANAGER) TYPE SWP_AAGENT
*" VALUE(E_OBJECT) TYPE OBJEC
*" EXCEPTIONS
*" NO_MANAGER_FOUND
*"----
DATA : l_user TYPE syuname.
DATA : l_position_id TYPE OBJEKTID.
DATA : l_sobid TYPE SOBID .
DATA : lv_agent TYPE SWP_AAGENT.
DATA : l_leading_pos TYPE STANDARD TABLE OF HROBJECT,
w_leading_pos TYPE hrobject,
l_result_objec TYPE STANDARD TABLE OF OBJEC,
w_result_objec TYPE objec,
l_act_objid TYPE ACTORID.
DATA: lv_eval_path TYPE t77aw-wegid VALUE 'SAP_TAGT',
lv_ev_is_internal TYPE xflag.
DATA: l_userid TYPE HROBJEC_14 .
DATA: POSITIONS TYPE SWHACTOR .
MOVE i_user TO l_user.
First Get Org structure details for the user who created a contract
CALL FUNCTION 'BBPU_GET_ORGSTRUCTURE_OF_USER'
EXPORTING
USERNAME = l_user
IMPORTING
POSITION_ID = l_position_id
EXCEPTIONS
NO_ORG_DATA_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
Now we got position id of an user,now get Object ID of his/her Manager
MOVE l_position_id to l_sobid.
CLEAR l_leading_pos.
REFRESH l_leading_pos.
CALL FUNCTION 'RH_GET_LEADING_POSITION'
EXPORTING
PLVAR = '01'
OTYPE = 'S'
SOBID = l_sobid
DATE = SY-DATUM
TABLES
LEADING_POS = l_leading_pos
EXCEPTIONS
NO_LEAD_POS_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
Now we got Object IDs of Manager / Managers..................
LOOP AT l_leading_pos INTO w_leading_pos.
CLEAR l_result_objec.
REFRESH l_result_objec.
positions-objid = w_leading_pos-objid.
CALL FUNCTION 'RH_STRUC_GET'
EXPORTING
ACT_OTYPE = w_leading_pos-otype
ACT_OBJID = w_leading_pos-objid
ACT_WEGID = lv_eval_path
act_int_flag = lv_ev_is_internal
ACT_BEGDA = SY-DATUM
ACT_ENDDA = SY-DATUM
ACT_PLVAR = '01'
ACT_TDEPTH = 0
ACT_TFLAG = 'X'
ACT_VFLAG = 'X'
AUTHORITY_CHECK = 'X'
TEXT_BUFFER_FILL =
BUFFER_MODE =
IMPORTING
ACT_PLVAR =
TABLES
RESULT_TAB =
RESULT_OBJEC = l_result_objec
RESULT_STRUC =
EXCEPTIONS
NO_PLVAR_FOUND = 1
NO_ENTRY_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.
ELSE.
And....here we go with Manager / Managers details.....................
CLEAR w_result_objec.
READ TABLE l_result_objec INTO w_result_objec
WITH KEY OTYPE = 'S'.
IF sy-subrc EQ 0.
CONCATENATE 'US' w_result_objec-short INTO lv_agent.
e_object = w_result_objec.
e_manager = lv_agent.
ELSE.
RAISE NO_MANAGER_FOUND.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDFUNCTION.
*************************************************************************
FUNCTION Z_GET_CHIEF_FROM_ATTRIBUTES.
*"----
""Local Interface:
*" IMPORTING
*" VALUE(I_ATTRIB) TYPE OM_ATTRIB OPTIONAL
*" VALUE(I_VALUE) TYPE CHAR255 OPTIONAL
*" EXPORTING
*" VALUE(E_OTYPE) TYPE OTYPE
*" VALUE(E_OBJID) TYPE HROBJID
*" TABLES
*" OBJECTS STRUCTURE SWHACTOR
*"----
DATA : l_plvar TYPE plvar VALUE '01'.
DATA : l_scenario TYPE OM_ATTRSCN VALUE 'BBP'.
SELECT SINGLE otype objid INTO (e_otype , e_objid)
FROM hrv1222a WHERE attrib = i_attrib
AND begda <= sy-datum
AND endda >= sy-datum
AND low = i_value.
IF sy-subrc EQ 0.
CALL FUNCTION 'RH_OM_ATTRIBUTES_ORGOBJ_STRUCT'
EXPORTING
PLVAR = l_plvar
OTYPE = e_otype
OBJID = e_objid
SCENARIO = l_scenario
SELDATE = SY-DATUM
TABLES
OBJECTS = OBJECTS.
IF NOT objects[] IS INITIAL.
DELETE objects WHERE OTYPE NE 'US'.
ENDIF.
ENDIF.
ENDFUNCTION.
Hope this helps,
Regards,
Yann
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.