Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *&---------------------------------------------------------------------*
- *& Report ZDISPOSAL_REQ_INQ
- *&
- *&---------------------------------------------------------------------*
- *&
- *&
- *&---------------------------------------------------------------------*
- *-------------------- EJADA -------------------------------------------*
- * Author : <Mohamed sherif /Developer user ID>
- * Creation Date : <10-5-2015>
- * Transaction : <ZDREQ_INQ>
- * Technical design: <Assets disposal request inquiry>
- * Description : <Assets disposal request inquiry>
- *----------------------------------------------------------------------*
- * Modification Information
- *----------------------------------------------------------------------*
- * Date : <10-5-2015>
- * Author : <Mohamed sherif>
- * Change request : <IDSK900097>
- * Transport number: <Transport number>
- * Description : <first release>
- *----------------------------------------------------------------------*
- REPORT ZDISPOSAL_REQ_INQ.
- tables ZFI_DISPOSAL_REQ.
- *============= Global CODES ========================
- DATA : INITIAL_ID type ZEJD_ID VALUE 4,
- INITIAL_CODE type ZEJD_CODE VALUE 'INIT'.
- DATA : ERR_ID type ZEJD_ID VALUE 105,
- ERR_CODE type ZEJD_CODE VALUE 'ERR'.
- DATA : REJ_ID type ZEJD_ID VALUE 106,
- REJ_CODE type ZEJD_CODE VALUE 'REJCT'.
- DATA : RTRN_ID type ZEJD_ID VALUE 108,
- RTRN_CODE type ZEJD_CODE VALUE 'RTRN'.
- *------------------------------------------------------
- DATA : RES_COUNT type i. " count result rows
- DATA : RES_COUNT_MSG type char30.
- DATA : RESET_IS_PRESSED TYPE ABAP_BOOL VALUE ABAP_FALSE.
- DATA : SINGLETONE_IS_CHECKED TYPE ABAP_BOOL VALUE ABAP_FALSE.
- *============= Global variables ========================
- *DATA : WA_SC_REQ LIKE ZFI_DISPOSAL_REQ . " for screen fields
- DATA : sc_service_code type ZEJD_CODE,
- sc_status_code type ZEJD_CODE,
- sc_service_desc type ZEJD_DESC_S,
- sc_status_desc type ZEJD_DESC_S.
- DATA CURSORFIELD(50). "focused field
- DATA HAS_ERROR type ABAP_BOOL.
- *------------------- Disposal Requests data ------------------------
- DATA : IT_REQ type TABLE OF ZFI_DISP_REQ_STRUCT, "DISPOSAL REQUEST internal table for alv
- WA_REQ LIKE LINE OF IT_REQ. "
- DATA : IT_FCAT_REQ TYPE lvc_t_fcat, "field catalog
- WA_FCAT_REQ TYPE lvc_s_fcat.
- DATA : C_REQ_CONTAINER TYPE REF TO cl_gui_custom_container , "ALV container
- R_REQ_GRID TYPE REF TO cl_gui_alv_grid. "ALV GRID
- DATA : SELECTED_DOCS TYPE TABLE OF LVC_S_ROW.
- *=========== End Global variables =======================
- *----------------------------------------------------------------------*
- * CLASS event_class DEFINITION
- *----------------------------------------------------------------------*
- CLASS event_class DEFINITION.
- PUBLIC SECTION.
- METHODS:
- handle_double_click
- FOR EVENT double_click OF cl_gui_alv_grid
- IMPORTING e_row,
- handle_hotspot_click
- FOR EVENT hotspot_click OF cl_gui_alv_grid IMPORTING e_row_id.
- ENDCLASS. "event_class DEFINITION
- *----------------------------------------------------------------------*
- * CLASS event_class IMPLEMENTATION
- *----------------------------------------------------------------------*
- CLASS event_class IMPLEMENTATION.
- METHOD handle_hotspot_click.
- CLEAR WA_REQ.
- *& Reading the selected data into the variable
- READ TABLE IT_REQ INDEX e_row_id-index INTO WA_REQ.
- *==================== handle event here ========================================
- * MESSAGE 'HOT spot' && WA_REQ-ZZSR_NUMBER type 'I'.
- ENDMETHOD. "handle_hotspot_click
- METHOD HANDLE_DOUBLE_CLICK.
- CLEAR WA_REQ.
- *& Reading the selected data into the variable
- READ TABLE IT_REQ INDEX E_ROW-INDEX INTO WA_REQ.
- IF WA_REQ IS INITIAL.
- RETURN.
- ENDIF.
- CALL METHOD R_REQ_GRID->GET_SELECTED_ROWS
- IMPORTING
- et_index_rows = SELECTED_DOCS.
- "UPDATE CURRENT STATE
- DATA : S1 TYPE ZEJD_ID,
- S2 TYPE ZEJD_ID,
- S1_DESC TYPE ZEJD_DESC_S,
- S2_DESC TYPE ZEJD_DESC_S.
- S1 = WA_REQ-ZZRQSTTS.
- S1_DESC = WA_REQ-ZZSTATUS_DESC.
- SELECT SINGLE ZZRQSTTS from ZFI_DISPOSAL_REQ INTO WA_REQ-ZZRQSTTS WHERE ZZID = WA_REQ-ZZID.
- S2 = WA_REQ-ZZRQSTTS.
- S2_DESC = WA_REQ-ZZSTATUS_DESC.
- " if state was changed update ALV Table
- IF S1 <> S2.
- MESSAGE 'Request Status Was Changed By WorkFlow' type 'I'.
- PERFORM set_ids.
- IF HAS_ERROR = abap_false.
- PERFORM search.
- else.
- CLEAR IT_REQ. "empty alv table
- ENDIF.
- perform refresh.
- " Set selected row again
- CALL METHOD R_REQ_GRID->SET_SELECTED_ROWS
- EXPORTING
- It_index_rows = SELECTED_DOCS.
- ENDIF.
- *==================== handle event here =================================
- DATA : IS_OPEN type ABAP_BOOL value ABAP_FALSE.
- PERFORM CHECK_T_CODE
- USING
- 'ZDREQ'
- IS_OPEN.
- IF IS_OPEN = ABAP_FALSE .
- set parameter id 'SELECTED_REQ_ID' field WA_REQ-ZZID ." SEND ID OF SELECTED REQUEST
- IF WA_REQ-ZZRQSTTS = INITIAL_ID . "INITIAL STAT -> UPDATE MODE FOR MASTER AND DETAILS IF WA_REQ-ZZRQSTTS = INITIAL_ID OR WA_REQ-ZZRQSTTS = ERR_ID OR WA_REQ-ZZRQSTTS = REJ_ID.
- set parameter id 'OP_SC1' FIELD 'U'." update operation
- set parameter id 'OP_SC2' FIELD 'U'." update operation
- set parameter id 'OP_SC3' FIELD 'U'." update operation
- set parameter id 'OP_SC4' FIELD 'U'." update operation
- set parameter id 'OP_SC1_B' FIELD ' '." buttons are opened will controlled according to conditions in the next screen
- ELSEIF WA_REQ-ZZRQSTTS = RTRN_ID OR WA_REQ-ZZRQSTTS = ERR_ID OR WA_REQ-ZZRQSTTS = REJ_ID. "INITIAL STAT -> UPDATE MODE FOR MASTER AND DETAILS
- set parameter id 'OP_SC1' FIELD 'S'." DISPLAY operation
- set parameter id 'OP_SC2' FIELD 'S'." DISPLAY operation
- set parameter id 'OP_SC3' FIELD 'U'." UPDATE operation
- set parameter id 'OP_SC4' FIELD 'S'." DISPLAY operation
- set parameter id 'OP_SC1_B' FIELD ' '." buttons are opened will controlled according to conditions in the next screen button are opened
- ELSE. "DISPLAY FOR MASTER AND UPDATE FOR DETAILS
- set parameter id 'OP_SC1' FIELD 'S'." DISPLAY operation
- set parameter id 'OP_SC2' FIELD 'S'." DISPLAY operation
- set parameter id 'OP_SC3' FIELD 'S'." DISPLAY operation
- set parameter id 'OP_SC4' FIELD 'S'." DISPLAY operation
- set parameter id 'OP_SC1_B' FIELD ' '." buttons are opened will controlled according to conditions in the next screen
- ENDIF.
- * LEAVE TO TRANSACTION 'ZDREQ'.
- PERFORM CALL_WEB_DYNPROW ">>>>> 20/7/2015
- USING
- WA_REQ-ZZID.
- CALL TRANSACTION 'ZDREQ'.
- *** " refersh again after return 9.6.2015
- ***
- *** PERFORM set_ids.
- *** IF HAS_ERROR = abap_false.
- *** PERFORM search.
- *** else.
- *** CLEAR IT_REQ. "empty alv table
- *** ENDIF.
- *** perform refresh.
- *** " Set selected row again
- *** CALL METHOD R_REQ_GRID->SET_SELECTED_ROWS
- *** EXPORTING
- *** It_index_rows = SELECTED_DOCS.
- "28/6/2015 >>>>>>>>>>>>>>>>
- CLEAR IT_REQ. "empty alv table
- CLEAR RES_COUNT_MSG.
- PERFORM refresh.
- cl_gui_cfw=>set_new_ok_code( new_code = 'REFR' ).
- "28/6/2015 <<<<<<<<<<<<<<<<
- * MESSAGE 'double click->' && WA_REQ-ZZID type 'I'.
- ENDIF.
- ENDMETHOD. "handle_hotspot_click
- ENDCLASS. "event_class IMPLEMENTATION
- INCLUDE zdisposal_pbo_screen1.
- INCLUDE zdisposal_pai_screen1.
- *====================== subroutines =====================================
- FORM fill_field_cat.
- WA_FCAT_REQ-col_pos = '1'.
- WA_FCAT_REQ-fieldname = 'ZZSR_NUMBER'.
- WA_FCAT_REQ-coltext = 'Serial Number'.
- WA_FCAT_REQ-outputlen = 19 .
- WA_FCAT_REQ-just = 'L'. "23-6-15
- WA_FCAT_REQ-DATATYPE = 'NUMC'.
- * WA_FCAT_REQ-hotspot = 'X'.
- * WA_FCAT_REQ-COL_OPT = 'X'.
- APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
- CLEAR WA_FCAT_REQ.
- WA_FCAT_REQ-col_pos = '2'.
- WA_FCAT_REQ-fieldname = 'ZZCOMPANY_CODE'.
- WA_FCAT_REQ-coltext = 'Company Code'.
- * WA_FCAT_REQ-hotspot = 'X'.
- * WA_FCAT_REQ-COL_OPT = 'X'.
- WA_FCAT_REQ-DATATYPE = 'NUMC'.
- WA_FCAT_REQ-outputlen = 16 .
- WA_FCAT_REQ-just = 'L'. "23-6-15
- APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
- CLEAR WA_FCAT_REQ.
- WA_FCAT_REQ-col_pos = '3'.
- WA_FCAT_REQ-fieldname = 'ZZCOST_CENTER'.
- WA_FCAT_REQ-coltext = 'Cost Center'.
- * WA_FCAT_REQ-hotspot = 'X'.
- * WA_FCAT_REQ-COL_OPT = 'X'.
- WA_FCAT_REQ-DATATYPE = 'NUMC'.
- WA_FCAT_REQ-outputlen = 14 .
- WA_FCAT_REQ-just = 'L'. "23-6-15
- APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
- CLEAR WA_FCAT_REQ.
- WA_FCAT_REQ-col_pos = '4'.
- WA_FCAT_REQ-fieldname = 'ZZDATE'.
- WA_FCAT_REQ-coltext = 'Date'.
- * WA_FCAT_REQ-hotspot = 'X'.
- * WA_FCAT_REQ-COL_OPT = 'X'.
- WA_FCAT_REQ-outputlen = 14 .
- APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
- CLEAR WA_FCAT_REQ.
- * WA_FCAT_REQ-col_pos = '5'.
- * WA_FCAT_REQ-fieldname = 'ZZSERVICE_TYPE'.
- * WA_FCAT_REQ-coltext = 'Service ID'.
- * WA_FCAT_REQ-hotspot = 'X'.
- * WA_FCAT_REQ-COL_OPT = 'X'.
- * APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
- * CLEAR WA_FCAT_REQ.
- WA_FCAT_REQ-col_pos = '6'.
- WA_FCAT_REQ-fieldname = 'ZZSERVICE_DESC'.
- WA_FCAT_REQ-coltext = 'Service Type'.
- * WA_FCAT_REQ-hotspot = 'X'.
- * WA_FCAT_REQ-COL_OPT = 'X'.
- WA_FCAT_REQ-outputlen = 30 .
- APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
- CLEAR WA_FCAT_REQ.
- * WA_FCAT_REQ-col_pos = '7'.
- * WA_FCAT_REQ-fieldname = 'ZZRQSTTS'.
- * WA_FCAT_REQ-coltext = 'Status ID'.
- * WA_FCAT_REQ-hotspot = 'X'.
- * WA_FCAT_REQ-COL_OPT = 'X'.
- * APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
- * CLEAR WA_FCAT_REQ.
- WA_FCAT_REQ-col_pos = '8'.
- WA_FCAT_REQ-fieldname = 'ZZSTATUS_DESC'.
- WA_FCAT_REQ-coltext = 'Request Status'.
- * WA_FCAT_REQ-hotspot = 'X'.
- * WA_FCAT_REQ-COL_OPT = 'X'.
- WA_FCAT_REQ-outputlen = 35 .
- APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
- CLEAR WA_FCAT_REQ.
- "Removed 23-6-2015 Omar El Halawany
- * WA_FCAT_REQ-col_pos = '9'.
- * WA_FCAT_REQ-fieldname = 'CREA_USER'.
- * WA_FCAT_REQ-coltext = 'CREATE USER'.
- ** WA_FCAT_REQ-hotspot = 'X'.
- ** WA_FCAT_REQ-COL_OPT = 'X'.
- * WA_FCAT_REQ-outputlen = 12 .
- * APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
- * CLEAR WA_FCAT_REQ.
- *
- *
- * WA_FCAT_REQ-col_pos = '10'.
- * WA_FCAT_REQ-fieldname = 'CREA_TIME'.
- * WA_FCAT_REQ-coltext = 'CREATE TIME'.
- ** WA_FCAT_REQ-hotspot = 'X'.
- ** WA_FCAT_REQ-COL_OPT = 'X'.
- * WA_FCAT_REQ-outputlen = 18 .
- * APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
- * CLEAR WA_FCAT_REQ.
- *
- * WA_FCAT_REQ-col_pos = '11'.
- * WA_FCAT_REQ-fieldname = 'CHNG_USER'.
- * WA_FCAT_REQ-coltext = 'CHANGE USER'.
- ** WA_FCAT_REQ-hotspot = 'X'.
- ** WA_FCAT_REQ-COL_OPT = 'X'.
- * WA_FCAT_REQ-outputlen = 12 .
- * APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
- * CLEAR WA_FCAT_REQ.
- *
- * WA_FCAT_REQ-col_pos = '12'.
- * WA_FCAT_REQ-fieldname = 'CHNG_TIME'.
- * WA_FCAT_REQ-coltext = 'CHANGE TIME'.
- ** WA_FCAT_REQ-hotspot = 'X'.
- ** WA_FCAT_REQ-COL_OPT = 'X'.
- * WA_FCAT_REQ-outputlen = 18.
- * APPEND WA_FCAT_REQ TO IT_FCAT_REQ.
- * CLEAR WA_FCAT_REQ.
- ENDFORM.
- FORM refresh.
- CALL METHOD R_REQ_GRID->refresh_table_display
- * EXPORTING
- * is_stable = i_stable.
- * I_SOFT_REFRESH =
- * EXCEPTIONS
- * FINISHED = 1
- * others = 2
- .
- ENDFORM.
- FORM reset .
- CLEAR IT_REQ.
- CLEAR : ZFI_DISPOSAL_REQ-ZZCOST_CENTER,
- ZFI_DISPOSAL_REQ-ZZSR_NUMBER,
- ZFI_DISPOSAL_REQ-ZZDATE,
- ZFI_DISPOSAL_REQ-ZZSERVICE_TYPE,
- ZFI_DISPOSAL_REQ-ZZRQSTTS,
- SC_SERVICE_CODE,
- SC_SERVICE_DESC,
- SC_STATUS_CODE,
- SC_STATUS_DESC. "ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE
- ENDFORM.
- FORM search.
- DATA :R_ZZCOMPANY_CODE TYPE TABLE OF SELOPT WITH HEADER LINE,
- R_ZZCOST_CENTER TYPE TABLE OF SELOPT WITH HEADER LINE,
- R_ZZSR_NUMBER TYPE TABLE OF SELOPT WITH HEADER LINE,
- R_ZZDATE TYPE TABLE OF SELOPT WITH HEADER LINE,
- R_ZZSERVICE_TYPE TYPE TABLE OF SELOPT WITH HEADER LINE,
- R_ZZRQSTTS TYPE TABLE OF SELOPT WITH HEADER LINE.
- PERFORM ADD_ZEROS_REQ.
- IF NOT ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE IS INITIAL .
- R_ZZCOMPANY_CODE-SIGN = 'I'.
- R_ZZCOMPANY_CODE-OPTION = 'EQ'.
- R_ZZCOMPANY_CODE-LOW = ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE.
- APPEND R_ZZCOMPANY_CODE.
- CLEAR R_ZZCOMPANY_CODE.
- ENDIF.
- IF NOT ZFI_DISPOSAL_REQ-ZZCOST_CENTER IS INITIAL .
- R_ZZCOST_CENTER-SIGN = 'I'.
- R_ZZCOST_CENTER-OPTION = 'EQ'.
- R_ZZCOST_CENTER-LOW = ZFI_DISPOSAL_REQ-ZZCOST_CENTER.
- APPEND R_ZZCOST_CENTER.
- CLEAR R_ZZCOST_CENTER.
- ENDIF.
- IF NOT ZFI_DISPOSAL_REQ-ZZSR_NUMBER IS INITIAL .
- R_ZZSR_NUMBER-SIGN = 'I'.
- R_ZZSR_NUMBER-OPTION = 'EQ'.
- R_ZZSR_NUMBER-LOW = ZFI_DISPOSAL_REQ-ZZSR_NUMBER.
- APPEND R_ZZSR_NUMBER.
- CLEAR R_ZZSR_NUMBER.
- ENDIF.
- IF NOT ZFI_DISPOSAL_REQ-ZZDATE IS INITIAL .
- R_ZZDATE-SIGN = 'I'.
- R_ZZDATE-OPTION = 'EQ'.
- R_ZZDATE-LOW = ZFI_DISPOSAL_REQ-ZZDATE.
- APPEND R_ZZDATE.
- CLEAR R_ZZDATE.
- ENDIF.
- IF NOT ZFI_DISPOSAL_REQ-ZZSERVICE_TYPE IS INITIAL .
- R_ZZSERVICE_TYPE-SIGN = 'I'.
- R_ZZSERVICE_TYPE-OPTION = 'EQ'.
- R_ZZSERVICE_TYPE-LOW = ZFI_DISPOSAL_REQ-ZZSERVICE_TYPE.
- APPEND R_ZZSERVICE_TYPE.
- CLEAR R_ZZSERVICE_TYPE.
- ENDIF.
- IF NOT ZFI_DISPOSAL_REQ-ZZRQSTTS IS INITIAL .
- R_ZZRQSTTS-SIGN = 'I'.
- R_ZZRQSTTS-OPTION = 'EQ'.
- R_ZZRQSTTS-LOW = ZFI_DISPOSAL_REQ-ZZRQSTTS.
- APPEND R_ZZRQSTTS.
- CLEAR R_ZZRQSTTS.
- ENDIF.
- CALL FUNCTION 'ZFI_DISPOSAL_REQ_INQUERY'
- TABLES
- REQ = IT_REQ
- ZZCOMPANY_CODE = R_ZZCOMPANY_CODE[]
- ZZCOST_CENTER = R_ZZCOST_CENTER[]
- ZZSR_NUMBER = R_ZZSR_NUMBER[]
- ZZDATE = R_ZZDATE[]
- ZZSERVICE_TYPE = R_ZZSERVICE_TYPE[]
- ZZRQSTTS = R_ZZRQSTTS[]
- .
- DESCRIBE TABLE IT_REQ LINES RES_COUNT .
- IF RES_COUNT = 0.
- RES_COUNT_MSG = ' NO DATA FOUND'.
- MESSAGE 'No Data Found ' TYPE 'S'.
- else.
- RES_COUNT_MSG = 'Total Results : '&& RES_COUNT .
- ENDIF.
- ENDFORM.
- FORM ADD_ZEROS_REQ.
- "compony code
- CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
- EXPORTING
- INPUT = ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE
- IMPORTING
- OUTPUT = ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE.
- "cost center
- CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
- EXPORTING
- INPUT = ZFI_DISPOSAL_REQ-ZZCOST_CENTER
- IMPORTING
- OUTPUT = ZFI_DISPOSAL_REQ-ZZCOST_CENTER.
- "serial number
- CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
- EXPORTING
- INPUT = ZFI_DISPOSAL_REQ-ZZSR_NUMBER
- IMPORTING
- OUTPUT = ZFI_DISPOSAL_REQ-ZZSR_NUMBER.
- ENDFORM.
- FORM REMOVE_ZEROS_REQ."ADD AT THE END OF PBO
- "compony code
- CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
- EXPORTING
- INPUT = ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE
- IMPORTING
- OUTPUT = ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE.
- "cost center
- CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
- EXPORTING
- INPUT = ZFI_DISPOSAL_REQ-ZZCOST_CENTER
- IMPORTING
- OUTPUT = ZFI_DISPOSAL_REQ-ZZCOST_CENTER.
- "serial number
- CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
- EXPORTING
- INPUT = ZFI_DISPOSAL_REQ-ZZSR_NUMBER
- IMPORTING
- OUTPUT = ZFI_DISPOSAL_REQ-ZZSR_NUMBER.
- ENDFORM.
- FORM set_ids.
- HAS_ERROR = ABAP_FALSE.
- *** "28/6/2015 >>>>>>>>>>>>>>
- *** CLEAR RES_COUNT_MSG.
- *** "28/6/2015 <<<<<<<<<<<<<
- PERFORM ADD_ZEROS_REQ.
- DATA : wa_ccd type CSKS, " for cost center check
- wa_serv type ZFI_LOOKUP,
- wa_stat type ZFI_LOOKUP.
- " check Cost center
- select SINGLE * from CSKS into WA_CCD where KOSTL = ZFI_DISPOSAL_REQ-ZZCOST_CENTER and BUKRS = ZFI_DISPOSAL_REQ-ZZCOMPANY_CODE. "ZZTYPE = '4' service type
- IF sy-SUBRC = 0.
- "DO no THING :D
- else.
- IF ZFI_DISPOSAL_REQ-ZZCOST_CENTER is NOT INITIAL.
- HAS_ERROR = ABAP_TRUE.
- message i003(zfi_Disposal_req_inq).
- ENDIF.
- ENDIF.
- " check service type
- select SINGLE * from ZFI_LOOKUP into WA_SERV where ZZTYPE = '4' and ZZCODE = SC_SERVICE_CODE and ZZISDEL = 'N'. "ZZTYPE = '4' service type
- IF sy-SUBRC = 0.
- ZFI_DISPOSAL_REQ-ZZSERVICE_TYPE = wa_serv-ZZLKUPID.
- SC_SERVICE_DESC = wa_serv-ZZDESC.
- else.
- * clear SC_SERVICE_CODE.
- clear ZFI_DISPOSAL_REQ-ZZSERVICE_TYPE.
- clear SC_SERVICE_DESC.
- IF SC_SERVICE_CODE is NOT INITIAL.
- HAS_ERROR = ABAP_TRUE.
- CURSORFIELD = 'SC_SERVICE_CODE'.
- SET CURSOR FIELD CURSORFIELD.
- message i001(zfi_Disposal_req_inq).
- ENDIF.
- ENDIF.
- " check request status
- select SINGLE * from ZFI_LOOKUP into WA_STAT where ZZTYPE = '1' and ZZCODE = SC_STATUS_CODE and ZZISDEL = 'N'."ZZTYPE = '1' status
- IF sy-SUBRC = 0.
- ZFI_DISPOSAL_REQ-ZZRQSTTS = WA_STAT-ZZLKUPID.
- SC_STATUS_DESC = WA_STAT-ZZDESC.
- else.
- * CLEAR SC_STATUS_CODE.
- clear ZFI_DISPOSAL_REQ-ZZRQSTTS.
- clear SC_STATUS_DESC.
- IF SC_STATUS_CODE is NOT INITIAL.
- HAS_ERROR = ABAP_TRUE.
- CURSORFIELD = 'SC_STATUS_CODE'.
- SET CURSOR FIELD CURSORFIELD.
- message i002(zfi_Disposal_req_inq).
- ENDIF.
- ENDIF.
- ENDFORM.
- INCLUDE zdisposal_req_inq_hide_fields.
- INCLUDE zreq_inq_service_type_sh.
- INCLUDE zreq_inq_status_sh.
- FORM ENFORCE_SINGLE_TONE.
- SINGLETONE_IS_CHECKED = ABAP_TRUE.
- DATA: SESSION_LIST TYPE SSI_SESSION_LIST,
- WA_SESSION_LIST TYPE SSI_SESSION_INFO,
- SERVER_INFO TYPE REF TO CL_SERVER_INFO.
- DATA CUR_CD TYPE SSI_APPLICATION.
- CUR_CD = SY-TCODE.
- TRY.
- CREATE OBJECT SERVER_INFO.
- SESSION_LIST = SERVER_INFO->get_session_list( )."( tenant = sy-mandt with_application_info = '1' )
- " loop at T-codes for specific 'user-name' and 'client-name'
- LOOP AT SESSION_LIST INTO WA_SESSION_LIST WHERE USER_NAME = SY-UNAME AND TENANT = SY-MANDT.
- " current oppened T-codes
- DATA : TM type SSI_APPLICATION. " temp variable
- TM = WA_SESSION_LIST-APPLICATION.
- CONDENSE TM NO-GAPS. " remove gaps and spaces from string
- IF TM = CUR_CD .
- Message 'You Already Opened This T-code Before' TYPE 'I'.
- LEAVE PROGRAM.
- RETURN.
- ENDIF.
- ENDLOOP.
- CATCH CX_SSI_NO_AUTH.
- MESSAGE 'Unable To Check Authorization' Type 'I'.
- ENDTRY.
- SORT SESSION_LIST BY tenant user_name.
- ENDFORM.
- FORM CHECK_T_CODE USING T_CD IS_OPENED TYPE ABAP_BOOL. " T-code
- DATA: SESSION_LIST TYPE SSI_SESSION_LIST,
- WA_SESSION_LIST TYPE SSI_SESSION_INFO,
- SERVER_INFO TYPE REF TO CL_SERVER_INFO,
- COUNT TYPE I value 0,
- OP_SC1_B TYPE char1.
- TRY.
- CREATE OBJECT SERVER_INFO.
- SESSION_LIST = SERVER_INFO->get_session_list( )."( tenant = sy-mandt with_application_info = '1' )
- LOOP AT SESSION_LIST INTO WA_SESSION_LIST WHERE USER_NAME = SY-UNAME AND TENANT = SY-MANDT.
- " current oppened T-codes
- DATA : TM type SSI_APPLICATION.
- TM = WA_SESSION_LIST-APPLICATION.
- CONDENSE TM NO-GAPS.
- IF TM = T_CD .
- COUNT = COUNT + 1.
- ENDIF.
- ENDLOOP.
- get parameter id 'OP_SC1_B' field OP_SC1_B .
- IF count > 0.
- IS_OPENED = ABAP_TRUE.
- IF OP_SC1_B = 'S' .
- MESSAGE 'YOU Opened Assets Disposal Request (Maintenance screen)In Display Mode, Close It First' type 'I'.
- else.
- MESSAGE 'YOU Opened Assets Disposal Request (Maintenance screen), Close It First' type 'I'.
- ENDIF.
- else.
- IS_OPENED = ABAP_FALSE.
- ENDIF.
- CATCH CX_SSI_NO_AUTH.
- MESSAGE 'Unable To Check Authorization' Type 'I'.
- ENDTRY.
- SORT SESSION_LIST BY tenant user_name.
- ENDFORM.
- *---------------------------*
- *& Form add_field
- *&------------------------------------------------------*
- * Add field info to fieldtab given its table name and
- * field name
- *-------------------------------------------------------*
- * -->TABNAME text
- * -->FIELDNAME text
- *-------------------------------------------------------*
- form add_field
- tables p_fields
- using tabname type tabname
- fieldname type fieldname.
- data: ls_field type dfies,
- lt_fields type standard table of dfies.
- call function 'DDIF_FIELDINFO_GET'
- exporting
- tabname = tabname
- fieldname = fieldname
- tables
- dfies_tab = lt_fields
- exceptions
- not_found = 1
- internal_error = 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.
- endif.
- append lines of lt_fields to p_fields.
- endform. "add_field
- *&------------------------------------------------------*
- *& Form append_mapping
- *&------------------------------------------------------*
- * Append field mapping to mapping table
- *-------------------------------------------------------*
- * -->P_MAPPING Mapping table
- * -->P_FIELD Field in Itab
- * -->P_DYNPRO_FIELD Field in screen
- *-------------------------------------------------------*
- form append_mapping
- tables p_mapping
- using p_field
- p_dynpro_field.
- data:
- ls_mapping type dselc.
- ls_mapping-fldname = p_field.
- ls_mapping-dyfldname = p_dynpro_field.
- append ls_mapping to p_mapping.
- endform. "append_mapping
- INCLUDE zdisposal_req_inq_exiti01.
- form call_web_dynprow USING REQ_ID.
- DATA : p TYPE TIHTTPNVP,
- p_wa Type IHTTPNVP.
- P_WA-NAME = 'ID'.
- P_WA-VALUE = REQ_ID.
- APPEND P_WA TO P.
- CALL FUNCTION 'WDY_EXECUTE_IN_PLACE'
- EXPORTING
- * PROTOCOL =
- INTERNALMODE = ' '
- PARAMETERS = p
- * SMARTCLIENT =
- APPLICATION = 'ZDISPOSAL_REQ_MAINT'
- .
- IF SY-SUBRC <> 0.
- * Implement suitable error handling here
- MESSAGE 'can not open webdynpro :(' TYPE 'I'.
- ENDIF.
- ENDFORM.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement