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.
7.0
Produto:
Nota
Descrição
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.
...