CE PLUS - Nota 002878

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 12/01/2007 00:00:00

Data/Hora Última Alteração: 03/02/2010 17:53:57

Descrição da Nota: AJUSTE NA CONVERSÃO DA QUANTIDADE NA UM ESTATISTICA NO EMBARQUE

Sintoma

 

Ao criar um embarque se o usuário não entrar nos detalhes do Item o programa não esta gravando os

dados referentes à Quantidade na UM Estatistica.

Nos casos em que as unidades de medida base e estatistica são diferentes, o programa esta

considerando sempre uma paridade de 1 para 1, favor ajustar para realizar a conversão conforme o

programa de LI realiza.

Quando entramos modificando o embarque e incluimos novos pedidos e programa não esta gravando os

dados

 

Solução

 

Ajustado o programa para calcular a Quantidade na UM Estatistica ao atualizar os itens na pasta

Pedidos e ao incluir novo pedido e salvar, o mesmo será incluído na tabela.

Versões Tratadas

6.0

Informações Complementares

 

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

Nota Número 02878 Data: 12/01/2007 Hora: 15:40:19

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

 

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

Nota Número              : 02878

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00026

Agrupamento              : 00148

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

AJUSTE NA CONVERSÃO DA QUANTIDADE NA UM ESTATISTICA NO EMBARQUE

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

Palavras Chave:

/PWS/ZYCIT003, FORM QTD_EST, ITAB_ZYCIT003

PERFORM CONVERTE_UM_NCM

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

Objetos da nota:

REPS /PWS/MZYCI001F01

REPS /PWS/MZYCI001F03

REPS /PWS/MZYCI001I01

REPS /PWS/MZYCI001O01

REPT /PWS/SAPMZYCI001

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F01

 

...

                        AND tpli    = 'S'.

    ENDIF.

  ENDIF.

  MOVE: space TO itab_zycit003-nrseqlsi   ,

        space TO itab_zycit003-nrlsisub   ,

        space TO itab_zycit003-nrlsi      .

  MODIFY itab_zycit003.

  MESSAGE s015 WITH text-115.

ENDFORM.

FORM qtd_est.

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

  CHECK sy-tcode EQ '/PWS/ZYCI001_C'.

  CHECK /pws/zycie003-qtdeumest IS INITIAL.

  CASE v_zzum.

    WHEN '11' OR

         '17' OR

         '20'   .

      /pws/zycie003-qtdeumest = /pws/zycie003-qtd_iten.

      v_flag_qtdest = 'X'.

    WHEN '10'.

      /pws/zycie003-qtdeumest = /pws/zycie003-ntgew.

* << Fim da exclusão

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

  CHECK sy-tcode EQ '/PWS/ZYCI001_C'

  OR sy-tcode EQ '/PWS/ZYCI001_A'.

  MOVE: itab_zycit003-qtd_iten TO itab_zycit003-qtdeumest,

        itab_zycit003-meins    TO itab_zycit003-meinsest.

  IF t001-land1 IS INITIAL.

    SELECT SINGLE *

    FROM t001

    WHERE bukrs = /pws/zycie001-bukrs.

  ENDIF.

  PERFORM converte_um_ncm USING itab_zycit003-matnr

                       CHANGING itab_zycit003-meinsest

                                itab_zycit003-qtdeumest.

  /pws/zycie003-qtdeumest = itab_zycit003-qtdeumest.

* << Fim da inclusão

      v_flag_qtdest = 'X'.

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

  ENDCASE.

* << Fim da exclusão

ENDFORM.

FORM verifica_mat_cent TABLES  p_it_ekpo STRUCTURE it_ekpo.

  DATA: cacl_matnr     LIKE ekpo-matnr        ,

        cacl_werks     LIKE ekpo-werks        .

  LOOP AT p_it_ekpo.

    IF cacl_matnr IS INITIAL.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F03

 

...

  IF v_resposta EQ 'J'.

    v_manual = 'X'.

    EXIT.

  ELSEIF v_resposta EQ 'N'.

    v_manual = 'N'.

  ELSE.

    CLEAR v_manual.

  ENDIF.

  CLEAR v_resposta.

ENDFORM.

* >> Início da inclusão:

FORM converte_um_ncm USING p_matnr

                     CHANGING p_meins

                              p_qtd.

  DATA: v_cod_umncm   LIKE /pws/zyglt204-zum ,

        v_codpais     LIKE /pws/zycev604-land1  ,

        v_meinsb      LIKE marm-meinh,

        v_um_rez      TYPE i,

        v_um_ren      TYPE i,

        v_um_rez2     TYPE i,

        v_um_ren2     TYPE i,

        v_um_rez1      LIKE marm-umrez,

        v_um_ren1      LIKE marm-umren,

        v_j_1bnbm     LIKE /pws/zycit247-j_1bnbm,

        v_umncm       LIKE /pws/zyglt204-msehi    ,

        v_qtd_ncm     LIKE /pws/zycit247-qtd_ncm.

  DATA: v_conv1       TYPE /pws/zycit245-qtd_ncm,

        v_conv2       TYPE /pws/zycit245-qtd_ncm.

  CLEAR: v_um_rez, v_um_ren, v_codpais, v_cod_umncm, v_umncm,

         v_um_rez2, v_um_ren2.

  CLEAR v_cod_umncm.

  SELECT SINGLE a~steuc INTO v_j_1bnbm

         FROM ( marc AS a INNER JOIN t001w AS b ON

                a~werks EQ b~werks )

         WHERE a~matnr EQ p_matnr

           AND a~steuc NE space

           AND b~land1 EQ t001-land1.

  IF sy-subrc EQ 0.

    SELECT SINGLE land1 /pws/zum

             FROM t604f INTO (v_codpais, v_cod_umncm)

             WHERE steuc = v_j_1bnbm.

  ENDIF.

  IF NOT v_cod_umncm IS INITIAL.

    SELECT SINGLE msehi

             FROM /pws/zyglt204 INTO (v_umncm)

             WHERE zum = v_cod_umncm.

    IF sy-subrc NE 0.

      MESSAGE i015 WITH text-436 text-437 v_j_1bnbm.

      CLEAR p_qtd.

      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             = v_umncm

         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.

      p_meins = v_umncm.

      EXIT.

    ENDIF.

  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-434 p_meins text-435 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 NOT v_cod_umncm IS INITIAL.

    IF v_meinsb NE v_umncm.

      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                   = v_umncm

       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 = v_umncm.

        IF sy-subrc NE 0.

          MESSAGE i015 WITH text-434 v_umncm text-435 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 ) ).

    p_meins = v_umncm.

  ELSE.

    IF v_j_1bnbm IS INITIAL.

      MESSAGE i015 WITH text-442 p_matnr.

    ELSE.

      MESSAGE i015 WITH text-436 text-437 v_j_1bnbm.

    ENDIF.

    CLEAR p_qtd.

    EXIT.

  ENDIF.

endform.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI001I01

 

...

  IF /pws/zycie003-qtd_iten > /pws/zycie003-menge.

    MESSAGE w061 WITH text-004 itab_zycit003-ebelp

                      text-005 itab_zycit003-ebeln.

    v_mexit = 'X'.

    EXIT.

  ELSE.

    LOOP AT itab_zycit003.

      v_indice = sy-tabix.

      IF /pws/zycie001-regime NE '14' AND /pws/zycie001-regime NE '16'.

        PERFORM atualiza_itens.

* >> Início da inclusão: MODULE ATUALIZA_ITENS

        PERFORM qtd_est.

* << Fim da inclusão

      ELSE.

      ENDIF.

      PERFORM atualiza_serv.

      MODIFY itab_zycit003 INDEX v_indice.

    ENDLOOP.

  ENDIF.

ENDMODULE.

MODULE user_command_0400 INPUT.

  CASE sy-ucomm.

    WHEN 'MODIF'.

...

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI001

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 434

 

Texto: (7 caracteres)

"Unidade"

 

Comprimento máximo: 7

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 435

 

Texto: (33 caracteres)

"não parametrizada para o material"

 

Comprimento máximo: 33

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 436

 

Texto: (48 caracteres)

"Unidade de medida Siscomex não esta corretamente"

 

Comprimento máximo: 48

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 437

 

Texto: (24 caracteres)

"parametrizada para o NCM"

 

Comprimento máximo: 24

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 442

 

Texto: (44 caracteres)

"Código NCM não parametrizado para o material"

 

Comprimento máximo: 44