CLASS zcl_bloqueio_miro_tm DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
TYPES: BEGIN OF ty_services,
srvpos TYPE esll-srvpos,
END OF ty_services.
TYPES: tty_services TYPE STANDARD TABLE OF ty_services WITH DEFAULT KEY.
srvpos TYPE esll-srvpos,
END OF ty_services.
TYPES: tty_services TYPE STANDARD TABLE OF ty_services WITH DEFAULT KEY.
INTERFACES if_amdp_marker_hdb.
CLASS-METHODS check_bloqueio IMPORTING iv_sheet_service TYPE essr-lblni
CHANGING cs_invfo TYPE invfo
cs_bseg TYPE bseg.
CLASS-METHODS get_service IMPORTING VALUE(iv_sheet_service) TYPE essr-lblni
EXPORTING VALUE(et_service_nr) TYPE tty_services.
CHANGING cs_invfo TYPE invfo
cs_bseg TYPE bseg.
CLASS-METHODS get_service IMPORTING VALUE(iv_sheet_service) TYPE essr-lblni
EXPORTING VALUE(et_service_nr) TYPE tty_services.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_bloqueio_miro_tm IMPLEMENTATION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_bloqueio_miro_tm IMPLEMENTATION.
METHOD check_bloqueio.
TRY.
get_service( EXPORTING
iv_sheet_service = iv_sheet_service
IMPORTING
et_service_nr = DATA(lt_services) ).
CATCH cx_amdp_error INTO DATA(lx_error).
ENDTRY.
CHECK lt_services[] IS NOT INITIAL.
SELECT sign, opti, lpad( low, 18, '0' ) AS low , lpad( high, 18, '0' ) AS high
FROM tvarvc
WHERE name = 'ZTM_TIPOSERVICO_BLOQUEIO'
INTO TABLE @DATA(lt_tipo_servico).
CHECK sy-subrc = 0 AND lt_tipo_servico[] IS NOT INITIAL.
CHECK lt_services[ 1 ]-srvpos IN lt_tipo_servico.
cs_invfo-zlspr = 'Y'.
cs_bseg-zlspr = 'Y'.
ENDMETHOD.
TRY.
get_service( EXPORTING
iv_sheet_service = iv_sheet_service
IMPORTING
et_service_nr = DATA(lt_services) ).
CATCH cx_amdp_error INTO DATA(lx_error).
ENDTRY.
CHECK lt_services[] IS NOT INITIAL.
SELECT sign, opti, lpad( low, 18, '0' ) AS low , lpad( high, 18, '0' ) AS high
FROM tvarvc
WHERE name = 'ZTM_TIPOSERVICO_BLOQUEIO'
INTO TABLE @DATA(lt_tipo_servico).
CHECK sy-subrc = 0 AND lt_tipo_servico[] IS NOT INITIAL.
CHECK lt_services[ 1 ]-srvpos IN lt_tipo_servico.
cs_invfo-zlspr = 'Y'.
cs_bseg-zlspr = 'Y'.
ENDMETHOD.
METHOD get_service BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT OPTIONS
READ-ONLY USING essr esll.
DECLARE lv_sub_packno "$ABAP.type( PACKNO )";
lt_sub_packno = SELECT DISTINCT SUB_PACKNO
FROM essr
INNER JOIN esll
on esll.packno = essr.packno
WHERE lblni = :iv_sheet_service;
IF record_count( :lt_sub_packno ) > 0 then
lv_sub_packno = :lt_sub_packno.SUB_PACKNO[ 1 ];
et_service_nr = SELECT DISTINCT srvpos
from esll
where esll.packno = :lv_sub_packno ;
end if;
ENDMETHOD.
ENDCLASS.
Nenhum comentário:
Postar um comentário