CE PLUS - Nota 012946

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: LI

Data/Hora da Publicação: 24/07/2013 11:28:17

Data/Hora Última Alteração: 24/07/2013 11:28:17

Descrição da Nota: PERMITIR VINCULÇÃO DE ITENS DA LI AO ATO CONCESSÓRIO

Sintoma

Ajustada programa de LI para que em casos em possuam itens que foram vinculados ao ato concessório

pelo programa de Vinculação e itens que ainda não foram vinculados a um ato consessório seja

possivel realizar a vinculação através do programa de LI.

 

 

Solução

Ajustada programa de LI para que em casos em possuam itens que foram vinculados ao ato concessório

pelo programa de Vinculação e itens que ainda não foram vinculados a um ato consessório seja

possivel realizar a vinculação através do programa de LI.

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

ERROS DE VERIFICAÇÃO DE SINTAXE NA PLI

TRATAMENTO DE DRAWBACK PARA LI SUBSTITUTIVA.

NÃO ESTÁ PREENCHENDO QUANTIDADE DO PRODUTO NAS INFOR. DE DRAWBACK

Informações Complementares

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

Nota Número 12946 Data: 02/05/2013 Hora: 10:51:54

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

 

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

Nota Número              : 12946

Categoria                : Melhoria

Prioridade               : Baixa

Versão PW.CE             : 9.0

Pacote                   : 00004

Agrupamento              : 00153

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

Referência às notas relacionadas:

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

 

09656  - 00001 - 8.0    - 00002  - TRATAMENTO DE DRAWBACK PARA LI SUBSTITUTIVA.

10602  - 00002 - 8.0    - 00004  - NÃO ESTÁ PREENCHENDO QUANTIDADE DO PRODUTO NAS INFOR. DE DRAWBACK

12321  - 00003 - 9.0    - 00001  - ERROS DE VERIFICAÇÃO DE SINTAXE NA PLI

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

PERMITIR VINCULÇÃO DE ITENS DA LI AO ATO CONCESSÓRIO

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

Palavras Chave:

VINCULAR - ITEM - ATO - CONCESSÓRIO - PROGRAMA - VINCULAÇÃO

/PWS/SAPMZYCI020 - LI

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

Objetos da nota:

REPS /PWS/MZYCI020F02

REPS /PWS/MZYCI020F01

REPT /PWS/SAPMZYCI020

 

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

Modificações efetuadas em REPS /PWS/MZYCI020F02

 

...

FORM vincula_ato.

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

  DATA: BEGIN OF it_zycit079t OCCURS 0 .

          INCLUDE STRUCTURE /pws/zycit079.

  DATA: uebto  LIKE ekpo-uebto,

        uebtk  LIKE ekpo-uebtk,

        noinitial,

        nrforn1 TYPE /pws/zycit080-nrforn ,

        nrforn2 TYPE /pws/zycit080-nrforn ,

        mark.

  DATA: END OF it_zycit079t.

  DATA: v_vinc(1) TYPE c.

* << Fim da inclusão

  DATA: v_qtd_temp  TYPE /pws/zycit079-qtd_iten,

        v_qtd_tempt TYPE /pws/zycit079-qtd_iten.

  DATA: v_nrseqd_v LIKE /pws/zycit244-nrseqd.

  REFRESH itab_zycit376.

  DELETE it_zycit079 WHERE qtd_iten <= 0.

  IF NOT it_zycit079[] IS INITIAL.

    SELECT * FROM /pws/zycit376 INTO TABLE itab_zycit376

        FOR ALL ENTRIES IN it_zycit079

        WHERE ebeln EQ it_zycit079-ebeln

          AND ebelp EQ it_zycit079-ebelp.               "#EC CI_NOFIRST

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

    it_zycit079t[] = it_zycit079[].

* << Fim da inclusão

    READ TABLE itab_zycit376 INDEX 1.

    IF sy-subrc EQ 0.

      CLEAR v_nvinc.

      v_nrseqd_v = itab_zycit376-nrseqd.

      LOOP AT it_zycit079.

        READ TABLE itab_zycit376 WITH KEY ebeln = it_zycit079-ebeln

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

                                          ebelp = it_zycit079-ebelp

                                          nrseqd = v_nrseqd_v.

        IF sy-subrc NE 0.

* << Fim da exclusão

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

                                          ebelp = it_zycit079-ebelp.

        IF sy-subrc EQ 0 AND

          v_nrseqd_v NE itab_zycit376-nrseqd.

* << Fim da inclusão

          v_nvinc = 'X'.

          MESSAGE i015 WITH text-440.

          EXIT.

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

        ELSEIF sy-subrc NE 0 .

          v_vinc = 'X'.

* << Fim da inclusão

        ENDIF.

        READ TABLE it_ekpo WITH KEY ebeln = itab_zycit376-ebeln

                                    ebelp = itab_zycit376-ebelp.

        IF it_ekpo-menge NE itab_zycit376-qtd_iten.

          CLEAR v_campo.

          CONCATENATE itab_zycit376-ebeln '/' itab_zycit376-ebelp

                INTO v_campo.

          v_nvinc = 'X'.

          MESSAGE i015 WITH text-498 v_campo text-499 text-500.

          EXIT.

        ENDIF.

      ENDLOOP.

      IF v_nvinc NE 'X' AND v_ncmdf NE 'X'.

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

        it_zycit079t[] = it_zycit079[].

* << Fim da inclusão

        SELECT SINGLE * FROM /pws/zycit244

            WHERE nrseqd EQ itab_zycit376-nrseqd.

        /pws/zycie078-nrseqd = itab_zycit376-nrseqd.

        /pws/zycie078-reg_drawback = itab_zycit376-nratoc.

        /pws/zycie078-modalidade = /pws/zycit244-modalidade.

        /pws/zycie078-tipodb = /pws/zycit244-tipo.

        /pws/zycie078-codagsecex = /pws/zycit244-codagencia.

        /pws/zycie078-digito = /pws/zycit244-digito.

        /pws/zycie078-codfunleg = '16'.

        IF /pws/zycie078-codagsecex IS INITIAL.

          SELECT SINGLE codagencia digito FROM /pws/zycit172

                INTO (/pws/zycie078-codagsecex, /pws/zycie078-digito)

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

                WHERE descricao = /pws/zycit244-praca.  "#EC CI_NOFIELD

* << Fim da exclusão

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

               WHERE descricao = /pws/zycit244-praca.   "#EC CI_NOFIELD

* << Fim da inclusão

        ENDIF.

        IF /pws/zycie078-modalidade EQ 'I'.

          /pws/zycie078-codregtri = '3'.

        ELSEIF /pws/zycie078-modalidade EQ 'S'.

          /pws/zycie078-codregtri = '5'.

        ENDIF.

        MESSAGE s015 WITH text-441.

        LOOP AT it_zycit079.

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

          CLEAR itab_zycit376.

* << Fim da inclusão

          READ TABLE itab_zycit376 WITH KEY ebeln = it_zycit079-ebeln

                                            ebelp = it_zycit079-ebelp

                                            nrseqd = v_nrseqd_v.

          MOVE:

               itab_zycit376-nritem+2 TO it_zycit079-item_drawback,

               itab_zycit376-nritem   TO it_zycit079-nritem_db.

          it_zycit079-qtd_drawback = it_zycit079-qtd_iten.

          IF /pws/zycie078-zum EQ '10' AND NOT v_peso IS INITIAL.

            it_zycit079-qtd_drawback =

            ( it_zycit079-ntgew * /pws/zycie078-qtdest ) / v_peso.

...

 

...

              ( it_zycit079-qtd_drawback / v_qtd_tempt ).

            ADD it_zycit079-qtd_drawback TO v_qtd_temp.

            MODIFY it_zycit079.

          ENDLOOP.

          it_zycit079-qtd_drawback = it_zycit079-qtd_drawback +

                    ( /pws/zycie078-qtdest - v_qtd_temp ).

          MODIFY it_zycit079 TRANSPORTING qtd_drawback

              WHERE ebeln EQ it_zycit079-ebeln

                AND ebelp EQ it_zycit079-ebelp.

        ENDIF.

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

        PERFORM vinc_p CHANGING v_vinc .

        IF v_vinc EQ 'E'.

          it_zycit079[] = it_zycit079t[].

          CLEAR: v_descr11.

          MESSAGE i015 WITH text-390 /pws/zycie078-nrseqd

                                                  text-522.

          MOVE: /pws/zycie078-nrseqd TO v_nrseqd   ,

                space TO /pws/zycie078-nrseqd      ,

                space TO /pws/zycie078-reg_drawback,

                space TO /pws/zycie078-modalidade  ,

                space TO /pws/zycie078-tipodb      ,

                space TO /pws/zycie078-digito      .

* << Fim da inclusão

      ENDIF.

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

      ENDIF.

* << Fim da inclusão

    ELSE.

      PERFORM vincular_atoc.

    ENDIF.

  ELSE.

    MESSAGE s015 WITH text-109.

  ENDIF.

...

 

...

* >> Início da inclusão:

FORM vinc_p CHANGING p_vinc.

  DATA: v_grupo    TYPE /pws/zycit433-grupo,

        itab_zycit079a TYPE /pws/zycit079 OCCURS 0 WITH HEADER LINE,

        v_vl_temp  TYPE /pws/zycit245-netpr_t,

        v_vl_temp2 TYPE /pws/zycit245-netpr_t,

        v_saldov   TYPE /pws/zycit245-netpr_t,

        v_saldo    TYPE /pws/zycit245-qtd_tot.

  SELECT SINGLE * FROM /pws/zycit321.

  SELECT SINGLE * FROM /pws/zycbt007

          WHERE bukrs EQ /pws/zycie078-bukrs.

  IF sy-subrc NE 0.

    SELECT SINGLE * FROM /pws/zycbt007

            WHERE bukrs EQ space.

  ENDIF.

  SELECT SINGLE * FROM /pws/zycit244 INTO it_zycit244

         WHERE status EQ 'D'

           AND nrseqd EQ /pws/zycie078-nrseqd.

  SELECT * FROM /pws/zycit245 INTO TABLE it_zycit245

         WHERE nrseqd EQ /pws/zycie078-nrseqd

           AND nritem < 90000.                            "#EC PORTABLE

  IF /pws/zycit321-c_comum NE 'X'.

    SELECT * FROM /pws/zycit433

   INTO TABLE itab_zycit433                             "#EC CI_NOFIELD

          WHERE dtde  <= sy-datlo

            AND dtate >= sy-datlo.

  ENDIF.

  SELECT * FROM ekpo INTO TABLE it_ekpo

      FOR ALL ENTRIES IN it_zycit079

      WHERE ebeln EQ it_zycit079-ebeln

        AND ebelp EQ it_zycit079-ebelp.

  SELECT  * FROM /pws/zycit079 INTO TABLE itab_zycit079a

        WHERE nrseqli EQ /pws/zycie078-nrseqli.

  LOOP AT itab_zycit079a WHERE nritem_db NE space.

    READ TABLE itab_zycit376 WITH KEY

            ebeln = itab_zycit079a-ebeln

            ebelp = itab_zycit079a-ebelp.

    CHECK sy-subrc NE 0.

    READ TABLE it_ekpo WITH KEY ebeln = itab_zycit079a-ebeln

                                ebelp = itab_zycit079a-ebelp.

    v_vl_temp =  itab_zycit079a-qtd_iten * itab_zycit079a-netpr.

    PERFORM converter_moeda USING v_vl_temp

                               itab_zycit079a-waers

                               /pws/zycbt007-waersa

                               it_ekpo-aedat

                      CHANGING v_vl_temp2 .

    READ TABLE it_zycit245 WITH KEY nritem = itab_zycit079a-nritem_db.

    CHECK sy-subrc EQ 0.

    IF it_zycit244-tipo NA 'GD'.

      SUBTRACT itab_zycit079a-qtd_drawback FROM it_zycit245-vinculado.

    ENDIF.

    SUBTRACT v_vl_temp2 FROM it_zycit245-vlvinc.

    MODIFY it_zycit245 TRANSPORTING vlvinc vinculado

            WHERE nritem EQ itab_zycit079a-nritem_db.

  ENDLOOP.

  LOOP AT it_zycit079 WHERE item_drawback EQ space.

    READ TABLE it_ekpo WITH KEY ebeln = it_zycit079-ebeln

                                ebelp = it_zycit079-ebelp.

    v_vl_temp =  it_zycit079-qtd_iten * it_zycit079-netpr.

    PERFORM converter_moeda USING v_vl_temp

                               it_zycit079-waers

                               /pws/zycbt007-waersa

                               it_ekpo-aedat

                      CHANGING v_vl_temp2 .

    CLEAR it_zycit245.

    IF /pws/zycit321-c_comum NE 'X' AND

       it_zycit244-tipo NA 'GD'.

      READ TABLE itab_zycit433 WITH KEY matnr = it_zycit079-matnr.

      IF sy-subrc EQ 0.

        v_grupo = itab_zycit433-grupo.

        LOOP AT itab_zycit433 WHERE grupo EQ v_grupo.

          READ TABLE it_zycit245 WITH KEY

                                    codcomp = itab_zycit433-matnr

                                    j_1bnbm = /pws/zycie078-steuc1.

          IF sy-subrc EQ 0.

            v_saldo = it_zycit245-qtd_ncm - it_zycit245-vinculado.

            v_saldov = it_zycit245-netpr_t - it_zycit245-vlvinc.

            IF v_saldo <= 0 OR v_saldov <= 0.

              CONTINUE.

            ENDIF.

            IF v_saldov >= v_vl_temp2 AND

               v_saldo  >= it_zycit079-qtd_drawback.

              ADD: it_zycit079-qtd_drawback TO it_zycit245-vinculado,

                   v_vl_temp2               TO it_zycit245-vlvinc.

              MODIFY it_zycit245 TRANSPORTING vinculado vlvinc

                    WHERE nritem EQ it_zycit245-nritem.

              MOVE:

                it_zycit245-nritem+2 TO it_zycit079-item_drawback,

                it_zycit245-nritem   TO it_zycit079-nritem_db.

            ENDIF.

          ENDIF.

        ENDLOOP.

      ELSE.

        READ TABLE it_zycit245 WITH KEY codcomp = it_zycit079-matnr

                                        j_1bnbm = /pws/zycie078-steuc1.

        IF sy-subrc EQ 0.

          v_saldo = it_zycit245-qtd_ncm - it_zycit245-vinculado.

          v_saldov = it_zycit245-netpr_t - it_zycit245-vlvinc.

          IF v_saldo <= 0 OR v_saldov <= 0.

            CONTINUE.

          ENDIF.

          IF v_saldov >= v_vl_temp2 AND

             v_saldo  >= it_zycit079-qtd_drawback.

            ADD: it_zycit079-qtd_drawback TO it_zycit245-vinculado,

                 v_vl_temp2               TO it_zycit245-vlvinc.

            MODIFY it_zycit245 TRANSPORTING vinculado vlvinc

                  WHERE nritem EQ it_zycit245-nritem.

            MOVE:

              it_zycit245-nritem+2 TO it_zycit079-item_drawback,

              it_zycit245-nritem   TO it_zycit079-nritem_db.

          ENDIF.

        ENDIF.

      ENDIF.

    ELSEIF it_zycit244-tipo NA 'GD'.

      READ TABLE it_zycit245 WITH KEY j_1bnbm = /pws/zycie078-steuc1.

      IF sy-subrc EQ 0.

        v_saldo = it_zycit245-qtd_ncm - it_zycit245-vinculado.

        v_saldov = it_zycit245-netpr_t - it_zycit245-vlvinc.

        IF v_saldo <= 0 OR v_saldov <= 0.

          CONTINUE.

        ENDIF.

        IF v_saldov >= v_vl_temp2 AND

           v_saldo  >= it_zycit079-qtd_drawback.

          ADD: it_zycit079-qtd_drawback TO it_zycit245-vinculado,

               v_vl_temp2               TO it_zycit245-vlvinc.

          MODIFY it_zycit245 TRANSPORTING vinculado vlvinc

                WHERE nritem EQ it_zycit245-nritem.

          MOVE:

            it_zycit245-nritem+2 TO it_zycit079-item_drawback,

            it_zycit245-nritem   TO it_zycit079-nritem_db.

        ENDIF.

      ENDIF.

    ELSE.

      READ TABLE it_zycit245 INDEX 1.

      IF sy-subrc EQ 0.

        v_saldov = it_zycit245-netpr_t - it_zycit245-vlvinc.

        IF v_saldov <= 0.

          CONTINUE.

        ENDIF.

        IF v_saldov >= v_vl_temp2.

          ADD v_vl_temp2 TO it_zycit245-vlvinc.

          MODIFY it_zycit245 TRANSPORTING vlvinc

                WHERE nritem EQ it_zycit245-nritem.

          MOVE:

            it_zycit245-nritem+2 TO it_zycit079-item_drawback,

            it_zycit245-nritem   TO it_zycit079-nritem_db.

        ENDIF.

      ENDIF.

    ENDIF.

    IF it_zycit079-nritem_db IS INITIAL.

      p_vinc = 'E'.

      EXIT.

    ENDIF.

    MODIFY it_zycit079.

  ENDLOOP.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI020F01

 

...

  SELECT * FROM /pws/zycit376 INTO TABLE itab_zycit376

      FOR ALL ENTRIES IN it_zycit079

      WHERE ebeln EQ it_zycit079-ebeln

        AND ebelp EQ it_zycit079-ebelp.                 "#EC CI_NOFIRST

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

  IF sy-subrc EQ 0.

    EXIT.

  ENDIF.

* << Fim da exclusão

  REFRESH: it_zycit245.

  IF /pws/zycbt007-bukrs NE /pws/zycie078-bukrs.

    SELECT SINGLE * FROM /pws/zycbt007

          WHERE bukrs EQ /pws/zycie078-bukrs.

  ENDIF.

  SELECT SINGLE * FROM /pws/zycit078 INTO wa_zycit078

        WHERE nrseqli EQ /pws/zycie078-nrseqli

        AND   tpli    EQ /pws/zycie078-tpli.

  IF NOT wa_zycit078-nrseqd IS INITIAL.

    SELECT * FROM /pws/zycit245 INTO TABLE it_zycit245

          WHERE nrseqd EQ wa_zycit078-nrseqd

           AND nritem < 90000.                            "#EC PORTABLE

    SELECT  * FROM /pws/zycit079 INTO TABLE itab_zycit079a

          WHERE nrseqli EQ /pws/zycie078-nrseqli.

    CLEAR: v_pesod, v_qtdtotd.

    LOOP AT itab_zycit079a.

      v_pesod = v_pesod + itab_zycit079a-ntgew.

      v_qtdtotd = v_qtdtotd + itab_zycit079a-qtd_iten.

    ENDLOOP.

    LOOP AT itab_zycit079a.

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

      READ TABLE itab_zycit376 WITH KEY ebeln = itab_zycit079a-ebeln

                                        ebelp = itab_zycit079a-ebelp.

      IF sy-subrc EQ 0.

        CONTINUE.

      ENDIF.

* << Fim da inclusão

      READ TABLE it_zycit245 WITH KEY

                  nritem = itab_zycit079a-nritem_db.

      READ TABLE it_ekpo WITH KEY ebeln = itab_zycit079a-ebeln

                                  ebelp = itab_zycit079a-ebelp.

      IF sy-subrc NE 0.

        SELECT SINGLE * FROM ekpo INTO it_ekpo

                WHERE ebeln = itab_zycit079a-ebeln

                  AND ebelp = itab_zycit079a-ebelp.

        APPEND it_ekpo.

      ENDIF.

...

 

...

      CALL FUNCTION '/PWS/ZYCI_DEQUEUE_ZYCIT244'

           EXPORTING

                nrseqd = itab_atos2-nrseqd.

    ENDIF.

    SELECT * FROM /pws/zycit245 APPENDING TABLE it_zycit245

          WHERE nrseqd EQ /pws/zycie078-nrseqd

          AND nritem < 90000.                             "#EC PORTABLE

  ENDIF.

  IF NOT /pws/zycie078-nrseqd IS INITIAL.

    LOOP AT it_zycit079.

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

      READ TABLE itab_zycit376 WITH KEY ebeln = it_zycit079-ebeln

                                        ebelp = it_zycit079-ebelp.

      IF sy-subrc EQ 0.

        CONTINUE.

      ENDIF.

* << Fim da inclusão

      READ TABLE it_zycit245 WITH KEY

                  nritem = it_zycit079-nritem_db

                  nrseqd   = /pws/zycie078-nrseqd.

      READ TABLE it_ekpo WITH KEY ebeln = it_zycit079-ebeln

                                  ebelp = it_zycit079-ebelp.

      IF sy-subrc NE 0.

        SELECT SINGLE * FROM ekpo INTO it_ekpo

                WHERE ebeln = it_zycit079-ebeln

                  AND ebelp = it_zycit079-ebelp.

        APPEND it_ekpo.

...

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI020

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 522

 

Texto: (45 caracteres)

"não possui saldo para vincular todos os itens"

 

Comprimento máximo: 50