CE PLUS - Nota 003742

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Recebimento

Data/Hora da Publicação: 23/05/2007 00:00:00

Data/Hora Última Alteração: 23/02/2011 09:53:36

Descrição da Nota: CLASSIFICAÇÂO CONTABIL MULTIPLA M8 321ITEM DE PEDIDO EXISTE VÁRIAS NO DO

Sintoma

Ao realizar o recebimento com classificação contábil multipla está dando a seguinte mensagem

"M8 321 item de pedido existe várias no documento".

 

 

Solução

Atualização nos programas de Fatura ( Recebimento de Serviços ) e de Recebimento, para preencher

corretamente os dados da BAPI no momento de gerar o recebimento em cenários de classificação

contábil múltipla.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

RECEBIMENTO - CLASSIFICAÇÃO MÚLTIPLA

Informações Complementares

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

Nota Número 03742 Data: 23/05/2007 Hora: 15:11:43

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

 

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

Nota Número              : 03742

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00167

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

Referência às notas relacionadas:

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

 

03066  - 00001 - 6.0    - 00026  - RECEBIMENTO - CLASSIFICAÇÃO MÚLTIPLA

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

CLASSIFICAÇÂO CONTABIL MULTIPLA M8 321ITEM DE PEDIDO EXISTE VÁRIAS NO DO

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

Palavras Chave:

M8 321 - CLASSIFICAÇÂO CONTABIL MULTIPLA - MIRO -

ITEM DE PEDIDO EXISTE VÁRIAS NO DOCUMENTO

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

Objetos da nota:

REPS /PWS/MZYCI003F02

REPS /PWS/MZYCI017F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F02

 

...

  ENDLOOP.

  APPEND itab_zycie033.

  IF NOT itab_zycit031[] IS INITIAL.

    SELECT ebeln ebelp bprme twrkz FROM ekpo INTO TABLE itab_ekpo

      FOR ALL ENTRIES IN itab_zycit031

      WHERE ebeln = itab_zycit031-ebeln

        AND ebelp = itab_zycit031-ebelp.

  ENDIF.

  LOOP AT itab_zycit031.

    READ TABLE itab_ekpo WITH KEY ebeln = itab_zycit031-ebeln

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

                                       ebelp = itab_zycit031-ebelp

                                       twrkz = space.

* << Fim da exclusão

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

                                       ebelp = itab_zycit031-ebelp.

* << Fim da inclusão

    IF sy-subrc EQ 0.

      v_cont = v_cont + 1.

      itab_itemdata-invoice_doc_item = v_cont.

      itab_itemdata-po_number        = itab_zycit031-ebeln.

      itab_itemdata-po_item          = itab_zycit031-ebelp.

      itab_itemdata-tax_code         = itab_zycie033-mwskz.

      itab_itemdata-item_amount      = itab_zycit031-wrbtr.

      itab_itemdata-quantity         = itab_zycit031-menge.

      itab_itemdata-po_unit          = itab_zycit031-meins.

      itab_itemdata-po_unit_iso      = itab_zycit031-meins.

...

 

...

      IF sy-subrc EQ 0.

        CLEAR v_indice.

        LOOP AT itab_ekkn_mult WHERE ebeln = itab_zycit031-ebeln AND

                                     ebelp = itab_zycit031-ebelp.

          v_indice = v_indice + 1.

        ENDLOOP.

        CLEAR:  v_cont2, v_quantity, v_amount.

        LOOP AT itab_ekkn_mult WHERE ebeln = itab_zycit031-ebeln AND

                                     ebelp = itab_zycit031-ebelp.

          v_cont2 = v_cont2 + 1.

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

          v_cont = v_cont + 1.

          itab_itemdata-invoice_doc_item = v_cont.

          itab_itemdata-po_number        = itab_zycit031-ebeln.

          itab_itemdata-po_item          = itab_zycit031-ebelp.

          itab_itemdata-tax_code         = itab_zycie033-mwskz.

* << Fim da exclusão

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

          read table itab_itemdata

                    with key po_number = itab_zycit031-ebeln

                             po_item   = itab_zycit031-ebelp.

* << Fim da inclusão

          IF v_cont2 = v_indice.

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

            v_item_amount             =  itab_zycit031-wrbtr - v_amount.

            itab_itemdata-quantity    = itab_zycit031-menge -

* << Fim da exclusão

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

            v_item_amount =  itab_zycit031-wrbtr - v_amount.

            itab_account-quantity = itab_zycit031-menge -

* << Fim da inclusão

                   v_quantity.

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

            itab_itemdata-item_amount = v_item_amount.

* << Fim da exclusão

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

            itab_account-item_amount = v_item_amount.

* << Fim da inclusão

          ELSE.

            v_item_amount2 = itab_zycit031-wrbtr

                    /  100 * itab_ekkn_mult-vproz .

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

            itab_account-quantity = itab_zycit031-menge

* << Fim da inclusão

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

            itab_itemdata-quantity = itab_zycit031-menge

* << Fim da exclusão

                    /  100 * itab_ekkn_mult-vproz .

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

            v_quantity = v_quantity + itab_account-quantity.

* << Fim da inclusão

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

            v_quantity = v_quantity + itab_itemdata-quantity.

* << Fim da exclusão

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

            itab_account-item_amount = v_item_amount2.

            v_amount = v_amount + itab_account-item_amount.

* << Fim da inclusão

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

            v_item_amount2 = v_item_amount2 *

                itab_itemdata-quantity.

            itab_itemdata-item_amount = v_item_amount2.

            v_amount = v_amount + itab_itemdata-item_amount.

* << Fim da exclusão

          ENDIF.

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

          itab_itemdata-po_unit = itab_zycit031-meins.

          itab_itemdata-po_unit_iso   = itab_zycit031-meins.

          itab_itemdata-po_pr_uom     = itab_ekpo-bprme.

          itab_itemdata-po_pr_uom_iso = itab_ekpo-bprme.

          APPEND itab_itemdata.

* << Fim da exclusão

         itab_account-invoice_doc_item = itab_itemdata-invoice_doc_item.

          itab_account-serial_no        = itab_ekkn_mult-zekkn.

 

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

          IF itab_zycie033-mwskz IS INITIAL.

            SELECT SINGLE mwskz FROM ekpo

                INTO itab_zycie033-mwskz

                WHERE ebeln EQ itab_zycit003-ebeln

                  AND ebelp EQ itab_zycit003-ebelp.

          ENDIF.

* << Fim da inclusão

 

          itab_account-tax_code         = itab_zycie033-mwskz.

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

          itab_account-item_amount      = itab_itemdata-item_amount.

          itab_account-quantity         = itab_itemdata-quantity.

* << Fim da exclusão

          itab_account-po_unit          = itab_zycit031-meins.

          itab_account-gl_account       = itab_ekkn_mult-sakto.

          itab_account-costcenter       = itab_ekkn_mult-kostl.

          itab_account-asset_no         = itab_ekkn_mult-anln1.

          itab_account-sub_number       = itab_ekkn_mult-anln2.

          itab_account-orderid          = itab_ekkn_mult-aufnr.

          itab_account-bus_area         = itab_ekkn_mult-gsber.

          itab_account-profit_ctr       = itab_ekkn_mult-prctr.

          itab_account-wbs_elem         = itab_ekkn_mult-ps_psp_pnr.

          APPEND itab_account.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI017F01

 

...

  APPEND itab_zycie033.

  IF NOT itab_zycit031[] IS INITIAL.

    SELECT ebeln ebelp bprme twrkz FROM ekpo INTO TABLE itab_ekpo

      FOR ALL ENTRIES IN itab_zycit031

      WHERE ebeln = itab_zycit031-ebeln

        AND ebelp = itab_zycit031-ebelp.

  ENDIF.

  LOOP AT itab_zycit031.

    v_tabix = sy-tabix.

    READ TABLE itab_ekpo WITH KEY ebeln = itab_zycit031-ebeln

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

                                       ebelp = itab_zycit031-ebelp

                                       twrkz = space.

* << Fim da exclusão

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

                                       ebelp = itab_zycit031-ebelp.

* << Fim da inclusão

    IF sy-subrc EQ 0.

      v_cont = v_cont + 1.

      itab_itemdata-invoice_doc_item = v_cont          .

      itab_itemdata-po_number     = itab_zycit031-ebeln.

      itab_itemdata-po_item       = itab_zycit031-ebelp.

      itab_itemdata-tax_code      = wa_zycit000-iva    .

      IF t001-land1 EQ 'CL'.

        PERFORM trata_decimais USING itab_zycit031-waers

                               CHANGING itab_zycit031-wrbtr.

        MODIFY itab_zycit031 INDEX v_tabix.

...

 

...

      IF sy-subrc EQ 0.

        CLEAR v_indice.

        LOOP AT itab_ekkn_mult WHERE ebeln = itab_zycit031-ebeln AND

                                  ebelp = itab_zycit031-ebelp.

          v_indice = v_indice + 1.

        ENDLOOP.

        CLEAR:  v_cont2, v_quantity, v_amount.

        LOOP AT itab_ekkn_mult WHERE ebeln = itab_zycit031-ebeln AND

                                  ebelp = itab_zycit031-ebelp.

          v_cont2 = v_cont2 + 1.

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

          v_cont = v_cont + 1.

          itab_itemdata-invoice_doc_item = v_cont.

          itab_itemdata-po_number = itab_zycit031-ebeln.

          itab_itemdata-po_item = itab_zycit031-ebelp.

          itab_itemdata-tax_code = wa_zycit000-iva.

* << Fim da exclusão

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

          read table itab_itemdata

                    with key po_number = itab_zycit031-ebeln

                             po_item   = itab_zycit031-ebelp.

* << Fim da inclusão

          IF v_cont2 = v_indice.

            v_item_amount =  itab_zycit031-wrbtr - v_amount.

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

            itab_itemdata-quantity = itab_zycit031-menge -

* << Fim da exclusão

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

            itab_account-quantity = itab_zycit031-menge -

* << Fim da inclusão

                   v_quantity.

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

            itab_itemdata-item_amount = v_item_amount.

* << Fim da exclusão

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

            itab_account-item_amount = v_item_amount.

* << Fim da inclusão

          ELSE.

            v_item_amount2 = itab_zycit031-wrbtr

                    /  100 * itab_ekkn_mult-vproz .

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

            itab_itemdata-quantity = itab_zycit031-menge

* << Fim da exclusão

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

            itab_account-quantity = itab_zycit031-menge

* << Fim da inclusão

                    /  100 * itab_ekkn_mult-vproz .

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

            v_quantity = v_quantity + itab_itemdata-quantity.

            itab_itemdata-item_amount = v_item_amount2.

            v_amount = v_amount + itab_itemdata-item_amount.

* << Fim da exclusão

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

            v_quantity = v_quantity + itab_account-quantity.

            itab_account-item_amount = v_item_amount2.

            v_amount = v_amount + itab_account-item_amount.

* << Fim da inclusão

          ENDIF.

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

          itab_itemdata-po_unit = itab_zycit031-meins.

          itab_itemdata-po_unit_iso   = itab_zycit031-meins.

          itab_itemdata-po_pr_uom     = itab_ekpo-bprme.

          itab_itemdata-po_pr_uom_iso = itab_ekpo-bprme.

          APPEND itab_itemdata.

* << Fim da exclusão

         itab_account-invoice_doc_item = itab_itemdata-invoice_doc_item.

          itab_account-serial_no        = itab_ekkn_mult-zekkn.

 

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

          IF wa_zycit000-iva IS INITIAL.

            SELECT SINGLE mwskz FROM ekpo

                INTO wa_zycit000-iva

                WHERE ebeln EQ itab_zycit003-ebeln

                  AND ebelp EQ itab_zycit003-ebelp.

          ENDIF.

* << Fim da inclusão

 

 

          itab_account-tax_code         = wa_zycit000-iva.

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

          itab_account-item_amount      = itab_itemdata-item_amount.

          itab_account-quantity         = itab_itemdata-quantity.

* << Fim da exclusão

          itab_account-po_unit          = itab_zycit031-meins.

          itab_account-gl_account       = itab_ekkn_mult-sakto.

          itab_account-costcenter       = itab_ekkn_mult-kostl.

          itab_account-asset_no         = itab_ekkn_mult-anln1.

          itab_account-sub_number       = itab_ekkn_mult-anln2.

          itab_account-orderid          = itab_ekkn_mult-aufnr.

          itab_account-bus_area         = itab_ekkn_mult-gsber.

          itab_account-profit_ctr       = itab_ekkn_mult-prctr.

          itab_account-wbs_elem         = itab_ekkn_mult-ps_psp_pnr.

          APPEND itab_account.

...