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