Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Recebimento
Data/Hora da Publicação: 03/07/2007 00:00:00
Data/Hora Última Alteração: 23/02/2011 09:53:58
Descrição da Nota: PREENCHE A QUANTIDADE NA UNIDADE DO PREÇO DO PEDIDO NA BAPI(MIRO).
Sintoma
Preencher na bapi para o lançamento da MIRO a quantidade na unidade do preço do pedido. Mensagem de
erro : "M8 420 Quantidade em unidade do preço do pedido leva a histórico do pedido incorreto."
Solução
Preencher na bapi para o lançamento da MIRO a quantidade na unidade do preço do pedido.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04092 Data: 03/07/2007 Hora: 15:51:09
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04092
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00002
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03742 - 00001 - 7.0 - 00001 - CLASSIFICAÇÂO CONTABIL MULTIPLA M8 321ITEM DE PEDIDO EXISTE VÁRIA
----------------------------------------------------------------------------------------------------
PREENCHE A QUANTIDADE NA UNIDADE DO PREÇO DO PEDIDO NA BAPI(MIRO).
----------------------------------------------------------------------------------------------------
Palavras Chave:
PREENCHE - QUANTIDADE - UNIDADE - PREÇO - PEDIDO - BAPI - MIRO
M8 420 QUANTIDADE EM UNIDADE DO PREÇO DO PEDIDO LEVA A HISTÓRICO DO PEDI
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI017F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017F01
...
LOOP AT itab_zycit031.
v_tabix = sy-tabix.
READ TABLE itab_ekpo WITH KEY ebeln = itab_zycit031-ebeln
ebelp = itab_zycit031-ebelp.
IF sy-subrc EQ 0.
v_cont = v_cont + 1.
* >> Início da inclusão: FORM FILL_DATE_MR1M
READ TABLE itab_zycit003 WITH KEY ebeln = itab_itens_nf-ebeln
ebelp = itab_itens_nf-ebelp.
PERFORM converte_unidades USING itab_zycit003-matnr
itab_zycit003-meins
itab_ekpo-bprme
CHANGING itab_zycit003-menge.
itab_itemdata-po_pr_qnt = itab_zycit003-menge.
* << Fim da inclusão
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 .
...
...
* >> Início da inclusão:
FORM converte_unidades USING p_matnr
p_meins
p_meinsd
CHANGING p_qtd.
DATA: v_meinsb LIKE marm-meinh,
v_um_rez TYPE i,
v_um_ren TYPE i,
v_um_rez1 LIKE marm-umrez,
v_um_ren1 LIKE marm-umren,
v_um_rez2 TYPE i,
v_um_ren2 TYPE i.
DATA: v_conv1 TYPE /pws/zycit245-qtd_ncm,
v_conv2 TYPE /pws/zycit245-qtd_ncm.
CLEAR: v_um_rez, v_um_ren, v_um_rez2, v_um_ren2.
IF p_meins EQ p_meinsd.
EXIT.
ENDIF.
v_conv1 = 1.
CALL FUNCTION 'UNIT_CONVERSION_SIMPLE_OLD'
EXPORTING
input = v_conv1
no_type_check = 'X'
round_sign = 'X'
unit_in = p_meins
unit_out = p_meinsd
IMPORTING
denominator = v_um_ren
numerator = v_um_rez
output = v_conv2
EXCEPTIONS
conversion_not_found = 1
division_by_zero = 2
input_invalid = 3
output_invalid = 4
overflow = 5
type_invalid = 6
units_missing = 7
unit_in_not_found = 8
unit_out_not_found = 9
OTHERS = 10.
IF sy-subrc = 0.
p_qtd = ( p_qtd / v_um_ren ) * v_um_rez.
EXIT.
ENDIF.
SELECT SINGLE meins FROM mara INTO v_meinsb
WHERE matnr EQ p_matnr.
IF v_meinsb NE p_meins.
v_conv1 = 1.
CALL FUNCTION 'UNIT_CONVERSION_SIMPLE_OLD'
EXPORTING
input = v_conv1
no_type_check = 'X'
round_sign = 'X'
unit_in = p_meins
unit_out = v_meinsb
IMPORTING
denominator = v_um_ren
numerator = v_um_rez
output = v_conv2
EXCEPTIONS
conversion_not_found = 1
division_by_zero = 2
input_invalid = 3
output_invalid = 4
overflow = 5
type_invalid = 6
units_missing = 7
unit_in_not_found = 8
unit_out_not_found = 9
OTHERS = 10.
IF sy-subrc <> 0.
SELECT SINGLE umrez umren
FROM marm INTO (v_um_rez1, v_um_ren1)
WHERE matnr = p_matnr
AND meinh = p_meins.
IF sy-subrc NE 0.
MESSAGE i015 WITH text-237 p_meins text-238 p_matnr.
CLEAR p_qtd.
EXIT.
ELSE.
v_um_rez = v_um_rez1.
v_um_ren = v_um_ren1.
ENDIF.
ENDIF.
IF v_um_rez IS INITIAL
OR v_um_ren IS INITIAL.
EXIT.
ENDIF.
ELSE.
v_um_ren = 1.
v_um_rez = 1.
ENDIF.
IF v_meinsb NE p_meinsd.
v_conv1 = 1.
CALL FUNCTION 'UNIT_CONVERSION_SIMPLE_OLD'
EXPORTING
input = v_conv1
no_type_check = 'X'
round_sign = 'X'
unit_in = v_meinsb
unit_out = p_meinsd
IMPORTING
denominator = v_um_rez2
numerator = v_um_ren2
output = v_conv2
EXCEPTIONS
conversion_not_found = 1
division_by_zero = 2
input_invalid = 3
output_invalid = 4
overflow = 5
type_invalid = 6
units_missing = 7
unit_in_not_found = 8
unit_out_not_found = 9
OTHERS = 10.
IF sy-subrc <> 0.
SELECT SINGLE umrez umren
FROM marm INTO (v_um_rez1, v_um_ren1)
WHERE matnr = p_matnr
AND meinh = p_meinsd.
IF sy-subrc NE 0.
MESSAGE i015 WITH text-237 p_meinsd text-238 p_matnr.
CLEAR p_qtd.
EXIT.
ELSE.
v_um_rez2 = v_um_rez1.
v_um_ren2 = v_um_ren1.
ENDIF.
ENDIF.
IF v_um_rez IS INITIAL
OR v_um_ren IS INITIAL.
EXIT.
ENDIF.
ELSE.
v_um_ren2 = 1.
v_um_rez2 = 1.
ENDIF.
p_qtd = p_qtd *
( ( v_um_rez / v_um_ren ) * ( v_um_ren2 / v_um_rez2 ) ).
ENDFORM.
* << Fim da inclusão
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 237
Texto: (7 caracteres)
"Unidade"
Comprimento máximo: 7
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 238
Texto: (38 caracteres)
"não está parametrizado para o material"
Comprimento máximo: 38