CE PLUS - Nota 010494

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: PLI

Data/Hora da Publicação: 13/08/2010 00:00:00

Data/Hora Última Alteração: 11/02/2011 09:16:00

Descrição da Nota: AJUSTES NA PLI PARA TRANSMISSÃO E GERAÇÃO DO ARQUIVO TEXTO

Sintoma

Ao gerar arquivo texto da PLI 5.0 estava desposicionando o campo complemento da especificação

técnica, referência do fabricante, part number e matéria prima básica. Não esta carregando Unidade

de Medida e o Valor total dos itens agrupados não estava somarizando corretamente

 

 

Solução

Compor corretamente o campo complemento da Especificação, carrregar a unidade de medida conforme

função de conversão e somarizar os itens da PLI agrupados

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTE PREENCHIMENTO ESPECIFICAÇÃO TÉCNICA E VALOR NO LOCAL EMBARQUE

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 10494 Data: 13/08/2010 Hora: 15:17:00

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 10494

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00004

Agrupamento              : 00034

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

10468  - 00001 - 8.0    - 00004  - AJUSTE PREENCHIMENTO ESPECIFICAÇÃO TÉCNICA E VALOR NO LOCAL EMBAR

----------------------------------------------------------------------------------------------------

AJUSTES NA PLI PARA TRANSMISSÃO E GERAÇÃO DO ARQUIVO TEXTO

----------------------------------------------------------------------------------------------------

Palavras Chave:

PLI - TRANSMISSÃO - GERAÇÃO - ARQUIVO - TEXTO - UNIDDADE - MEDIDA

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/MZYCI020F01

REPS /PWS/MZYCI020F02

REPS /PWS/MZYCI020O01

REPS /PWS/ZYCIR041

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI020F01

 

...

  LOOP AT it_zycit079.

    v_tabix = sy-tabix.

    IF NOT it_zycit079-destaque IS INITIAL.

      READ TABLE it_ekpo_temp WITH KEY ebeln = it_zycit079-ebeln

                                       ebelp = it_zycit079-ebelp.

      READ TABLE it_zycit338 WITH KEY matnr = it_ekpo_temp-matnr

                                      destaque = it_zycit079-destaque.

      IF sy-subrc NE 0.

      ENDIF.

      IF it_zycit079-espec_tecnica IS INITIAL.

* >> Início da exclusão: FORM COMM_SAVEPLI

        it_zycit079-espec_tecnica = it_zycit338-text_compl.

* << Fim da exclusão

* >> Início da inclusão: FORM COMM_SAVEPLI

        SELECT SINGLE * FROM /pws/zycit219

        WHERE codigo   EQ it_zycit079-codsufra

          AND ncm      EQ it_zycit079-ncm

          AND destaque EQ it_zycit079-destaque.

        IF SY-SUBRC = 0.

          it_zycit079-espec_tecnica = /pws/zycit219-descricao.

        ELSE.

          CLEAR it_zycit079-espec_tecnica.

        ENDIF.

* << Fim da inclusão

      ENDIF.

      IF it_zycit079-ref_fabricante IS INITIAL.

        it_zycit079-ref_fabricante = it_ekpo_temp-mfrpn.

      ENDIF.

      IF it_zycit079-part_number IS INITIAL.

        it_zycit079-part_number = it_ekpo_temp-matnr.

      ENDIF.

    ENDIF.

    CLEAR: v_esp,

           v_txtki,

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI020F02

 

...

    MODIFY rtexti INDEX 1.

    PERFORM save_txt_2.

  ENDIF.

  IF v_esp IS INITIAL.

    READ TABLE rtexti INDEX 1.

    v_esp = rtexti-tdline.

  ENDIF.

  SELECT SINGLE matnr FROM ekpo INTO v_matnr

                 WHERE ebeln = /pws/zycie079a-ebeln

                   AND ebelp = /pws/zycie079a-ebelp.

* >> Início da inclusão: FORM FILL_DESC

  CLEAR: itab_zycit338.

  REFRESH: itab_zycit338.

* << Fim da inclusão

  SELECT SINGLE * FROM /pws/zycit338 INTO itab_zycit338

  WHERE matnr = v_matnr

    AND codsufra = /pws/zycie079a-codsufra.

  READ TABLE itab_zycit338 INDEX 1.

  CLEAR v_txtki.

  itab_zycit338-mandt = sy-mandt.

  itab_zycit338-matnr = v_matnr.

  v_txtki = itab_zycit338(25).

  CLEAR: rtexti.

  REFRESH: rtexti.

...

 

...

              /pws/zycie079a-ebelp INTO v_txtki.

  IF NOT /pws/zycie078-aplicpli EQ '2'.

    IF NOT /pws/zycie079a-codsufra IS INITIAL AND

       NOT /pws/zycie079a-steuc1   IS INITIAL AND

       NOT /pws/zycie079a-destaque IS INITIAL.

      SELECT SINGLE descricao FROM /pws/zycit219

                  INTO v_ppb

              WHERE codigo EQ /pws/zycie079a-codsufra

              AND   ncm    EQ /pws/zycie079a-steuc1

              AND   destaque EQ /pws/zycie079a-destaque.

* >> Início da inclusão: FORM LOAD_DESCRI_SUFRAMA

         IF SY-SUBRC = 0.

           MOVE v_ppb(127) TO texto_t.

           MOVE v_ppb+127 TO texto_t2.

         ELSE.

           IF texto_t IS INITIAL.

             CLEAR texto_t.

           ENDIF.

           IF texto_t2 IS INITIAL.

             CLEAR texto_t2.

           ENDIF.

         ENDIF.

* << Fim da inclusão

    ELSE.

      CLEAR v_esp.

* >> Início da inclusão: FORM LOAD_DESCRI_SUFRAMA

      CLEAR texto_t.

      CLEAR texto_t2.

* << Fim da inclusão

    ENDIF.

  ELSE.

    CONCATENATE /pws/zycie079a-ebeln /pws/zycie079a-ebelp INTO v_name.

    IF NOT v_name IS INITIAL AND v_name NE '00000'.

...

 

...

    IF it_zycit080-lifnr EQ /pws/zycie080-lifnr AND

       NOT it_zycit080-nrforn IS INITIAL.               "#EC CI_NOFIRST

      CLEAR v_nrforn.

      MOVE: it_zycit080-nrforn TO v_nrforn.

    ENDIF.

  ENDLOOP.

  MOVE: v_nrforn TO /pws/zycie080-nrforn.

ENDFORM.

FORM load_v_esp.

  PERFORM fill_desc.

* >> Início da exclusão: FORM LOAD_V_ESP

  IF v_esp IS INITIAL.

* << Fim da exclusão

* >> Início da inclusão: FORM LOAD_V_ESP

  IF TEXTO_T IS INITIAL.

* << Fim da inclusão

    PERFORM load_descri_suframa.

  ENDIF.

ENDFORM.

FORM carrega_embarque.

  IF NOT /pws/zycie001-nrseq IS INITIAL.

    SELECT SINGLE * FROM /pws/zycit001 INTO /pws/zycie001

    WHERE nrseq EQ /pws/zycie001-nrseq.

    IF sy-subrc EQ 0.

      MOVE /pws/zycie001-nrseq TO /pws/zycie078-nrseq.

      IF NOT /pws/zycie078-nrseq IS INITIAL.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI020O01

 

...

           load_especificacao,

           load_moeda_det    .

  IF NOT /pws/zycie079a-destaque IS INITIAL.

    SELECT SINGLE * FROM ekpo

           WHERE ebeln EQ /pws/zycie079a-ebeln

             AND ebelp EQ /pws/zycie079a-ebelp.

    SELECT SINGLE * FROM /pws/zycit338

           WHERE matnr EQ ekpo-matnr

             AND codsufra EQ /pws/zycie079a-codsufra.

    IF /pws/zycie079a-espec_tecnica IS INITIAL.

* >> Início da exclusão: MODULE LOAD_ITEM

      /pws/zycie079a-espec_tecnica = /pws/zycit338-text_compl.

* << Fim da exclusão

    ENDIF.

    IF /pws/zycie079a-ref_fabricante IS INITIAL.

      /pws/zycie079a-ref_fabricante = ekpo-mfrpn.

    ENDIF.

    IF /pws/zycie079a-part_number IS INITIAL.

      /pws/zycie079a-part_number = ekpo-matnr.

    ENDIF.

  ENDIF.

  IF /pws/zycie079a-fabric EQ 2 AND /pws/zycie079a-lifnr IS INITIAL.

    SELECT SINGLE * FROM ekpo

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCIR041

 

...

        nrseqli     LIKE /pws/zycit078-nrseqli,

        numli       LIKE /pws/zycit079-numli,

        qtde_merc   LIKE /pws/zycit079-qtd_iten,

        vl_merc     LIKE /pws/zycit079-netpr,

        ntgew       LIKE /pws/zycit079-ntgew,

        qtdest      LIKE /pws/zycit079-qtdest,

      END OF it_collect.

DATA: BEGIN OF it_output_30 OCCURS 0,

        filler01(4193),

      END OF it_output_30.

* >> Início da inclusão:

DATA: BEGIN OF it_output_final OCCURS 0,

        filler01(343),

        filler03(4193),

        filler04(70),

        filler05(43),

        filler07(4088),

        filler08(401),

        filler09(137),

        filler10(57),

      END OF it_output_final.

* << Fim da inclusão

DATA: w_conta_item(05) TYPE n,

      w_seq(10),

      w_ncm(08),

      w_codsufra(04) TYPE n,

      w_branco(254),

      w_ano(04),

* >> Início da exclusão:

      w_fileo  LIKE rlgrap-filename,

* << Fim da exclusão

* >> Início da inclusão:

      w_fileo  TYPE string,

* << Fim da inclusão

      v_txtkey1     LIKE thead-tdname,

      v_txtkey2     LIKE thead-tdname,

      v_desc        LIKE t005u-bezei.

DATA: w_nome_arq(07) TYPE n,

      w_nome_arq_2(10),

      w_valor(15),

      w_valor2(15),

      w_aliqii(6),

      w_qtde(14),

      w_peso(15),

...

 

...

  ELSE.

    CLEAR: it_reg08-fabricante, it_reg08-end_fabric, it_reg08-nr_fabric,

         it_reg08-compl_fabric, it_reg08-mun_fabric, it_reg08-uf_fabric,

           it_reg08-pais_orig_merc.

  ENDIF.

  APPEND it_reg08.

ENDFORM.

FORM baixa_arquivo.

  IF NOT it_output_30[] IS INITIAL.

    CONCATENATE 'C:\SUFRAMA\PLI50\' w_nome_arq_2 '.PL5' INTO w_fileo.

* >> Início da exclusão: FORM BAIXA_ARQUIVO

    CALL FUNCTION 'WS_DOWNLOAD'

* << Fim da exclusão

* >> Início da inclusão: FORM BAIXA_ARQUIVO

    CALL FUNCTION 'GUI_DOWNLOAD'

* << Fim da inclusão

         EXPORTING

              filename                = w_fileo

              filetype                = 'ASC'

* >> Início da inclusão: FORM BAIXA_ARQUIVO

                  trunc_trailing_blanks   = 'X'

* << Fim da inclusão

         TABLES

* >> Início da exclusão: FORM BAIXA_ARQUIVO

              data_tab                = it_output_30

         EXCEPTIONS

              file_open_error         = 1

              file_write_error        = 2

              invalid_filesize        = 3

              invalid_type            = 4

              no_batch                = 5

              unknown_error           = 6

              invalid_table_width     = 7

              gui_refuse_filetransfer = 8

              customer_error          = 9

              OTHERS                  = 10.

* << Fim da exclusão

* >> Início da inclusão: FORM BAIXA_ARQUIVO

        data_tab                      = it_output_final.

* << Fim da inclusão

    IF sy-subrc <> 0.

      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

    ENDIF.

  ENDIF.

ENDFORM.

FORM monta_txt.

  SORT it_reg03 BY numli.

  LOOP AT it_reg03.

    ON CHANGE OF it_reg03-numli.

...

 

...

      CLEAR: ww_aliqii.

      CLEAR: w_li_refer.

      CLEAR: w_ac_aladi.

      CLEAR: w_naladi.

      CLEAR: w_mat_usado.

      CLEAR: w_cond_merc.

      CLEAR: w_tipo_ac_tar.

      SELECT SINGLE *

      FROM /pws/zycit078

      WHERE nrseqli EQ it_reg03-nrseqli.

* >> Início da inclusão: FORM MONTA_TXT

      SELECT SUM( vlmerc ) INTO w_vl_merc_iten

      FROM /pws/zycit079

      WHERE nrseqli EQ it_reg03-nrseqli

        AND numli   EQ it_reg03-numli.

* << Fim da inclusão

      w_ind_exig     = 'N'.

      SELECT SINGLE *

      FROM /pws/zycit079

      WHERE nrseqli EQ it_reg03-nrseqli

        AND numli   EQ it_reg03-numli.

      IF NOT /pws/zycit079-subs_exigencia IS INITIAL.

        w_ind_exig   = 'S'.

      ENDIF.

* >> Início da exclusão: FORM MONTA_TXT

      w_vl_merc_iten = /pws/zycit079-vlmerc.

* << Fim da exclusão

      ww_aliqii = /pws/zycit079-aliqii.

      w_li_refer = /pws/zycit079-nrli.

      w_ac_aladi = /pws/zycit079-aladi.

      w_naladi = /pws/zycit079-naladi.

      w_tipo_ac_tar = /pws/zycit079-codtarif.

      w_mat_usado = 'N'.

      w_cond_merc = 'N'.

      IF NOT /pws/zycit079-matusado IS INITIAL.

        w_mat_usado = /pws/zycit079-matusado.

      ENDIF.

...

 

...

        it_reg01-tipo_doc         TO it_output_30-filler01+256(01),

        it_reg01-doc_refer        TO it_output_30-filler01+257(08),

        '0'                       TO it_output_30-filler01+265(01),

        it_reg01-tipo_aplic       TO it_output_30-filler01+266(01),

        w_li_refer+0(10)   TO it_output_30-filler01+267(10),

        it_reg01-nr_proex         TO it_output_30-filler01+277(08),

        it_reg01-ano_proex        TO it_output_30-filler01+285(04),

        it_reg01-e_mail           TO it_output_30-filler01+289(50),

        it_reg01-versao           TO it_output_30-filler01+339(03),

        w_ind_exig                TO it_output_30-filler01+342(01).

* >> Início da inclusão: FORM MONTA_01

  MOVE it_output_30-filler01+0(343) TO it_output_final-filler01.

  APPEND it_output_final.

  CLEAR it_output_final.

* << Fim da inclusão

  APPEND it_output_30.

  CLEAR  it_output_30.

ENDFORM.

FORM monta_09.

  READ TABLE it_reg09 WITH KEY nrseqli = it_reg03-nrseqli.

  MOVE:  w_seq      TO it_reg09-trat_prev,

         w_ncm      TO it_reg09-ncm_merc,

         w_codsufra TO it_reg09-produto_zfm.

  it_reg09-naladi =  w_naladi.

  IF it_reg09-naladi EQ '00000000'.

...

 

...

        it_reg09-moeda+0(03)    TO it_output_30-filler01+78(03),

        it_reg09-incoterms      TO it_output_30-filler01+81(03),

        w_valor                 TO it_output_30-filler01+84(15),

        w_valor2                TO it_output_30-filler01+99(15),

        w_mat_usado             TO it_output_30-filler01+114(01),

        w_cond_merc      TO it_output_30-filler01+115(01),

        it_reg09-urf_entr       TO it_output_30-filler01+116(07),

        it_reg09-pais_proc      TO it_output_30-filler01+123(03),

        it_reg09-urf_despacho   TO it_output_30-filler01+126(07),

        w_aliqii+2(04)          TO it_output_30-filler01+133(04).

* >> Início da inclusão: FORM MONTA_09

  MOVE it_output_30-filler01+0(137) TO it_output_final-filler09.

  APPEND it_output_final.

  CLEAR it_output_final.

* << Fim da inclusão

  APPEND it_output_30.

  CLEAR  it_output_30.

ENDFORM.

FORM monta_08.

  it_reg08-tipo_reg = '08'.

  it_reg08-nrseqli  = it_reg03-nrseqli.

  it_reg08-cd_inscsuf  = it_reg03-cd_inscsuf.

  PERFORM busca_tabela_080.

  READ TABLE it_reg08 WITH KEY nrseqli = it_reg03-nrseqli

                               ebeln   = it_reg03-ebeln

...

 

...

         it_reg08-pais_aquis_merc TO it_output_30-filler01+217(03),

         it_reg08-ausencia_fabric TO it_output_30-filler01+220(01),

         it_reg08-fabricante      TO it_output_30-filler01+221(60),

         it_reg08-end_fabric      TO it_output_30-filler01+281(40),

         it_reg08-nr_fabric       TO it_output_30-filler01+321(06),

         it_reg08-compl_fabric    TO it_output_30-filler01+327(21),

         it_reg08-uf_fabric       TO it_output_30-filler01+348(20),

         w_branco+0(05)           TO it_output_30-filler01+368(05),

         it_reg08-mun_fabric      TO it_output_30-filler01+373(25),

         it_reg08-pais_orig_merc  TO it_output_30-filler01+398(03).

* >> Início da inclusão: FORM MONTA_08

  MOVE it_output_30-filler01+0(401) TO it_output_final-filler08.

  APPEND it_output_final.

  CLEAR it_output_final.

* << Fim da inclusão

  APPEND it_output_30.

  CLEAR  it_output_30.

ENDFORM.

FORM monta_10.

  DATA: w_agencia(05).

  READ TABLE it_reg10 WITH KEY nrseqli = it_reg03-nrseqli.

  MOVE:  w_seq TO it_reg10-trat_prev,

         w_ncm TO it_reg10-ncm_merc,

         w_codsufra TO it_reg10-produto_zfm,

         it_reg10-ag_secex  TO w_agencia.

...

 

...

         w_zeros                TO it_output_30-filler01+33(07),

         w_tipo_ac_tar   TO it_output_30-filler01+40(01),

         w_ac_aladi      TO it_output_30-filler01+41(03),

         it_reg10-reg_tribut    TO it_output_30-filler01+44(01),

         it_reg10-fund_leg      TO it_output_30-filler01+45(02),

         it_reg10-cob_cambial   TO it_output_30-filler01+47(01),

         it_reg10-modal_pgto    TO it_output_30-filler01+48(02),

         it_reg10-dia_lim_pgto  TO it_output_30-filler01+50(03),

         it_reg10-orgao_fin     TO it_output_30-filler01+53(02),

         it_reg10-mot_sem_cob+0(02)  TO it_output_30-filler01+55(02).

* >> Início da inclusão: FORM MONTA_10

  MOVE it_output_30-filler01+0(57) TO it_output_final-filler10.

  APPEND it_output_final.

  CLEAR it_output_final.

* << Fim da inclusão

  APPEND it_output_30.

  CLEAR  it_output_30.

ENDFORM.

FORM monta_03.

  LOOP AT it_reg03 WHERE numli = w_numli.

    MOVE:  w_seq TO it_reg03-trat_prev.

    PERFORM trata_decimais_01.

      TRANSLATE it_reg03-ncm_merc using '. '.

      CONDENSE it_reg03-ncm_merc NO-GAPS.

      w_ncm   = it_reg03-ncm_merc.

    MOVE: it_reg03-tipo_reg         TO it_output_30-filler01+0(02),

         it_reg03-trat_prev         TO it_output_30-filler01+02(10),

         it_reg03-cd_inscsuf        TO it_output_30-filler01+12(09),

         w_ncm                      TO it_output_30-filler01+21(08),

         it_reg03-nr_seq_prod       TO it_output_30-filler01+29(04),

         it_reg03-produto_zfm       TO it_output_30-filler01+33(04),

         w_zeros                    TO it_output_30-filler01+37(07),

         w_qtde01                   TO it_output_30-filler01+44(14),

         it_reg03-un_medid+0(20)    TO it_output_30-filler01+58(20),

         w_valor01                  TO it_output_30-filler01+78(18),

* >> Início da exclusão: FORM MONTA_03

         it_reg03-desc_det(254)     TO it_output_30-filler01+96(254),

         it_reg03-ref_fabric        TO it_output_30-filler01+350(20),

         it_reg03-part_number       TO it_output_30-filler01+370(20),

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_03

         it_reg03-desc_det(254)     TO it_output_30-filler01+96(254).

    REPLACE ' ' WITH '¤' INTO it_reg03-ref_fabric .

    WHILE sy-subrc EQ 0.

      REPLACE ' ' WITH '¤' INTO it_reg03-ref_fabric .

    ENDWHILE.

    MOVE:

    it_reg03-ref_fabric        TO it_output_30-filler01+350(20).

    REPLACE ' ' WITH '¤' INTO it_reg03-part_number .

    WHILE sy-subrc EQ 0.

      REPLACE ' ' WITH '¤' INTO it_reg03-part_number .

    ENDWHILE.

    MOVE:

    it_reg03-part_number       TO it_output_30-filler01+370(20).

    REPLACE ' ' WITH '¤' INTO it_reg03-mat_prima .

    WHILE sy-subrc EQ 0.

      REPLACE ' ' WITH '¤' INTO it_reg03-mat_prima .

    ENDWHILE.

    MOVE:

* << Fim da inclusão

         it_reg03-mat_prima         TO it_output_30-filler01+390(20).

    IF it_reg01-tipo_aplic EQ '1'.

* >> Início da inclusão: FORM MONTA_03

      DATA: v_matnr  LIKE /pws/zycit338-matnr.

      DATA: v_codfufra LIKE /pws/zycit338-codsufra.

* << Fim da inclusão

      DATA  v_txtki LIKE thead-tdname.

      DATA: itab_tline  LIKE tline OCCURS 10 WITH HEADER LINE.

* >> Início da exclusão: FORM MONTA_03

      DATA: v_matnr  LIKE /pws/zycit338-matnr.

      DATA: v_codfufra LIKE /pws/zycit338-codsufra.

* << Fim da exclusão

      DATA: v_texto TYPE string.

* >> Início da inclusão: FORM MONTA_03

      DATA: v_texto3 TYPE string.

* << Fim da inclusão

      DATA: v_texto2 TYPE string.

      DATA: v_cont TYPE i.

      DATA: v_cont_line  TYPE i.

      DATA: v_cont_aux TYPE i.

* >> Início da inclusão: FORM MONTA_03

      DATA: v_cont_texto TYPE i.

      DATA: v_cont_do TYPE i.

      DATA: v_spaco.

* << Fim da inclusão

      CONSTANTS: v_max TYPE i VALUE '3723'.

      CLEAR v_txtki.

      CLEAR v_matnr.

      CLEAR v_codfufra.

      v_matnr = it_reg03-part_number.

      v_codfufra = it_reg03-produto_zfm.

* >> Início da inclusão: FORM MONTA_03

      REPLACE '¤' WITH ' ' INTO v_matnr.

      WHILE sy-subrc EQ 0.

        REPLACE '¤' WITH ' ' INTO v_matnr.

      ENDWHILE.

* << Fim da inclusão

      CONCATENATE sy-mandt

                  v_matnr

                  INTO v_txtki.

      v_txtki+21 = v_codfufra.

      CALL FUNCTION 'READ_TEXT'

           EXPORTING

                client                  = sy-mandt

                id                      = '0338'

                language                = sy-langu

                name                    = v_txtki

...

 

...

           EXCEPTIONS

                id                      = 1

                language                = 2

                name                    = 3

                not_found               = 4

                object                  = 5

                reference_check         = 6

                wrong_access_to_archive = 7

                OTHERS                  = 8.

      v_cont = 0.

* >> Início da inclusão: FORM MONTA_03

      CLEAR v_texto.

* << Fim da inclusão

      LOOP AT itab_tline.

        v_cont_line = strlen( itab_tline ).

        v_cont_aux = v_cont + v_cont_line.

        IF v_cont_aux < v_max.

* >> Início da inclusão: FORM MONTA_03

          IF sy-tabix = 1.

* << Fim da inclusão

          CONCATENATE

* >> Início da inclusão: FORM MONTA_03

            v_texto itab_tline-tdline INTO v_texto.

          ELSE.

            CONCATENATE

* << Fim da inclusão

          v_texto itab_tline-tdline INTO v_texto SEPARATED BY space.

* >> Início da inclusão: FORM MONTA_03

          ENDIF.

* << Fim da inclusão

          v_cont = v_cont + v_cont_line + 1.

        ELSE.

          v_cont_line = v_cont_line - ( v_cont_aux - v_max ) - 1.

          CONCATENATE

          v_texto itab_tline-tdline(v_cont_line) INTO v_texto

                SEPARATED BY space.

          EXIT.

        ENDIF.

      ENDLOOP.

* >> Início da inclusão: FORM MONTA_03

      v_spaco = ' '.

      v_cont_texto = strlen( v_texto ).

      v_cont_do = v_cont_texto.

      DO.

        IF v_cont_do <= 3723 .

          CONCATENATE v_texto v_spaco INTO v_texto SEPARATED BY space.

          v_cont_do = v_cont_do + 1.

        ELSE.

          EXIT.

        ENDIF.

      ENDDO.

* << Fim da inclusão

      CONCATENATE v_texto

                  it_reg03-ref_fabric

                  it_reg03-part_number

                  it_reg03-mat_prima

* >> Início da exclusão: FORM MONTA_03

                  INTO v_texto2

                 SEPARATED BY space.

      MOVE: v_texto2               TO it_output_30-filler01+410(3783).

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_03

                  INTO v_texto2 SEPARATED BY space

                 .

      CONCATENATE it_output_30-filler01 v_texto2

      INTO it_output_30-filler01.

      REPLACE '¤' WITH ' ' INTO it_output_30-filler01.

      WHILE sy-subrc EQ 0.

        REPLACE '¤' WITH ' ' INTO it_output_30-filler01.

      ENDWHILE.

* << Fim da inclusão

    ELSE.

* >> Início da exclusão: FORM MONTA_03

      MOVE:  w_branco              TO it_output_30-filler01+410(254).

* << Fim da exclusão

* >> Início da inclusão: FORM MONTA_03

      DATA w_brancoss(3783).

* << Fim da inclusão

    ENDIF.

* >> Início da inclusão: FORM MONTA_03

    MOVE it_output_30-filler01+0(4193) TO it_output_final-filler03.

    APPEND it_output_final.

    CLEAR it_output_final.

* << Fim da inclusão

    APPEND it_output_30.

    CLEAR  it_output_30.

  ENDLOOP.

ENDFORM.

FORM monta_04.

  READ TABLE it_reg04 WITH KEY nrseqli = it_reg03-nrseqli.

  IF NOT it_reg04-proc_anuente IS INITIAL.

    MOVE:  w_seq TO it_reg04-trat_prev,

           w_ncm TO it_reg04-ncm_merc,

           w_codsufra TO it_reg04-produto_zfm.

    MOVE: it_reg04-tipo_reg          TO it_output_30-filler01+0(02),

          it_reg04-trat_prev         TO it_output_30-filler01+02(10),

          it_reg04-cd_inscsuf        TO it_output_30-filler01+12(09),

          it_reg04-ncm_merc          TO it_output_30-filler01+21(08),

          it_reg04-proc_anuente      TO it_output_30-filler01+29(20),

          it_reg04-sig_anuente+0(10) TO it_output_30-filler01+49(10),

          it_reg04-produto_zfm       TO it_output_30-filler01+59(04),

          w_zeros                    TO it_output_30-filler01+63(07).

* >> Início da inclusão: FORM MONTA_04

    MOVE it_output_30-filler01+0(70) TO it_output_final-filler04.

    APPEND it_output_final.

    CLEAR it_output_final.

* << Fim da inclusão

    APPEND it_output_30.

    CLEAR  it_output_30.

  ENDIF.

ENDFORM.

FORM monta_05.

  READ TABLE it_reg05 WITH KEY nrseqli = it_reg03-nrseqli.

  MOVE:  w_seq TO it_reg05-trat_prev,

         w_ncm TO it_reg05-ncm_merc,

         w_codsufra TO it_reg05-produto_zfm.

  PERFORM destaque_ncm.

  MOVE: it_reg05-tipo_reg      TO it_output_30-filler01+0(02),

        it_reg05-trat_prev     TO it_output_30-filler01+02(10),

        it_reg05-cd_inscsuf    TO it_output_30-filler01+12(09),

        it_reg05-ncm_merc      TO it_output_30-filler01+21(08),

        it_reg05-destaque_ncm  TO it_output_30-filler01+29(03),

        it_reg05-produto_zfm   TO it_output_30-filler01+32(04),

        w_zeros                TO it_output_30-filler01+36(07).

* >> Início da inclusão: FORM MONTA_05

  MOVE it_output_30-filler01+0(43) TO it_output_final-filler05.

  APPEND it_output_final.

  CLEAR it_output_final.

* << Fim da inclusão

  APPEND it_output_30.

  CLEAR  it_output_30.

ENDFORM.

FORM monta_07.

  DATA  v_txtki LIKE thead-tdname.

  DATA: itab_tline  LIKE tline OCCURS 10 WITH HEADER LINE.

  DATA: v_matnr  LIKE /pws/zycit338-matnr.

  DATA: v_codfufra LIKE /pws/zycit338-codsufra.

  DATA: v_texto TYPE string.

  DATA: v_texto2 TYPE string.

...

 

...

  MOVE:  w_seq TO it_reg07-trat_prev,

         w_ncm TO it_reg07-ncm_merc,

         w_codsufra TO it_reg07-produto_zfm.

  MOVE: it_reg07-tipo_reg      TO it_output_30-filler01+0(02),

        it_reg07-trat_prev     TO it_output_30-filler01+02(10),

        it_reg07-cd_inscsuf    TO it_output_30-filler01+12(09),

        it_reg07-ncm_merc      TO it_output_30-filler01+21(08),

        it_reg07-produto_zfm   TO it_output_30-filler01+29(04),

        w_zeros                TO it_output_30-filler01+33(07),

        v_texto                TO it_output_30-filler01+40(4048).

* >> Início da inclusão: FORM MONTA_07

  MOVE it_output_30-filler01+0(4088) TO it_output_final-filler07.

  APPEND it_output_final.

  CLEAR it_output_final.

* << Fim da inclusão

  APPEND it_output_30.

  CLEAR  it_output_30.

ENDFORM.

FORM busca_texto_pli.

  v_txtkey1 = it_reg01-nrseqli.

  CALL FUNCTION 'READ_TEXT'

       EXPORTING

            client                  = sy-mandt

            id                      = 'ZTLI'

            language                = sy-langu

...

 

...

FORM busca_descricao.

  SELECT SINGLE descricao

     INTO it_reg03-desc_det

     FROM /pws/zycit219

     WHERE codigo =  it_reg03-produto_zfm

     AND   ncm    =  it_reg03-ncm_merc

     AND   destaque = it_reg03-nr_seq_prod.

ENDFORM.

FORM busca_unidade_medida.

  DATA: w_unidade LIKE /pws/zycit079-meins.

* >> Início da exclusão: FORM BUSCA_UNIDADE_MEDIDA

  WRITE /pws/zycit079-meins TO w_unidade.

* << Fim da exclusão

  SELECT SINGLE descr INTO it_reg03-un_medid

  FROM /pws/zyglt204

* >> Início da exclusão: FORM BUSCA_UNIDADE_MEDIDA

  WHERE msehi = w_unidade.

* << Fim da exclusão

* >> Início da inclusão: FORM BUSCA_UNIDADE_MEDIDA

  WHERE msehi = /pws/zycit079-meins.

* << Fim da inclusão

ENDFORM.

FORM checa_desc_compl.

...