PW.TP - Nota 004692

Módulo: GERAL

Funcionalidade: Carga de Dados Consolidados (902)

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

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

Descrição da Nota: CARGA DE ESTOQUE 902 (AJUSTE 901)

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

AJUSTE NA EXIT TRANS_AUTORIZACAO

Informações Complementares

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

Nota Número 04692 Data: 12/09/2007 Hora: 14:01:53

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

 

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

Nota Número              : 04692

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.TP             : 2.0

Pacote                   : 00026

Agrupamento              : 00011

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

Referência às notas relacionadas:

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

 

04585  - 00001 - 2.0    - 00026  - AJUSTE NA EXIT TRANS_AUTORIZACAO

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

CARGA DE ESTOQUE 902 (AJUSTE 901)

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

Palavras Chave:

CARGA DE ESTOQUE 902 (AJUSTE 901)

 

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

Objetos da nota:

REPS /PWS/ZYTPR908

 

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

Modificações efetuadas em REPS /PWS/ZYTPR908

 

...

  PERFORM f_busca_arquivo.

  PERFORM verifica_tabela902.

END-OF-SELECTION.

  PERFORM imprime_totais.

FORM f_check_mandt USING    w_sysid     LIKE sy-sysid

                            w_mandt     LIKE sy-mandt

                   CHANGING w_mandt_exe LIKE sy-mandt.

  CLEAR w_mandt_exe.

  w_mandt_exe = w_mandt.

  CLEAR /pws/zytpt029.

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

  SELECT *

    FROM /pws/zytpt029

    UP TO 1 ROWS

* << Fim da exclusão

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

  SELECT * FROM /pws/zytpt029 UP TO 1 ROWS

* << Fim da inclusão

    WHERE ( sysid = w_sysid )

      AND ( bukrs IN p_bukrs OR bukrs = '' )

    ORDER BY sysid ASCENDING

             bukrs DESCENDING.

  ENDSELECT.

  IF sy-subrc = 0 AND NOT /pws/zytpt029-syscentral IS INITIAL.

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

    SELECT *

      FROM /pws/zytpt029

      UP TO 1 ROWS

* << Fim da exclusão

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

    SELECT * FROM /pws/zytpt029 UP TO 1 ROWS

* << Fim da inclusão

      WHERE ( sysid = /pws/zytpt029-syscentral )

        AND ( bukrs IN p_bukrs OR bukrs = '' )

      ORDER BY sysid ASCENDING

               bukrs DESCENDING.

    ENDSELECT.

    IF sy-subrc = 0 AND

       ( NOT /pws/zytpt029-mandt IS INITIAL ).

      w_mandt_exe = /pws/zytpt029-mandt.

    ENDIF.

  ENDIF.

...

 

...

      ADD 1 TO /pws/zytpt902-ano.

      /pws/zytpt902-mes = '00'.

      APPEND /pws/zytpt902 TO t_902.

      PERFORM f_carrega_901 USING /pws/zytpt902-ano.

    ENDIF.

  ENDLOOP.

  IF p_atual = 'X'.

    MODIFY /pws/zytpt902 FROM TABLE t_902.

  ELSE.

    INSERT /pws/zytpt902 FROM TABLE t_902 ACCEPTING DUPLICATE KEYS.

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

  ENDIF.

  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_zytpt902 BY bukrs_g matnr bwkey ano.

  DELETE ADJACENT DUPLICATES FROM t_zytpt902

                                      COMPARING bukrs_g matnr bwkey ano.

  SORT t_zytpt902 BY matnr.

  reg = 1.

  LOOP AT t_zytpt902 INTO wa_902.

    LOOP AT t_zytpt901 INTO wa_901 FROM reg.

      IF wa_901-matnr <> wa_902-matnr.

        reg = sy-tabix.

        EXIT.

      ENDIF.

      t_zytpt901-ano = p_ano.

      CLEAR /pws/zytpt901.

      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_TABELA902

    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.

...

 

...

      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.

  ENDIF.

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

  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.

  ENDIF.

* << Fim da exclusão

ENDFORM.

FORM f_carrega_901 USING p_ano_902.

  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 FROM t460a

            WHERE sobsl = marc-sobsl.

...

 

...

        '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.

  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)

...