CE PLUS - Nota 004092

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.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

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

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