CE PLUS - Nota 004613

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Comissão de Agente

Data/Hora da Publicação: 04/09/2007 00:00:00

Data/Hora Última Alteração: 21/02/2011 17:59:40

Descrição da Nota: COMISSÃO DE AGENTE PARA EMBARQUE COM PEDIDO DE COMPRA

Sintoma

- Ao tentar acessar o programa da Comissão de Agente em um Embarque vinculado a um Pedido de Compra

o programa é encerrado, emitindo a seguinte mensagem de erro: "Documento  não parametrizado em

/pws/zycet020".

- Termo de pagamento incorreto ao gerar a Comissão de Agente para Embarque por Pedido de Compra.

- Parceiro não é carregado ao gerar a Comissão de Agente para Embarque por Pedido de Compra.

 

 

Solução

Ajustes nos programas do Embarque e da Comissão de Agente para que a Comissão de Agente seja gerada

corretamente para Embarque gerados para Pedido de Compra.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

SALVAR COMISSÃO DE AGENTE JUNTO COM EMBARQUE

REMOÇÃO DE TRATAMENTO OBSOLETO DE ORDENS

Informações Complementares

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

Nota Número 04613 Data: 04/09/2007 Hora: 11:46:46

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

 

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

Nota Número              : 04613

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00011

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

Referência às notas relacionadas:

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

 

03363  - 00001 - 6.0    - 00026  - SALVAR COMISSÃO DE AGENTE JUNTO COM EMBARQUE

04409  - 00002 - 7.0    - 00002  - REMOÇÃO DE TRATAMENTO OBSOLETO DE ORDENS

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

COMISSÃO DE AGENTE PARA EMBARQUE COM PEDIDO DE COMPRA

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

Palavras Chave:

COMISSÃO, AGENTE, PEDIDO, COMPRA, EMBARQUE, FORNECEDOR,

TERMO, PAGAMENTO, ERRO, MENSAGEM

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

Objetos da nota:

REPS /PWS/MZYCE003F02

REPS /PWS/MZYCE017F01

REPT /PWS/SAPMZYCE017

 

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

Modificações efetuadas em REPS /PWS/MZYCE003F02

 

...

  ENDLOOP.

  p_zycet010-nrseq = p_zycet001-nrseq.

  READ TABLE p_t_zycet076[]

       INTO wa_zycet076

       WITH KEY codigo_ce = 'AG'

       TRANSPORTING codigo_r3.

  IF sy-subrc = 0.

    READ TABLE p_t_zycet002[]

         INTO wa_zycet002

         WITH KEY saida = 'X'

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

         TRANSPORTING vbeln_va.

* << Fim da exclusão

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

         TRANSPORTING vbeln_va

                      vbeln_vl

                      vbeln_vf.

* << Fim da inclusão

    IF sy-subrc = 0.

      READ TABLE p_t_vbpa[]

           INTO wa_vbpa

           WITH KEY vbeln = wa_zycet002-vbeln_va

                    parvw = wa_zycet076-codigo_r3

           TRANSPORTING lifnr.

      IF sy-subrc = 0.

        p_zycet010-lifnr = wa_vbpa-lifnr.

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

      ELSE.

        READ TABLE p_t_vbpa[]

           INTO wa_vbpa

           WITH KEY vbeln = wa_zycet002-vbeln_vl

                    parvw = wa_zycet076-codigo_r3

           TRANSPORTING lifnr.

        IF sy-subrc = 0.

          p_zycet010-lifnr = wa_vbpa-lifnr.

        ELSE.

          READ TABLE p_t_vbpa[]

            INTO wa_vbpa

            WITH KEY vbeln = wa_zycet002-vbeln_vf

                     parvw = wa_zycet076-codigo_r3

            TRANSPORTING lifnr.

              IF sy-subrc = 0.

                 p_zycet010-lifnr = wa_vbpa-lifnr.

              ENDIF.

        ENDIF.

* << Fim da inclusão

      ENDIF.

    ENDIF.

  ENDIF.

  SELECT *

      FROM /pws/zyglt321

      INTO TABLE it_zyglt321

      WHERE ktosl   = 'CAP'

        AND codeven = '004'

        AND cpor3  IN ('ZFBDT', 'ZTERM').

  READ TABLE it_zyglt321[] INTO wa_zyglt321

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCE017F01

 

...

    IF sy-subrc NE 0.

      REFRESH: itab_zycet013.

      CLEAR: itab_zycet013.

      LOOP AT itab_zycet002.

        MOVE: itab_zycet002-nrseq     TO itab_zycet013-nrseq,

              itab_zycet002-gsber     TO itab_zycet013-gsber,

              itab_zycet002-prctr     TO itab_zycet013-prctr,

              itab_zycet002-waers     TO itab_zycet013-waers.

        MOVE: itab_zycet002-nrseq     TO it013_aux-nrseq,

              itab_zycet002-gsber     TO it013_aux-gsber.

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

        IF NOT itab_zycet002-auart IS INITIAL.

* << Fim da inclusão

        READ TABLE itab_zycet020 WITH KEY auart = itab_zycet002-auart.

        IF sy-subrc EQ 0.

          IF itab_zycet020-tipodoc = 'OD' OR

             itab_zycet020-tipodoc = 'DR' OR

             itab_zycet002-shkzg   = 'X'.

            itab_zycet013-vlme     = abs( itab_zycet002-vlme ).

            itab_zycet013-vlagente = abs( itab_zycet002-vlagente ).

            MULTIPLY:

              itab_zycet013-vlme BY -1,

              itab_zycet013-vlagente BY -1.

          ELSE.

            itab_zycet013-vlme     = itab_zycet002-vlme.

            itab_zycet013-vlagente = itab_zycet002-vlagente.

          ENDIF.

        ELSE.

          MESSAGE a001

            WITH

              'Documento'(004)

              itab_zycet002-auart

              'não parametrizado em /pws/zycet020.'(005).

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

          ENDIF.

        ELSEIF itab_zycet002-ebeln IS INITIAL.

          MESSAGE a001

           WITH

             'Tipo de Documento não encontrado.'(122).

* << Fim da inclusão

        ENDIF.

        it013_aux-vlme     = itab_zycet013-vlme.

        it013_aux-vlagente = itab_zycet013-vlagente.

        COLLECT itab_zycet013.

        COLLECT it013_aux.

      ENDLOOP.

      DELETE itab_zycet013 WHERE vlme IS initial.

      DELETE it013_aux WHERE vlme IS initial.

      LOOP AT it013_aux.

        v_index = sy-tabix.

...

 

...

             WHERE nrseq = /pws/zycee001-nrseq.

      APPEND itab_zycet010.

    ENDIF.

    LOOP AT itab_zycet013 WHERE belnr NE space.

    ENDLOOP.

    IF sy-subrc NE 0.

      REFRESH: itab_zycet013.

      CLEAR: itab_zycet013.

      LOOP AT itab_zycet010.

        LOOP AT itab_zycet002.

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

          IF NOT itab_zycet002-auart IS INITIAL.

* << Fim da inclusão

          READ TABLE itab_zycet020 WITH KEY auart = itab_zycet002-auart.

          IF sy-subrc EQ 0.

            IF itab_zycet002-shkzg EQ 'X'.

              itab_zycet013-vlme     = itab_zycet002-vlme * ( -1 ).

              itab_zycet013-vlagente = itab_zycet002-vlagente * ( -1 ).

            ENDIF.

          ELSE.

            MESSAGE a001

              WITH

                'Documento'(004)

                itab_zycet002-auart

                'não parametrizado em /pws/zycet020.'(005).

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

            ENDIF.

          ELSEIF itab_zycet002-ebeln IS INITIAL.

            MESSAGE a001

             WITH

               'Tipo de Documento não encontrado.'(122).

* << Fim da inclusão

          ENDIF.

          MOVE:

            itab_zycet002-nrseq    TO itab_zycet013-nrseq,

            itab_zycet002-gsber    TO itab_zycet013-gsber,

            itab_zycet002-prctr    TO itab_zycet013-prctr,

            itab_zycet002-waers    TO itab_zycet013-waers,

            itab_zycet002-vlme     TO itab_zycet013-vlme,

            itab_zycet010-lifnr    TO itab_zycet013-lifnr,

            itab_zycet002-vlagente TO itab_zycet013-vlagente.

          COLLECT itab_zycet013.

...

 

...

  REFRESH: itab_zycet010,

           itab_vbpa.

  IF NOT itab_zycet002[] IS INITIAL.

    SELECT DISTINCT b~lifnr

           FROM /pws/zycet076 AS a INNER JOIN vbpa AS b

                                   ON a~codigo_r3 = b~parvw

           INTO TABLE itab_vbpa

           FOR ALL ENTRIES IN itab_zycet002

           WHERE a~codigo_ce EQ 'AG'

             AND b~vbeln     EQ itab_zycet002-vbeln_va

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

             AND b~lifnr     NE space.

    IF itab_vbpa[] IS INITIAL.

      SELECT DISTINCT b~lifnr

            FROM /pws/zycet076 AS a INNER JOIN vbpa AS b

                                    ON a~codigo_r3 = b~parvw

            INTO TABLE itab_vbpa

            FOR ALL ENTRIES IN itab_zycet002

            WHERE a~codigo_ce EQ 'AG'

              AND b~vbeln     EQ itab_zycet002-vbeln_vl

              AND b~lifnr     NE space.

      IF itab_vbpa[] IS INITIAL.

        SELECT DISTINCT b~lifnr

            FROM /pws/zycet076 AS a INNER JOIN vbpa AS b

                                    ON a~codigo_r3 = b~parvw

            INTO TABLE itab_vbpa

            FOR ALL ENTRIES IN itab_zycet002

            WHERE a~codigo_ce EQ 'AG'

              AND b~vbeln     EQ itab_zycet002-vbeln_vf

* << Fim da inclusão

             AND b~lifnr     NE space.

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

      ENDIF.

    ENDIF.

* << Fim da inclusão

  ENDIF.

  DESCRIBE TABLE itab_vbpa LINES v_lines.

  IF v_lines GT 1.

    MESSAGE i001 WITH text-119.

  ELSEIF v_lines EQ 1.

...

 

...

     AND ( wa_zycbt007-comis = 'A' ) ) OR itab_zycet001-parvw = 'AR' )

     AND sy-tcode = '/PWS/ZYCE017_C'.

    IF NOT itab_zycet002[] IS INITIAL.

      SELECT DISTINCT b~lifnr

             FROM /pws/zycet076 AS a INNER JOIN vbpa AS b

                                     ON a~codigo_r3 = b~parvw

             INTO TABLE itab_fornecedor

             FOR ALL ENTRIES IN itab_zycet002

             WHERE a~codigo_ce EQ 'AG'

               AND b~vbeln     EQ itab_zycet002-vbeln_va

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

               AND b~lifnr     NE space.

      IF itab_vbpa[] IS INITIAL.

        SELECT DISTINCT b~lifnr

              FROM /pws/zycet076 AS a INNER JOIN vbpa AS b

                                      ON a~codigo_r3 = b~parvw

              INTO TABLE itab_vbpa

              FOR ALL ENTRIES IN itab_zycet002

              WHERE a~codigo_ce EQ 'AG'

                AND b~vbeln     EQ itab_zycet002-vbeln_vl

                AND b~lifnr     NE space.

        IF itab_vbpa[] IS INITIAL.

          SELECT DISTINCT b~lifnr

              FROM /pws/zycet076 AS a INNER JOIN vbpa AS b

                                      ON a~codigo_r3 = b~parvw

              INTO TABLE itab_vbpa

              FOR ALL ENTRIES IN itab_zycet002

              WHERE a~codigo_ce EQ 'AG'

                AND b~vbeln     EQ itab_zycet002-vbeln_vf

* << Fim da inclusão

               AND b~lifnr     NE space.

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

        ENDIF.

      ENDIF.

* << Fim da inclusão

      DESCRIBE TABLE itab_fornecedor LINES v_lines.

      IF v_lines EQ 1.

        p_autom = 1.

        READ TABLE itab_fornecedor INDEX 1.

        IF NOT itab_zycet001-dtemb IS INITIAL.

...

 

...

          USING

            'CAP'

            '004'

            'ZTERM'

          CHANGING

            campo

            descricao.

  IF NOT campo IS INITIAL.

    CASE campo.

      WHEN 'ZTERM'.

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

        PERFORM busca_condicao_pagamento.

        zterm = itab_zycet002-zterm.

* << Fim da exclusão

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

       SELECT SINGLE zterm

           FROM /pws/zycet046

           INTO zterm

           WHERE nrseq = /pws/zycee001-nrseq.

* << Fim da inclusão

      WHEN 'ZTERMF'.

        zterm = v_zterm.

      WHEN OTHERS.

        CLEAR zterm.

    ENDCASE.

  ELSEIF NOT descricao IS INITIAL.

    zterm = descricao.

  ELSE.

    CLEAR zterm.

  ENDIF.

ENDFORM.

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

FORM busca_condicao_pagamento.

  CLEAR itab_zycet020.

  FREE  itab_zycet020.

  SELECT auart

         tipodoc

         FROM /pws/zycet020

         INTO TABLE itab_zycet020.

  LOOP AT itab_zycet020 WHERE tipodoc = 'OV' OR

                              tipodoc = 'CO' OR

                              tipodoc = 'VC'.

    CLEAR itab_zycet002.

    READ TABLE itab_zycet002 WITH KEY auart = itab_zycet020-auart.

    IF sy-subrc IS INITIAL.

      EXIT.

    ENDIF.

  ENDLOOP.

ENDFORM.

* << Fim da exclusão

FORM executa_shiftf9.

  CLEAR: /pws/zycbt039, itab_modo.

  REFRESH: itab_modo.

  SELECT * FROM /pws/zycbt039.

    itab_modo-selflag   = /pws/zycbt039-modo.

    itab_modo-varoption = /pws/zycbt039-descr.

    APPEND itab_modo.

  ENDSELECT.

  SORT itab_modo DESCENDING.

  CALL FUNCTION 'POPUP_TO_DECIDE_LIST'

...

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCE017

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 122

 

Texto: (33 caracteres)

"Tipo de Documento não encontrado."

 

Comprimento máximo: 33