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.
Não Usar - 2.00.0000
Produto:
Nota
Descrição
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)
...