!--a11y-->

[X 4.5A È~A_f[^x[Xđ ABAP vO©çƧ”ÄÄŃo·±ÆȘÂ\ÉÈèÜ”œB]A_f[^x[XđÀsÂ\vOÉN·é±ÆŸŻȘÂ\Ć”œBvOĆÍ_f[^x[XšæŃvOÌubNÍAABAP ÀsÂ«Éæè§äłêÜ”œB
_f[^x[XđÊÌvO©çÄŃo·ÉÍA@\W [ LDB_PROCESS đgp”Ü·B±ÌœßA_f[^x[Xđf[^ÇĘæè[`Æ”ÄgpƫܷBŻêvO©ç_f[^x[Xđ 2 ÂÈăÄŃo·±ÆȘƫܷBÜœŻêvO©çAŻêÌ_f[^x[Xđ 2 ńÈăÄŃo·±ÆȘƫܷB]AŻêÌ_f[^x[Xđ 2 ńÈăgp”œèAÙÈé_f[^x[Xđ 2 ÂÈăgp”œè·éÌÍASUBMIT đgp”ÄÇÁÌÀsÂ\vOđÄŃo·±ÆĆÌĘÂ\Ć”œB±êçÌvOÍηé_f[^x[XÉN·éKvȘ èAABAP ÜœÍȚ”œZpđgp”Äf[^đÄŃo”ÄvOÉn·KvȘ èÜ”œB
@\W [ LDB_PROCESS đgp”Ä_f[^x[XđÄŃo·êAIđæÊÍ\ŠłêÜčńBăíÁÄAÄpW [ÌC^tF[Xp[^đgp”ÄIđÉü͔ܷB_f[^x[XÍÄŃo”vOÌ GET CxgđJn”ÜčńȘAf[^đR[obN[`ÌÄŃo”łÉߔܷB±Ìæ€É LDB_PROCESS đgp”œ_f[^x[XÌÄŃo”ÍAÀÛÌf[^æŸđAæs·éIđæÊâ»ÌăÌf[^©çȘܷٔB
ÌP[XđąÄALDB_PROCESS Ćgp·éœßA_f[^x[XđČź·é KvÍ èÜčńBÂÜèA_f[^x[XđČź”ÈąÆAŻêÌ_f[^x[Xđ 2 ńÈăÄŃo·ÄpW [ȘgpĆ«ÈąêÍáOĆ·BPAI Tu[`ÍALDB_PROCESS đgp·éÛÍÄŃołêÜčńB±êÍAvOÏĘÌIđ`FbNÍÀsłêÈąÆą€ÓĄĆ·BTu[` LDB_PROCESS_INIT Æ LDB_PROCESS_CHECK_SELECTIONS đf[^x[XvOÉÁŠé±ÆÉæèA±êç̧ÀÉÎƫܷB
_f[^x[XÌTu[`ÍAÄpW [ LDB_PROCESS đÄŃo·ÛÉÌĆÄŃołêÜ·B
...
1. LDB_PROCESS_INIT
2. INIT
3. LDB_PROCESS_CHECK_SELECTIONS
4. PUT <node>.
_f[^x[XđÀsÂ\vOÉN·éêAIđæÊÌÉgpłêéTu[`ÍÄŃołêžAÀs«ÍÄŃo”vOÌ|[gCxgđJn”ÜčńBăíÁÄA_f[^x[XàÌ PUT œßÍAÄŃo”vOàÌR[obN[`đÄŃo·ÄpW [ÌANVđJn”Ü·Bąą©ŠéÆAÄpW [ÍCxgđßçŠÜ·BßçŠÈŻêÎACxgÍÀsÂ«ÉæèłêÜ·B
±ÌÄpW [ÉÍAÈșÌC|[gp[^Ș èÜ·B
· LDBNAME
ÄŃo·_f[^x[XÌŒÌB
· VARIANT
_f[^x[XÌIđæÊđßéoAgÌŒÌBoAgÍA ç©¶ß_f[^x[XÌf[^x[XvOÉèÄçêÄąéKvȘ èÜ·Bf[^ÍASUBMIT œßĆ WITH SELECTION-TABLE ÇÁđgp·éêÆŻêÌû@ĆnłêÜ·B
· EXPRESSIONS
±Ìp[^ĆÍAźIIđȘÂ\È_f[^x[XÌm[hÌÁÊÈIđđn·±ÆȘƫܷBp[^ RSDS_TEXPR Ìf[^^ÍAf[^^O[v RSDS Ćè`łêÜ·Bf[^ÍASUBMIT œßĆ WITH FREE SELECTION ÇÁđgp·éêÆŻêÌû@ĆnłêÜ·B
· FIELD_SELECTION
±Ìp[^đgp”ÄAźIIđÌÂ\È_f[^x[XÌm[hÌK{ÚÌêđn·±ÆȘƫܷBp[^Ìf[^^ÍAf[^^O[v RSFS Ćè`łêœf[vàe[uĆ·BR|[lg TABLENAME ÉÍm[hÌŒÌȘÜÜêÄšèAf[vR|[lg FIELDS ÉÍÇĘæéÚŒÌȘÜÜêĹܷB
±ÌÄpW [ÉÍAÈșÌe[up[^Ș èÜ·B
· CALLBACK
±Ìp[^ÍAR[obN[`đm[hšæŃCxgÌŒÌÉèÄéœßÉgp”Ü·Bp[^ÍAf[^ȘÇĘæçêé_f[^x[XÌm[hAf[^ȘvOÉßłêœúAßłêœR[obN[`đè”Ü·B
· SELECTIONS
±Ìp[^đgp”ÄA_f[^x[XÌIđæÊÌÚÌüÍlđn·±ÆȘƫܷBp[^Ìf[^^ÍAABAP fBNViàÌ\ą RSPARAMS ÉΔܷBf[^ÍASUBMIT œßĆ WITH SELECTION-TABLE ÇÁđgp·éêÆŻêÌû@ĆnłêÜ·B
2 ÂÈăÌC^tF[Xp[^đgp”ÄIđđn·êASELECTIONS Æ EXPRESSIONS ĆnłêœlÍAVARIANT ÌŻêÚÌlđ㫔ܷB
_f[^x[XđÀsÂ\vOÆN·éêAGET œßÍ_f[^x[XđÇĘæé[xđè”Ü·BÄpW [ LDB_PROCESS đÄŃo·êACALLBACK p[^Ćm[hŒđwè·é±ÆÉæè[xđè”Ü·Bf[^đv”œ»êŒêÌm[hÉÂąÄAR[obN[`Í 2 ÂĆÀsƫܷB±êçÍAÀsÂ\vOÌ GET CxgÆ GET LATE CxgÉΔܷBe[up[^ CALLBACK ĆÍAR[obN[`̌̚æŃKvÈÀs|Cgđwè”Ü·BR[obN[`ÍAÄŃo”vOÜœÍAK{|CgĆÀsłêéÊÌvOÌTu[`Ć·B
GET CxgĆÍR[obN[`ÍAm[h©çf[^ȘÇĘæç꜌ăĆAșÊm[hȘłêéOÉÀsłêÜ·BGET_LATE CxgÉÂąÄÍAR[obN[`ÍșÊm[hȘłêœăÉłêÜ·B
· e[up[^CALLBACK Ìs^CvÍAABAP fBNViÌtbg\ą LDBCB Ć·B»êÉÍÌR|[lg LDBNODE Ș èÜ·B
ÇĘæçêé_f[^x[XÌm[hÌŒÌB
· GET
GET CxgĆηéR[obN[`đÄŃo·œßÌtO (Rec X ÜœÍ SPACE)B
· GET_LATE
GET LATE CxgĆηéR[obN[`đÄŃo·œßÌtO (Rec X ÜœÍ SPACE)B
· CB_PROG
R[obN[`Șè`łêÄąé ABAP vOÌŒÌB
· CB_FORM
R[obN[`ÌŒÌ
àe[uđ CALLBACK p[^Én·êAÈÆà GET © GET_LATE ńÌ 1 ÂđAem[hÌ X (Üœ X đLü”Äàæą) đLü·éKvȘ èÜ·B
R[obN[`ÍAÌp[^C^tF[XĆè`·éKvÌ éTu[`Ć·B
FORM
<subr> USING <node> LIKE LDBCB-LDBNODE
<wa>
[TYPE <t>]
<evt>
<check>.
· p[^ÍAÄpW [LDB_PROCESS ÉæèßçêÜ·B±êÍA<node> Ém[hŒȘÜÜêÄąéÆą€ÓĄĆ·B
· <wa> ÍAm[h©çÇĘæÁœf[^ÌìÆÌæĆ·BÄpW [ LDB_PROCESS šæŃR[obN[`đÜȚvOđÄŃo·vOÍANODES © TABLES đgp”ÄC^tF[XìÆÌæđ韷éKvȘ èÜčńBR[obN[`ÍA1 ÂÌm[hÉΔÄÌĘgpłêœêAABAP fBNViàÌm[hÌf[^^đQÆ·éœßATYPE QÆđgpƫܷB»ÌăÍA\ą»łêœm[hÌÂXÌR|[lgÉTu[`ÌĆŒÚAhXƫܷB2 ÂÈăÌm[hÉR[obN[`đgp·éÆ«ÍATYPE QÆđgpĆ«ÜčńB±ÌêA\ą»łêœm[hđÚV{É 1 žÂèÄé ±ÆÉæèAm[hÌR|[lgÉAhX·éKvȘ èÜ·B
· <evt> ÉÍ G ÜœÍ L ȘüèÜ·ȘA»êŒê GET ÜœÍ GET LATE đ\í”Ü·B±êÍATu[`Ș <evt> Ìàeđgp”ÄvOt[đwèĆ«éÆą€ÓĄĆ·B
· <check> ÉæèR[obN[`ÍAvOȘłêéû@Éeżđ^Šé±ÆȘƫܷ (œŸ” <evt> ÌlȘ G ÌêÌĘ)Bl X ÍATu[`ȘÄŃołêéÛÉp[^ÉèÄçêÜ·BTu[`ȘIč·éÛÉp[^ÌlȘ SPACE ÌêA±êÍ_f[^x[XÌșÊm[hȘÄpW [ LDB_PROCESS ÌĆłêÈąæ€Éwè”Ü·B±êÍAÀsÂ\vOÌĆ CHECK đgp”Ä GET CxgubNđúu·é ÌÆŻ¶Ć·B±êÉæèsvÈf[^ȘÇĘæçêÈŻêÎAvOÌptH[}XȘüPłêÜ·B
· LDB_ALREADY_RUNNING
_f[^x[XÍAÜŸOÌÄŃo”đ”ÄąéÔÍAÄŃołêÜčńB»êĆàÄŃo”Ș¶·éÆAáO LDB_ALREADY_RUNNING ȘJnłêÜ·B
· LDB_NOT_REENTRANT
_f[^x[XÍAf[^x[XvOÉTu[` LDB_PROCESS_INIT Ș éêÌĘAJèÔ”ÄŃołêÜ·B»êÈOÌêÍA±ÌáOȘJnłêÜ·B
· LDB_SELECTIONS_NOT_ACCEPTED
f[^x[XvOÌTu[` LDB_PROCESS_CHECK_SELECTIONS ÌG[ĆÍA±ÌáOđJnƫܷBG[bZ[WÍAÊíÌVXeÚ SY-MSG... Éi[łêÜ·B
áOÉÂąÄÌÇÁîńÍAÄpW [r_ÌÌÄpW [¶đQƔğłąB

TABLES SPFLI.
SELECT-OPTIONS
S_CARR FOR SPFLI-CARRID.
TYPE-POOLS: RSDS, RSFS.
DATA: CALLBACK TYPE TABLE OF LDBCB,
CALLBACK_WA LIKE LINE OF
CALLBACK.
DATA: SELTAB TYPE TABLE OF RSPARAMS,
SELTAB_WA LIKE LINE OF
SELTAB.
DATA: TEXPR TYPE RSDS_TEXPR,
FSEL TYPE
RSFS_FIELDS.
CALLBACK_WA-LDBNODE
= 'SPFLI'.
CALLBACK_WA-GET
= 'X'.
CALLBACK_WA-GET_LATE =
'X'.
CALLBACK_WA-CB_PROG =
SY-REPID.
CALLBACK_WA-CB_FORM =
'CALLBACK_SPFLI'.
APPEND
CALLBACK_WA TO CALLBACK.
CLEAR CALLBACK_WA.
CALLBACK_WA-LDBNODE =
'SFLIGHT'.
CALLBACK_WA-GET
= 'X'.
CALLBACK_WA-CB_PROG =
SY-REPID.
CALLBACK_WA-CB_FORM =
'CALLBACK_SFLIGHT'.
APPEND
CALLBACK_WA TO CALLBACK.
SELTAB_WA-KIND = 'S'.
SELTAB_WA-SELNAME = 'CARRID'.
LOOP AT S_CARR.
MOVE-CORRESPONDING S_CARR TO
SELTAB_WA.
APPEND SELTAB_WA TO SELTAB.
ENDLOOP.
CALL FUNCTION 'LDB_PROCESS'
EXPORTING
LDBNAME
= 'F1S'
VARIANT
= ' '
EXPRESSIONS
= TEXPR
FIELD_SELECTION
= FSEL
TABLES
CALLBACK =
CALLBACK
SELECTIONS =
SELTAB
EXCEPTIONS
LDB_NOT_REENTRANT
= 1
LDB_INCORRECT
= 2
LDB_ALREADY_RUNNING
= 3
LDB_ERROR
= 4
LDB_SELECTIONS_ERROR =
5
LDB_SELECTIONS_NOT_ACCEPTED
= 6
VARIANT_NOT_EXISTENT =
7
VARIANT_OBSOLETE =
8
VARIANT_ERROR
= 9
FREE_SELECTIONS_ERROR
= 10
CALLBACK_NO_EVENT
= 11
CALLBACK_NODE_DUPLICATE
= 12
OTHERS =
13.
IF SY-SUBRC <> 0.
WRITE: 'Exception with SY-SUBRC', SY-SUBRC.
ENDIF.
FORM CALLBACK_SPFLI USING
NAME TYPE LDBN-LDBNODE
WA TYPE
SPFLI
EVT
TYPE C
CHECK
TYPE C.
CASE EVT.
WHEN 'G'.
WRITE: / WA-CARRID, WA-CONNID, WA-CITYFROM,
WA-CITYTO.
ULINE.
WHEN 'L'.
ULINE.
ENDCASE.
ENDFORM.
FORM CALLBACK_SFLIGHT USING
NAME TYPE LDBN-LDBNODE
WA TYPE
SFLIGHT
EVT
TYPE C
CHECK
TYPE C.
WRITE: / WA-FLDATE, WA-SEATSOCC, WA-SEATSMAX.
ENDFORM.
vOÍA_f[^x[X F1S đgp”Äf[^đÇĘæèÜ·BF1S Ì\ŹÍAÈșÌÆšèĆ·B

vOÉîĂIđæÊȘvOÌĆĆè`łêÜ·B±êÉÍ TABLES œßȘKvĆ·BÉK{ÏȘC^tF[XüŻÉè`łêÜ·B
àe[u CALLBACK Éf[^Șßçê鱯ĆAlXÈR[obN[`Ș 2 ÂÌm[h SPFLI Æ SFLIGHT ÌvOÌĆÄŃołêÜ·BSPFLI ÉÂąÄÍ GET Æ GET_LATE Ì[`ĆÄŃołêÜ·ȘASFLIGHT ÉÂąÄÍ GET CxgĆÌĘÄŃołêÜ·B
àe[u SELTAB ÍAvOÉîĂIđæÊÌIđe[u S_CARR Ìm[h SPFLI ÌlĆßçêÜ·B
»ÌăvOÍA±êçÌp[^đwè”ÄÄpW [ LDB_PROCESS đÄŃo”Ü·B
Tu[` CALLBACK_SPFLI Æ CALLBACK_SFLIGHT ÍAR[obN[`Æ”Ä@\”Ü·BC^tF[Xp[^ WA Ș«żńÆwèłêÄąéÆAìÆÌæÌÂXÌR|[lgÉAhXƫܷBCxg GET Æ GET LATE ÍACALLBACK_SPFLI ĆÍÙÈéȘsíêÜ·B
êoÍÌĆÌȘÍAÈșÌæ€ÉÈèÜ·B
