Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 14/08/2006 00:00:00
Data/Hora Última Alteração: 20/06/2011 12:39:59
Descrição da Nota: PROGRAMA DE NF ESTÁ CONSUMINDO MUITA MEMÓRIA. PROBLEMAS DE PERFORMANCE.
Sintoma
Analisada a performance da transação /PWS/ZYCI016_C, de Nota fiscal e constatada que consumindo
muita memória.
Solução
Feito tratamento em vários pontos do programa da NF visando deixá-lo mais rápido.
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 01927 Data: 14/08/2006 Hora: 14:21:34
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 01927
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00024
Agrupamento : 00127
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01182 - 00001 - 6.0 - 00023 - 1 - O EMBARQUE POSSUI DOIS ITENS, UM COM ICMS DIFERIDO E OUTRO DR
----------------------------------------------------------------------------------------------------
PROGRAMA DE NF ESTÁ CONSUMINDO MUITA MEMÓRIA. PROBLEMAS DE PERFORMANCE.
----------------------------------------------------------------------------------------------------
Palavras Chave:
PERFORMANCE - MEMÓRIA - NOTA FISCAL.
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI016F01
REPS /PWS/MZYCI016I01
REPS /PWS/MZYCI016TOP
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
MOVE-CORRESPONDING itab_zycit042 TO /pws/zycie042.
IMPORT /pws/zycie001-embarca FROM MEMORY ID '0001'.
IF NOT /pws/zycie001-embarca IS INITIAL.
/pws/zycie042-embarca = /pws/zycie001-embarca.
ENDIF.
* >> Início da inclusão: FORM CARREGA_ZYCIE042
IF NOT itab_zycit042[] IS INITIAL AND
* << Fim da inclusão
* >> Início da exclusão: FORM CARREGA_ZYCIE042
CLEAR: itab_matuse_aux.
REFRESH: itab_matuse_aux.
IF NOT itab_zycit042[] IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_ZYCIE042
itab_matuse_aux[] IS INITIAL.
* << Fim da inclusão
SELECT ebeln ebelp matnr FROM ekpo
INTO TABLE itab_matuse_aux
FOR ALL ENTRIES IN itab_zycit042
WHERE ebeln EQ itab_zycit042-ebeln
AND ebelp EQ itab_zycit042-ebelp.
...
...
READ TABLE itab_matuse_aux WITH KEY ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
IF sy-subrc EQ 0.
MOVE: itab_matuse_aux-matnr TO /pws/zycie042-matnr.
ENDIF.
* >> Início da inclusão: FORM CARREGA_ZYCIE042
IF NOT itab_zycit042-docnum IS INITIAL AND
itab_zycit042-nfnum IS INITIAL AND
itab_zycit042-series IS INITIAL.
* << Fim da inclusão
SELECT SINGLE * FROM j_1bnfdoc
WHERE docnum = itab_zycit042-docnum.
IF sy-subrc EQ 0.
/pws/zycie042-nfnum = j_1bnfdoc-nfnum.
/pws/zycie042-series = j_1bnfdoc-series.
...
...
WHERE nrseq = /pws/zycie042-nrseq AND
nrseqnf = /pws/zycie042-nrseqnf AND
ebeln = /pws/zycie042-ebeln AND
ebelp = /pws/zycie042-ebelp AND
nfglobal = /pws/zycie042-nfglobal.
* >> Início da inclusão: FORM CARREGA_ZYCIE042
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM CARREGA_ZYCIE042
IF v_embarca IS INITIAL.
* << Fim da inclusão
SELECT SINGLE embarca FROM /pws/zycit001
...
...
WHERE nrseq EQ /pws/zycie042-nrseq.
IF v_embarca EQ /pws/zycie001-embarca.
UPDATE /pws/zycit042 SET embarca = /pws/zycie042-embarca
WHERE nrseq = /pws/zycie042-nrseq.
ENDIF.
* >> Início da inclusão: FORM CARREGA_ZYCIE042
ENDIF.
* << Fim da inclusão
ENDFORM.
FORM seleciona_itens_nfg.
DATA: v_nolin TYPE i VALUE IS INITIAL,
wa_zycit042 LIKE /pws/zycit042 ,
v_ternacion LIKE /pws/zycit093-ternacion,
v_ntgew_tot LIKE itab_zycit003-ntgew.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
IF t001 IS INITIAL OR /pws/zycit000 IS INITIAL.
* << Fim da inclusão
SELECT SINGLE * FROM t001 WHERE bukrs = /pws/zycie041-bukrs.
SELECT SINGLE * FROM /pws/zycit000 WHERE land1 EQ t001-land1.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
ENDIF.
* << Fim da inclusão
CLEAR v_graneis.
FREE: itab_zycit003.
IF NOT itab_zycit100[] IS INITIAL.
SELECT a~nrseq a~ebeln a~ebelp a~netpr a~vlreal
a~qtd_iten a~ntgew a~nrseq_pgfat a~waers a~tpnf
...
...
ENDLOOP.
DESCRIBE TABLE itab_zycit003 LINES v_nolin.
IF v_nolin IS INITIAL.
MESSAGE w015 WITH text-003.
ELSE.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
IF /pws/zycit001-waers IS INITIAL AND
/pws/zycit001-meioemba IS INITIAL AND
/pws/zycit001-inco1 IS INITIAL AND
/pws/zycit001-embarca IS INITIAL AND
/pws/zycit001-j_1bbranch IS INITIAL.
* << Fim da inclusão
READ TABLE itab_zycit003 INDEX 1.
* >> Início da exclusão: FORM SELECIONA_ITENS_NFG
SELECT SINGLE waers meioemba inco1 FROM /pws/zycit001 INTO
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
SELECT SINGLE waers meioemba inco1 embarca j_1bbranch
FROM /pws/zycit001 INTO
* << Fim da inclusão
(/pws/zycit001-waers, /pws/zycit001-meioemba,
* >> Início da exclusão: FORM SELECIONA_ITENS_NFG
/pws/zycit001-inco1)
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
/pws/zycit001-inco1, /pws/zycit001-embarca,
/pws/zycit001-j_1bbranch)
* << Fim da inclusão
WHERE nrseq = itab_zycit003-nrseq.
ENDIF.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
ENDIF.
* << Fim da inclusão
CLEAR v_ntgew_tot.
LOOP AT itab_zycit003.
v_ntgew_tot = v_ntgew_tot + itab_zycit003-ntgew.
ENDLOOP.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
SELECT SINGLE * FROM /pws/zycit062
WHERE regio = adrc-region.
* << Fim da inclusão
LOOP AT itab_zycit003.
READ TABLE itab_zycit042 WITH KEY nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
MOVE-CORRESPONDING itab_zycit003 TO itab_zycit042.
IF sy-subrc NE 0.
* >> Início da exclusão: FORM SELECIONA_ITENS_NFG
SELECT SINGLE embarca j_1bbranch FROM /pws/zycit001 INTO
CORRESPONDING FIELDS OF itab_zycit042
WHERE nrseq = itab_zycit003-nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
itab_zycit042-embarca = /pws/zycit001-embarca.
itab_zycit042-j_1bbranch = /pws/zycit001-j_1bbranch.
* << Fim da inclusão
itab_zycit042-nrseqnf = /pws/zycie041-nrseq.
IF NOT itab_zycit003-waers IS INITIAL.
ENDIF.
IF NOT itab_zycit003-qtd_itend IS INITIAL.
MOVE itab_zycit003-qtd_itend TO itab_zycit042-qtd_iten.
...
...
ENDIF.
ENDIF.
READ TABLE itab_zycit100 WITH KEY nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
IF /pws/zycit031 IS INITIAL.
* << Fim da inclusão
SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie041-bukrs.
SELECT SINGLE * FROM /pws/zycit031
WHERE inco1 = /pws/zycit001-inco1
AND land1 EQ t001-land1.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
ENDIF.
* << Fim da inclusão
IF /pws/zycit093 IS INITIAL.
SELECT SINGLE * FROM /pws/zycit093
WHERE nrseqce = /pws/zycit085-nrbl.
ENDIF.
IF /pws/zycit031-inco1_ci = 'C&F' AND
...
...
ENDIF.
ENDIF.
ELSE.
MOVE wa_zycit042 TO itab_zycit042.
ENDIF.
* >> Início da exclusão: FORM SELECIONA_ITENS_NFG
SELECT SINGLE * FROM /pws/zycit062
WHERE regio = adrc-region.
* << Fim da exclusão
IF sy-subrc = 0 AND /pws/zycit062-flag_icms = 'X'.
PERFORM atualiza_icms_unitario.
ENDIF.
IF /pws/zycit041-nrseq IS INITIAL.
/pws/zycit041-nrseq = /pws/zycie041-nrseq.
...
...
SELECT * FROM t001w INTO TABLE itab_t001w
FOR ALL ENTRIES IN itab_zycit042
WHERE werks = itab_zycit042-werks.
ENDIF.
SORT itab_zycit042 BY tpnf j_1bbranch lifnr nrseq ebeln ebelp.
* >> Início da inclusão: FORM FILL_DATA_J1B1
REFRESH: itab_zycit053_s.
* << Fim da inclusão
LOOP AT itab_zycit042 WHERE mark = 'X'.
CLEAR v_lifnr.
SELECT SINGLE modalidade FROM /pws/zycit001 INTO v_modalidade
WHERE nrseq = itab_zycit042-nrseq.
IF itab_zycit042[] IS INITIAL.
...
...
WHERE nrseq = /pws/zycie041-nrseq AND
nfglobal = /pws/zycie041-nfglobal AND
cancel = space.
ENDIF.
v_status_s = 0.
* >> Início da exclusão: FORM FILL_DATA_J1B1
COMMIT WORK.
* << Fim da exclusão
ENDIF.
IF v_modalidade NE '99' OR
( t001-land1 NE 'AR' AND t001-land1 NE 'CL' AND
v_modalidade NE '99' ) OR
( v_modalidade = '99' AND
...
...
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM FILL_DATA_J1B1
MODIFY /pws/zycit053 FROM TABLE itab_zycit053_s.
COMMIT WORK.
* << Fim da inclusão
IF v_modalidade = '99' OR ( t001-land1 EQ 'AR' OR t001-land1 EQ 'CL' ).
LOOP AT itab_zycit042 WHERE docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888'.
ENDLOOP.
...
...
v_vldp LIKE /pws/zycit049-vldp,
v_totitem LIKE /pws/zycit042-netpr,
v_tot_vldp LIKE /pws/zycit049-vldp,
v_tot_ntgew LIKE /pws/zycit003-ntgew.
PERFORM verifica_filial.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
IF t001 IS INITIAL OR /pws/zycit000 IS INITIAL.
* << Fim da inclusão
SELECT SINGLE * FROM t001 WHERE bukrs = /pws/zycie041-bukrs.
SELECT SINGLE * FROM /pws/zycit000 WHERE land1 EQ t001-land1.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
ENDIF.
* << Fim da inclusão
LOOP AT itab_zycit042.
CLEAR: itab_zycit042-vldp, itab_zycit042-vldpii.
MODIFY itab_zycit042.
ENDLOOP.
MOVE itab_zycit042[] TO itab_zycit042_d[].
...
...
v_cod_sisc LIKE /pws/zycit019-codigo,
v_tot_ntgew LIKE /pws/zycit003-ntgew,
v_tot_plan LIKE /pws/zycit003-netpr,
v_tot_real LIKE /pws/zycit003-vlreal,
v_lines LIKE sy-tabix.
* >> Início da inclusão: FORM CONGELA_DESPESA
DATA: itab_zycit036_s TYPE /pws/zycit036 OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
CLEAR: itab_zycit036, itab_zycit049, itab_zycit019, itab_zycit020.
* >> Início da exclusão: FORM CONGELA_DESPESA
REFRESH: itab_zycit049aux, itab_zycit036aux.
* << Fim da exclusão
* >> Início da inclusão: FORM CONGELA_DESPESA
REFRESH: itab_zycit049aux, itab_zycit036aux, itab_zycit036_s.
* << Fim da inclusão
IF /pws/zycbt007-waersb IS INITIAL.
SELECT SINGLE * FROM /pws/zycbt007
WHERE bukrs EQ /pws/zycie041-bukrs.
ENDIF.
SELECT SINGLE land1
...
...
ENDIF.
* >> Início da exclusão: FORM CONGELA_DESPESA
MODIFY /pws/zycit036 FROM itab_zycit036.
* << Fim da exclusão
* >> Início da inclusão: FORM CONGELA_DESPESA
APPEND itab_zycit036 TO itab_zycit036_s.
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM CONGELA_DESPESA
MODIFY /pws/zycit036 FROM TABLE itab_zycit036_s.
* << Fim da inclusão
itab_zycit036-nrseqori = itab_zycit042-docnum.
...
...
ENDIF.
ENDIF.
ELSE.
/pws/zycit053-vlreal = itab_zycit036aux-vlmov.
ENDIF.
* >> Início da exclusão: FORM CONGELA_DESPESA
MODIFY /pws/zycit053.
* << Fim da exclusão
* >> Início da inclusão: FORM CONGELA_DESPESA
READ TABLE itab_zycit053_s WITH KEY
nrseqnf = /pws/zycit053-nrseqnf
nrseq = /pws/zycit053-nrseq
nfglobal = /pws/zycit053-nfglobal
ebeln = /pws/zycit053-ebeln
ebelp = /pws/zycit053-ebelp
codigo = /pws/zycit053-codigo.
IF sy-subrc NE 0 .
APPEND /pws/zycit053 TO itab_zycit053_s.
ELSE.
MOVE /pws/zycit053 TO itab_zycit053_s.
MODIFY itab_zycit053_s TRANSPORTING
bukrs werks vlreal waers_real vlcompl waers_compl
WHERE nrseqnf = /pws/zycit053-nrseqnf
AND nrseq = /pws/zycit053-nrseq
AND nfglobal = /pws/zycit053-nfglobal
AND ebeln = /pws/zycit053-ebeln
AND ebelp = /pws/zycit053-ebelp
AND codigo = /pws/zycit053-codigo.
ENDIF.
* << Fim da inclusão
ENDIF.
ELSE.
CLEAR /pws/zycit053-vlreal.
* >> Início da exclusão: FORM CONGELA_DESPESA
MODIFY /pws/zycit053.
* << Fim da exclusão
* >> Início da inclusão: FORM CONGELA_DESPESA
READ TABLE itab_zycit053_s WITH KEY
nrseqnf = /pws/zycit053-nrseqnf
nrseq = /pws/zycit053-nrseq
nfglobal = /pws/zycit053-nfglobal
ebeln = /pws/zycit053-ebeln
ebelp = /pws/zycit053-ebelp
codigo = /pws/zycit053-codigo.
IF sy-subrc NE 0 .
APPEND /pws/zycit053 TO itab_zycit053_s.
ELSE.
MOVE /pws/zycit053 TO itab_zycit053_s.
MODIFY itab_zycit053_s TRANSPORTING
bukrs werks vlreal waers_real vlcompl waers_compl
WHERE nrseqnf = /pws/zycit053-nrseqnf
AND nrseq = /pws/zycit053-nrseq
AND nfglobal = /pws/zycit053-nfglobal
AND ebeln = /pws/zycit053-ebeln
AND ebelp = /pws/zycit053-ebelp
AND codigo = /pws/zycit053-codigo.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM CONGELA_DESPESA
ENDIF.
* << Fim da inclusão
ENDLOOP.
...
...
/ v_tot_real * itab_zycit049aux-vldp.
v_total_dp = v_total_dp + /pws/zycit053-vlreal.
ENDIF.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM CONGELA_DESPESA
MODIFY /pws/zycit053.
* << Fim da exclusão
* >> Início da inclusão: FORM CONGELA_DESPESA
READ TABLE itab_zycit053_s WITH KEY
nrseqnf = /pws/zycit053-nrseqnf
nrseq = /pws/zycit053-nrseq
nfglobal = /pws/zycit053-nfglobal
ebeln = /pws/zycit053-ebeln
ebelp = /pws/zycit053-ebelp
codigo = /pws/zycit053-codigo.
IF sy-subrc NE 0 .
APPEND /pws/zycit053 TO itab_zycit053_s.
ELSE.
MOVE /pws/zycit053 TO itab_zycit053_s.
MODIFY itab_zycit053_s TRANSPORTING
bukrs werks vlreal waers_real vlcompl waers_compl
WHERE nrseqnf = /pws/zycit053-nrseqnf
AND nrseq = /pws/zycit053-nrseq
AND nfglobal = /pws/zycit053-nfglobal
AND ebeln = /pws/zycit053-ebeln
AND ebelp = /pws/zycit053-ebelp
AND codigo = /pws/zycit053-codigo.
ENDIF.
* << Fim da inclusão
ENDLOOP.
ENDIF.
ENDLOOP.
IF NOT /pws/zycit000-flag_txsisc IS INITIAL.
DESCRIBE TABLE itab_zycit116 LINES v_line.
...
...
/pws/zycit053-bukrs = /pws/zycie041-bukrs.
/pws/zycit053-werks = /pws/zycie041-werks.
/pws/zycit053-ebeln = itab_zycit003-ebeln.
/pws/zycit053-ebelp = itab_zycit003-ebelp.
/pws/zycit053-vlreal = itab_zycit100-vl_sisco.
* >> Início da exclusão: FORM CONGELA_DESPESA
MODIFY /pws/zycit053.
* << Fim da exclusão
* >> Início da inclusão: FORM CONGELA_DESPESA
READ TABLE itab_zycit053_s WITH KEY
nrseqnf = /pws/zycit053-nrseqnf
nrseq = /pws/zycit053-nrseq
nfglobal = /pws/zycit053-nfglobal
ebeln = /pws/zycit053-ebeln
ebelp = /pws/zycit053-ebelp
codigo = /pws/zycit053-codigo.
IF sy-subrc NE 0 .
APPEND /pws/zycit053 TO itab_zycit053_s.
ELSE.
MOVE /pws/zycit053 TO itab_zycit053_s.
MODIFY itab_zycit053_s TRANSPORTING
bukrs werks vlreal waers_real vlcompl waers_compl
WHERE nrseqnf = /pws/zycit053-nrseqnf
AND nrseq = /pws/zycit053-nrseq
AND nfglobal = /pws/zycit053-nfglobal
AND ebeln = /pws/zycit053-ebeln
AND ebelp = /pws/zycit053-ebelp
AND codigo = /pws/zycit053-codigo.
ENDIF.
* << Fim da inclusão
ENDLOOP.
ENDLOOP.
ENDIF.
ENDFORM.
FORM carrega_resum.
...
...
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
* >> Início da inclusão: FORM ITENS_NFNEW
IF t001 IS INITIAL OR /pws/zycit000 IS INITIAL.
* << Fim da inclusão
SELECT SINGLE * FROM t001 WHERE bukrs = /pws/zycie041-bukrs.
SELECT SINGLE * FROM /pws/zycit000 WHERE land1 EQ t001-land1.
* >> Início da inclusão: FORM ITENS_NFNEW
ENDIF.
* << Fim da inclusão
PERFORM convert_matnr.
IF NOT itab_ekpo-matnr IS INITIAL.
it_zycee007-matnr = v_matnr.
IF /pws/zycit000-flag_matnr IS INITIAL.
SHIFT it_zycee007-matnr LEFT DELETING LEADING '0'.
...
...
ebelp = itab_zycit044-ebelp.
it_zycee007-rate = itab_zycit003-advalicms.
it_zycee007-mfrpn = itab_zycit003-mfrpn .
CONCATENATE itab_zycit044-ebeln '/' itab_zycit044-ebelp
INTO it_zycee007-msg1.
* >> Início da inclusão: FORM ITENS_NFRNEW
IF t001 IS INITIAL OR /pws/zycit000 IS INITIAL.
* << Fim da inclusão
SELECT SINGLE * FROM t001 WHERE bukrs = /pws/zycie041-bukrs.
SELECT SINGLE * FROM /pws/zycit000 WHERE land1 EQ t001-land1.
* >> Início da inclusão: FORM ITENS_NFRNEW
ENDIF .
* << Fim da inclusão
IF NOT itab_ekpo-matnr IS INITIAL.
it_zycee007-matnr = itab_ekpo-matnr.
IF /pws/zycit000-flag_matnr IS INITIAL.
SHIFT it_zycee007-matnr LEFT DELETING LEADING '0'.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016I01
...
itab_zycit042_c-subser_c = /pws/zycie042a-subser_c.
ENDIF.
MODIFY itab_zycit042_c INDEX tc_itens_nfc-current_line.
ENDMODULE.
MODULE atualiza_itab_zycit042 INPUT.
* >> Início da exclusão: MODULE ATUALIZA_ITAB_ZYCIT042
LOOP AT itab_zycit042.
* << Fim da exclusão
* >> Início da inclusão: MODULE ATUALIZA_ITAB_ZYCIT042
LOOP AT itab_zycit042 WHERE docnum NE space.
CHECK itab_zycit042-nfnum IS INITIAL AND
itab_zycit042-series IS INITIAL AND
itab_zycit042-subser IS INITIAL.
* << Fim da inclusão
itab_zycit042-nfglobal = /pws/zycie041-nfglobal.
itab_zycit042-processado = space.
SELECT SINGLE * FROM j_1bnfdoc
WHERE docnum = itab_zycit042-docnum.
IF sy-subrc EQ 0.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016TOP
...
itab_zycit034 like /pws/zycit034 occurs 10 with header line,
itab_zycie033 like /pws/zycbe033 occurs 10 with header line,
itab_zycit032 like /pws/zycit032 occurs 10 with header line,
itab_zycit031 like /pws/zycie031 occurs 10 with header line,
itab_zycit263 like /pws/zycit263 occurs 0 with header line.
* >> Início da inclusão:
DATA: itab_zycit053_s TYPE /pws/zycit053 OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
TYPES: BEGIN OF MSG_STRUC,
TCODE LIKE BDCMSGCOLL-TCODE,
DYNAME LIKE BDCMSGCOLL-DYNAME,
DYNUMB LIKE BDCMSGCOLL-DYNUMB,
MSGTYP LIKE BDCMSGCOLL-MSGTYP,
...