CE PLUS - Nota 011026

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 18/03/2011 00:00:00

Data/Hora Última Alteração: 22/03/2011 11:12:52

Descrição da Nota: VINCULAÇÃO DE LI NO EMBARQUE

Sintoma

Uma vez vinculados alguns itens de uma LI no Embarque, os demais itens não podem ser vinculados

porque não aparecem mais para vinculação.

 

 

 

 

 

Solução

Se uma LI possuir itens que ainda não foram vinculados ao embarque, ela deve aparecer.

 

Versões Tratadas

8.0

Informações Complementares

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

Nota Número 11026 Data: 18/03/2011 Hora: 15:50:53

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

 

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

Nota Número              : 11026

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00007

Agrupamento              : 00062

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

Referência às notas relacionadas:

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

 

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

VINCULAÇÃO DE LI NO EMBARQUE

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

Palavras Chave:

ERRO NA VINCULAÇÃO DE LI NO EMBARQUE

 

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

Objetos da nota:

REPS /PWS/MZYCI001F01

REPS /PWS/MZYCI020F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F01

 

...

      AND v_adm_temp NE 'X'.

      MESSAGE i015 WITH text-514 text-515.

      EXIT .

    ENDIF.

    IF v_sair = 'X'.

      EXIT.

    ENDIF.

    v_nrseqerro = space.

    CLEAR: itab_zycit008.

    FREE:  itab_zycit008.

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

   SELECT * FROM /pws/zycit008                          "#EC CI_NOFIELD

* << Fim da exclusão

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

    SELECT * FROM /pws/zycit008                         "#EC CI_NOFIELD

* << Fim da inclusão

    INTO TABLE itab_zycit008

             WHERE tpgto EQ 'D'.

    IF sy-subrc EQ 0.

      LOOP AT itab_zycit125.

        IF itab_zycit125-lifnr IS INITIAL.

          DELETE itab_zycit125 INDEX sy-tabix.

          MESSAGE i015 WITH text-223.

          EXIT.

        ENDIF.

      ENDLOOP.

...

 

...

    IF sy-subrc EQ 0.

      v_msg = 'X' .

    ENDIF.

    IF v_msg EQ 'X'.

      SELECT SINGLE * FROM /pws/zycit026

      WHERE nrseq = /pws/zycie001-nrseq.

      IF sy-subrc = 0.

        MESSAGE i015 WITH text-489 text-490 text-491.

        EXIT.

      ENDIF.

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

     SELECT SINGLE * FROM /pws/zycit008                 "#EC CI_NOFIELD

* << Fim da exclusão

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

      SELECT SINGLE * FROM /pws/zycit008                "#EC CI_NOFIELD

* << Fim da inclusão

        WHERE nrseq = /pws/zycie001-nrseq

          AND tpgto = 'D'.

      IF sy-subrc EQ 0.

        MESSAGE i015 WITH text-489 text-490 text-492.

        EXIT.

      ENDIF.

      MESSAGE i015 WITH text-261 text-260.

      DELETE itab_zycit003 WHERE qtd_iten EQ '0'.

    ENDIF.

    LOOP AT itab_zycit003.

...

 

...

                                    AND ebelp = itab_zycit374-ebelp.

          MODIFY /pws/zycit396 FROM TABLE itab_zycit396.

        ENDIF.

      ENDIF.

      MODIFY /pws/zycit133 FROM /pws/zycie133.

      MODIFY /pws/zycit133 FROM /pws/zycie133a.

      MOVE: /pws/zycie134  TO wa_zycit134,

            /pws/zycie133  TO wa_zycit133,

            /pws/zycie133a TO wa_zycit133a.

    ENDIF.

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

   SELECT SINGLE * FROM /pws/zycit094                   "#EC CI_NOFIRST

* << Fim da exclusão

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

    SELECT SINGLE * FROM /pws/zycit094                  "#EC CI_NOFIRST

* << Fim da inclusão

       INTO /pws/zycit094

        WHERE nrseq = /pws/zycie001-nrseq.

    IF sy-subrc = 0.

      SELECT SINGLE * FROM

      /pws/zycit093 INTO /pws/zycit093

        WHERE nrseqce = /pws/zycit094-nrseqce.

      IF sy-subrc = 0.

        /pws/zycit093-meiotransp = /pws/zycie001-meioemba.

        /pws/zycit093-embarca = /pws/zycie001-navio.

        IF /pws/zycit000 IS INITIAL.

...

 

...

  SELECT MAX( nrseq ) INTO (v_nrseq_emp)

      FROM /pws/zycit001

      WHERE nrseq LIKE v_ano_emp.

  v_tam = strlen( p_range ).

  v_tam_2 = ( 7 - v_tam ).

  v_count(v_tam_2) = v_nrseq_emp+v_tam(v_tam_2) + 1.

  CONCATENATE p_range v_count(v_tam_2) 'I' sy-datlo+2(2)

              INTO v_nrseq_emp.

ENDFORM.

FORM vinculacao_li.

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

  DATA: BEGIN OF itab_079qtd OCCURS 0.

  DATA: nrseqli TYPE /pws/zycit079-nrseqli,

        ebeln   TYPE /pws/zycit079-ebeln  ,

        ebelp   TYPE /pws/zycit079-ebelp  .

  DATA END OF itab_079qtd.

* << Fim da inclusão

  DATA: v_nacion TYPE c.

  DATA: v_char1(20),

        v_char2(20),

        v_pos TYPE i.

  DATA: v_qtdumest LIKE /pws/zycit003-qtdeumest.

  PERFORM grava_tabelas.

  CLEAR:   itab_zycit079 ,

           itab_zycit078 ,

           itab_log      ,

           itab_ncm      ,

...

 

...

    IF sy-subrc EQ 0.

      MESSAGE s015 WITH text-506 text-507.

      EXIT .

    ENDIF.

    SELECT * FROM /pws/zycit079                         "#EC CI_NOFIRST

             INTO TABLE itab_zycit079

             FOR ALL ENTRIES IN itab_zycit003

             WHERE ebeln EQ itab_zycit003-ebeln

               AND ebelp EQ itab_zycit003-ebelp

               AND nrseq EQ space.

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

    IF sy-subrc EQ 0.

      LOOP AT itab_zycit079.

        SELECT SINGLE * FROM /pws/zycit079

          WHERE nrseqli EQ itab_zycit079-nrseqli

            AND nrseq NE space.

        IF sy-subrc EQ 0.

          DELETE itab_zycit079

          WHERE nrseqli EQ /pws/zycit079-nrseqli.

        ENDIF.

      ENDLOOP.

    ENDIF.

* << Fim da exclusão

    IF NOT itab_zycit079[] IS INITIAL.

      IF /pws/zycie001-tpdecl EQ 'DI'.

        IF /pws/zycie001-regime EQ '13'.

          v_nacion = 'X'.

        ELSE.

          CLEAR: v_nacion.

        ENDIF.

        SELECT * FROM /pws/zycit078

                 INTO TABLE itab_zycit078

                 FOR ALL ENTRIES IN itab_zycit079

...

 

...

               FOR ALL ENTRIES IN itab_zycit078

               WHERE nrseqli EQ itab_zycit078-nrseqli

                 AND tpli    EQ 'N'.

    ELSE.

      MESSAGE s015 WITH text-108.

      EXIT.

    ENDIF.

  ELSE.

    MESSAGE s015 WITH text-107.

    EXIT.

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

  ENDIF.

  IF NOT itab_zycit078[] IS INITIAL.

    SELECT nrseqli ebeln ebelp FROM /pws/zycit079

    INTO TABLE itab_079qtd

    FOR ALL ENTRIES IN itab_zycit078

    WHERE nrseqli EQ itab_zycit078-nrseqli.

* << Fim da inclusão

  ENDIF.

  LOOP AT itab_zycit078.

    CLEAR: v_qtdumest, itab_zycit079, itab_zycit003.

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

    LOOP AT itab_zycit079 WHERE nrseqli = itab_zycit078-nrseqli.

      READ TABLE itab_zycit003 WITH KEY ebeln   = itab_zycit079-ebeln

                                        ebelp   = itab_zycit079-ebelp.

* << Fim da exclusão

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

    LOOP AT itab_079qtd WHERE nrseqli = itab_zycit078-nrseqli.

      READ TABLE itab_zycit003 WITH KEY ebeln   = itab_079qtd-ebeln

                                        ebelp   = itab_079qtd-ebelp.

* << Fim da inclusão

      CHECK sy-subrc EQ 0.

      v_qtdumest = v_qtdumest + itab_zycit003-qtdeumest.

    ENDLOOP.

    LOOP AT itab_zycit079 WHERE nrseqli = itab_zycit078-nrseqli.

      READ TABLE itab_zycit003 WITH KEY ebeln   = itab_zycit079-ebeln

                                        ebelp   = itab_zycit079-ebelp.

      CHECK itab_zycit003-nrseqli IS INITIAL.

      IF itab_zycit078-bukrs NE /pws/zycie001-bukrs.

        v_descrlog = text-078.

        MOVE: itab_zycit003-ebeln TO itab_log-ebeln    ,

...

 

...

                        nrdrawback = /pws/zycit078-nrdrawback

                        modalidade = /pws/zycit078-modalidade

                    WHERE ebeln = itab_vincula-ebeln

                      AND ebelp = itab_vincula-ebelp

                      AND nrseq = /pws/zycie001-nrseq.

  ENDIF.

  UPDATE /pws/zycit079 SET nrseq = /pws/zycie001-nrseq

                  WHERE ebeln = itab_vincula-ebeln

                    AND ebelp = itab_vincula-ebelp

                    AND nrseqli = itab_vincula-nrseqli.

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

  SELECT * FROM /pws/zycit079 INTO TABLE itab_zycit079

         WHERE nrseqli EQ /pws/zycit078-nrseqli

         AND   nrseq   EQ space.

  IF sy-subrc NE 0.

* << Fim da inclusão

  UPDATE /pws/zycit078 SET status = 'VIN'

                      nrseq  = /pws/zycie001-nrseq

                  WHERE nrseqli = itab_vincula-nrseqli

                    AND nrli    = itab_vincula-nrli

                    AND tpli    = 'N'.

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

  ENDIF.

* << Fim da inclusão

ENDFORM.

...

 

...

                      AND nrseq = /pws/zycie001-nrseq.

    UPDATE /pws/zycit003 SET nrlsisub = 'X'

                    WHERE ebeln = itab_vincula-ebeln

                      AND ebelp = itab_vincula-ebelp

                      AND nrseq = /pws/zycie001-nrseq.

  ENDIF.

  UPDATE /pws/zycit079 SET nrseq = /pws/zycie001-nrseq

                  WHERE ebeln = itab_vincula-ebeln

                    AND ebelp = itab_vincula-ebelp

                    AND nrseqli = itab_vincula-nrseqli.

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

  SELECT * FROM /pws/zycit079 INTO TABLE itab_zycit079

         WHERE nrseqli EQ /pws/zycit078-nrseqli

         AND   nrseq   EQ space.

  IF sy-subrc NE 0.

* << Fim da inclusão

  UPDATE /pws/zycit078 SET status = 'VIN'

                      nrseq  = /pws/zycie001-nrseq

                  WHERE nrseqli = itab_vincula-nrseqli

                    AND nrli    = itab_vincula-nrli

                    AND tpli    = 'S'.

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

  ENDIF.

* << Fim da inclusão

ENDFORM.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI020F01

 

...

  ENDIF.

  IF NOT /pws/zycie078-nrseq IS INITIAL.

    SELECT SINGLE * FROM /pws/zycit003

    WHERE nrseq    EQ /pws/zycie078-nrseq

    AND   nrseqli  EQ /pws/zycie078-nrseqli.

    IF sy-subrc NE 0.

      PERFORM deleta_itens.

      CLEAR /pws/zycie078-nrseq .

      EXIT.

    ELSE.

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

      LOOP AT it_zycit079 WHERE nrseq EQ space.

      ENDLOOP.

      IF sy-subrc NE 0.

* << Fim da inclusão

      /pws/zycie078-status = 'VIN'.

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

      ENDIF.

* << Fim da inclusão

    ENDIF.

  ENDIF.

  IF /pws/zycie078-status NE 'VIN'.

    IF /pws/zycie078-tpli EQ 'N'.

      MESSAGE i015 WITH text-161.

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

...