BC414 - TN - Teil 1 - 2
BC414 - TN - Teil 1 - 2
'DWHQEDQNlQGHUXQJHQ
SURJUDPPLHUHQ
6$3 1HW:HDYHU
6WDQG
6FKXOXQJV]HQWUXP
5HIHUHQWHQ
6FKXOXQJV
+RPHSDJH
7HLOQHKPHUKDQGEXFK
9HUVLRQ GHU 6FKXOXQJ 4
'DXHU GHU 6FKXOXQJ 7DJ H
0DWHULDOQXPPHU
:HLWHUJDEH XQG 9HUYLHOIlOWLJXQJ GLHVHU 3XEOLNDWLRQ RGHU YRQ 7HLOHQ GDUDXV VLQG ]X ZHOFKHP =ZHFN
XQG LQ ZHOFKHU )RUP DXFK LPPHU RKQH GLH DXVGUFNOLFKH VFKULIWOLFKH *HQHKPLJXQJ GXUFK 6$3 $*
QLFKW JHVWDWWHW ,Q GLHVHU 3XEOLNDWLRQ HQWKDOWHQH ,QIRUPDWLRQHQ N|QQHQ RKQH YRUKHULJH $QNQGLJXQJ
JHlQGHUW ZHUGHQ
0DUNHQ]HLFKHQ
0LFURVRIW :,1'2:6 17 (;&(/ :RUG 3RZHU3RLQW XQG 64/ 6HUYHU VLQG
HLQJHWUDJHQH 0DUNHQ GHU 0LFURVRIW &RUSRUDWLRQ
,%0 '% 26 '% 3DUDOOHO 6\VSOH[ 096(6$ 56 $,;
6 $6 26 XQG 26 VLQG HLQJHWUDJHQH 0DUNHQ GHU ,%0 &RUSRUDWLRQ
25$&/( LVW HLQH HLQJHWUDJHQH 0DUNH GHU 25$&/( &RUSRUDWLRQ
,1)250,;2Q/LQH IRU 6$3 XQG ,QIRUPL[ '\QDPLF 6HUYHU70 VLQG HLQJHWUDJHQH 0DUNHQ
GHU ,QIRUPL[ 6RIWZDUH ,QFRUSRUDWHG
81,; ;2SHQ 26) XQG 0RWLI VLQG HLQJHWUDJHQH 0DUNHQ GHU 2SHQ *URXS
&LWUL[ GDV &LWUL[/RJR ,&$ 3URJUDP 1HLJKERUKRRG 0HWD)UDPH :LQ)UDPH
9LGHR)UDPH 0XOWL:LQ XQG DQGHUH KLHU HUZlKQWH 1DPHQ YRQ &LWUL[3URGXNWHQ VLQG
0DUNHQ YRQ &LWUL[ 6\VWHPV ,QF
+70/ '+70/ ;0/ ;+70/ VLQG 0DUNHQ RGHU HLQJHWUDJHQH 0DUNHQ GHV :& :RUOG
:LGH :HE &RQVRUWLXP 0DVVDFKXVHWWV ,QVWLWXWH RI 7HFKQRORJ\
-$9$ LVW HLQH HLQJHWUDJHQH 0DUNH GHU 6XQ 0LFURV\VWHPV ,QF
-$9$6&5,37 LVW HLQH HLQJHWUDJHQH 0DUNH GHU 6XQ 0LFURV\VWHPV ,QF YHUZHQGHW XQWHU GHU
/L]HQ] GHU YRQ 1HWVFDSH HQWZLFNHOWHQ XQG LPSOHPHQWLHUWHQ 7HFKQRORJLH
6$3 6$3 /RJR 5 5,9$ 5 $%$3 6$3 $UFKLYH/LQN 6$3 %XVLQHVV :RUNIORZ
:HE)ORZ 6$3 (DUO\:DWFK %$3, 6$33+,5( 0DQDJHPHQW &RFNSLW P\6$3FRP /RJR
XQG P\6$3FRP VLQG 0DUNHQ RGHU HLQJHWUDJHQH 0DUNHQ GHU 6$3 $* LQ 'HXWVFKODQG XQG
YLHOHQ DQGHUHQ /lQGHUQ ZHOWZHLW $OOH DQGHUHQ 3URGXNWH VLQG 0DUNHQ RGHU HLQJHWUDJHQH
0DUNHQ GHU MHZHLOLJHQ )LUPHQ
9HU]LFKWVHUNOlUXQJ
%HL GHU =XVDPPHQVWHOOXQJ GHU 7H[WH 9HUZHLVH XQG $EELOGXQJHQ ZXUGH PLW JU|WHU 6RUJIDOW
YRUJHJDQJHQ WURW]GHP LVW HLQ YROOVWlQGLJHU )HKOHUDXVVFKOXVV QLFKW P|JOLFK 'LH QDFKIROJHQGH
'RNXPHQWDWLRQ HUIROJW GDKHU RKQH *HZlKU IU 5LFKWLJNHLW XQG 9ROOVWlQGLJNHLW GHU JHPDFKWHQ
$QJDEHQ IU GHUHQ 9HULIL]LHUXQJ DOOHLQ GHU $QZHQGHU GLH 9HUDQWZRUWXQJ WUlJW
6$3 EHUQLPPW IU DXV GHU 9HUZHQGXQJ GLHVHU 'RNXPHQWDWLRQ HQWVWHKHQGH 6FKlGHQ JOHLFK DXV
ZHOFKHP 5HFKWVJUXQG HLQH +DIWXQJ QXU LP )DOOH YRUVlW]OLFKHQ RGHU JURE IDKUOlVVLJHQ +DQGHOQV
LP EULJHQ LVW GLH +DIWXQJ YRQ 6$3 DXVJHVFKORVVHQ 6$3 EHUQLPPW NHLQH 9HUDQWZRUWXQJ IU GLH
,QKDOWH YRQ 6HLWHQ 'ULWWHU DXI ZHOFKH ZLU GXUFK /LQNV YHUZHLVHQ
J
hEHU GLHVHV +DQGEXFK
'LHVHV +DQGEXFK HUJlQ]W GLH 3UlVHQWDWLRQ GHV 6FKXOXQJVUHIHUHQWHQ XQG GLHQW DOV
1DFKVFKODJHZHUN (V LVW QLFKW ]XP 6HOEVWVWXGLXP JHHLJQHW
7\SRJUDILVFKH .RQYHQWLRQHQ
'LH IROJHQGHQ W\SRJUDILVFKHQ .RQYHQWLRQHQ ZHUGHQ LQ GLHVHP +DQGEXFK
YHUZHQGHW
)RUPDW %HVFKUHLEXQJ
6\PEROH LP 7H[W
'LH IROJHQGHQ ,NRQHQ ZHUGHQ LQ GLHVHP +DQGEXFK YHUZHQGHW
6\PERO %HGHXWXQJ
9RUJHKHQVZHLVH
.DSLWHO 6$36SHUUNRQ]HSW
0RWLYDWLRQ IU GHQ (LQVDW] YRQ 6SHUUHQ
6SHUUREMHNWH XQG 6SHUUEDXVWHLQH
6SHUUHQ VHW]HQ XQG DXIKHEHQ
=LHOJUXSSH
'LHVH 6FKXOXQJ ULFKWHW VLFK DQ GLH IROJHQGHQ =LHOJUXSSHQ
(UIDKUHQH $%$33URJUDPPLHUHU
%HUDWHU
3URMHNWPLWJOLHGHU
(PSIRKOHQH 9RUNHQQWQLVVH
$%$3 'LFWLRQDU\ 6FKXOXQJ %&
8QWHUQHKPHQVV]HQDULR
6LH P|FKWHQ PLW +LOIH GHU 2SHQ 64/%HIHKOH LQ $%$3 'DWHQEDQNlQGHUXQJHQ
UHDOLVLHUHQ
0LW GHP %HIHKO Ä,16(57 ,172 GEWDE! 9$/8(6 ZD!³ N|QQHQ 6LH HLQH QHXH
=HLOH LQ HLQH 'DWHQEDQNWDEHOOH HLQIJHQ +LHU]X LVW GLH HLQ]XIJHQGH =HLOH YRU
$XIUXI GHV .RPPDQGRV LQ GLH 6WUXNWXU ZD! ]X VWHOOHQ GLH GHQ JOHLFKHQ $XIEDX
KDEHQ PXVV ZLH GLH =HLOHQ GHU HQWVSUHFKHQGHQ 'DWHQEDQNWDEHOOH
'DV HYWO LQ GHU 6WUXNWXU ZD! HQWKDOWHQH 0DQGDQWHQIHOG ZLUG QXU EHL
$QJDEH GHV Ä&/,(17 63(&,),('³=XVDW]HV EHUFNVLFKWLJW 2KQH Ä&/,(17
63(&,),('³=XVDW] JLOW GHU DNWXHOOH $XVIKUXQJVPDQGDQW
'DV (LQIJHQ YRQ =HLOHQ LVW DXFK EHU 9LHZV P|JOLFK $OOHUGLQJV PXVV GLH 9LHZ
LP $%$3 'LFWLRQDU\ PLW GHP 3IOHJHVWDWXV ÄOHVHQ XQG lQGHUQ³ DQJHOHJW VHLQ XQG
GDUI QXU )HOGHU DXV HLQHU 7DEHOOH HQWKDOWHQ
'DV 6\VWHPIHOG V\GEFQW HQWKlOW GLH $Q]DKO GHU =HLOHQ GLH DXI GHU 'DWHQEDQN
HLQJHIJW ZHUGHQ NRQQWHQ
0LW GHQ EHLGHQ REHQ GDUJHVWHOOWHQ 9DULDQWHQ GHV 83'$7(%HIHKOV N|QQHQ 6LH
JH]LHOW HLQH =HLOH HLQHU 'DWHQEDQNWDEHOOH lQGHUQ
%HL 9DULDQWH ZLUG GHU 'DWHQEDQNVDW] GHU GHQ LQ ZD! VWHKHQGHQ 6FKOVVHO
EHVLW]W PLW ZD! EHUVFKULHEHQ ZREHL GDV LQ ZD! HYWO YRUKDQGHQH
6FKOVVHOIHOG Ä0$1'7³ QXU GDQQ EHUFNVLFKWLJW ZLUG ZHQQ GHU Ä&/,(17
63(&,),('³=XVDW] DQJHJHEHQ LVW VRQVW JLOW GHU DNWXHOOH $XVIKUXQJVPDQGDQW
/RJLVFKHUZHLVH PXVV ZD! GHQ JOHLFKHQ $XIEDX KDEHQ ZLH GHU ]X lQGHUQGH
'DWHQEDQNVDW]
%HL 9DULDQWH ZLUG GHU LQ GHU :+(5(.ODXVHO DQJHJHEHQH 6DW] JHlQGHUW
ZREHL QXU GLH LP Ä6(7³=XVDW] DQJHJHEHQHQ )HOGHU GDWHQEDQNVHLWLJ PLW GHQ
DQJHJHEHQHQ :HUWHQ EHUVFKULHEHQ ZHUGHQ ,Q GLHVHU 6\QWD[YHUVLRQ PXVV
GHU ]X lQGHUQGH 6DW] LQ GHU :+(5(.ODXVHO GXUFK H[DNWH $QJDEH DOOHU
6FKOVVHOIHOGEHZHUWXQJHQ VSH]LIL]LHUW ZHUGHQ 'HWDLOV ]XU $QJDEH GHV HYWO
YRUKDQGHQHQ 0$1'7)HOGHV HQWQHKPHQ 6LH ELWWH GHU )ROLH Ä=XJULII DXI
PDQGDQWHQDEKlQJLJH 7DEHOOHQ³
)U QXPHULVFKH 'DWHQEDQNIHOGHU LP Ä6(7³=XVDW] N|QQHQ HLQIDFKH
5HFKHQRSHUDWLRQHQ DOV %HZHUWXQJ DQJHJHEHQ ZHUGHQ I J I I J I I J
'DV bQGHUQ YRQ =HLOHQ LVW DXFK EHU 9LHZV P|JOLFK $OOHUGLQJV PXVV GLH 9LHZ
LP $%$3 'LFWLRQDU\ PLW GHP 3IOHJHVWDWXV ÄOHVHQ XQG lQGHUQ³ DQJHOHJW VHLQ XQG
GDUI QXU )HOGHU DXV HLQHU 7DEHOOH HQWKDOWHQ
6ROOHQ IU PHKUHUH =HLOHQ HLQHU 'DWHQEDNWDEHOOH MHZHLOV GLH JOHLFKHQ )HOGHU
LGHQWLVFK JHlQGHUW ZHUGHQ VR N|QQHQ 6LH GLH DXI GHU )ROLH DQJHJHEHQH 6\QWD[
YHUZHQGHQ
hEHU GLH :+(5(.ODXVHO OHJHQ 6LH IHVW ZHOFKH =HLOHQ JHlQGHUW ZHUGHQ VROOHQ
'HWDLOV ]XU $QJDEH GHV HYWO YRUKDQGHQHQ 0$1'7)HOGHV HQWQHKPHQ 6LH ELWWH
GHU )ROLH Ä=XJULII DXI PDQGDQWHQDEKlQJLJH 7DEHOOHQ³
,P 6(7=XVDW] JHEHQ 6LH DQ ZHOFKH )HOGHU GLHVHU 6lW]H ZLH JHlQGHUW
ZHUGHQ VROOHQ $XFK KLHU VLQG IU GLH ]X lQGHUQGHQ QXPHULVFKHQ )HOGHU
5HFKHQRSHUDWLRQHQ DOV %HZHUWXQJVDQJDEH P|JOLFK
I J I I J I I J
'LHVH 83'$7(9DULDQWH EHVLW]W IROJHQGH 5HWXUQFRGHV
0LQGHVWHQV HLQH =HLOH ZXUGH JHlQGHUW
(V ZXUGH NHLQH =HLOH JHlQGHUW ZHLO ] % NHLQH VROFKHQ H[LVWLHUHQ
'DV )HOG V\GEFQW HQWKlOW GLH $Q]DKO GHU JHlQGHUWHQ =HLOHQ
(LQH 0DVVHQlQGHUXQJ N|QQHQ 6LH DXFK EHU GLH $QJDEH HLQHU LQWHUQHQ 7DEHOOH
UHDOLVLHUHQ GLH GHQ JOHLFKHQ $XIEDX KDW ZLH GLH HQWVSUHFKHQGH 'DWHQEDQNWDEHOOH
XQG GLH ]X lQGHUQGHQ 6lW]H HQWKlOW
'DV LQ GHU DQJHJHEHQHQ LQWHUQHQ 7DEHOOH HYWO YRUKDQGHQH )HOG Ä0$1'7³ ZLUG
QXU GDQQ EHUFNVLFKWLJW ZLUG ZHQQ GHU Ä&/,(17 63(&,),('³=XVDW] DQJHJHEHQ
LVW VRQVW JLOW GHU DNWXHOOH $XVIKUXQJVPDQGDQW
'LHVH 83'$7(9DULDQWH EHVLW]W IROJHQGH 5HWXUQFRGHV
$OOH DQJHJHEHQHQ =HLOHQ ZXUGHQ HUIROJUHLFK JHlQGHUW
0LQGHVWHQV HLQH GHU DQJHJHEHQHQ =HLOHQ NRQQWH QLFKW JHlQGHUW ZHUGHQ
ZHLO VLH ] % JDU QLFKW H[LVWLHUW GLH EULJHQ =HLOHQ ZXUGHQ JHlQGHUW
'DV 6\VWHPIHOG V\GEFQW HQWKlOW GLH $Q]DKO GHU HUIROJUHLFK JHlQGHUWHQ =HLOHQ
'HU %HIHKO 02',)< LVW 6$3VSH]LILVFK (U XPIDVVW GLH EHLGHQ %HIHKOH 83'$7(
XQG ,16(57
([LVWLHUW GHU LP 02',)< DQJHJHEHQH 'DWHQVDW] ZLUG GLHVHU DNWXDOLVLHUW
ĺ 83'$7(
([LVWLHUW GHU LP 02',)< DQJHJHEHQH 'DWHQVDW] QLFKW ZLUG GLHVHU QHX
HLQJHIJW ĺ ,16(57
0LW GHQ YHUVFKLHGHQHQ 6\QWD[YDULDQWHQ OlVVW VLFK GLH %HDUEHLWXQJ YRQ (LQ]HOVlW]HQ
XQG PHKUHUH 6lW]HQ UHDOLVLHUHQ DQDORJ ]XU 6\QWD[ YRQ 83'$7( XQG ,16(57
'LH 2SHUDWLRQ LVW DXFK IU 9LHZV P|JOLFK $OOHUGLQJV PXVV GLH 9LHZ LP $%$3
'LFWLRQDU\ PLW GHP 3IOHJHVWDWXV ÄOHVHQ XQG lQGHUQ³ DQJHOHJW VHLQ XQG GDUI QXU
)HOGHU DXV HLQHU 7DEHOOH HQWKDOWHQ
'DV .RPPDQGR EHVLW]W IROJHQGH 5HWXUQFRGHV
'HU DQJHJHEHQH 6DW] E]Z DOOH DQJHJHEHQHQ 6lW]H NRQQWH Q EHDUEHLWHW
DNWXDOLVLHUWHLQJHIJW ZHUGHQ
'HU DQJHJHEHQH 6DW] E]Z PLQGHVWHQV HLQHU GHU DQJHJHEHQHQ 6lW]H
NRQQWH Q QLFKW EHDUEHLWHW ZHUGHQ ZHLO ] % GHU 6DW] GDWHQEDQNVHLWLJ QLFKW
YRUKDQGHQ LVW XQG VHLQ (LQIJHQ HLQHQ 8QLTXH6HNXQGlULQGH[ ]HUVW|UHQ
ZUGH LP )DOOH GHU 0DVVHQlQGHUXQJ ZXUGHQ GLH EULJHQ 6lW]H EHDUEHLWHW
'DV )HOG V\GEFQW HQWKlOW GLH $Q]DKO GHU HUIROJUHLFK EHDUEHLWHWHQ 6lW]H
hEXQJ (LQ]HOVDW]lQGHUXQJ
/HUQ]LHOH GHU hEXQJ
$P (QGH GLHVHU hEXQJ N|QQHQ 6LH
(LQ]HOVlW]H LQ 'DWHQEDQNWDEHOOHQ HLQIJHQ
8QWHUQHKPHQVV]HQDULR
6LH P|FKWHQ YRQ ,KUHP 3URJUDPP DXV GLUHNWH 'DWHQEDQNlQGHUXQJHQ UHDOLVLHUHQ
$XIJDEH (LQ]HOVDW]lQGHUXQJ
3URJUDPP 6$30=B&86720(5
7UDQVDNWLRQ =B&86720(5
.RSLHUYRUODJH 6$3%&7B&5($7(B&86720(5B
0XVWHUO|VXQJ 6$3%&6B&5($7(B&86720(5B
/|VXQJ (LQ]HOVDW]lQGHUXQJ
$XIJDEH (LQ]HOVDW]lQGHUXQJ
3URJUDPP 6$30=B&86720(5
7UDQVDNWLRQ =B&86720(5
.RSLHUYRUODJH 6$3%&7B&5($7(B&86720(5B
0XVWHUO|VXQJ 6$3%&6B&5($7(B&86720(5B
(UJHEQLV
0XVWHUO|VXQJ 6$3%&6B&5($7(B&86720(5B
Modulpool
*&-----------------------------------------------------------------*
*& Modulpool SAPBC414S_CREATE_CUSTOMER_01 *
*&-----------------------------------------------------------------*
INCLUDE BC414S_CREATE_CUSTOMERTOP.
INCLUDE BC414S_CREATE_CUSTOMERO01.
INCLUDE BC414S_CREATE_CUSTOMERI01.
INCLUDE BC414S_CREATE_CUSTOMER_01F01.
SCREEN 100
MODULE status_0100.
TOP-Include
*&-----------------------------------------------------------------*
*& Include BC414S_CREATE_CUSTOMERTOP *
*&-----------------------------------------------------------------*
PROGRAM sapbc414s_create_customer MESSAGE-ID bc414.
PBO-Module
*------------------------------------------------------------------*
***INCLUDE BC414S_CREATE_CUSTOMERO01 .
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&-----------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'DYN_0100'.
SET TITLEBAR 'DYN_0100'.
ENDMODULE. " STATUS_0100 OUTPUT
PAI-Module
*------------------------------------------------------------------*
***INCLUDE BC414S_CREATE_CUSTOMERI01 .
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Module EXIT INPUT
*&-----------------------------------------------------------------*
MODULE exit INPUT.
CASE ok_code.
WHEN 'EXIT'.
IF sy-datar IS INITIAL AND flag IS INITIAL.
* no changes on screen 100
LEAVE PROGRAM.
ELSE.
PERFORM ask_save USING answer.
CASE answer.
WHEN 'J'.
ok_code = 'SAVE&EXIT'.
WHEN 'N'.
LEAVE PROGRAM.
WHEN 'A'.
CLEAR ok_code.
SET SCREEN 100.
ENDCASE.
ENDIF.
WHEN 'CANCEL'.
IF sy-datar IS INITIAL AND flag IS INITIAL.
* no changes on screen 100
LEAVE TO SCREEN 0.
ELSE.
PERFORM ask_loss USING answer.
CASE answer.
WHEN 'J'.
LEAVE TO SCREEN 0.
WHEN 'N'.
CLEAR ok_code.
SET SCREEN 100.
ENDCASE.
ENDIF.
ENDCASE.
ENDMODULE. " EXIT INPUT
*&-----------------------------------------------------------------*
*& Module SAVE_OK_CODE INPUT
*&-----------------------------------------------------------------*
MODULE save_ok_code INPUT.
save_ok = ok_code.
CLEAR ok_code.
ENDMODULE. " SAVE_OK_CODE INPUT
*&-----------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&-----------------------------------------------------------------*
MODULE user_command_0100 INPUT.
CASE save_ok.
WHEN 'SAVE&EXIT'.
PERFORM save.
LEAVE PROGRAM.
WHEN 'SAVE'.
IF flag IS INITIAL.
SET SCREEN 100.
ELSE.
PERFORM save.
SET SCREEN 0.
ENDIF.
WHEN 'BACK'.
IF flag IS INITIAL.
SET SCREEN 0.
ELSE.
PERFORM ask_save USING answer.
CASE answer.
WHEN 'J'.
PERFORM save.
SET SCREEN 0.
WHEN 'N'.
SET SCREEN 0.
WHEN 'A'.
SET SCREEN 100.
ENDCASE.
ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&-----------------------------------------------------------------*
*& Module MARK_CHANGED INPUT
*&-----------------------------------------------------------------*
MODULE mark_changed INPUT.
* set flag to mark changes were made on screen 100
flag = 'X'.
ENDMODULE. " MARK_CHANGED INPUT
FORM-Routinen
*------------------------------------------------------------------*
***INCLUDE BC414S_CREATE_CUSTOMER_01F01 .
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Form NUMBER_GET_NEXT
*&-----------------------------------------------------------------*
* -->P_WA_SCUSTOM text
*------------------------------------------------------------------*
FORM number_get_next USING p_scustom LIKE scustom.
DATA: return TYPE inri-returncode.
* get next free number in the number range '01'
* of number range object 'SBUSPID'
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = '01'
object = 'SBUSPID'
IMPORTING
number = p_scustom-id
returncode = return
EXCEPTIONS
OTHERS = 1.
CASE sy-subrc.
WHEN 0.
CASE return.
WHEN 1.
* number of remaining numbers critical
MESSAGE s070.
WHEN 2.
* last number
MESSAGE s071.
WHEN 3.
* no free number left over
MESSAGE a072.
ENDCASE.
WHEN 1.
* internal error
MESSAGE a073 WITH sy-subrc.
ENDCASE.
ENDFORM. " NUMBER_GET_NEXT
*&-----------------------------------------------------------------*
*& Form ASK_SAVE
)RUWVHW]XQJ DXI GHU QlFKVWHQ 6HLWH
*&-----------------------------------------------------------------*
* -->P_ANSWER text
*------------------------------------------------------------------*
FORM ask_save USING p_answer.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
textline1 = 'Data has been changed.'(001)
textline2 = 'Save before leaving transaction?'(002)
titel = 'Create Customer'(003)
IMPORTING
answer = p_answer.
ENDFORM. " ASK_SAVE
*&-----------------------------------------------------------------*
*& Form ASK_LOSS
*&-----------------------------------------------------------------*
* -->P_ANSWER text
*------------------------------------------------------------------*
FORM ask_loss USING p_answer.
CALL FUNCTION 'POPUP_TO_CONFIRM_LOSS_OF_DATA'
EXPORTING
textline1 = 'Continue?'(004)
titel = 'Create Customer'(003)
IMPORTING
answer = p_answer.
ENDFORM. " ASK_LOSS
*&-----------------------------------------------------------------*
*& Form ENQ_SCUSTOM
*&-----------------------------------------------------------------*
FORM enq_scustom.
CALL FUNCTION 'ENQUEUE_ESCUSTOM'
EXPORTING
id = scustom-id
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
CASE sy-subrc.
WHEN 0.
WHEN 1.
MESSAGE e060.
WHEN OTHERS.
MESSAGE e063 WITH sy-subrc.
ENDCASE.
ENDFORM. " ENQ_SCUSTOM
*&-----------------------------------------------------------------*
*& Form DEQ_ALL
*&-----------------------------------------------------------------*
FORM deq_all.
CALL FUNCTION 'DEQUEUE_ALL'.
ENDFORM. " DEQ_ALL
*&-----------------------------------------------------------------*
*& Form SAVE
*&-----------------------------------------------------------------*
FORM save.
* get SCUSTOM-ID from number range object SBUSPID
PERFORM number_get_next USING scustom.
* save new customer
PERFORM save_scustom.
ENDFORM. " SAVE
*&-----------------------------------------------------------------*
*& Form SAVE_SCUSTOM
*&-----------------------------------------------------------------*
FORM save_scustom.
INSERT INTO scustom VALUES scustom.
IF sy-subrc <> 0.
* insertion of dataset in DB-table not possible
MESSAGE a048.
ELSE.
* insertion successfull
MESSAGE s015 WITH scustom-id.
ENDIF.
ENDFORM. " SAVE_SCUSTOM
8QWHUQHKPHQVV]HQDULR
6LH P|FKWHQ YRQ ,KUHP 3URJUDPP DXV PHKUHUH 'DWHQVlW]H GLUHNW lQGHUQ
3URJUDPP 6$30=B83'$7(B675$9(/$*
.RSLHUYRUODJH 6$3%&7B83'$7(B675$9(/$*
0XVWHUO|VXQJ 6$3%&6B83'$7(B675$9(/$*
3URJUDPP 6$30=B83'$7(B675$9(/$*
.RSLHUYRUODJH 6$3%&7B83'$7(B675$9(/$*
0XVWHUO|VXQJ 6$3%&6B83'$7(B675$9(/$*
(UJHEQLV
0XVWHUO|VXQJ 6$3%&6B83'$7(B675$9(/$*
Modulpool
*&-----------------------------------------------------------------*
*& Modulpool SAPBC414S_UPDATE_STRAVELAG *
*&-----------------------------------------------------------------*
INCLUDE bc414s_update_stravelagtop.
INCLUDE bc414s_update_stravelagf01.
INCLUDE bc414s_update_stravelago01.
INCLUDE bc414s_update_stravelagi01.
INCLUDE bc414s_update_stravelage01.
SCREEN 100
MODULE USER_COMMAND_0100.
TOP-Include
*&-----------------------------------------------------------------*
*& Include BC414S_UPDATE_STRAVELAGTOP *
*&-----------------------------------------------------------------*
PROGRAM sapbc414s_update_stravelag NO STANDARD PAGE HEADING
LINE-SIZE 120
LINE-COUNT 10
MESSAGE-ID bc414.
* Flags:
PBO-Module
*------------------------------------------------------------------*
***INCLUDE BC414S_UPDATE_STRAVELAGO01 .
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&-----------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'DYNPRO'.
SET TITLEBAR 'DYNPRO'.
ENDMODULE. " STATUS_0100 OUTPUT
*&-----------------------------------------------------------------*
*& Module TRANS_TO_DYNPRO OUTPUT
*&-----------------------------------------------------------------*
MODULE trans_to_dynpro OUTPUT.
* Field transport to screen
MOVE-CORRESPONDING wa_travel TO stravelag.
ENDMODULE. " TRANS_TO_DYNPRO OUTPUT
PAI-Module
*------------------------------------------------------------------*
***INCLUDE BC414S_UPDATE_STRAVELAGI01 .
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&-----------------------------------------------------------------*
MODULE user_command_0100 INPUT.
CASE save_ok.
WHEN 'SAVE'.
IF flag IS INITIAL.
* enries on table control not changed.
SET SCREEN 0.
ELSE.
* at least one field on table control changed
PERFORM save_changes.
SET SCREEN 0.
ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&-----------------------------------------------------------------*
*& Module SAVE_OK_CODE INPUT
*&-----------------------------------------------------------------*
MODULE save_ok_code INPUT.
save_ok = ok_code.
CLEAR: ok_code.
ENDMODULE. " SAVE_OK_CODE INPUT
*&-----------------------------------------------------------------*
*& Module EXIT INPUT
*&-----------------------------------------------------------------*
MODULE exit INPUT.
CASE ok_code.
WHEN 'CANCEL'.
IF sy-datar IS INITIAL AND flag IS INITIAL.
* no changes performed on screen
LEAVE TO SCREEN 0.
ELSE.
* at least one field on table control changed.
PERFORM popup_to_confirm_loss_of_data.
ENDIF.
ENDCASE.
ENDMODULE. " EXIT INPUT
*&-----------------------------------------------------------------*
Ereignisse
*------------------------------------------------------------------*
* INCLUDE BC414S_UPDATE_STRAVELAGE01 *
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Event START-OF-SELECTION
*&-----------------------------------------------------------------*
START-OF-SELECTION.
* Read data from STRAVELAG into internal table ITAB_STRAVELAG
PERFORM read_data USING itab_stravelag.
* Write data from ITAB_STRAVELAG on list
PERFORM write_data.
*&-----------------------------------------------------------------*
*& Event TOP-OF-PAGE
*&-----------------------------------------------------------------*
TOP-OF-PAGE.
* Write page title and page heading
PERFORM write_header.
*&-----------------------------------------------------------------*
*& Event END-OF-SELECTION
*&-----------------------------------------------------------------*
END-OF-SELECTION.
* Set PF-Status and Title of list
SET PF-STATUS 'LIST'.
SET TITLEBAR 'LIST'.
*&-----------------------------------------------------------------*
*& Event AT USER-COMMAND
*&-----------------------------------------------------------------*
AT USER-COMMAND.
CLEAR: modify_list, flag, itab_travel.
* Collect data corresponding to marked lines into internal table
PERFORM loop_at_list USING itab_travel.
* Call screen if any line on list was marked
CHECK NOT itab_travel IS INITIAL.
PERFORM call_screen.
* Modify list buffer if database table was modified -> submit report
CHECK NOT modify_list IS INITIAL.
SUBMIT (sy-cprog).
FORM-Routinen
*------------------------------------------------------------------*
***INCLUDE BC414S_UPDATE_STRAVELAGF01 .
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Form READ_DATA
*&-----------------------------------------------------------------*
* -->P_ITAB_STRAVELAG text
*------------------------------------------------------------------*
FORM read_data USING p_itab_stravelag LIKE itab_stravelag.
SELECT * FROM stravelag
INTO CORRESPONDING FIELDS OF TABLE p_itab_stravelag.
ENDFORM. " READ_DATA
*&-----------------------------------------------------------------*
*& Form WRITE_DATA
*&-----------------------------------------------------------------*
FORM write_data.
LOOP AT itab_stravelag INTO wa_stravelag.
WRITE AT: /pos1 mark AS CHECKBOX,
pos2 wa_stravelag-agencynum COLOR COL_KEY,
pos3 wa_stravelag-name,
pos4 wa_stravelag-street,
pos5 wa_stravelag-postcode,
pos6 wa_stravelag-city,
pos7 wa_stravelag-country.
HIDE: wa_stravelag.
ENDLOOP.
ENDFORM. " WRITE_DATA
*&-----------------------------------------------------------------*
*& Form WRITE_HEADER
*&-----------------------------------------------------------------*
FORM write_header.
WRITE: / 'Travel agency data'(007), AT sy-linsz sy-pagno.
ULINE.
FORMAT COLOR COL_HEADING.
WRITE AT: /pos2 'Agency'(001),
pos3 'Name'(002),
pos4 'Street'(003),
pos5 'Postal Code'(004),
pos6 'City'(005),
pos7 'Country'(006).
ULINE.
ENDFORM. " WRITE_HEADER
*&-----------------------------------------------------------------*
*& Form LOOP_AT_LIST
*&-----------------------------------------------------------------*
* -->P_ITAB_AGNECYNUM text
*------------------------------------------------------------------*
FORM loop_at_list USING p_itab_travel LIKE itab_travel.
DO.
CLEAR: mark.
READ LINE sy-index FIELD VALUE mark.
IF sy-subrc <> 0.
EXIT.
ENDIF.
CHECK NOT mark IS INITIAL.
APPEND wa_stravelag TO p_itab_travel.
ENDDO.
ENDFORM. " LOOP_AT_LIST
*&-----------------------------------------------------------------*
*& Form CALL_SCREEN
*&-----------------------------------------------------------------*
FORM call_screen.
*&-----------------------------------------------------------------*
*& Form POPUP_TO_CONFIRM_LOSS_OF_DATA
*&-----------------------------------------------------------------*
FORM popup_to_confirm_loss_of_data.
DATA answer.
CALL FUNCTION 'POPUP_TO_CONFIRM_LOSS_OF_DATA'
EXPORTING
textline1 = 'Cancel processing of travel agencies?'(008)
titel = 'Cancel processing'(009)
IMPORTING
answer = answer.
CASE answer.
WHEN 'J'.
LEAVE TO SCREEN 0.
WHEN 'N'.
LEAVE TO SCREEN '0100'.
ENDCASE.
ENDFORM. " POPUP_TO_CONFIRM_LOSS_OF_DATA
*&-----------------------------------------------------------------*
*& Form SAVE_CHANGES
*&-----------------------------------------------------------------*
FORM save_changes.
* declare internal table and workarea of same linetype as DB table
DATA: itab TYPE STANDARD TABLE OF stravelag,
wa LIKE LINE OF itab.
* search for datasets changed on the screen
LOOP AT itab_travel INTO wa_travel
WHERE mark_changed = 'X'.
* fill workarea fitting to DB table
MOVE-CORRESPONDING wa_travel TO wa.
* fill corresponding internal table
APPEND wa TO itab.
ENDLOOP.
* mass update on stravelag -> best performance
UPDATE stravelag FROM TABLE itab.
* check success
IF sy-subrc = 0.
* all datasets are successfully updated
MESSAGE s030.
ELSE.
* at least one dataset from the internal table could not be updated
* on the database table
MESSAGE i048.
ENDIF.
* Flag: List does not show correct data any more
modify_list = 'X'.
ENDFORM. " SAVE_CHANGES
8QWHUQHKPHQVV]HQDULR
6LH P|FKWHQ ]XVDPPHQJHK|ULJH 'DWHQEDQNlQGHUXQJHQ DOV (LQKHLW JHEQGHOW
GXUFKIKUHQ
(LQH 6$3/8: /RJLFDO 8QLW RI :RUN EHVWHKW DXV ORJLVFK ]XVDPPHQ JHK|ULJHQ
bQGHUXQJHQ LP 56\VWHP YRQ GHQHQ HQWZHGHU DOOH RGHU JDU NHLQH GXUFKJHIKUW
ZHUGHQ Ä$OOHVRGHU1LFKWV3ULQ]LS³
(LQH 'DWHQEDQN/8: EHVWHKW DXV DOOHQ bQGHUXQJHQ GLH ELV ]XP Ä9HUVLHJHOQ³
GHV 'DWHQEDQN]XVWDQGV '%&RPPLW GXUFKJHIKUW ZHUGHQ
,QQHUKDOE HLQHU 'DWHQEDQN/8: LVW MHGHU]HLW HLQ 9HUZHUIHQ DOOHU ELV
GDKLQ GXUFKJHIKUWHQ bQGHUXQJHQ P|JOLFK '%5ROOEDFN ZRGXUFK GHU
'DWHQEDQN]XVWDQG YRU GHU DNWXHOOHQ 'DWHQEDQN/8: ZLHGHU HUUHLFKW ZLUG
6ROFK HLQ '%5ROOEDFN ZLUG JHQXW]W XP LP )HKOHUIDOO GHQ YRUKHUJHKHQGHQ
NRQVLVWHQWHQ 'DWHQEDQN]XVWDQG ZLHGHU KHU]XVWHOOHQ
'XUFK HLQHQ '%&RPPLW ZLUG GHU DNWXHOOH 'DWHQEDQN]XVWDQG ÄYHUVLHJHOW³
'DQDFK LVW NHLQ 9HUZHUIHQ GHU DNWXHOOHQ 'DWHQEDQN/8: PHKU P|JOLFK
hEHU GLH $%$3$QZHLVXQJHQ ROLLBACK WORK XQG COMMIT WORK N|QQHQ
6LH H[SOL]LW HLQHQ '%5ROOEDFN E]Z '%&RPPLW UHDOLVLHUHQ (V JLEW MHGRFK DXFK
6LWXDWLRQHQ LQ GHQHQ HLQ '%&RPPLW LPSOL]LW DEJHVHW]W ZLUG VLHKH QDFKIROJHQGH
$EELOGXQJHQ
:HLWHUH ,QIRUPDWLRQHQ KLHU]X ILQGHQ 6LH LQ GHU 6FKOVVHOZRUWGRNXPHQWDWLRQ LP
$%$3(GLWRU ]XP %HJULII 7UDQVDNWLRQVYHUDUEHLWXQJ
%HL $Q]HLJH HLQHV MHGHQ %LOGVFKLUPELOGV ZLUG GHU DNWXHOO EHOHJWH :RUNSUR]HVV
DXI GHP $SSOLNDWLRQVVHUYHU IUHLJHJHEHQ ZDV DXFK GLH )UHLJDEH GHV
]XJHK|ULJHQ 'DWHQEDQN:RUNSUR]HVV EHZLUNW XQG DXWRPDWLVFK HLQHQ LPSOL]LWHQ
'DWHQEDQN&RPPLW DXVO|VW
'LH )UHLJDEH GHV :RUNSUR]HVVHV YRU MHGHP %HQXW]HUGLDORJ JHZlKUOHLVWHW GDVV
GLH PHLVW OlQJHU DQGDXHUQGHQ %HQXW]HUDNWLRQHQ NHLQH :RUNSUR]HVVH DXI GHP
$SSOLNDWLRQVVHUYHU XQG YRU DOOHP DXI GHP 'DWHQEDQNVHUYHU EORFNLHUHQ ZDV HLQH
JHULQJHUH %HODVWXQJ GHU 'DWHQEDQNUHVRXUFHQ EHZLUNW (UVW QDFK DEJHVFKORVVHQHU
%HDUEHLWXQJ GHV '\QSURV GXUFK GHQ %HQXW]HU ZR HLQH SURJUDPPVHLWLJH
9HUDUEHLWXQJ DQVWHKW ZLUG GHU %HQXW]HU VDPW 3URJUDPPNRQWH[W ZLHGHU
ÄKHUHLQJHUROOW³ G K ZLHGHU LQ HLQHQ :RUNSUR]HVV ]XU $EDUEHLWXQJ JHODGHQ
,PSOL]LWH '%&RPPLWV ZHUGHQ LPPHU GDQQ DXVJHO|VW ZHQQ GDV 3URJUDPP
ZDUWHQ PXVV ] % EHL
6HQGHQ HLQHV 6$3%LOGVFKLUPELOGHV
6HQGHQ HLQHU 'LDORJQDFKULFKW
6\QFKURQHQ XQG DV\QFKURQHQ 5)&$XIUXIHQ 5HPRWH )XQFWLRQ &DOO
$QZHLVXQJHQ CALL TRANSACTION WBFRGH! RGHU SUBMIT SURJUDP!
hEXQJ /8:.RQ]HSWH
/HUQ]LHOH GHU hEXQJ
$P (QGH GLHVHU hEXQJ N|QQHQ 6LH
)XQNWLRQVEDXVWHLQH XQG 8QWHUSURJUDPPH KLQVLFKWOLFK LKUHU 7DXJOLFKNHLW IU
GLH 5HDOLVLHUXQJ HLQHU /8:9HUDUEHLWXQJ EHXUWHLOHQ
8QWHUQHKPHQVV]HQDULR
6LH P|FKWHQ ]XVDPPHQJHK|ULJH 'DWHQEDQNlQGHUXQJHQ DOV (LQKHLW JHEQGHOW
GXUFKIKUHQ
3URJUDPP 6$30=B%22.,1*6
7UDQVDNWLRQVFRGH =B%22.,1*6
.RSLHUYRUODJH 6$3%&7B%22.,1*6B
0XVWHUO|VXQJ 6$3%&6B%22.,1*6B
JHUXIHQ ZLUG JHNDSVHOW ZHUGHQ =XU $XVZDKO VWHKHQ SUR 7DEHOOH ]ZHL
)XQNWLRQVEDXVWHLQH 83'$7(B6%22. 83'$7(B6%22.B$
83'$7(B6)/,*+7 XQG 83'$7(B6)/,*+7B$
'XUFK GLH .RPELQDWLRQ GHU ULFKWLJHQ )XQNWLRQVEDXVWHLQH LQ GHU ULFKWLJHQ
$XIUXIUHLKHQIROJH VROO VLFKHUJHVWHOOW ZHUGHQ GDVV LP )HKOHUIDOO GLH
.RQVLVWHQ] GHU 'DWHQ DXI GHQ EHWHLOLJWHQ 'DWHQEDQNWDEHOOHQ JHZDKUW EOHLEW
,Q ZHOFKHU 5HLKHQIROJH PVVHQ ZHOFKH )XQNWLRQVEDXVWHLQH JHUXIHQ ZHUGHQ"
8QWHUVXFKHQ 6LH KLHU]X GHQ 4XHOOFRGH GHU )XQNWLRQVEDXVWHLQH DXI
$%$3$QZHLVXQJHQ ZHOFKH GLH 'DWHQEDQN/8: YRU]HLWLJ EHHQGHQ XQG
GDPLW ]XP )HVWVFKUHLEHQ LQNRQVLVWHQWHU 'DWHQ DXI GHQ 7DEHOOHQ IKUHQ
N|QQHQ
5XIHQ 6LH GLH )XQNWLRQVEDXVWHLQH LQ GHU HQWVSUHFKHQGHQ 5HLKHQIROJH DXV
GHP 8QWHUSURJUDPP 6$9(B02',),('B%22.,1* KHUDXV DXI
%HKDQGHOQ 6LH GLH $XVQDKPHQ GHU )XQNWLRQVEDXVWHLQH $OV P|JOLFKH
%HQXW]HUQDFKULFKWHQ HLJQHQ VLFK
)OXJ %XFKXQJHQ DNWXDOLVLHUW ĺ 1DFKULFKW
)HKOHU EHLP $NWXDOLVLHUHQ )OXJ %XFKXQJ ĺ 1DFKULFKW
bQGHUXQJHQ QLFKW HUIROJUHLFK ĺ 1DFKULFKW
)OXJ DXVJHEXFKW RGHU EHUEXFKW ĺ 1DFKULFKW
)OXJ H[LVWLHUW QLFKW ĺ 1DFKULFKW
/|VXQJ /8:.RQ]HSWH
$XIJDEH /8: UHDOLVLHUHQ
3URJUDPP 6$30=B%22.,1*6
7UDQVDNWLRQVFRGH =B%22.,1*6
.RSLHUYRUODJH 6$3%&7B%22.,1*6B
0XVWHUO|VXQJ 6$3%&6B%22.,1*6B
D VLHKH 0XVWHUO|VXQJ
(UJHEQLV
0XVWHUO|VXQJ 6$3%&6B%22.,1*6B
Modulpool
*&-----------------------------------------------------------------*
*& Modulpool SAPBC414S_BOOKINGS_01 *
*&-----------------------------------------------------------------*
INCLUDE BC414S_BOOKINGS_01TOP.
INCLUDE BC414S_BOOKINGS_01O01.
INCLUDE BC414S_BOOKINGS_01I01.
INCLUDE BC414S_BOOKINGS_01F01.
INCLUDE BC414S_BOOKINGS_01F02.
INCLUDE BC414S_BOOKINGS_01F03.
INCLUDE BC414S_BOOKINGS_01F04.
INCLUDE BC414S_BOOKINGS_01F05.
INCLUDE BC414S_BOOKINGS_01F06.
SCREEN 100
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
*
PROCESS AFTER INPUT.
MODULE EXIT AT EXIT-COMMAND.
MODULE SAVE_OK_CODE.
CHAIN.
* cancel booking: check if flight exists or flight can be created
FIELD: SDYN_CONN-CARRID, SDYN_CONN-CONNID, SDYN_CONN-FLDATE.
MODULE USER_COMMAND_0100.
ENDCHAIN.
SCREEN 200
PROCESS BEFORE OUTPUT.
MODULE STATUS_0200.
MODULE TRANS_DETAILS.
CALL SUBSCREEN SUB1 INCLUDING SY-CPROG '0201'.
LOOP AT ITAB_BOOK INTO WA_BOOK WITH CONTROL TC_SBOOK.
MODULE TRANS_TO_TC.
* allow only modification of bookings, that are not allready cancelled
MODULE MODIFY_SCREEN.
ENDLOOP.
*
PROCESS AFTER INPUT.
LOOP AT ITAB_BOOK.
* mark changed bookings in internal table itab_book
FIELD SDYN_BOOK-CANCELLED MODULE MODIFY_ITAB ON REQUEST.
ENDLOOP.
MODULE EXIT AT EXIT-COMMAND.
MODULE SAVE_OK_CODE.
MODULE USER_COMMAND_0200.
SCREEN 201
PROCESS BEFORE OUTPUT.
PROCESS AFTER INPUT.
SCREEN 300
PROCESS BEFORE OUTPUT.
MODULE STATUS_0300.
MODULE TABSTRIP_INIT.
MODULE TRANS_DETAILS.
CALL SUBSCREEN TAB_SUB INCLUDING SY-CPROG SCREEN_NO.
*
PROCESS AFTER INPUT.
CALL SUBSCREEN TAB_SUB.
MODULE EXIT AT EXIT-COMMAND.
MODULE SAVE_OK_CODE.
MODULE TRANS_FROM_0300.
MODULE USER_COMMAND_0300.
SCREEN 301
PROCESS BEFORE OUTPUT.
* MODULE HIDE_BOOKID.
PROCESS AFTER INPUT.
SCREEN 302
PROCESS BEFORE OUTPUT.
PROCESS AFTER INPUT.
SCREEN 303
PROCESS BEFORE OUTPUT.
PROCESS AFTER INPUT.
TOP-Include
*&-----------------------------------------------------------------*
*& Include BC414S_BOOKINGS_01TOP *
*&-----------------------------------------------------------------*
PROGRAM sapbc414s_bookings_01 MESSAGE-ID bc414.
PBO-Module
*------------------------------------------------------------------*
***INCLUDE BC414S_BOOKINGS_01O01 .
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&-----------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'DYN_100'.
SET TITLEBAR 'DYN_100'.
ENDMODULE. " STATUS_0100 OUTPUT
*&-----------------------------------------------------------------*
*& Module STATUS_0200 OUTPUT
*&-----------------------------------------------------------------*
MODULE status_0200 OUTPUT.
SET PF-STATUS 'DYN_200'.
SET TITLEBAR 'DYN_200' WITH sdyn_conn-carrid sdyn_conn-connid
sdyn_conn-fldate.
ENDMODULE. " STATUS_0200 OUTPUT
*&-----------------------------------------------------------------*
*& Module STATUS_0300 OUTPUT
*&-----------------------------------------------------------------*
MODULE status_0300 OUTPUT.
SET PF-STATUS 'DYN_300'.
SET TITLEBAR 'DYN_300' WITH sdyn_conn-carrid sdyn_conn-connid
sdyn_conn-fldate.
ENDMODULE. " STATUS_0300 OUTPUT
*&-----------------------------------------------------------------*
*& Module TRANS_DETAILS OUTPUT
*&-----------------------------------------------------------------*
MODULE trans_details OUTPUT.
MOVE-CORRESPONDING: wa_spfli TO sdyn_conn,
wa_sflight TO sdyn_conn,
wa_sbook TO sdyn_book.
ENDMODULE. " TRANS_DETAILS OUTPUT
*&-----------------------------------------------------------------*
*& Module TRANS_TO_TC OUTPUT
*&-----------------------------------------------------------------*
MODULE trans_to_tc OUTPUT.
MOVE-CORRESPONDING wa_book TO sdyn_book.
ENDMODULE. " TRANS_TO_TC OUTPUT
*&-----------------------------------------------------------------*
*& Module MODIFY_SCREEN OUTPUT
*&-----------------------------------------------------------------*
MODULE modify_screen OUTPUT.
LOOP AT SCREEN.
CHECK screen-name = 'SDYN_BOOK-CANCELLED'.
CHECK ( NOT sdyn_book-cancelled IS INITIAL ) AND
( sdyn_book-mark IS INITIAL ).
screen-input = 0.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE. " MODIFY_SCREEN OUTPUT
*&-----------------------------------------------------------------*
*& Module TABSTRIP_INIT OUTPUT
*&-----------------------------------------------------------------*
MODULE tabstrip_init OUTPUT.
CHECK tab-activetab IS INITIAL.
tab-activetab = 'BOOK'.
screen_no = '0301'.
ENDMODULE. " TABSTRIP_INIT OUTPUT
*&-----------------------------------------------------------------*
*& Module HIDE_BOOKID OUTPUT
*&-----------------------------------------------------------------*
MODULE hide_bookid OUTPUT.
* hide field displaying customer number when working with number range
* object BS_SCUSTOM
LOOP AT SCREEN.
CHECK screen-name = 'SDYN_BOOK-BOOKID'.
screen-active = 0.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE. " HIDE_BOOKID OUTPUT
PAI-Module
*------------------------------------------------------------------*
***INCLUDE BC414S_BOOKINGS_01I01 .
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Module EXIT INPUT
*&-----------------------------------------------------------------*
MODULE exit INPUT.
CASE ok_code.
WHEN 'CANCEL'.
CASE sy-dynnr.
WHEN '0100'.
LEAVE PROGRAM.
WHEN '0200'.
LEAVE TO SCREEN '0100'.
WHEN '0300'.
LEAVE TO SCREEN '0100'.
WHEN OTHERS.
ENDCASE.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN OTHERS.
ENDCASE.
ENDMODULE. " EXIT INPUT
*&-----------------------------------------------------------------*
*& Module SAVE_OK_CODE INPUT
*&-----------------------------------------------------------------*
MODULE save_ok_code INPUT.
save_ok = ok_code.
CLEAR ok_code.
ENDMODULE. " SAVE_OK_CODE INPUT
*&-----------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Module USER_COMMAND_0200 INPUT
*&-----------------------------------------------------------------*
MODULE user_command_0200 INPUT.
CASE save_ok.
WHEN 'SAVE'.
* collect marked (changed) data sets in seperate internal table
PERFORM collect_modified_data USING itab_sbook_modify.
* perform database changes
PERFORM save_modified_booking.
SET SCREEN '0100'.
WHEN 'BACK'.
SET SCREEN '0100'.
WHEN OTHERS.
SET SCREEN '0200'.
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
*&-----------------------------------------------------------------*
*& Module MODIFY_ITAB INPUT
*&-----------------------------------------------------------------*
MODULE modify_itab INPUT.
wa_book-cancelled = sdyn_book-cancelled.
wa_book-mark = 'X'.
MODIFY itab_book FROM wa_book INDEX tc_sbook-current_line.
ENDMODULE. " MODIFY_ITAB INPUT
*&-----------------------------------------------------------------*
*& Module USER_COMMAND_0300 INPUT
*&-----------------------------------------------------------------*
MODULE user_command_0300 INPUT.
PERFORM tabstrip_set.
CASE save_ok.
WHEN 'NEW_CUSTOM'.
PERFORM create_new_customer.
SET SCREEN '0300'.
WHEN 'SAVE'.
PERFORM save_new_booking.
SET SCREEN '0100'.
WHEN 'BACK'.
SET SCREEN '0100'.
WHEN OTHERS.
SET SCREEN '0300'.
ENDCASE.
ENDMODULE. " USER_COMMAND_0300 INPUT
*&-----------------------------------------------------------------*
*& Module TRANS_FROM_0300 INPUT
*&-----------------------------------------------------------------*
MODULE trans_from_0300 INPUT.
MOVE-CORRESPONDING sdyn_book TO wa_sbook.
ENDMODULE. " TRANS_FROM_0300 INPUT
)2505RXWLQHQ
F01
*------------------------------------------------------------------*
***INCLUDE BC414S_BOOKINGS_01F01 .
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Form COLLECT_MODIFIED_DATA
*&-----------------------------------------------------------------*
* -->P_ITAB_SBOOK_MODIFY text
*------------------------------------------------------------------*
FORM collect_modified_data USING p_itab_sbook_modify
LIKE itab_sbook_modify.
DATA: wa_book LIKE LINE OF itab_book,
wa_sbook_modify LIKE LINE OF p_itab_sbook_modify.
CLEAR: p_itab_sbook_modify.
* Only bookings are collected, that
* 1) have been changed (mark = 'X')
* 2) shall be cancelled (cancelled = 'X')
LOOP AT itab_book INTO wa_book
WHERE mark = 'X'
AND cancelled = 'X'.
MOVE-CORRESPONDING wa_book TO wa_sbook_modify.
APPEND wa_sbook_modify TO p_itab_sbook_modify.
ENDLOOP.
ENDFORM. " COLLECT_MODIFIED_DATA
*&-----------------------------------------------------------------*
*& Form INITIALIZE_SBOOK
*&-----------------------------------------------------------------*
* -->P_WA_SBOOK text
*------------------------------------------------------------------*
FORM initialize_sbook USING p_wa_sbook TYPE sbook.
CLEAR p_wa_sbook.
MOVE-CORRESPONDING wa_sflight TO p_wa_sbook.
MOVE: wa_sflight-price TO p_wa_sbook-forcurram,
wa_sflight-currency TO p_wa_sbook-forcurkey,
sy-datum TO p_wa_sbook-order_date.
ENDFORM. " INITIALIZE_SBOOK
*&-----------------------------------------------------------------*
*& Form PROCESS_SYSUBRC_BOOKC
*&-----------------------------------------------------------------*
FORM process_sysubrc_bookc.
)RUWVHW]XQJ DXI GHU QlFKVWHQ 6HLWH
CASE sysubrc.
WHEN 0.
SET SCREEN '0200'.
WHEN OTHERS.
MESSAGE e023 WITH sdyn_conn-carrid sdyn_conn-connid
sdyn_conn-fldate.
ENDCASE.
ENDFORM. " PROCESS_SYSUBRC_BOOKC
*&-----------------------------------------------------------------*
*& Form PROCESS_SYSUBRC_BOOKN
*&-----------------------------------------------------------------*
FORM process_sysubrc_bookn.
CASE sysubrc.
WHEN 0.
SET SCREEN '0300'.
WHEN OTHERS.
MESSAGE e023 WITH sdyn_conn-carrid sdyn_conn-connid
sdyn_conn-fldate.
ENDCASE.
ENDFORM. " PROCESS_SYSUBRC_BOOKN
*&---------------------------------------------------------------------*
*& Form TABSTRIP_SET
*&---------------------------------------------------------------------*
FORM tabstrip_set.
IF save_ok = 'BOOK' OR save_ok = 'DETCON' OR save_ok = 'DETFLT'.
tab-activetab = save_ok.
ENDIF.
CASE save_ok.
WHEN 'BOOK'.
screen_no = '0301'.
WHEN 'DETCON'.
screen_no = '0302'.
WHEN 'DETFLT'.
screen_no = '0303'.
ENDCASE.
ENDFORM. " TABSTRIP_SET
*&-----------------------------------------------------------------*
*& Form CREATE_NEW_CUSTOMER
*&-----------------------------------------------------------------*
FORM create_new_customer.
********************** TO BE IMPLEMENTED LATER *********************
ENDFORM. " CREATE_NEW_CUSTOMER
*&-----------------------------------------------------------------*
*& Form NUMBER_GET_NEXT
*&-----------------------------------------------------------------*
FORM number_get_next USING p_wa_sbook LIKE sbook.
********************** TO BE IMPLEMENTED LATER *********************
ENDFORM. " NUMBER_GET_NEXT
F02
*------------------------------------------------------------------*
* INCLUDE BC414S_BOOKINGS_01F02
*------------------------------------------------------------------*
*------------------------------------------------------------------*
* FORM ENQ_SFLIGHT
*------------------------------------------------------------------*
FORM enq_sflight.
********************* TO BE IMPLEMENTED LATER **********************
ENDFORM. "ENQ_SFLIGHT
*------------------------------------------------------------------*
* FORM ENQ_SBOOK
*------------------------------------------------------------------*
FORM enq_sbook.
********************* TO BE IMPLEMENTED LATER **********************
ENDFORM. "ENQ_SBOOK
*------------------------------------------------------------------*
* FORM ENQ_SFLIGHT_SBOOK
*------------------------------------------------------------------*
FORM enq_sflight_sbook.
********************* TO BE IMPLEMENTED LATER **********************
ENDFORM. "ENQ_SFLIGHT_SBOOK
*------------------------------------------------------------------*
* FORM DEQ_ALL
*------------------------------------------------------------------*
FORM deq_all.
********************* TO BE IMPLEMENTED LATER **********************
ENDFORM. "DEQ_ALL
F03
*------------------------------------------------------------------*
* INCLUDE BC414S_BOOKINGS_01F03
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Form READ_SFLIGHT
*&-----------------------------------------------------------------*
* -->P_WA_SFLIGHT text
* -->P_SYSUBRC text
*------------------------------------------------------------------*
FORM read_sflight USING p_wa_sflight TYPE sflight
p_sysubrc LIKE sy-subrc.
SELECT SINGLE * FROM sflight INTO p_wa_sflight
WHERE carrid = sdyn_conn-carrid
AND connid = sdyn_conn-connid
AND fldate = sdyn_conn-fldate.
p_sysubrc = sy-subrc.
ENDFORM. " READ_SFLIGHT
*&-----------------------------------------------------------------*
*& Form READ_SBOOK
*&-----------------------------------------------------------------*
* -->P_ITAB_BOOK text
* -->P_ITAB_CD text
*------------------------------------------------------------------*
FORM read_sbook USING p_itab_book LIKE itab_book
p_itab_cd LIKE itab_cd.
TYPES: BEGIN OF wa_custom_type,
id TYPE scustom-id,
name TYPE scustom-name,
END OF wa_custom_type.
DATA: wa_custom TYPE wa_custom_type,
itab_custom TYPE STANDARD TABLE OF wa_custom_type
WITH NON-UNIQUE KEY id,
wa_book LIKE LINE OF p_itab_book,
wa_cd LIKE LINE OF p_itab_cd.
*&-----------------------------------------------------------------*
*& Form READ_SPFLI
*&-----------------------------------------------------------------*
* -->P_WA_SPFLI text
*------------------------------------------------------------------*
FORM read_spfli USING p_wa_spfli TYPE spfli.
SELECT SINGLE * FROM spfli INTO p_wa_spfli
WHERE carrid = sdyn_conn-carrid
AND connid = sdyn_conn-connid.
IF sy-subrc <> 0.
MESSAGE e022 WITH sdyn_conn-carrid sdyn_conn-connid.
ENDIF.
ENDFORM. " READ_SPFLI
F04
*------------------------------------------------------------------*
* INCLUDE BC414S_BOOKINGS_01F04
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Form UPDATE_SFLIGHT
*&-----------------------------------------------------------------*
FORM update_sflight.
CALL FUNCTION 'UPDATE_SFLIGHT'
EXPORTING
carrier = wa_sflight-carrid
connection = wa_sflight-connid
date = wa_sflight-fldate
EXCEPTIONS
update_failure = 1
flight_full = 2
flight_not_found = 3
OTHERS = 4.
CASE sy-subrc.
WHEN 0.
MESSAGE s034 WITH wa_sflight-carrid wa_sflight-connid
wa_sflight-fldate.
WHEN 1.
MESSAGE a044 WITH wa_sflight-carrid wa_sflight-connid
wa_sflight-fldate.
WHEN 2.
MESSAGE a045.
WHEN 3.
MESSAGE a046.
WHEN OTHERS.
MESSAGE a048.
ENDCASE.
ENDFORM. " UPDATE_SFLIGHT
*&-----------------------------------------------------------------*
*& Form SAVE_NEW_BOOKING
*&-----------------------------------------------------------------*
FORM save_new_booking.
********************* TO BE IMPLEMENTED LATER **********************
ENDFORM. " SAVE_NEW_BOOKING
F05
*------------------------------------------------------------------*
* INCLUDE BC414S_BOOKINGS_01F05
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Form CONVERT_TO_LOC_CURRENCY
*&-----------------------------------------------------------------*
* -->P_WA_SBOOK text
*------------------------------------------------------------------*
FORM convert_to_loc_currency USING p_wa_sbook TYPE sbook.
SELECT SINGLE currcode FROM scarr INTO p_wa_sbook-loccurkey
WHERE carrid = p_wa_sbook-carrid.
CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY_N'
EXPORTING
client = sy-mandt
date = sy-datum
foreign_amount = p_wa_sbook-forcuram
foreign_currency = p_wa_sbook-forcurkey
local_currency = p_wa_sbook-loccurkey
IMPORTING
local_amount = p_wa_sbook-loccuram
EXCEPTIONS
no_rate_found = 1
overflow = 2
no_factors_found = 3
no_spread_found = 4
derived_2_times = 5
OTHERS = 6.
IF sy-subrc <> 0.
MESSAGE e080 WITH sy-subrc.
ENDIF.
ENDFORM. " CONVERT_TO_LOC_CURRENCY
F06
*------------------------------------------------------------------*
* INCLUDE BC414S_BOOKINGS_01F06
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Form CREATE_CHANGE_DOCUMENTS
*&-----------------------------------------------------------------*
FORM create_change_documents.
********************* TO BE IMPLEMENTED LATER **********************
ENDFORM. " CREATE_CHANGE_DOCUMENTS
8QWHUQHKPHQVV]HQDULR
6LH P|FKWHQ LQ ,KUHQ bQGHUXQJVWUDQVDNWLRQHQ ]XU 9HUPHLGXQJ NRQNXUULHUHQGHU
'DWHQ]XJULIIH 6SHUUHQ HLQVHW]HQ
'DV 6$36SHUUNRQ]HSW
8QWHUQHKPHQVV]HQDULR
6LH P|FKWHQ 6SHUUREMHNWH XQG 6SHUUIXQNWLRQVEDXVWHLQH HUVWHOOHQ GLH 6LH ]XP
6HW]HQ XQG $XIKHEHQ YRQ 6$36SHUUHQ YHUZHQGHQ
6$36SHUUREMHNWH
'DV 6HW]HQ HLQHU ORJLVFKHQ 6SHUUH LQ GHU 6SHUUWDEHOOH ZLUG EHU GHQ $XIUXI
HLQHV 6SHUUIXQNWLRQVEDXVWHLQV NXU] 6SHUUEDXVWHLQ UHDOLVLHUW (LQ VROFKHU
6SHUUEDXVWHLQ LVW HLQ VSH]LHOOHU WDEHOOHQEH]RJHQHU )XQNWLRQVEDXVWHLQ GHU EHLP
6SHUUEDXVWHLQH HU]HXJHQ
8QWHUQHKPHQVV]HQDULR
6LH P|FKWHQ EHU GHQ $XIUXI JHHLJQHWHU 6SHUUIXQNWLRQVEDXVWHLQH 6$36SHUUHQ
VLQQYROO VHW]HQ XQG DXIKHEHQ
(LQH ORJLVFKH 6SHUUH ZLUG GXUFK GHQ $XIUXI GHV 6SHUUEDXVWHLQV JHVHW]W GHU HLQHQ
HQWVSUHFKHQGHQ (LQWUDJ LQ GLH 6SHUUWDEHOOH VFKUHLEW
'DV 6HW]HQ HLQHU 6SHUUH JHOLQJW QXU ZHQQ IU GLH EHWUHIIHQGHQ 7DEHOOHQVlW]H QRFK
NHLQH 6SHUUHLQWUlJH LQ GHU 6SHUUWDEHOOH YRUKDQGHQ VLQG
'HU ZHVHQWOLFKH 7HLO HLQHV 6SHUUHLQWUDJV LVW GDV VRJHQDQQWH 6SHUUDUJXPHQW GDV
DXV GHQ 6SHUUSDUDPHWHUQ 6FKOVVHOIHOGHUQ GHU HQWVSUHFKHQGHQ 7DEHOOH EHVWHKW
XQG GHQ 6FKOVVHO GHVGHU ]X VSHUUHQGHQ 7DEHOOHQHLQWUDJVHLQWUlJH HQWKlOW
:LUG EHLP $XIUXI HLQHV 6SHUUEDXVWHLQV HLQ 6SHUUSDUDPHWHU ÄLQLWLDO³ RGHU JDU
QLFKW DQJHJHEHQ ZLUG HU JHQHULVFK LQWHUSUHWLHUW G K GLH 6SHUUH EH]LHKW VLFK
DXI DOOH 7DEHOOHQ]HLOHQ IU GLH GLH EULJHQ 3DUDPHWHUEHZHUWXQJHQ ]XWUHIIHQ
(LQH $XVQDKPH ELOGHW GHU 0DQGDQWHQSDUDPHWHU :LUG HU EHLP $XIUXI GHV
6SHUUEDXVWHLQV
QLFKW DQJHJHEHQ VR JLOW GLH 6SHUUH QXU IU GHQ DNWXHOOHQ
$XVIKUXQJVPDQGDQWHQ 6<0$1'7
PLW HLQHP NRQNUHWHQ 0DQGDQWHQ DQJHJHEHQ VR JLOW GLH 6SHUUH IU GLHVHQ
0DQGDQWHQ
PLW 63$&( DQJHJHEHQ VR JLOW GLH 6SHUUH IU DOOH 0DQGDQWHQ
=XU $Q]HLJH GHU 6SHUUWDEHOOH YHUZHQGHQ 6LH ELWWH GLH 7UDQVDNWLRQ 60
%HLP 6HW]HQ HLQHU 6SHUUH EHU GHQ $XIUXI GHV HQWVSUHFKHQGHQ 6SHUUEDXVWHLQV
NDQQ GHU 6SHUUPRGXV DQJHJHEHQ ZHUGHQ GHU EHU $UW XQG =ZHFN GHU 6SHUUH
EHVWLPPW %HL IHKOHQGHU $QJDEH JLOW GHU 'HIDXOW GHU DXV GHU 'HILQLWLRQ GHV
]XJHK|ULJHQ 6SHUUREMHNWHV VWDPPW
:HQQ 6LH VLFKHUVWHOOHQ P|FKWHQ GDVV 6LH LQ ,KUHP 3URJUDPP DNWXHOOH 'DWHQ
OHVHQ PLW GHU $EVLFKW GLHVH JHlQGHUW DXI GLH 'DWHQEDQN ]XUFN]XVFKUHLEHQ
VROOWHQ 6LH LQ ,KUHP 3URJUDPP IROJHQGH 5HLKHQIROJH IU 6SHUUDQIRUGHUXQJHQ XQG
'DWHQEDQN]XJULIIH YHUZHQGHQ
6SHUUHQ IU GLH ]X EHDUEHLWHQGHQ 'DWHQ VHW]HQ
%HL HUIROJUHLFK JHVHW]WHU 6SHUUH 'DWHQ DNWXHOO YRQ GHU 'DWHQEDQN OHVHQ
'DWHQ LP 3URJUDPP lQGHUQ %HQXW]HUHLQJDEHQ XQG DXI GLH 'DWHQEDQN
]XUFN VFKUHLEHQ
*HVHW]WH 6SHUUHQ ZLHGHU IUHLJHEHQ
'XUFK GLHVH 5HLKHQIROJH LVW QLFKW QXU JHZlKUOHLVWHW GDVV ,KUH bQGHUXQJHQ
YROOVWlQGLJ XQWHU GHP 6FKXW] YRQ 6SHUUHQ DEODXIHQ VRQGHUQ DXFK GDVV 6LH QXU
'DWHQ OHVHQ GLH YRQ DQGHUHQ 3URJUDPPHQ NRQVLVWHQW JHlQGHUW ZXUGHQ 'DEHL ZLUG
QDWUOLFK YRUDXVJHVHW]W GDVV DOOH $QZHQGXQJVSURJUDPPH GDV 6$36SHUUNRQ]HSW
YHUZHQGHQ XQG VLFK DQ GLH VNL]]LHUWH $EIROJH KDOWHQ
hEXQJ 6$36SHUUNRQ]HSW
/HUQ]LHOH GHU hEXQJ
$P (QGH GLHVHU hEXQJ N|QQHQ 6LH
6SHUUEDXVWHLQH DXIUXIHQ XQG YHUZHQGHQ
GLH 3URJUDPPVWHOOHQ ILQGHQ DQ GHQHQ 6SHUUHQ JHVHW]W XQG HQWIHUQW
ZHUGHQ PVVHQ XP HLQHQ DGlTXDWHQ 6FKXW] GHU ]X lQGHUQGHQ 'DWHQ YRU
NRQNXUULHUHQGHQ =XJULIIHQ ]X JHZlKUOHLVWHQ
8QWHUQHKPHQVV]HQDULR
'DV 3URJUDPP 6$30=B%22.,1*6 DXV GHP YRULJHQ .DSLWHO VROO VR
YHUlQGHUW ZHUGHQ GDVV GDV 6WRUQLHUHQ GHU %XFKXQJVGDWHQ XQG GDV DQVFKOLHHQGH
bQGHUQ GHU )OXJGDWHQ GXUFK 6SHUUHQ JHVFKW]W ZLUG
3URJUDPP 6$30=B%22.,1*6
7UDQVDNWLRQVFRGH =B%22.,1*6
.RSLHUYRUODJH 6$3%&7B%22.,1*6B
0XVWHUO|VXQJ 6$3%&6B%22.,1*6B
$XIJDEH RSWLRQDO
(UJlQ]HQ 6LH ,KU 3URJUDPP ]XP (UVWHOOHQ HLQHV QHXHQ .XQGHQ XP GLH
QRWZHQGLJHQ $XIUXIH YRQ 6SHUUEDXVWHLQHQ
.RSLHUHQ 6LH ,KUH /|VXQJ 6$30=B&86720(5 RGHU GLH
3URJUDPPYRUODJH 6$3%&7B&5($7(B&86720(5B PLW DOOHQ
7HLOREMHNWHQ DXI 6$30=B&86720(5 LVW ,KUH *UXSSHQQXPPHU
2UGQHQ 6LH GHP 3URJUDPP GHQ 7UDQVDNWLRQVFRGH =B&86720(5 ]X
'LH $XIUXIH YRQ (148(8(B(6&86720 .XQGH VSHUUHQ XQG
'(48(8(B$// DOOH 6SHUUHQ HQWIHUQHQ VLQG EHUHLWV FRGLHUW XQG LQ GHQ
8QWHUSURJUDPPHQ (14B6&86720 XQG '(4B$// JHNDSVHOW ,QFOXGH
%&7B&5($7(B&86720(5B)
)JHQ 6LH DQ GHQ JHHLJQHWHQ 6WHOOHQ ,KUHV 3URJUDPPV GHQ $XIUXI GHU
8QWHUSURJUDPPH (14B6&86720 XQG '(4B$// HLQ :DQQ VROOWH GHU
.XQGHQGDWHQVDW] JHVSHUUW ZHUGHQ" )LQGHQ 6LH DOOH 6WHOOHQ DQ GHQHQ GLH
6SHUUH DXI GHQ 'DWHQVDW] ]XUFNJHQRPPHQ ZHUGHQ PXVV 0DFKHQ 6LH VLFK
JJIV PLW +LOIH GHV 'HEXJJHUV PLW GHP 3URJUDPPIOXVV YHUWUDXW
$XIJDEH RSWLRQDO
6XFKH QDFK YRUKDQGHQHQ 6SHUUREMHNWHQ
,QIRUPLHUHQ 6LH VLFK ZHOFKH 6SHUUREMHNWH 6SHUUEDXVWHLQH ]XP ORJLVFKHQ
6SHUUHQ YRQ )OJHQ XQG %XFKXQJHQ E]Z )OJHQ PLW DOOHQ ]XJHK|ULJHQ
%XFKXQJHQ EHUHLWV YRUKDQGHQ VLQG
/|VXQJ 6$36SHUUNRQ]HSW
$XIJDEH 6HW]HQ YRQ 6$36SHUUHQ
3URJUDPP 6$30=B%22.,1*6
7UDQVDNWLRQVFRGH =B%22.,1*6
.RSLHUYRUODJH 6$3%&7B%22.,1*6B
0XVWHUO|VXQJ 6$3%&6B%22.,1*6B
D VLHKH 0XVWHUO|VXQJ
$XIJDEH RSWLRQDO
(UJlQ]HQ 6LH ,KU 3URJUDPP ]XP (UVWHOOHQ HLQHV QHXHQ .XQGHQ XP GLH
QRWZHQGLJHQ $XIUXIH YRQ 6SHUUEDXVWHLQHQ
.RSLHUHQ 6LH ,KUH /|VXQJ 6$30=B&86720(5 RGHU GLH
3URJUDPPYRUODJH 6$3%&7B&5($7(B&86720(5B PLW DOOHQ
7HLOREMHNWHQ DXI 6$30=B&86720(5 LVW ,KUH *UXSSHQQXPPHU
2UGQHQ 6LH GHP 3URJUDPP GHQ 7UDQVDNWLRQVFRGH =B&86720(5 ]X
D
'LH $XIUXIH YRQ (148(8(B(6&86720 .XQGH VSHUUHQ XQG
'(48(8(B$// DOOH 6SHUUHQ HQWIHUQHQ VLQG EHUHLWV FRGLHUW XQG LQ GHQ
8QWHUSURJUDPPHQ (14B6&86720 XQG '(4B$// JHNDSVHOW ,QFOXGH
%&7B&5($7(B&86720(5B)
)JHQ 6LH DQ GHQ JHHLJQHWHQ 6WHOOHQ ,KUHV 3URJUDPPV GHQ $XIUXI GHU
8QWHUSURJUDPPH (14B6&86720 XQG '(4B$// HLQ :DQQ VROOWH GHU
.XQGHQGDWHQVDW] JHVSHUUW ZHUGHQ" )LQGHQ 6LH DOOH 6WHOOHQ DQ GHQHQ GLH
6SHUUH DXI GHQ 'DWHQVDW] ]XUFNJHQRPPHQ ZHUGHQ PXVV 0DFKHQ 6LH VLFK
JJIV PLW +LOIH GHV 'HEXJJHUV PLW GHP 3URJUDPPIOXVV YHUWUDXW
D VLHKH 0XVWHUO|VXQJ
$XIJDEH RSWLRQDO
6XFKH QDFK YRUKDQGHQHQ 6SHUUREMHNWHQ
,QIRUPLHUHQ 6LH VLFK ZHOFKH 6SHUUREMHNWH 6SHUUEDXVWHLQH ]XP ORJLVFKHQ
6SHUUHQ YRQ )OJHQ XQG %XFKXQJHQ E]Z )OJHQ PLW DOOHQ ]XJHK|ULJHQ
%XFKXQJHQ EHUHLWV YRUKDQGHQ VLQG
D /DVVHQ 6LH VLFK GLH WUDQVSDUHQWH 7DEHOOH 6)/,*+7 )OJH E]Z
6%22. %XFKXQJHQ DQ]HLJHQ %HQXW]HQ 6LH YRQ GRUW DXV GHQ
9HUZHQGXQJVQDFKZHLV XP GLH 9HUZHQGXQJ GHU MHZHLOLJHQ 7DEHOOH LQ
6SHUUREMHNWHQ ]X HUPLWWHOQ
$OWHUQDWLYH 6XFKHQ 6LH LP 5HSRVLWRU\ ,QIRV\VWHP 6( QDFK
6SHUUREMHNWHQ PLW %DVLVWDEHOOH 6)/,*+7 E]Z 6%22.
(UJHEQLV
0XVWHUO|VXQJ 6$3%&6B%22.,1*6B
PAI-Module
*------------------------------------------------------------------*
***INCLUDE BC414S_BOOKINGS_02I01 .
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Module EXIT INPUT
*&-----------------------------------------------------------------*
MODULE exit INPUT.
CASE ok_code.
WHEN 'CANCEL'.
CASE sy-dynnr.
WHEN '0100'.
LEAVE PROGRAM.
WHEN '0200'.
* remove all database locks
PERFORM deq_all.
LEAVE TO SCREEN '0100'.
WHEN '0300'.
LEAVE TO SCREEN '0100'.
WHEN OTHERS.
ENDCASE.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN OTHERS.
ENDCASE.
ENDMODULE. " EXIT INPUT
*&-----------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&-----------------------------------------------------------------*
MODULE user_command_0100 INPUT.
CASE save_ok.
****************************CANCEL BOOKING**************************
WHEN 'BOOKC'.
* set database lock for selected flight and depending bookings
PERFORM enq_sflight_sbook.
PERFORM read_sflight USING wa_sflight sysubrc.
PERFORM process_sysubrc_bookc.
PERFORM read_spfli USING wa_spfli.
PERFORM read_sbook USING itab_book itab_cd.
REFRESH CONTROL 'TC_SBOOK' FROM SCREEN '0200'.
****************************CREATE BOOKING**************************
WHEN 'BOOKN'.
PERFORM read_sflight USING wa_sflight sysubrc.
PERFORM process_sysubrc_bookn.
PERFORM read_spfli USING wa_spfli.
PERFORM initialize_sbook USING wa_sbook.
WHEN 'BACK'.
SET SCREEN 0.
WHEN OTHERS.
SET SCREEN '0100'.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&-----------------------------------------------------------------*
*& Module USER_COMMAND_0200 INPUT
*&-----------------------------------------------------------------*
MODULE user_command_0200 INPUT.
CASE save_ok.
WHEN 'SAVE'.
PERFORM collect_modified_data USING itab_sbook_modify.
PERFORM save_modified_booking.
* remove all database locks
PERFORM deq_all.
SET SCREEN '0100'.
WHEN 'BACK'.
* remove all database locks
PERFORM deq_all.
SET SCREEN '0100'.
WHEN OTHERS.
SET SCREEN '0200'.
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
)2505RXWLQHQ
F01
*------------------------------------------------------------------*
***INCLUDE BC414S_BOOKINGS_02F01 .
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Form PROCESS_SYSUBRC_BOOKC
*&-----------------------------------------------------------------*
FORM process_sysubrc_bookc.
CASE sysubrc.
WHEN 0.
SET SCREEN '0200'.
WHEN OTHERS.
* remove all database locks
PERFORM deq_all.
MESSAGE e023 WITH sdyn_conn-carrid sdyn_conn-connid
sdyn_conn-fldate.
ENDCASE.
ENDFORM. " PROCESS_SYSUBRC_BOOKC
F02
*------------------------------------------------------------------*
* INCLUDE BC414S_BOOKINGS_02F02
*------------------------------------------------------------------*
*------------------------------------------------------------------*
* FORM ENQ_SFLIGHT
*------------------------------------------------------------------*
FORM enq_sflight.
CALL FUNCTION 'ENQUEUE_ESFLIGHT'
EXPORTING
carrid = sdyn_conn-carrid
connid = sdyn_conn-connid
fldate = sdyn_conn-fldate
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
CASE sy-subrc.
WHEN 0.
WHEN 1.
MESSAGE e060.
WHEN OTHERS.
MESSAGE e063 WITH sy-subrc.
ENDCASE.
ENDFORM. "ENQ_SFLIGHT
*------------------------------------------------------------------*
* FORM ENQ_SBOOK
*------------------------------------------------------------------*
FORM enq_sbook.
CALL FUNCTION 'ENQUEUE_ESBOOK'
EXPORTING
carrid = sdyn_book-carrid
connid = sdyn_book-connid
fldate = sdyn_book-fldate
bookid = sdyn_book-bookid
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
CASE sy-subrc.
WHEN 0.
WHEN 1.
MESSAGE e061.
WHEN OTHERS.
MESSAGE e063 WITH sy-subrc.
ENDCASE.
ENDFORM. "ENQ_SBOOK
*------------------------------------------------------------------*
* FORM ENQ_SFLIGHT_SBOOK
*------------------------------------------------------------------*
FORM enq_sflight_sbook.
CALL FUNCTION 'ENQUEUE_ESFLIGHT_SBOOK'
EXPORTING
carrid = sdyn_conn-carrid
connid = sdyn_conn-connid
fldate = sdyn_conn-fldate
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
CASE sy-subrc.
WHEN 0.
WHEN 1.
MESSAGE e062.
WHEN OTHERS.
MESSAGE e063 WITH sy-subrc.
ENDCASE.
ENDFORM. "ENQ_SFLIGHT_SBOOK
*-------------------------------------------------------------------
* FORM DEQ_ALL
*------------------------------------------------------------------*
FORM deq_all.
CALL FUNCTION 'DEQUEUE_ALL'.
ENDFORM. "DEQ_ALL
F03
*------------------------------------------------------------------*
* INCLUDE BC414S_BOOKINGS_02F03
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Form READ_SPFLI
*&-----------------------------------------------------------------*
* -->P_WA_SPFLI text
*----------------------------------------------------------------------*
FORM read_spfli USING p_wa_spfli TYPE spfli.
SELECT SINGLE * FROM spfli INTO p_wa_spfli
WHERE carrid = sdyn_conn-carrid
AND connid = sdyn_conn-connid.
IF sy-subrc <> 0.
* remove all database locks
PERFORM deq_all.
MESSAGE e022 WITH sdyn_conn-carrid sdyn_conn-connid.
ENDIF.
ENDFORM. " READ_SPFLI
)2505RXWLQHQ
F01
*------------------------------------------------------------------*
***INCLUDE BC414S_CREATE_CUSTOMER_02F01 .
*------------------------------------------------------------------*
*&-----------------------------------------------------------------*
*& Form SAVE
*&-----------------------------------------------------------------*
FORM save.
PERFORM number_get_next USING scustom.
* lock dataset
PERFORM enq_scustom.
PERFORM save_scustom.
* unlock dataset
PERFORM deq_all.
ENDFORM. " SAVE