CE PLUS - Nota 004582

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 31/08/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 10:51:58

Descrição da Nota: DADOS DE TRANSPORTE NÃO SÃO CARREGADOS COM PEDIDO DE COMPRA

Sintoma

Os dados de transporte (transporte, rota, nomeação, navio) não são carregados nos programas de

embarque e dados adicionais do embarque, quando a nomeação era feita usando pedido de compra.

 

 

Solução

A tabela passa a ser usada nos embarque com pedido de compra (tipo 'D').

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

SUBST. DA FUNÇÃO /PWS/ZYCE_TRATA_ORDEM PELA /PWS/ZYCE_SEPARA_ITENS_EMB

CONDIÇÃO DE PAGAMENTO MANUAL É PERDIDA APÓS REFRESH

Informações Complementares

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

Nota Número 04582 Data: 31/08/2007 Hora: 09:39:24

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

 

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

Nota Número              : 04582

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00010

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

Referência às notas relacionadas:

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

 

04402  - 00001 - 7.0    - 00002  - SUBST. DA FUNÇÃO /PWS/ZYCE_TRATA_ORDEM PELA /PWS/ZYCE_SEPARA_ITEN

04556  - 00002 - 7.0    - 00002  - CONDIÇÃO DE PAGAMENTO MANUAL É PERDIDA APÓS REFRESH

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

DADOS DE TRANSPORTE NÃO SÃO CARREGADOS COM PEDIDO DE COMPRA

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

Palavras Chave:

EMBARQUE DADOS ADICIONAIS TRANSPORTE NOMEAÇÃO CARGA

ROTA NAVIO PEDIDO COMPRA

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

Objetos da nota:

REPS /PWS/MZYCE003F01

REPS /PWS/MZYCE038F01

 

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

Modificações efetuadas em REPS /PWS/MZYCE003F01

 

...

                             'Efetuando Refresh do Embarque'(m01).

  PERFORM seleciona_novos_materiais.

  PERFORM progress_indicator USING 15 36

                             'Efetuando Refresh do Embarque'(m01).

  PERFORM seleciona_novos_comex.

  PERFORM elimina_linhas_duplicadas.

ENDFORM.

FORM seleciona_dados_adicionais_pw.

  DATA: itab_003 LIKE itab_zycet003 OCCURS 0 WITH HEADER LINE.

  DATA: v_zterm_atual TYPE /pws/zycet046-zterm.

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

  DATA: itab_nrseqno TYPE STANDARD TABLE OF /pws/zycet106-nrseqno.

* << Fim da inclusão

  itab_003[]        = itab_zycet003[].

  IF sy-tcode NE c_transacao_c.

    READ TABLE itab_t001 WITH KEY bukrs = /pws/zycee001-bukrs.

    IF itab_t001-land1 EQ 'AR'.

      SELECT nrseq

             nrper

             dtincl

             nrseqper

        FROM /pws/zycet292

        INTO CORRESPONDING FIELDS OF TABLE itab_permiso

...

 

...

    SELECT *

           FROM /pws/zycet068

           INTO TABLE itab_zycet068

           WHERE nrseq = /pws/zycee001-nrseq.

    SELECT *

           FROM /pws/zycet100

           INTO TABLE itab_zycet100

           WHERE nrseq = /pws/zycee001-nrseq.

  ENDIF.

  IF NOT itab_zycet002[] IS INITIAL.

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

    IF /pws/zycee001-tipo_emb <> 'D'.

* << Fim da inclusão

    SELECT nrseqno

           nrseqtr

           vbeln_va

           posnr

           nrrota_tr

           portdest

           zolla

           FROM /pws/zycet108

           INTO TABLE itab_zycet108

           FOR ALL ENTRIES IN itab_zycet002

           WHERE vbeln_va = itab_zycet002-vbeln_va AND

                 posnr    = itab_zycet002-aupos.

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

      IF sy-subrc = 0.

        itab_nrseqno[] = itab_zycet108[].

      ENDIF.

    ELSE.

      SELECT nrseqno

             FROM /pws/zycet135

             INTO TABLE itab_nrseqno

             FOR ALL ENTRIES IN itab_zycet002

             WHERE ebeln = itab_zycet002-ebeln

               AND ebelp = itab_zycet002-ebelp.

    ENDIF.

    IF NOT itab_nrseqno[] IS INITIAL.

* << Fim da inclusão

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

    IF sy-subrc EQ 0.

* << Fim da exclusão

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

      SORT itab_nrseqno.

      DELETE ADJACENT DUPLICATES FROM itab_nrseqno.

* << Fim da inclusão

      SELECT nrseqno

             nrseqtr

             nrrota_tr

             nome_tr

             FROM /pws/zycet106

             INTO TABLE itab_zycet106

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

             FOR ALL ENTRIES IN itab_zycet108

             WHERE nrseqno = itab_zycet108-nrseqno.

* << Fim da exclusão

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

             FOR ALL ENTRIES IN itab_nrseqno

             WHERE nrseqno = itab_nrseqno-table_line.

* << Fim da inclusão

      IF sy-subrc EQ 0.

        SELECT nrseqtr

               nrrota_tr

               codprt

               pais

               tpemb

               descprt

               dteta

               dtetd

               FROM /pws/zycet103

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCE038F01

 

FORM seleciona_dados.

  DATA: v_flag(4) TYPE c,

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

        itab_saida        LIKE /pws/zycet002 OCCURS 10 WITH HEADER LINE,

        itab_estorno      LIKE /pws/zycet002 OCCURS 10 WITH HEADER LINE,

        itab_devolucao    LIKE /pws/zycet002 OCCURS 10 WITH HEADER LINE,

        itab_complemento  LIKE /pws/zycet002 OCCURS 10 WITH HEADER LINE.

* << Fim da exclusão

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

        itab_saida LIKE /pws/zycet002 OCCURS 10 WITH HEADER LINE.

* << Fim da inclusão

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

  data: BEGIN OF itab_vbfa OCCURS 0,

         vbelv LIKE vbfa-vbelv,

         posnv LIKE vbfa-posnv,

         vbeln LIKE vbfa-vbeln,

         posnn LIKE vbfa-posnn,

         ntgew LIKE vbfa-ntgew,

        END OF itab_vbfa.

  DATA: BEGIN OF itab_vbap_aux OCCURS 0,

          vbeln  TYPE vbap-vbeln,

          posnr  TYPE vbap-posnr,

          matnr  TYPE vbap-matnr,

          netwr  TYPE vbap-netwr,

          kwmeng TYPE vbap-kwmeng,

          vrkme  TYPE vbap-vrkme,

        END OF itab_vbap_aux.

  DATA: BEGIN OF itab_vbrp_aux OCCURS 0,

          vbeln TYPE vbrp-vbeln,

          posnr TYPE vbrp-posnr,

          netwr TYPE vbrp-netwr,

        END OF itab_vbrp_aux.

* << Fim da exclusão

  IMPORT v_flag FROM MEMORY ID 'EMBARQUE'.

  IF v_flag EQ 'NOVO'.

    GET PARAMETER ID '/PWS/ZYCEP001' FIELD wa_zycee001-nrseq.

    SELECT SINGLE * FROM /pws/zycet001 INTO wa_zycee001

             WHERE nrseq = wa_zycee001-nrseq.

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

    /pws/zycee001-nremb = wa_zycee001-nremb.

* << Fim da exclusão

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

    IF sy-subrc EQ 0.

* << Fim da inclusão

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

    IF sy-subrc EQ 0.

* << Fim da exclusão

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

      /pws/zycee001 = wa_zycee001.

* << Fim da inclusão

      SELECT * FROM /pws/zycet002 INTO TABLE itab_zycet002

               WHERE nrseq = wa_zycee001-nrseq.

      SELECT * FROM /pws/zycet008 INTO TABLE itab_zycet008

               WHERE nrseq = wa_zycee001-nrseq.

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

      IF NOT itab_zycet002[] IS INITIAL.

        SELECT vbeln

           posnr

           matnr

           netwr

           kwmeng

           vrkme

           FROM vbap

           INTO TABLE itab_vbap_aux

           FOR ALL ENTRIES IN itab_zycet002

           WHERE vbeln = itab_zycet002-vbeln_va AND

                 posnr = itab_zycet002-aupos.

        SELECT vbeln

               posnr

               netwr

               FROM vbrp

               INTO TABLE itab_vbrp_aux

               FOR ALL ENTRIES IN itab_zycet002

               WHERE vbeln = itab_zycet002-vbeln_vf AND

                     posnr = itab_zycet002-posnr.

      ENDIF.

* << Fim da exclusão

      CALL FUNCTION '/PWS/ZYCE_SEPARA_ITENS_EMB'

           EXPORTING

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

                nrseq           = wa_zycee001-nrseq

* << Fim da exclusão

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

                nrseq                 = wa_zycee001-nrseq

* << Fim da inclusão

           TABLES

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

                tab_saida       = itab_saida

                tab_complemento = itab_complemento

                tab_devolucao   = itab_devolucao

                tab_estorno     = itab_estorno.

* << Fim da exclusão

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

                tab_saida             = itab_saida

           EXCEPTIONS

                itens_nao_encontrados = 1.

* << Fim da inclusão

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

      DELETE itab_saida WHERE ( vlme = space AND vlfob = space ) OR

                              (  ntgew = space AND brgew = space ).

      LOOP AT itab_zycet002.

       READ TABLE itab_saida WITH KEY vbeln_va = itab_zycet002-vbeln_va

                                      vbeln_vf = itab_zycet002-vbeln_vf

                                      vbeln_vl = itab_zycet002-vbeln_vl

                                         posnl    = itab_zycet002-posnl

                                         posnr    = itab_zycet002-posnr

                                         aupos    = itab_zycet002-aupos.

        CHECK sy-subrc EQ 0.

        APPEND itab_zycet002 TO itab_zycet002_102.

      ENDLOOP.

      DELETE itab_zycet002_102 WHERE vbeln_va = space OR

                                        st_vd = 'ES'.

* << Fim da exclusão

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

      APPEND LINES OF itab_saida[] TO itab_zycet002_102[].

* << Fim da inclusão

    ENDIF.

  ELSE.

    IMPORT wa_zycee001 FROM MEMORY ID 'ID_ADIC_001'.

    IF sy-subrc = 0.

      MOVE-CORRESPONDING wa_zycee001 TO /pws/zycee001.

      IMPORT itab_zycet002     FROM MEMORY ID 'ID_ADIC_002'.

      IMPORT itab_zycet002_102 FROM MEMORY ID 'ID_ADIC_002_102'.

      IMPORT itab_zycet008 FROM MEMORY ID 'ID_ADIC_008'.

      FREE MEMORY ID: 'ID_ADIC_001',

                      'ID_ADIC_002',

...

 

...

          CONTINUE.

        ENDIF.

      ENDLOOP.

      /pws/zycee046-waers = itab_zycet002-waers.

      ADD /pws/zycee313-vlme_frt TO /pws/zycee046-vlfrete.

    ENDIF.

  ENDIF.

ENDFORM.

FORM busca_rota.

  DATA v_vinc(1) TYPE c.

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

  DATA: nrseqtr_tela   TYPE /pws/zycet046-nrseqtr,

        nrrota_tr_tela TYPE /pws/zycet046-nrrota_tr,

        nrseqno_tela   TYPE /pws/zycet046-nrseqno,

        nrseqcg_tela   TYPE /pws/zycet046-nrseqcg.

  nrseqtr_tela   = /pws/zycee046-nrseqtr.

  nrrota_tr_tela = /pws/zycee046-nrrota_tr.

  nrseqno_tela   = /pws/zycee046-nrseqno.

  nrseqcg_tela   = /pws/zycee046-nrseqcg.

* << Fim da inclusão

  READ TABLE itab_zycet002_102 INDEX 1.

  IF /pws/zycee001-tipo_emb <> 'D'.

    IF NOT itab_zycet002_102[] IS INITIAL.

      CLEAR v_vinc.

      LOOP AT itab_zycet002_102.

        CHECK NOT itab_zycet002_102-vbeln_va IS INITIAL AND

              NOT v_vinc = 'X'.

        SELECT SINGLE nrseqtr

                      nrrota_tr

                      nrseqno

...

 

...

    IF NOT itab_zycet002_102-ebeln IS INITIAL.

      SELECT SINGLE * FROM /pws/zycet135 INTO /pws/zycet135

                WHERE ebeln = itab_zycet002_102-ebeln.

      IF sy-subrc = 0.

        MOVE  /pws/zycet135-nrseqno TO /pws/zycee046-nrseqno.

        SELECT SINGLE * FROM /pws/zycet106 INTO /pws/zycet106

                  WHERE nrseqno   = /pws/zycet135-nrseqno.

        IF sy-subrc = 0.

          MOVE: /pws/zycet106-nrseqtr    TO /pws/zycee046-nrseqtr,

                /pws/zycet106-nrrota_tr  TO /pws/zycee046-nrrota_tr.

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

        ELSE.

          CLEAR: /pws/zycee046-nrseqtr,

                 /pws/zycee046-nrrota_tr.

        ENDIF.

      ELSE.

        CLEAR: /pws/zycee046-nrseqno,

               /pws/zycee046-nrseqtr,

               /pws/zycee046-nrrota_tr.

* << Fim da inclusão

        ENDIF.

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

    ELSE.

      CLEAR: /pws/zycee046-nrseqno,

             /pws/zycee046-nrseqtr,

             /pws/zycee046-nrrota_tr.

* << Fim da inclusão

      ENDIF.

    ENDIF.

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

  IF nrseqtr_tela <> /pws/zycee046-nrseqtr

      OR nrrota_tr_tela <> /pws/zycee046-nrrota_tr

      OR nrseqno_tela <> /pws/zycee046-nrseqno

      OR nrseqcg_tela <> /pws/zycee046-nrseqcg.

    v_datar = 'X'.

* << Fim da inclusão

  ENDIF.

ENDFORM.

FORM busca_banco.

  READ TABLE itab_zycet002_102 INDEX 1.

  IF /pws/zycee046-bco1 IS INITIAL AND

  NOT itab_zycet002_102-vbeln_va IS INITIAL.

    SELECT SINGLE lifnr FROM vbpa

           INTO /pws/zycee046-bco1

           WHERE vbeln = itab_zycet002_102-vbeln_va AND

                 parvw = 'ZP'.

...