Zsolman Issue Status

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 5

*&---------------------------------------------------------------------*

*& Report ZSOLMAN_ISSUE_STATUS


*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zsolman_issue_status.

TYPES : BEGIN OF ty_header.


INCLUDE STRUCTURE zsolam_rpt_output.
TYPES : process_txt TYPE string,
END OF ty_header.

DATA: t_guid TYPE STANDARD TABLE OF bapibus20001_guid_dis,


ls_guid TYPE bapibus20001_guid_dis,
* t_HEADER TYPE STANDARD TABLE OF BAPIBUS2000110_HEADER_DIS,
t_header TYPE STANDARD TABLE OF crmd_orderadm_h,
ls_header TYPE bapibus2000110_header_dis,
lt_header TYPE STANDARD TABLE OF zsolam_rpt_output,
"crmt_report_locatorlist_ta.
lt_header1 TYPE STANDARD TABLE OF zsolam_rpt_output,
"crmt_report_locatorlist_ta.
it_final TYPE TABLE OF ty_header,
wa_final TYPE ty_header.

DATA: o_alv TYPE REF TO cl_salv_table.


DATA: o_events TYPE REF TO cl_salv_events_table.
DATA: lv_functions TYPE REF TO cl_salv_functions.
DATA: lx_msg TYPE REF TO cx_salv_msg.
DATA lo_display_settings TYPE REF TO cl_salv_display_settings.
DATA columns TYPE REF TO cl_salv_columns_table.
DATA column TYPE REF TO cl_salv_column_table.
DATA: gr_layout TYPE REF TO cl_salv_layout.
DATA: key TYPE salv_s_layout_key.
DATA: lo_header TYPE REF TO cl_salv_form_layout_grid,
lo_h_label TYPE REF TO cl_salv_form_label,
lo_h_flow TYPE REF TO cl_salv_form_layout_flow.

PARAMETERS: p_user TYPE sy-uname DEFAULT sy-uname NO-DISPLAY. "sy-uname


PARAMETERS: pa_dest TYPE rfcdes-rfcdest DEFAULT 'SOLMAN_INCIDENT_RFC' NO-DISPLAY.
*call FUNCTION 'BAPI_ACTIVITYCRM_GETDETAILMULT' DESTINATION PA_DEST
*TABLES GUID = t_guid
* header = t_HEADER.
START-OF-SELECTION.

REFRESH : it_final[].
CLEAR : wa_final.

CALL FUNCTION 'ZGET_INCIDENT_DETAILS' DESTINATION pa_dest


EXPORTING
i_bu_sort1 = p_user "'AVIK_M'
TABLES
* header = t_HEADER
header_data = lt_header.

LOOP AT lt_header ASSIGNING FIELD-SYMBOL(<fs_header>).


MOVE-CORRESPONDING <fs_header> TO wa_final.

IF wa_final-process_type = '1000'.
CONCATENATE wa_final-process_type '(Incident)'
INTO wa_final-process_txt SEPARATED BY space.
CONDENSE wa_final-process_txt.

ELSEIF wa_final-process_type = '2000'.


CONCATENATE wa_final-process_type '(Change)'
INTO wa_final-process_txt SEPARATED BY space.
CONDENSE wa_final-process_txt.
ELSE.
wa_final-process_txt = wa_final-process_type.
ENDIF.

APPEND wa_final TO it_final.


CLEAR : wa_final.
ENDLOOP.

TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = o_alv
CHANGING
t_table = it_final ).
CATCH cx_salv_msg INTO lx_msg.
ENDTRY.
** To calculate the OPEN Incident and Open Change Request
IF lt_header IS NOT INITIAL.
CLEAR: lt_header1.
lt_header1 = lt_header.
DELETE lt_header1 WHERE process_type = '2000'.
DESCRIBE TABLE lt_header1 LINES DATA(lv_oi).
CLEAR: lt_header1.
lt_header1 = lt_header.
DELETE lt_header1 WHERE process_type = '1000'.
DESCRIBE TABLE lt_header1 LINES DATA(lv_ocr).
ENDIF.
** Top Of Page
* header object
CREATE OBJECT lo_header.
CONCATENATE sy-datum+6(2) sy-datum+4(2) sy-datum(4) INTO data(LV_DATE) SEPARATED
BY '.'.
CONCATENATE 'Solman Issue Status Dated:' LV_DATE INTO DATA(lv_str) SEPARATED BY
' '.
* Writing Bold phrase
lo_h_label = lo_header->create_label( row = 1 column = 1 ).
lo_h_label->set_text( lv_str ).

* Writing Header texts


lo_h_flow = lo_header->create_flow( row = 2 column = 1 ).
lo_h_flow->create_text( text = 'Total Open Incidents: ' ).
lo_h_flow = lo_header->create_flow( row = 2 column = 2 ).
lo_h_flow->create_text( text = lv_oi ).

lo_h_flow = lo_header->create_flow( row = 3 column = 1 ).


lo_h_flow->create_text( text = 'Total Open Change Request: ' ).
lo_h_flow = lo_header->create_flow( row = 3 column = 2 ).
lo_h_flow->create_text( text = lv_ocr ).

lo_h_flow = lo_header->create_flow( row = 4 column = 1 ).


lo_h_flow->create_text( text = ' ' ).
lo_h_flow = lo_header->create_flow( row = 4 column = 2 ).
lo_h_flow->create_text( text = ' ' ).

* Set the top of list


o_alv->set_top_of_list( lo_header ).

* Print on top of list


o_alv->set_top_of_list_print( lo_header ).

lv_functions = o_alv->get_functions( ).
lv_functions->set_all( abap_true ).

columns = o_alv->get_columns( ).

TRY.
columns->set_optimize( 'X' ).
columns->set_column_position( EXPORTING
columnname = 'PROCESS_TXT' position = 1 ).
column ?= columns->get_column( 'PROCESS_TXT' ).
column->set_fixed_header_text( 'L' ).
column->set_long_text('Issue Type').
CATCH cx_salv_not_found.
ENDTRY.

TRY.
columns->set_optimize( 'X' ).
columns->set_column_position( EXPORTING
columnname = 'OBJECT_ID' position = 2 ).
column ?= columns->get_column( 'OBJECT_ID' ).
column->set_fixed_header_text( 'L' ).
column->set_long_text('Issue Number').
CATCH cx_salv_not_found.
ENDTRY.

TRY.
columns->set_optimize( 'X' ).
columns->set_column_position( EXPORTING
columnname = 'DESCRIPTION' position = 3 ).
column ?= columns->get_column( 'DESCRIPTION' ).
column->set_fixed_header_text( 'L' ).
column->set_long_text('Description').
CATCH cx_salv_not_found.
ENDTRY.

TRY.
columns->set_optimize( 'X' ).
columns->set_column_position( EXPORTING
columnname = 'PRIORITY' position = 4 ).
column ?= columns->get_column( 'PRIORITY' ).
column->set_fixed_header_text( 'L' ).
column->set_long_text('Priority').
CATCH cx_salv_not_found.
ENDTRY.

TRY.
columns->set_optimize( 'X' ).
columns->set_column_position( EXPORTING
columnname = 'CONCATSTATUSER' position = 5 ).
column ?= columns->get_column( 'CONCATSTATUSER' ).
column->set_fixed_header_text( 'L' ).
column->set_long_text('Status').
CATCH cx_salv_not_found.
ENDTRY.

TRY.
columns->set_optimize( 'X' ).
columns->set_column_position( EXPORTING
columnname = 'PERSON_RESP_NAME' position = 6 ).
column ?= columns->get_column( 'PERSON_RESP_NAME' ).
column->set_fixed_header_text( 'L' ).
column->set_long_text('Assigned To').
CATCH cx_salv_not_found.
ENDTRY.

TRY.
columns->set_optimize( 'X' ).
columns->set_column_position( EXPORTING
columnname = 'CONTACT_PERSON_LIST' position = 7 ).
column ?= columns->get_column( 'CONTACT_PERSON_LIST' ).
column->set_fixed_header_text( 'L' ).
column->set_long_text('Raised By').
CATCH cx_salv_not_found.
ENDTRY.

TRY.
columns->set_optimize( 'X' ).
columns->set_column_position( EXPORTING
columnname = 'CREATED_AT_DATE' position = 8 ).
column ?= columns->get_column( 'CREATED_AT_DATE' ).
column->set_fixed_header_text( 'L' ).
column->set_long_text('Created Date').
CATCH cx_salv_not_found.
ENDTRY.

TRY.
columns->set_optimize( 'X' ).
columns->set_column_position( EXPORTING
columnname = 'VALID_TO' position = 9 ).
column ?= columns->get_column( 'VALID_TO' ).
column->set_fixed_header_text( 'L' ).
column->set_long_text('Target Close Date').
CATCH cx_salv_not_found.
ENDTRY.

TRY.
columns->set_optimize( 'X' ).
columns->set_column_position( EXPORTING
columnname = 'CHANGED_AT_DATE' position = 10 ).
column ?= columns->get_column( 'CHANGED_AT_DATE' ).
column->set_fixed_header_text( 'L' ).
column->set_long_text('Last Change Date').
CATCH cx_salv_not_found.
ENDTRY.
TRY.
column ?= columns->get_column( 'CREATED_BY' ).
column->set_visible( abap_false ).
CATCH cx_salv_not_found.
ENDTRY.

TRY.
column ?= columns->get_column( 'PERSON_RESP' ).
column->set_visible( abap_false ).
CATCH cx_salv_not_found.
ENDTRY.

TRY.
column ?= columns->get_column( 'CONTACT_PERSON' ).
column->set_visible( abap_false ).
CATCH cx_salv_not_found.
ENDTRY.

TRY.
column ?= columns->get_column( 'PROCESS_TYPE' ).
column->set_visible( abap_false ).
CATCH cx_salv_not_found.
ENDTRY.

**Layout save option


gr_layout = o_alv->get_layout( ).
key-report = sy-repid.
gr_layout->set_key( key ).
* You can pass the folling values to the SET_SAVE_RESTRICTION method.
*RESTRICT_NONE
*RESTRICT_USER_DEPENDANT
*RESTRICT_USER_INDEPENDANT
gr_layout->set_save_restriction( if_salv_c_layout=>restrict_none ).

* *Display Data
o_alv->display( ).

You might also like