Professional Documents
Culture Documents
Cdigo
*---------------------------------------------------------------------
--
* Empresa..: <Caso no seja programa GLOBAL, informar as Empresas que
* utilizaro este programa>
* Programa.: ZGLOSD_REP_BATCH2
* Tipo.....: Executavel
* Mdulo...: SD
* Transao: ZSD0002
* Descrio: Reprocessamento de lote
* Autor....: Bruno Csar Rgolo
* Data.....: 02/04/2015
* [HISTRICO]
* ======== ========== ========== =====================================
==
* Data Autor Request Descrio
* ======== ========== ========== =====================================
==
* ======== ========== ========== =====================================
==
REPORT zglosd_rep_batch2.
TABLES: /xnfe/batchhd.
* Tela de Seleo
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
SELECT-OPTIONS: s_guid FOR /xnfe/batchhd-guid NO INTERVALS,
s_batid FOR /xnfe/batchhd-batchid NO INTERVALS,
s_data FOR sy-datum NO-EXTENSION.
START-OF-SELECTION.
PERFORM f_seleciona_dados CHANGING v_proc.
CHECK NOT v_proc IS INITIAL.
PERFORM f_processa_dados.
*&--------------------------------------------------------------------
-*
*& Form F_SELECIONA_DADOS
*&--------------------------------------------------------------------
-*
FORM f_seleciona_dados CHANGING v_proc.
v_proc = 'X'.
IF s_data-high IS INITIAL.
CONCATENATE s_data-low '235959' INTO v_createhigh.
ELSE.
CONCATENATE s_data-high '235959' INTO v_createhigh.
ENDIF.
v_create_high = v_createhigh.
SELECT *
FROM /xnfe/batchhd
INTO TABLE t_bathd
WHERE guid IN s_guid
AND doctype EQ 'NFE'
AND batchid IN s_batid
AND actstat EQ '02'
AND last_stepstatus EQ '02'
AND createtime >= v_create_low
AND createtime <= v_create_high.
IF NOT sy-subrc IS INITIAL.
MESSAGE text-003 TYPE 'S' DISPLAY LIKE 'E'.
CLEAR v_proc.
EXIT.
ENDIF.
ELSE.
CLEAR: v_create_low, v_create_high.
SELECT *
FROM /xnfe/batchhd
INTO TABLE t_bathd
WHERE guid IN s_guid
AND doctype EQ 'NFE'
AND batchid IN s_batid
AND actstat EQ '02'
AND last_stepstatus EQ '02'.
IF NOT sy-subrc IS INITIAL.
MESSAGE text-003 TYPE 'S' DISPLAY LIKE 'E'.
CLEAR v_proc.
EXIT.
ENDIF.
ENDIF.
SELECT *
FROM ztbsd_batch
INTO TABLE t_bat
FOR ALL ENTRIES IN t_bathd
WHERE guid EQ t_bathd-guid
AND doctype EQ 'NFE'.
ELSE.
IF s_guid[] IS INITIAL AND s_batid[] IS INITIAL.
IF s_data-low IS INITIAL.
IF NOT s_data-high IS INITIAL.
s_data-low = s_data-high - 1.
ELSE.
s_data-low = sy-datum - 1.
s_data-high = sy-datum.
ENDIF.
ENDIF.
IF s_data-high IS INITIAL.
CONCATENATE s_data-low '235959' INTO v_createhigh.
ELSE.
CONCATENATE s_data-high '235959' INTO v_createhigh.
ENDIF.
v_high = v_createhigh.
SELECT *
FROM /xnfe/event_bat
INTO TABLE t_ev_bat
WHERE guid IN s_guid
AND batchid IN s_batid
AND step_status EQ '02'
AND actstat EQ '02'
AND sendtmpl >= v_low
AND sendtmpl <= v_high.
IF NOT sy-subrc IS INITIAL.
MESSAGE text-003 TYPE 'S' DISPLAY LIKE 'E'.
CLEAR v_proc.
EXIT.
ENDIF.
ELSE.
SELECT *
FROM /xnfe/event_bat
INTO TABLE t_ev_bat
WHERE guid IN s_guid
AND batchid IN s_batid
AND step_status EQ '02'
AND actstat EQ '02'.
IF NOT sy-subrc IS INITIAL.
MESSAGE text-003 TYPE 'S' DISPLAY LIKE 'E'.
CLEAR v_proc.
EXIT.
ENDIF.
ENDIF.
SELECT *
FROM ztbsd_batch
INTO TABLE t_bat
FOR ALL ENTRIES IN t_ev_bat
WHERE guid EQ t_ev_bat-guid
AND doctype EQ 'EVE'.
ENDIF.
ADD 1 TO w_bat-retries.
ADD 1 TO w_bat-retries.