(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
Substitute creation
1. FUNCTION /invmwl/fm_create_substitute_2 .
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(IV_US_NAME) TYPE XUBNAME
*" VALUE(IV_REP_NAME) TYPE XUBNAME
*" VALUE(IV_START_DATE) TYPE BEGDATUM
*" VALUE(IV_END_DATE) TYPE ENDDATUM
*" VALUE(IV_SUB_PROFILE) TYPE HR_REP_PRF OPTIONAL
*" VALUE(IV_IS_ACTIVE) TYPE HS_REP_ACT OPTIONAL
*" EXPORTING
*" VALUE(RETURN) TYPE BAPIRET2
*"----------------------------------------------------------------------
************************************************************************
* I N N O V A P P T I V E *
*----------------------------------------------------------------------*
* Object Name : /INVMWL/FM_CREATE_SUBSTITUTE_2 *
* Object Title : Create Substitution for a User *
* Transport # : <ERDK900864> *
* UserID : SPACHVA *
* Author : Srinivasa *
* Date : 2014-11-13 *
*----------------------------------------------------------------------*
* Description : *
* This RFC function Create Substitution for a User *
* *
*----------------------------------------------------------------------*
* Copy of Standard SAP Object: NO *
* Object Name : *
* N/A *
*----------------------------------------------------------------------*
* Includes : *
* N/A *
*----------------------------------------------------------------------*
* DB Tables Used: SELECT UPDATE INSERT DELETE *
* usr21 X *
* *
************************************************************************
* Program Change History *
************************************************************************
* Modification Log: *
* Date Pgmr User ID Correction TR Description *
* ----------- ------------ ------------- ---------------------------*
* DD-MMM-YYYY HBXXXXX SBAXXXXXXX xxxxxxxxxxx *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Types
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Work Area / Internal Tables
*----------------------------------------------------------------------*
DATA: ls_user TYPE swragent,
ls_substitute TYPE swragent,
ls_message TYPE bapiret2,
ls_logtable TYPE /invmwl/tlogtab2.
*-- internal tables
DATA: lt_message_lines TYPE TABLE OF swr_messag,
lt_messages TYPE TABLE OF swr_mstruc,
lt_logtable TYPE TABLE OF /invmwl/tlogtab2. "#EC NEEDED
*----------------------------------------------------------------------*
* Variables
*----------------------------------------------------------------------*
DATA: lv_ret_code TYPE sysubrc. "#EC NEEDED
2. *----------------------------------------------------------------------*
* Constants
*----------------------------------------------------------------------*
CONSTANTS: c_x TYPE char1 VALUE 'X',
c_error TYPE bapi_mtype VALUE 'E',
lc_user TYPE otype VALUE 'US',
c_e TYPE c VALUE 'E',
c_w TYPE c VALUE 'W',
c_s TYPE c VALUE 'S'.
TRANSLATE iv_us_name TO UPPER CASE.
TRANSLATE iv_rep_name TO UPPER CASE.
TRY.
CALL METHOD cl_system_uuid=>if_system_uuid_static~create_uuid_c26
RECEIVING
uuid = ls_logtable-logtext.
CATCH cx_uuid_error . "#EC NO_HANDLER
ENDTRY.
IF iv_end_date >= sy-datum.
CONCATENATE 'Call Started --'(001) iv_us_name iv_rep_name ls_logtable-
logtext
INTO ls_logtable-logtext.
INSERT INTO /invmwl/tlogtab2 VALUES ls_logtable.
APPEND ls_logtable TO lt_logtable.
*-- Validate that the start date
*-- end date relationship
*-- Is start date < end date Check
IF ( iv_start_date >= iv_end_date ).
MOVE c_error TO return-type.
MOVE text-004 TO return-message.
RETURN.
ENDIF.
*-- Validate user creating substitution
*-- is a valid user
SELECT COUNT(*) FROM usr21
WHERE bname EQ iv_us_name.
IF ( sy-subrc NE 0 ).
MOVE c_error TO return-type.
MOVE text-005 TO return-message.
RETURN.
ENDIF.
*-- Validate substitute
*-- is a valid user
SELECT COUNT(*) FROM usr21
WHERE bname EQ iv_rep_name.
IF ( sy-subrc NE 0 ).
MOVE c_error TO return-type.
MOVE text-006 TO return-message.
RETURN.
ENDIF.
MOVE lc_user TO ls_user-otype.
MOVE lc_user TO ls_substitute-otype.
MOVE iv_us_name TO ls_user-objid.
MOVE iv_rep_name TO ls_substitute-objid.
CONCATENATE 'abt to call FM --'(003)
iv_us_name
iv_rep_name
ls_logtable-logtext
INTO ls_logtable-logtext.
INSERT INTO /invmwl/tlogtab2 VALUES ls_logtable.
CLEAR ls_logtable.
*----------------------------------------------------------------------*
* Call Function to Maintain substitute for User
*----------------------------------------------------------------------*
CALL FUNCTION 'SAP_WAPI_SUBSTITUTE_MAINTAIN'
3. EXPORTING
substituted_object = ls_user
substitute = ls_substitute
subst_begin = iv_start_date
subst_end = iv_end_date
subst_profile = iv_sub_profile
subst_active = c_x
IMPORTING
return_code = lv_ret_code
TABLES
message_lines = lt_message_lines
message_struct = lt_messages.
CONCATENATE 'CALLED FM --'(009)
iv_us_name
iv_rep_name
ls_logtable-logtext
INTO ls_logtable-logtext.
INSERT INTO /invmwl/tlogtab2 VALUES ls_logtable.
CLEAR ls_logtable.
READ TABLE lt_messages
INTO ls_message
WITH KEY msgty = c_e.
IF ( sy-subrc EQ 0 ).
MOVE c_e TO return-type.
MOVE ls_message-message TO return-message.
CONCATENATE 'ERROR in FM --'(010)
iv_us_name
iv_rep_name
ls_logtable-logtext
INTO ls_logtable-logtext.
INSERT INTO /invmwl/tlogtab2
VALUES ls_logtable.
CLEAR ls_logtable.
ELSE.
READ TABLE lt_messages
INTO ls_message
WITH KEY msgty = c_w.
IF ( sy-subrc = 0 ).
MOVE c_w TO return-type.
MOVE ls_message-message TO return-message.
CONCATENATE 'WARNING in FM --'(011)
iv_us_name
iv_rep_name
ls_logtable-logtext
INTO ls_logtable-logtext.
INSERT INTO /invmwl/tlogtab2
VALUES ls_logtable.
CLEAR ls_logtable.
ELSE.
READ TABLE lt_messages
INTO ls_message
WITH KEY msgty = c_s.
IF ( sy-subrc = 0 ).
MOVE c_s TO return-type.
MOVE text-002 TO return-message.
CONCATENATE 'SUCESS FM --'(012)
iv_us_name
iv_rep_name
ls_logtable-logtext
INTO ls_logtable-logtext.
INSERT INTO /invmwl/tlogtab2
VALUES ls_logtable.
CLEAR ls_logtable.
ENDIF.
4. ENDIF.
ENDIF.
TRY.
CALL METHOD cl_system_uuid=>if_system_uuid_static~create_uuid_c26
RECEIVING
uuid = ls_logtable-logtext.
CATCH cx_uuid_error . "#EC NO_HANDLER
ENDTRY.
CONCATENATE 'Call End --'(013)
iv_us_name
iv_rep_name
ls_logtable-logtext
INTO ls_logtable-logtext.
INSERT INTO /invmwl/tlogtab2
VALUES ls_logtable.
CLEAR ls_logtable.
ELSE.
MOVE c_error TO return-type.
MOVE text-000 TO return-message.
ENDIF.
ENDFUNCTION.