Sei sulla pagina 1di 6

NAMA : SUMIYATI

NPM : 0617101030
KELAS :A

UNIT 5 : DATA RETRIEVAL

1. Exercise 8 : Data Retrieval Using a SELECT LOOP


a) Sourcecode

REPORT ZBC40400_05S_SELECT_SFLIGHT.
DATA wa_flight TYPE sbc400focc.
PARAMETERS pa_car TYPE s_carr_id.

*select all flights belonging to carrier PA_CAR:


SELECT carrid connid fldate seatsmax seatsocc
FROM sflight
INTO CORRESPONDING FIELDS OF wa_flight
WHERE carrid = pa_car.

*calculate occupation of each flight:


wa_flight-percentage = 100 * wa_flight-seatsocc / wa_flight-
seatsmax.

*create List:
WRITE: / wa_flight-carrid,
wa_flight-connid,
wa_flight-fldate,
wa_flight-seatsmax,
wa_flight-seatsocc,
wa_flight-percentage, '%'.
ENDSELECT.

IF sy-subrc NE 0.
WRITE: 'NO', pa_car, 'Flights found!'.
ENDIF.
b) Output

2. Exercise 9 : Data Retrieval and Buffering in an Internal Table

a) Sourcecode
REPORT ZBC400_05S_SELECT_SFLIGHT_ITAB.
DATA: it_flight TYPE sbc400_t_sbc400focc,
wa_flight LIKE LINE OF it_flight.
PARAMETERS pa_car TYPE s_carr_id.

*select all flights belonging to PA_CAR:

SELECT carrid connid fldate seatsmax seatsocc


FROM sflight
INTO CORRESPONDING FIELDS OF wa_flight
WHERE carrid = pa_car.

*calculate occupation of each flight:


wa_flight-percentage = 100 * wa_flight-seatsocc / wa_flight-
seatsmax.

*insert flight into internal table


INSERT wa_flight INTO TABLE it_flight.
ENDSELECT.

IF sy-subrc = 0.

*Sort Internal Table


SORT it_flight BY percentage.

*Create List:
LOOP AT it_flight INTO wa_flight.
WRITE: / wa_flight-carrid,
wa_flight-connid,
wa_flight-fldate,
wa_flight-seatsmax,
wa_flight-seatsocc,
wa_flight-percentage, '%'.
ENDLOOP.

ELSE.

WRITE: 'NO', pa_car, 'FLIGHT FOUND!'.


ENDIF.

b) Output
3. Exercise 10 : Authorization Check
a) Sourcecode

REPORT ZBC400_05S_AUTHORITY_CHECK.

CONSTANTS actvt_display TYPE activ_auth VALUE '03'.

DATA wa_flight TYPE sbc400focc.


PARAMETERS pa_car TYPE s_carr_id.

*Authority Check: User authorized to read data of the specified c


arrier?
AUTHORITY-CHECK OBJECT 'S_CARRID'
ID 'CARRID' FIELD pa_car
ID 'ACTVT' FIELD actvt_display.

CASE sy-subrc.

WHEN 0. "USER IS AUTHORIZED


SELECT carrid connid fldate seatsmax seatsocc
FROM sflight
INTO CORRESPONDING FIELDS OF wa_flight
WHERE carrid = pa_car.

*calculate occupation of each flight:


wa_flight-percentage = 100 * wa_flight-seatsocc / wa_flight-
seatsmax.

WRITE: / wa_flight-carrid COLOR COL_KEY,


wa_flight-connid COLOR COL_KEY,
wa_flight-fldate COLOR COL_KEY,
wa_flight-seatsmax,
wa_flight-seatsocc,
wa_flight-percentage, '%'.
ENDSELECT.

WHEN OTHERS. "USER IS NOT AUTHORIZED


WRITE: /'Authority-check Error'(001).
ENDCASE.
b) Output

4. Test Your Knowledge


1. Why should “Open SQL” be generally used for database accesses instead of
“Native SQL”?

Answer : karena "Open SQL" tidak tergantung pada sistem basis data relasional
yang digunakan.

2. Which statement is used to read a single record from a database table?

Answer : SELECT SINGLE

3. Does the client limitation have to be specified in the WHERE clause of a SELECT
statement if the database table to be read has the client field?

Answer : Tidak, jika batasan client tidak ada, hanya records yang dieksekusi client
yang dibaca. yaitu, client tempat program dipanggil.

4. What is the name of the high-performance technique that one should use to load
the content of a database table into an internal table ?

Answer : Array Fetch


5. In which system field do you find the number of the records read using SELECT?

Answer : SY-DBCNT

6. Which technique should be used for reading records that belong together from
several database tables? This technique performs considerably better than nested
SELECT statements.

Answer : Table Join

7. Which of the following statements concerning authorization checks are correct?

Answer : B,C

8. Which ABAP statement is used to implement an authorization check and where is


the check result to be found?

Answer : AUTHORITY-CHECK / SY-SUBRC

9. Which of the following statements concerning authorization and authorization


checks are correct?

Answer : B,D.

Potrebbero piacerti anche