quinta-feira, 21 de maio de 2015

Função - SD_CALC_DURATION_FROM_DATETIME

*  Boa tarde galera, quem é vivo sempre aparece, hoje vou mostrar
* uma função muito boa que te retorna o intervalo entre duas datas
* em horas, minutos e se for esperto até os segundo, usei essa função
* pra criar uma regra de criticidade das datas onde a empresa deveria
* dar retorno ao cliente deles.
*  Vamos lá então porque a função é simples, e de brinde executei a
* rotina de conversão, pra vocês compararem os valores coloquei um
* break-point no meio do processo.
*  Bons estudos e espero ter ajudado.
*--------------------------------------------------------------------*

REPORT zfunction_calc_Interval_date_hour.

*  Tela de seleão com parametros e um CheckBox caso queira usar a rotina
* de conversão.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS :
  p_date2 TYPE sy-datum" Data
  p_time2 TYPE sy-uzeit" Hora
SELECTION-SCREEN END OF BLOCK   b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
PARAMETERS :
  cb_conv AS CHECKBOX.   " Rotina de Conversão.
SELECTION-SCREEN END OF BLOCK   b2.

DATA :
  l_tdiff    TYPE tvro-fahztd,
  l_duration(10),
  l_hour_bpm TYPE i
  .

* Essa é a função.... Simples e rápida.
CALL FUNCTION 'SD_CALC_DURATION_FROM_DATETIME'
  EXPORTING
    i_date1          sy-datum
    i_time1          sy-uzeit
    i_date2          p_date2
    i_time2          p_time2
  IMPORTING
    e_tdiff          l_tdiff
  EXCEPTIONS
    invalid_datetime 1
    OTHERS           2.