Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Recebimento
Data/Hora da Publicação: 30/10/2009 00:00:00
Data/Hora Última Alteração: 23/02/2011 09:59:00
Descrição da Nota: AJUSTADO TRATAMENTO PARA ABERTURA OU FECHAMENTO DO CAMPO DEPÓSITO.
Sintoma
No recebimento de pedido com classificação contabil o campo depósito está fechado porém está
exibindo mensgem de erro no batch-input da migo informando que o campo depósito não está preenchido.
Solução
Ajustado tratamento de abertura do o campo depósito no recebimento para ficar de acordo com o
realizado pela MIGO.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 09294 Data: 30/10/2009 Hora: 14:37:46
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 09294
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00001
Agrupamento : 00001
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
05840 - 00001 - 7.0 - 00004 - NÃO ATUALIZA DADOS DO LOTE CORRETAMENTE
08318 - 00002 - 7.0 - 00009 - DESENVOLVIMENTO NACIONALIZAÇÃO DE ADMISSÃO TEMPORÁRIA
08430 - 00003 - 7.0 - 00009 - NO MODO EXIBIÇÃO, ALGUMAS FUNCIONALIDADES FICAM COM CAMPO ABERTO
09210 - 00004 - 8.0 - 00001 - AO MODIFICAR EMBARQUE DE UM PEDIDO, PERMITE CRIAR RECEBIMENTO POR
----------------------------------------------------------------------------------------------------
AJUSTADO TRATAMENTO PARA ABERTURA OU FECHAMENTO DO CAMPO DEPÓSITO.
----------------------------------------------------------------------------------------------------
Palavras Chave:
RECEBIMENTO - TRATAMENTO - CAMPO - DEPÓSITO - FECHAR - ABRIR
/PWS/SAPMZYCI017
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI017F01
REPS /PWS/MZYCI017F03
REPS /PWS/MZYCI017O01
REPS /PWS/MZYCI017X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017F01
...
AND a~ebeln = b~ebeln
AND a~ebelp = b~ebelp
INTO CORRESPONDING FIELDS OF TABLE itab_zycit044
WHERE a~nrseqnf = /pws/zycie043-nrseq
AND a~nfglobal = /pws/zycie043-nfglobal
AND a~nfremessa = /pws/zycie043-nfremessa
AND a~docnum = /pws/zycie043-docnum.
IF NOT itab_zycit044[] IS INITIAL.
PERFORM lock_pedido .
SELECT ebeln ebelp matnr lgort knttp
* >> Início da inclusão: FORM CHAMAR_NFREMESSA
werks sobkz
* << Fim da inclusão
FROM ekpo INTO TABLE itab_deposito
FOR ALL ENTRIES IN itab_zycit044
WHERE ebeln = itab_zycit044-ebeln
AND ebelp = itab_zycit044-ebelp.
* >> Início da inclusão: FORM CHAMAR_NFREMESSA
PERFORM verif_lote.
* << Fim da inclusão
ENDIF.
CLEAR: v_tabix.
CLEAR itab_deposito.
LOOP AT itab_deposito.
* >> Início da exclusão: FORM CHAMAR_NFREMESSA
IF itab_deposito-knttp IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM CHAMAR_NFREMESSA
IF NOT itab_deposito-xlort IS INITIAL.
* << Fim da inclusão
CLEAR itab_zycit044.
READ TABLE itab_zycit044 WITH KEY ebeln = itab_deposito-ebeln
ebelp = itab_deposito-ebelp.
IF sy-subrc = 0.
v_tabix = sy-tabix.
IF NOT /pws/zycie044-lgort IS INITIAL.
MOVE: /pws/zycie044-lgort TO itab_zycit044-lgort,
/pws/zycie044-lgort TO itab_deposito-lgort.
MODIFY itab_zycit044 INDEX v_tabix.
MODIFY itab_deposito INDEX v_tabix.
...
...
READ TABLE itab_nf INDEX v_pos.
MOVE-CORRESPONDING itab_nf TO /pws/zycie041.
FREE itab_zycit042.
SELECT * FROM /pws/zycit042
INTO CORRESPONDING FIELDS OF TABLE itab_zycit042
WHERE nrseqnf = /pws/zycie041-nrseq
AND nfglobal = /pws/zycie041-nfglobal
AND docnum = /pws/zycie041-docnum .
IF NOT itab_zycit042[] IS INITIAL.
SELECT ebeln ebelp matnr lgort knttp
* >> Início da inclusão: FORM CHAMAR_NFGLOBAL
werks sobkz
* << Fim da inclusão
FROM ekpo INTO TABLE itab_deposito
FOR ALL ENTRIES IN itab_zycit042
WHERE ebeln = itab_zycit042-ebeln
AND ebelp = itab_zycit042-ebelp.
* >> Início da inclusão: FORM CHAMAR_NFGLOBAL
PERFORM verif_lote.
* << Fim da inclusão
ENDIF.
CLEAR: v_tabix.
CLEAR itab_deposito.
LOOP AT itab_deposito.
* >> Início da exclusão: FORM CHAMAR_NFGLOBAL
IF itab_deposito-knttp IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM CHAMAR_NFGLOBAL
IF NOT itab_deposito-xlort IS INITIAL.
* << Fim da inclusão
CLEAR itab_zycit042.
READ TABLE itab_zycit042 WITH KEY ebeln = itab_deposito-ebeln
ebelp = itab_deposito-ebelp.
IF sy-subrc = 0.
v_tabix = sy-tabix.
IF itab_zycit042-lgort IS INITIAL AND
NOT itab_deposito-lgort IS INITIAL.
MOVE itab_deposito-lgort TO itab_zycit042-lgort.
MODIFY itab_zycit042 INDEX v_tabix.
ELSE.
...
...
ENDLOOP.
ENDIF.
IF v_sair NE space.
EXIT.
ENDIF.
CLEAR v_receb.
IF v_existe_nfr EQ 'S'.
LOOP AT itab_zycit044 WHERE lgort IS initial.
READ TABLE itab_deposito WITH KEY ebeln = itab_zycit044-ebeln
ebelp = itab_zycit044-ebelp.
* >> Início da exclusão: FORM EXECUTA_BATCH_INPUT
IF itab_deposito-knttp IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_BATCH_INPUT
IF NOT itab_deposito-xlort IS INITIAL.
* << Fim da inclusão
v_receb = 'X'.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT itab_zycit042 WHERE lgort IS initial.
READ TABLE itab_deposito WITH KEY ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
* >> Início da exclusão: FORM EXECUTA_BATCH_INPUT
IF itab_deposito-knttp IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_BATCH_INPUT
IF NOT itab_deposito-xlort IS INITIAL.
* << Fim da inclusão
v_receb = 'X'.
ENDIF.
ENDLOOP.
ENDIF.
IF v_receb = 'X' AND /pws/zycie001-regime NE '16'
AND /pws/zycie001-regime NE '13' .
MESSAGE w015 WITH text-044.
ELSEIF /pws/zycie001-regime EQ '16' AND /pws/zycie001-tpdecl = 'DI'.
MESSAGE i015 WITH text-108 text-113 text-109 text-110.
ELSEIF /pws/zycie001-regime EQ '13'
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017F03
...
* >> Início da inclusão:
FORM verif_lote.
DATA: itab_t134m TYPE t134m OCCURS 0 WITH HEADER LINE,
v_kzwes TYPE t156-kzwes,
v_bwart TYPE t156-bwart VALUE '101'.
DATA: BEGIN OF itab_mara OCCURS 0,
matnr TYPE mara-matnr,
mtart TYPE mara-mtart,
END OF itab_mara.
DATA: BEGIN OF itab_t001w OCCURS 0,
werks TYPE t001w-werks,
bwkey TYPE t001w-bwkey,
END OF itab_t001w.
DATA: s_bwkey TYPE RANGE OF t001w-bwkey WITH HEADER LINE,
s_mtart TYPE RANGE OF mara-mtart WITH HEADER LINE.
SELECT DISTINCT matnr mtart FROM mara
INTO TABLE itab_mara
FOR ALL ENTRIES IN itab_deposito
WHERE matnr EQ itab_deposito-matnr.
LOOP AT itab_mara.
s_mtart-low = itab_mara-mtart.
s_mtart-sign = 'I'.
s_mtart-option = 'EQ'.
APPEND s_mtart.
ENDLOOP.
SELECT DISTINCT werks bwkey FROM t001w
INTO TABLE itab_t001w
FOR ALL ENTRIES IN itab_deposito
WHERE werks EQ itab_deposito-werks.
LOOP AT itab_t001w.
s_bwkey-low = itab_t001w-bwkey.
s_bwkey-sign = 'I'.
s_bwkey-option = 'EQ'.
APPEND s_bwkey.
ENDLOOP.
SELECT DISTINCT * FROM t134m
INTO TABLE itab_t134m
WHERE bwkey IN s_bwkey
AND mtart IN s_mtart.
IF NOT itab_nf-bwartwe IS INITIAL.
v_bwart = itab_nf-bwartwe.
ENDIF.
SELECT SINGLE kzwes FROM t156
INTO v_kzwes
WHERE bwart EQ v_bwart.
LOOP AT itab_deposito.
itab_deposito-xlort = 'X'.
READ TABLE itab_mara WITH KEY matnr = itab_deposito-matnr.
READ TABLE itab_t001w WITH KEY werks = itab_deposito-werks.
READ TABLE itab_t134m WITH KEY bwkey = itab_t001w-bwkey
mtart = itab_mara-mtart.
IF NOT itab_deposito-knttp IS INITIAL
AND ( itab_t134m-wertu = 'X' OR itab_t134m-mengu IS INITIAL )
AND NOT ( itab_deposito-sobkz CA 'EQ' ).
CLEAR itab_deposito-xlort.
ENDIF.
IF NOT itab_deposito-knttp IS INITIAL AND
NOT ( itab_deposito-sobkz CA 'EQ' ).
CLEAR itab_deposito-xlort.
ENDIF.
IF itab_deposito-sobkz CA 'OPVW'.
CLEAR itab_deposito-xlort.
ENDIF.
IF v_kzwes = 'S'.
CLEAR itab_deposito-xlort.
ENDIF.
MODIFY itab_deposito.
ENDLOOP.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017O01
...
MODULE set_screen_tc_nfg OUTPUT.
LOOP AT SCREEN.
IF sy-tcode NE '/PWS/ZYCI017_E'.
IF screen-name = '/PWS/ZYCIE042-LGORT'.
READ TABLE itab_deposito WITH KEY ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
IF sy-subrc = 0.
* >> Início da exclusão: MODULE SET_SCREEN_TC_NFG
IF itab_deposito-knttp IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN_TC_NFG
IF NOT itab_deposito-xlort IS INITIAL.
* << Fim da inclusão
screen-input = 1.
ENDIF.
ENDIF.
IF NOT /pws/zycie041-mblnr_mb01 IS INITIAL.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
ENDMODULE.
MODULE set_screen_tc_nfr OUTPUT.
LOOP AT SCREEN.
IF screen-name = '/PWS/ZYCIE044-LGORT'.
READ TABLE itab_deposito WITH KEY ebeln = itab_zycit044-ebeln
ebelp = itab_zycit044-ebelp.
IF sy-subrc = 0.
* >> Início da exclusão: MODULE SET_SCREEN_TC_NFR
IF itab_deposito-knttp IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN_TC_NFR
IF NOT itab_deposito-xlort IS INITIAL.
* << Fim da inclusão
screen-input = 1.
ENDIF.
ENDIF.
IF NOT /pws/zycie043-mblnr_mb01 IS INITIAL.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDMODULE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017X01
...
DATA: BEGIN OF itab_deposito OCCURS 0,
ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
lgort LIKE ekpo-lgort,
knttp LIKE ekpo-knttp,
* >> Início da inclusão:
werks TYPE ekpo-werks,
sobkz TYPE ekpo-sobkz,
xlort TYPE goitem-xlort,
* << Fim da inclusão
END OF itab_deposito.
...