PW.TP - Nota 004458

Módulo: GERAL

Funcionalidade: Carga de Estoque (906)

Data/Hora da Publicação: 20/08/2007 00:00:00

Data/Hora Última Alteração: 16/02/2011 10:02:20

Descrição da Nota: CARGA DE ESTOQUE

Sintoma

Não está carregando corretamente a planilha de controle, falta preencher o campo Centro. Insere

dados do ano corrente na planilha de controle, podendo gerar dados incorretos.

 

 

Solução

Atualização para atribuição correta aos campos Centro e Unidade de Medida na planilha de controle e

retirada do tratamento de inserção do registro no ano corrente.

 

Versões Tratadas

Não Usar - 2.00.0000


Pré-Requisitos

Produto:

Nota

Descrição

EXITS PARA TRATAMENTO DE AUTORIZAÇÃO

Informações Complementares

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

Nota Número 04458 Data: 20/08/2007 Hora: 11:28:42

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

 

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

Nota Número              : 04458

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.TP             : 2.0

Pacote                   : 00026

Agrupamento              : 00010

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

Referência às notas relacionadas:

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

 

04398  - 00001 - 2.0    - 00026  - EXITS PARA TRATAMENTO DE AUTORIZAÇÃO

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

CARGA DE ESTOQUE

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

Palavras Chave:

CARGA DE ESTOQUE

 

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

Objetos da nota:

REPS /PWS/ZYTPR909

 

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

Modificações efetuadas em REPS /PWS/ZYTPR909

 

...

      ADD 1 TO /pws/zytpt906-ano.

      /pws/zytpt906-mes = '00'.

      APPEND /pws/zytpt906 TO t_906.

      PERFORM f_carrega_901 USING /pws/zytpt906-ano.

    ENDIF.

  ENDLOOP.

  IF p_atual = 'X'.

    MODIFY /pws/zytpt906 FROM TABLE t_906.

  ELSE.

    INSERT /pws/zytpt906 FROM TABLE t_906 ACCEPTING DUPLICATE KEYS.

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

  ENDIF.

  DATA: v_ano LIKE /pws/zytpt901-ano.

  v_ano = p_ano + 1.

  SELECT * INTO TABLE t_zytpt901 FROM /pws/zytpt901 CLIENT SPECIFIED

         WHERE mandt IN r_mandt

           AND ( bukrs_g = /pws/zytpt021-bukrs_g OR bukrs_g = '' )

           AND ano = v_ano.

  SORT t_zytpt901 BY matnr.

  SORT t_zytpt906 BY bukrs_g matnr bwkey ano.

  DELETE ADJACENT DUPLICATES FROM t_zytpt906

                                      COMPARING bukrs_g matnr bwkey ano.

  SORT t_zytpt906 BY matnr.

  DATA: v_matnr    LIKE /pws/zytpt902-matnr,

        v_contador LIKE t_erro2-contador.

  LOOP AT t_zytpt906.

    LOOP AT t_zytpt901 WHERE matnr = t_zytpt906-matnr.

      t_zytpt901-ano = p_ano.

      MOVE-CORRESPONDING t_zytpt901 TO /pws/zytpt901.

      INSERT /pws/zytpt901 CLIENT SPECIFIED.

      IF sy-subrc NE 0.

        v_contador = t_erro2-contador + 1.

        MOVE-CORRESPONDING t_zytpt901 TO t_erro2.

        MOVE v_contador TO t_erro2-contador.

        APPEND t_erro2.

      ELSE.

        v_contador = t_gravados-contador + 1.

        MOVE-CORRESPONDING t_zytpt901 TO t_gravados.

        MOVE v_contador TO t_gravados-contador.

        APPEND t_gravados.

* << Fim da exclusão

      ENDIF.

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

    ENDLOOP.

  ENDLOOP.

* << Fim da exclusão

ENDFORM.

FORM imprime_totais.

  DESCRIBE TABLE t_file LINES w_lin_file.

  w_cont_erro = w_cont_erro1 + w_cont_erro2.

  SKIP.

...

 

...

              44 sy-vline,

         /01  sy-uline(44).

  FORMAT COLOR COL_BACKGROUND INTENSIFIED OFF.

  WRITE: /01  sy-vline, text-002 ,

              t_gravados-contador,

              44 sy-vline,

         /01  sy-vline, text-e03 ,

              t_erro2-contador, 44 sy-vline,

         /01  sy-uline(44).

  SKIP 2.

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

  IF NOT t_erro2[] IS INITIAL OR NOT t_gravados[] IS INITIAL.

* << Fim da exclusão

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

   IF NOT t_erro2[] IS INITIAL.

* << Fim da inclusão

    WRITE: / text-e08.

  ENDIF.

  IF NOT t_erro2[] IS INITIAL.

    WRITE: / text-e06.

    SKIP 1.

    WRITE:  /01 text-011,

             15 text-005,

             40 text-007,

             60 text-008.

    LOOP AT t_erro2.

...

 

...

      MOVE t_erro2-contador TO w_contador.

      CONDENSE w_contador NO-GAPS.

      WRITE:  /01 w_contador,

               15 t_erro2-bukrs_g,

               40 t_erro2-matnr,

               60 t_erro2-ano.

    ENDLOOP.

  ENDIF.

  IF NOT t_erro2[] IS INITIAL.

    SKIP 1.

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

  ENDIF.

  IF NOT t_gravados[] IS INITIAL.

    WRITE: / text-e09.

    SKIP 1.

    WRITE:  /01 text-012,

             15 text-007,

             30 text-008.

    LOOP AT t_gravados.

      WRITE:  /01 t_gravados-bukrs_g,

               15 t_gravados-matnr,

               30 t_gravados-ano.

    ENDLOOP.

* << Fim da exclusão

  ENDIF.

ENDFORM.

FORM f_carrega_901 USING p_ano_906.

  IF NOT t_arq-matnr IS INITIAL.

    CLEAR: marc-sobsl, t460a-werks.

    SELECT SINGLE sobsl INTO marc-sobsl FROM marc

           WHERE matnr = t_arq-matnr

             AND beskz = 'E'.

    IF NOT marc-sobsl IS INITIAL.

      SELECT SINGLE werks INTO t460a-werks

...

 

...

  ENDIF.

  CLEAR v_converter_medida.

  CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'

    EXPORTING

      input                = t_arq-meins

    IMPORTING

      output               = v_converter_medida

    EXCEPTIONS

      unit_not_found       = 1

      OTHERS               = 2.

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

  IF sy-subrc <> 0.

  ENDIF.

* << Fim da exclusão

  IF NOT v_converter_medida IS INITIAL.

    t_zytpt901-un_medida = v_converter_medida.

  ELSE.

    t_zytpt901-un_medida = t_arq-meins.

  ENDIF.

  MOVE: sy-mandt      TO t_zytpt901-mandt,

        t_arq-bukrs_g TO t_zytpt901-bukrs_g,

        '1'           TO t_zytpt901-tipo,

        t_arq-matnr   TO t_zytpt901-matnr,

        t_arq-peinh   TO t_zytpt901-un_preco,

...

 

...

        '2'           TO t_zytpt901-prior_parm,

        ''            TO t_zytpt901-grupo,

        ''            TO t_zytpt901-grupo_rep.

  IF p_sid IS INITIAL.

    MOVE sy-sysid TO t_zytpt901-sysid.

  ELSE.

    MOVE p_sid    TO t_zytpt901-sysid.

  ENDIF.

  IF NOT t460a-werks IS INITIAL.

    MOVE: t460a-werks TO t_zytpt901-werks.

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

    MOVE: t460a-werks TO t_zytpt901-bwkey.

* << Fim da inclusão

  ELSE.

    MOVE: t_arq-bwkey TO t_zytpt901-werks.

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

    MOVE: t_arq-bwkey TO t_zytpt901-bwkey.

* << Fim da inclusão

  ENDIF.

  MOVE: '2'           TO t_zytpt901-trib_o_es,

        '0'           TO t_zytpt901-status_mat,

        'X'           TO t_zytpt901-dpl_origem,

        ''            TO t_zytpt901-fl_check.

  MOVE-CORRESPONDING t_zytpt901 TO /pws/zytpt901.

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

  DATA: v_contador LIKE t_erro2-contador.

* << Fim da inclusão

  INSERT /pws/zytpt901 CLIENT SPECIFIED.

  IF sy-subrc NE 0.

    MODIFY /pws/zytpt901 CLIENT SPECIFIED.

  ENDIF.

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

    v_contador = t_gravados-contador + 1.

    MOVE-CORRESPONDING t_zytpt901 TO t_gravados.

    MOVE v_contador TO t_gravados-contador.

    APPEND t_gravados.

* << Fim da inclusão

ENDFORM.

FORM trata_autorizacao.

  DATA: message(255).

  CLEAR message.

  PERFORM f_trata_autorizacao(/pws/zytpx001)

          TABLES p_bukrs

           USING space

        CHANGING message   IF FOUND.

  IF NOT message IS INITIAL.

    MESSAGE i079(/pws/zytpm) WITH message(50)

...