START-OF-SELECTION.
* To changes the reservation item dates through BAPI
perform reservation_getdat.
* To dispaly error and successful messages
PERFORM reservation_dispaly_alv .
*&---------------------------------------------------------------------*
*& Include
ZMM_RESERVATION_DATA
*&---------------------------------------------------------------------*
TABLES : resb.
TYPE-POOLS: slis .
************************************************************************
* Types declaration
************************************************************************
TYPES: BEGIN OF ty_rspos , " item number table declaration
rsnum TYPE resb-rsnum ,
rspos TYPE resb-rspos,
END OF ty_rspos.
TYPES: BEGIN OF ty_resb
, " Reservation numbers table declaration
rsnum TYPE resb-rsnum,
*
rspos TYPE resb-rspos,
END OF ty_resb.
TYPES: BEGIN OF ty_ret ,
rsnum TYPE resb-rsnum ,
rspos TYPE resb-rspos ,
mtype TYPE c,
msg(220) TYPE c,
END OF ty_ret.
************************************************************************
* Internal Tables for Reservation, item and return message
************************************************************************
DATA: lt_resb TYPE STANDARD TABLE OF ty_resb,
ls_resb TYPE ty_resb,
lt_rspos TYPE STANDARD TABLE OF ty_rspos,
ls_rspos TYPE ty_rspos ,
lt_ret TYPE STANDARD TABLE OF ty_ret,
ls_ret TYPE ty_ret.
DATA: lv_repid TYPE sy-repid.
DATA: lt_fieldcat TYPE slis_t_fieldcat_alv,
************************************************************************
* Selection-Screen for Reservation Numbers and requiested date
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_rsnum FOR resb-rsnum OBLIGATORY .
SELECTION-SCREEN SKIP.
PARAMETERS: p_bdter TYPE resb-bdter OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
*&---------------------------------------------------------------------*
*&
Form RESERVATION_DISPALY_ALV
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM reservation_dispaly_alv .
*PERFORM
*PERFORM
*PERFORM
*PERFORM
CREATE_FCAT
CREATE_FCAT
CREATE_FCAT
CREATE_FCAT
USING
USING
USING
USING
'1'
'2'
'3'
'4'
ls_fieldcat-col_pos = 1.
ls_fieldcat-fieldname = 'RSNUM'.
ls_fieldcat-tabname = 'IT_RET'.
ls_fieldcat-outputlen = '10'.
ls_fieldcat-seltext_m = text-002. " Reservation No
APPEND ls_fieldcat TO lt_fieldcat.
CLEAR ls_fieldcat .
ls_fieldcat-col_pos = 2.
ls_fieldcat-fieldname = 'RSPOS'.
ls_fieldcat-tabname = 'IT_RET'.
"MESSAGE TEXT .
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
IS_REPREP_ID
=
*
I_SCREEN_START_COLUMN
= 0
*
I_SCREEN_START_LINE
= 0
*
I_SCREEN_END_COLUMN
= 0
*
I_SCREEN_END_LINE
= 0
*
I_HTML_HEIGHT_TOP
= 0
*
I_HTML_HEIGHT_END
= 0
*
IT_ALV_GRAPHICS
=
*
IT_HYPERLINK
=
*
IT_ADD_FIELDCAT
=
*
IT_EXCEPT_QINFO
=
*
IR_SALV_FULLSCREEN_ADAPTER
=
* IMPORTING
*
E_EXIT_CAUSED_BY_CALLER
=
*
ES_EXIT_CAUSED_BY_USER
=
TABLES
t_outtab
= lt_ret
EXCEPTIONS
program_error
= 1
OTHERS
= 2
.
IF sy-subrc <> 0. " #EC * .
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
" RESERVATION_DISPALY_ALV
*&---------------------------------------------------------------------*
*&
Form RESERVATION_GETDAT
*&---------------------------------------------------------------------*
*
updating reservation items dates by selection screen inputs
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM reservation_getdat .
* fetch reservation, item numbers from resb by avoiding deleted items
SELECT rsnum rspos FROM resb
INTO TABLE lt_rspos WHERE rsnum IN s_rsnum AND xloek NE 'X'
.
lt_resb[] = lt_rspos[].
SORT lt_resb BY rsnum.
DELETE ADJACENT DUPLICATES FROM lt_resb COMPARING rsnum .
* looping reservation numbers
LOOP AT lt_resb INTO ls_resb.
REFRESH: lt_reservation,
lt_reservationx,
lt_return.
* looping item numbers for particular reservation number
LOOP AT lt_rspos INTO ls_rspos WHERE rsnum = ls_resb-rsnum.
ls_reservation-res_item = ls_rspos-rspos .
" passing values into bapi internal tables
ls_reservation-req_date = p_bdter .
APPEND ls_reservation TO lt_reservation .
CLEAR ls_reservation .
ls_reservationx-res_item = ls_rspos-rspos.
ls_reservationx-req_date = 'X'.
APPEND ls_reservationx TO lt_reservationx .
CLEAR ls_reservationx.
* bapi to change the date for reservation item numbers
*
*
*
*
ls_ret-mtype = 'E' .
ls_ret-msg = ls_return-message .
APPEND ls_ret TO lt_ret .
CLEAR ls_ret.
ELSE .
CLEAR ls_return.
* To read successful messages
READ TABLE lt_return INTO ls_return INDEX 2 .
* READ TABLE i_return into wa_return WITH KEY TYPE = 'S' .
ls_ret-rsnum = ls_resb-rsnum .
ls_ret-rspos = ls_rspos-rspos .
ls_ret-mtype = ls_return-type.
ls_ret-msg = ls_return-message .
APPEND ls_ret TO lt_ret .
CLEAR ls_ret.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDFORM.
" RESERVATION_GETDAT
*&---------------------------------------------------------------------*
*&
Form CREATE_FCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_0163
col position
*
-->P_0164
field name
*
-->P_0165
Internal table
*
-->P_0166
output length
*
-->P_0167
selected text for field
*----------------------------------------------------------------------*
*form CREATE_FCAT using
value(p_0163)
*
value(p_0164)
*
value(p_0165)
*
value(p_0166)
*
value(p_0167).
*
* ls_fieldcat-col_pos = p_0163.
* ls_fieldcat-fieldname = p_0164.
* ls_fieldcat-tabname = p_0165.
* ls_fieldcat-outputlen = p_0166.
* ls_fieldcat-seltext_m = p_0167 .
*
* APPEND ls_fieldcat TO lt_fieldcat.
* CLEAR ls_fieldcat .
*
*endform.
" CREATE_FCAT