CE PLUS - Nota 003215

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Vinculação

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

Data/Hora Última Alteração: 10/03/2010 14:35:01

Descrição da Nota: VINCULAÇÃO BAIXA DO CLIENTE CONTRA O PDD

Sintoma

 

Ao fazer a baixa do cliente contra o PDD, o programa não está baixando o saldo na Tabela

/PWS/ZYCBT030 (Campos: VLSLTRANS e VLSLLIQ) e ao efetuar o estorno da baixa do cliente contra PDD, o

programa faz o estorno do cliente corretamente, porém faz uma nova F-02 para o PDD (quando não

deveria, pois o documento do PDD já existe). Dessa forma, estão ficando dois documentos iguais.

 

Solução

 

1- Programa passou a calcular o saldo da tabela /pws/zycbt030 corretamente tanto para a

contabilização da "ida" quando para o estorno.

2- Programa não está mais executando uma F-02, após exibir o relatório de documentos contabeis e

esta atualizando corretamente os campos da tabela /pws/zycbt051.

Versões Tratadas

6.0

Informações Complementares

 

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

Nota Número 03215 Data: 08/03/2007 Hora: 16:17:00

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

 

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

Nota Número              : 03215

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00026

Agrupamento              : 00156

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

VINCULAÇÃO BAIXA DO CLIENTE CONTRA O PDD

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

Palavras Chave:

VINCULAÇÃO BAIXA DO CLIENTE CONTRA O PDD

/PWS/ZYCBT030 (CAMPOS: VLSLTRANS E VLSLLIQ)

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

Objetos da nota:

REPS /PWS/MZYCB009F02

REPS /PWS/MZYCB009F09

REPS /PWS/MZYCB009TOP

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F02

 

...

        MODIFY itab_zycbt051.

        IF itab_zycbt051-status_rd  = 'C' OR

           itab_zycbt051-status_rp  = 'C' OR

           itab_zycbt051-status_pdd = 'C' OR

           itab_zycbt051-status_apr = 'C'.

          MOVE-CORRESPONDING itab_zycbt051 TO itab_zycbt051_aux3.

          APPEND itab_zycbt051_aux3.

        ENDIF.

        MODIFY /pws/zycbt051 FROM TABLE itab_zycbt051_aux3.

        COMMIT WORK.

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

            itab_zycbt030-vlslliq = itab_zycbt030-vlslliq -

                                    itab_zycbt051-vlme.

            itab_zycbt030-vlsltrans = itab_zycbt030-vlsltrans -

                                      itab_zycbt051-vlme.

          MODIFY itab_zycbt030 TRANSPORTING vlslliq vlsltrans

                               WHERE nrinvoic = itab_zycbt051-nrinvoic

                                 AND vbeln    = itab_zycbt030-vbeln

                                 AND nrparcf  = itab_zycbt051-nrparcf

                                 AND gsberf   = itab_zycbt051-gsberf.

          MODIFY /pws/zycbt030 FROM TABLE itab_zycbt030.

* << Fim da inclusão

        IF v_apr_total EQ 'X'.

          itab_zycbt030-budat  = budat.

          itab_zycbt030-belnr6 = itab_zycbt032-belnr.

          MODIFY itab_zycbt030 TRANSPORTING belnr6 budat

                               WHERE nrinvoic = itab_zycbt051-nrinvoic

                                 AND vbeln    = itab_zycbt030-vbeln

                                 AND nrparcf  = itab_zycbt051-nrparcf

                                 AND gsberf   = itab_zycbt051-gsberf.

          MODIFY /pws/zycbt030 FROM TABLE itab_zycbt030.

        ENDIF.

...

 

...

                                      tpmsg  = 'S'.

    IF sy-subrc EQ 0.

      PERFORM executa_fb08_dp USING itab_zycbt051-dtbx_cl

                                      itab_zycbt051-belnr_pdd2.

    ELSE.

      v_est_baixa = 'X'.

    ENDIF.

  ENDIF.

  IF sy-subrc EQ 0          AND

     v_est_baixa IS INITIAL.

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

     IF v_estornopdd = 'X'.

       EXIT.

     ENDIF.

* << Fim da inclusão

    CLEAR: itab_zycbt051-dtbx_cl, itab_zycbt051-belnr_pdd2,

                                       itab_zycbt051-motivo_pdd.

    itab_zycbt051-status_pdd = 'I'.

    MODIFY itab_zycbt051.

    IF itab_zycbt051-status_rd  = 'C' OR

       itab_zycbt051-status_rp  = 'C' OR

       itab_zycbt051-status_pdd = 'C' OR

       itab_zycbt051-status_apr = 'C'.

      MOVE-CORRESPONDING itab_zycbt051 TO itab_zycbt051_aux3.

      APPEND itab_zycbt051_aux3.

...

 

...

                                        tpmsg  = 'S'.

      IF sy-subrc = 0.

        itab_contabil-nrinvoic = itab_zycbt051-nrinvoic.

        itab_contabil-docto    = itab_zycbt032-belnr.

        itab_contabil-msg      = text-298.

        itab_contabil-bukrs    = /pws/zycbe005-bukrs.

        itab_contabil-dtdocto  = itab_zycbe033-budat.

        APPEND itab_contabil.

        itab_zycbt030-belnr6 = itab_zycbt032-belnr.

        itab_zycbt030-budat  = itab_zycbe033-budat.

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

        MODIFY itab_zycbt030 TRANSPORTING belnr6 budat

* << Fim da exclusão

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

        itab_zycbt030-vlslliq = itab_zycbt030-vlslliq +

                                itab_zycbt051-vlme.

        itab_zycbt030-vlsltrans = itab_zycbt030-vlsltrans +

                                  itab_zycbt051-vlme.

        MODIFY itab_zycbt030 TRANSPORTING belnr6 budat vlslliq vlsltrans

* << Fim da inclusão

              WHERE nrinvoic = itab_zycbt030-nrinvoic AND

                    gsberf   = itab_zycbt030-gsberf   AND

                    nrparcf  = itab_zycbt030-nrparcf  AND

                    vbeln    = itab_zycbt030-vbeln.

        MODIFY /pws/zycbt030 FROM itab_zycbt030.

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

       CLEAR: itab_zycbt051-dtbx_cl,

              itab_zycbt051-belnr_pdd2,

              itab_zycbt051-motivo_pdd.

          itab_zycbt051-tpdev       = 'PD'.

          itab_zycbt051-status_pdd  = 'C'.

          itab_zycbt051-belnr_pdd1  = itab_zycbt032-belnr.

          MODIFY itab_zycbt051.

      MODIFY /pws/zycbt050 FROM /pws/zycbe050.

      LOOP AT itab_zycbt051 WHERE mark EQ 'X' AND

                            belnr_pdd1 NE space.

        IF itab_zycbt051-status_rd  = 'C' OR

           itab_zycbt051-status_rp  = 'C' OR

           itab_zycbt051-status_pdd = 'C' OR

           itab_zycbt051-status_apr = 'C'.

          MOVE-CORRESPONDING itab_zycbt051 TO itab_zycbt051_aux3.

          APPEND itab_zycbt051_aux3.

        ENDIF.

      ENDLOOP.

      MODIFY /pws/zycbt051 FROM TABLE itab_zycbt051_aux3.

      COMMIT WORK.

       v_estornopdd = 'X'.

* << Fim da inclusão

      ELSE.

        LOOP AT itab_zycbt032.

          itab_erro-msg   = itab_zycbt032-msg.

          CLEAR itab_erro-vbeln.

          APPEND itab_erro.

          MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                            itab_zycbt032-msg+50(50).

        ENDLOOP.

        v_est_baixa = 'X'.

      ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F09

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009TOP

 

...

  v_gsberf        VALUE space,

  v_fkdat         VALUE space,

  v_kunag         VALUE space,

  v_dtvencto      VALUE space,

  v_dtbl          VALUE space,

  v_inco1         VALUE space,

  v_tpcontrdescr  LIKE /pws/zycbt016-txtdesc,

  v_negdescr      LIKE lfa1-name1,

  v_findescr      LIKE lfa1-name1,

  v_msg(100)      TYPE c,

* >> Início da inclusão:

  v_estornopdd(1) TYPE c,

* << Fim da inclusão

  v_tstwaers(1)   TYPE c,

  v_msg1(100)     TYPE c,

  v_msg2(100)     TYPE c,

  v_encontrou(1)  TYPE c,

  v_ind_pro       TYPE c,

  v_ind_vencto1   TYPE c,

  v_ind_vencto2   TYPE c,

  v_ind_mudanca   TYPE c,

  v_ind_mudanca1  TYPE c,

  v_ind_errocont  TYPE c,

...