FUNCTION {{p}}rent_price IMPORTING iv_vehicle_class TYPE string iv_minutes TYPE i iv_km TYPE i iv_member TYPE abap_bool iv_weekend TYPE abap_bool EXPORTING ev_time_fee TYPE decfloat34 ev_distance_fee TYPE decfloat34 ev_surcharge TYPE decfloat34 ev_discount TYPE decfloat34 ev_total TYPE decfloat34 EXCEPTIONS invalid_duration invalid_distance invalid_class. DATA ls_request TYPE {{p}}cl_rent=>ty_request. ls_request-vehicle_class = iv_vehicle_class. ls_request-minutes = iv_minutes. ls_request-km = iv_km. ls_request-member = iv_member. ls_request-weekend = iv_weekend. DATA(ls_result) = {{p}}cl_rent=>calculate( ls_request ). CASE ls_result-err_code. WHEN {{p}}cl_rent=>c_err-duration. RAISE invalid_duration. WHEN {{p}}cl_rent=>c_err-distance. RAISE invalid_distance. WHEN {{p}}cl_rent=>c_err-bad_class. RAISE invalid_class. WHEN OTHERS. ev_time_fee = ls_result-time_fee. ev_distance_fee = ls_result-distance_fee. ev_surcharge = ls_result-surcharge. ev_discount = ls_result-discount. ev_total = ls_result-total. ENDCASE. ENDFUNCTION.