CE PLUS - Nota 004408

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Embarque

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

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

Descrição da Nota: ATUALIZAÇÃO DOS DADOS NO EMBARQUE POR PEDIDO DE COMPRA

Sintoma

Ajustes referentes a:

1) Determinação de Pricing para Pedido de Compras,

2) Determinação de documentos de complemento (débito e crédito) e atualização de seus respectivos

valores,

3) Consistências se Ordem de Venda preenchida para Embarque tipo "D" (Embarque por Pedido de

Compra).

 

 

Solução

Alteradas as rotinas para determinação correta de documentos e valores relacionados ao Pedido de

Compra. Alteradas as consistências referente a preenchimento do campo Ordem de Venda no Embarque por

Pedido de Compra.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

TRATAMENTO NA PASTA PARCEIROS DO EMBARQUE POR PEDIDO DE COMPRA

PESO LIQUIDO DO ITEM VAZIO PARA EMBARQUE COM PARTIÇÃO DE LOTE

FORNECIMENTO ELIMINADO DO EMBARQUE QUANDO HÁ DOCUMENTO DE TRANSPORTE

Informações Complementares

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

Nota Número 04408 Data: 13/08/2007 Hora: 18:51:39

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

 

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

Nota Número              : 04408

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00008

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

Referência às notas relacionadas:

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

 

03254  - 00001 - 6.0    - 00026  - PESO LIQUIDO DO ITEM VAZIO PARA EMBARQUE COM PARTIÇÃO DE LOTE

04320  - 00002 - 7.0    - 00002  - FORNECIMENTO ELIMINADO DO EMBARQUE QUANDO HÁ DOCUMENTO DE TRANSPO

04334  - 00003 - 7.0    - 00002  - TRATAMENTO NA PASTA PARCEIROS DO EMBARQUE POR PEDIDO DE COMPRA

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

ATUALIZAÇÃO DOS DADOS NO EMBARQUE POR PEDIDO DE COMPRA

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

Palavras Chave:

PEDIDO, COMPRA, CONSISTÊNCIA, ITEM, PRICING, ORDEM DE VENDA

 

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

Objetos da nota:

REPS /PWS/MZYCE003F01

 

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

Modificações efetuadas em REPS /PWS/MZYCE003F01

 

...

      ENDCASE.

    ENDDO.

  ENDLOOP.

  PERFORM progress_indicator USING 4 36

                             'Efetuando Refresh do Embarque'(m01).

  IF NOT itab_ped[] IS INITIAL.

    PERFORM seleciona_pedido_compra TABLES itab_ped.

  ENDIF.

  PERFORM progress_indicator USING 5 36

                             'Efetuando Refresh do Embarque'(m01).

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

  IF NOT itab_ovs[] IS INITIAL AND /pws/zycee001-tipo_emb NE 'D'.

* << Fim da exclusão

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

  IF NOT itab_ovs[] IS INITIAL.

* << Fim da inclusão

    SELECT vbeln

           audat

           vbtyp

           auart

           netwr

           waerk

           vkorg

           vtweg

           spart

           vkgrp

...

 

...

           kurst

           grupp

           vgbel

           bukrs_vf

           zuonr

           vsnmr_v

           FROM vbak

           APPENDING TABLE itab_vbak

           FOR ALL ENTRIES IN itab_ovs

           WHERE vbeln = itab_ovs-vbeln.

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

    IF sy-subrc NE 0.

* << Fim da exclusão

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

    IF sy-subrc NE 0 AND /pws/zycee001-tipo_emb NE 'D'.

* << Fim da inclusão

      CALL FUNCTION 'MESSAGE_STORE'

           EXPORTING

                arbgb = '/PWS/ZYCEM'

                msgty = 'E'

                msgv1 = text-501

                msgv2 = /pws/zycee001-nrseq

                txtnr = 221

                zeile = 'OV_SEL_002'.

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

    ELSE.

      IF /pws/zycee001-tipo_emb EQ 'D'.

        LOOP AT itab_vbak INTO itab_vbak.

          v_index = sy-tabix.

          IF /pws/zycee001-bukrs IS INITIAL.

            READ TABLE itab_zycet020

                     WITH KEY auart = itab_vbak-auart

                              bukrs = itab_vbak-bukrs_vf.

* << Fim da inclusão

    ELSE.

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

            READ TABLE itab_zycet020

                     WITH KEY auart = itab_vbak-auart

                              bukrs = /pws/zycee001-bukrs.

          ENDIF.

          IF sy-subrc NE 0.

            READ TABLE itab_zycet020

                     WITH KEY auart = itab_vbak-auart

                              bukrs = space.

          ENDIF.

          IF  itab_zycet020-tipodoc EQ 'OV' OR

              itab_zycet020-tipodoc EQ 'CO' OR

              itab_zycet020-tipodoc EQ 'VC' OR

              itab_zycet020-tipodoc EQ 'DR'.

            DELETE itab_vbak INDEX v_index.

          ENDIF.

        ENDLOOP.

      ENDIF.

* << Fim da inclusão

      SELECT vbeln

             lfstk

             fkstk

             fksak

             buchk

             cmgst

             FROM vbuk

             APPENDING TABLE itab_vbuk

             FOR ALL ENTRIES IN itab_vbak

             WHERE vbeln = itab_vbak-vbeln.

...

 

...

    CLEAR: itab_zycet002-vlfob,

           itab_zycet002-vlfrete,

           itab_zycet002-vlseguro,

           itab_zycet002-vlod,

           itab_zycet002-vldesconto,

           itab_zycet002-vlacrescimo,

           itab_zycet002-vlagente.

    CLEAR: itab_pricing,

           v_knumv.

    v_tipo_ov = 'C'.

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

    IF NOT itab_zycet002-auart IS INITIAL.

        READ TABLE itab_zycet020

                     WITH KEY auart = itab_zycet002-auart

                              bukrs = itab_zycet002-bukrs.

        IF sy-subrc NE 0.

          READ TABLE itab_zycet020

                         WITH KEY auart = itab_zycet002-auart

                                  bukrs = space.

        ENDIF.

* << Fim da inclusão

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

    IF     itab_zycet002-vbeln_va IS INITIAL AND

       NOT itab_zycet002-ebeln    IS INITIAL.

* << Fim da exclusão

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

      ENDIF.

    IF ( itab_zycet002-vbeln_va IS INITIAL AND NOT

         itab_zycet002-ebeln    IS INITIAL ) OR

       ( NOT itab_zycet002-vbeln_va IS INITIAL AND

         NOT itab_zycet002-ebeln    IS INITIAL AND

             itab_zycet020-tipodoc NE 'DR' AND

             itab_zycet020-tipodoc NE 'OD' AND

             itab_zycet020-tipodoc NE 'OC' AND

             /pws/zycee001-tipo_emb EQ 'D' ).

* << Fim da inclusão

      READ TABLE itab_ekko WITH KEY ebeln = itab_zycet002-ebeln

                           BINARY SEARCH.

      CHECK sy-subrc EQ 0.

      READ TABLE itab_ekpo WITH KEY ebeln = itab_zycet002-ebeln

                                    ebelp = itab_zycet002-ebelp

                           BINARY SEARCH.

      CHECK sy-subrc EQ 0.

      v_kwmeng = itab_ekpo-menge.

      v_matnr  = itab_ekpo-matnr.

      v_vrkme  = itab_ekpo-meins.

...

 

...

                        ebeln

                        ebelp

                        vbeln_vl

                        posnl

                        vbeln_vf

                        posnr.

  LOOP AT itab_zycet002.

    v_index = sy-tabix.

    v_tipo_ov = 'C'.

    IF itab_zycet002-vbeln_va IS INITIAL.

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

      v_tipo_ov = 'V'.

    ELSEIF /pws/zycee001-tipo_emb EQ 'D'.

      IF NOT itab_zycet002-auart IS INITIAL.

        READ TABLE itab_zycet020

                     WITH KEY auart = itab_zycet002-auart

                              bukrs = itab_zycet002-bukrs.

        IF sy-subrc NE 0.

          READ TABLE itab_zycet020

                         WITH KEY auart = itab_zycet002-auart

                                  bukrs = space.

        ENDIF.

      ENDIF.

      IF ( itab_zycet020-tipodoc NE 'DR' AND

           itab_zycet020-tipodoc NE 'OD' AND

           itab_zycet020-tipodoc NE 'OC' ).

* << Fim da inclusão

      v_tipo_ov = 'V'.

    ENDIF.

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

    ENDIF.

* << Fim da inclusão

    IF ( NOT itab_zycet002-vbeln_va IS INITIAL AND

         NOT itab_zycet002-aupos    IS INITIAL ) OR

       ( NOT itab_zycet002-ebeln    IS INITIAL AND

         NOT itab_zycet002-ebelp    IS INITIAL ).

      IF v_tipo_ov EQ 'V'.

...

 

...

              MOVE:   itab_lips-kcntgew TO itab_zycet002-ntgew,

                      itab_lips-kcbrgew TO itab_zycet002-brgew.

            ENDIF.

          ELSE.

            MOVE:  itab_vbrp-brgew TO itab_zycet002-brgew,

                   itab_vbrp-ntgew TO itab_zycet002-ntgew.

          ENDIF.

          MOVE: itab_vbrp-ktgrm TO itab_zycet002-ktgrm,

                itab_vbrp-shkzg TO itab_zycet002-shkzg,

                itab_vbrp-fkimg TO itab_zycet002-fkimg,

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

                itab_vbrp-vrkme TO itab_zycet002-vrkme.

* << Fim da exclusão

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

                itab_vbrp-vrkme TO itab_zycet002-vrkme,

                itab_vbrp-gsber TO itab_zycet002-gsber.

* << Fim da inclusão

          MOVE: itab_vbrp-vtweg_auft TO itab_zycet002-vtweg_auft,

                itab_vbrp-vkorg_auft TO itab_zycet002-vkorg_auft.

          READ TABLE itab_j_1bnflin

                WITH KEY refkey = itab_zycet002-vbeln_vf

                         reftyp = 'BI'.

          IF sy-subrc EQ 0.

            READ TABLE itab_j_1bnfdoc

                  WITH KEY docnum = itab_j_1bnflin-docnum.

            IF sy-subrc EQ 0.

              itab_zycet002-docnum = itab_j_1bnfdoc-docnum.

...

 

...

        READ TABLE itab_zycet020 WITH KEY auart = itab_vbak-auart

                                          bukrs = space.

      ENDIF.

      CHECK sy-subrc EQ 0.

      IF ( itab_zycet020-tipodoc EQ 'OV' OR

           itab_zycet020-tipodoc EQ 'VC' OR

           itab_zycet020-tipodoc EQ 'CO' ) AND

        itab_zycet002-vbeln_vl IS INITIAL.

        CONTINUE.

      ENDIF.

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

    ELSE.

      CLEAR itab_zycet020.

* << Fim da inclusão

    ENDIF.

    v_tipo_ov = 'C'.

    v_vbeln = itab_zycet002-vbeln_va.

    v_posnr = itab_zycet002-aupos.

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

    IF v_vbeln IS INITIAL.

* << Fim da exclusão

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

    IF v_vbeln IS INITIAL OR

     ( itab_zycet020-tipodoc NE 'OC' AND

       itab_zycet020-tipodoc NE 'OD' AND

       itab_zycet020-tipodoc NE 'DR' AND

       /pws/zycee001-tipo_emb EQ 'D' ).

* << Fim da inclusão

      v_tipo_ov = 'V'.

    ENDIF.

    IF itab_zycet002-vbeln_vl IS INITIAL.

      IF v_tipo_ov EQ 'V'.

        v_vbeln = itab_zycet002-ebeln.

        v_posnr = itab_zycet002-ebelp.

      ENDIF.

    ELSE.

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

      IF v_tipo_ov EQ 'V'.

        v_vbeln = itab_zycet002-vbeln_vl.

        v_posnr = itab_zycet002-posnl.

      ELSE.

* << Fim da inclusão

      IF itab_zycet020-tipodoc NE 'OD' AND

         itab_zycet020-tipodoc NE 'OC'.

        v_vbeln = itab_zycet002-vbeln_vl.

        v_posnr = itab_zycet002-posnl.

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

        ENDIF.

* << Fim da inclusão

      ENDIF.

    ENDIF.

    v_nao_achou = 'X'.

...