Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Recebimento
Data/Hora da Publicação: 21/01/2014 08:50:39
Data/Hora Última Alteração: 21/01/2014 08:52:21
Descrição da Nota: TRATAMENTO DE QUEBRA DA INBOUND EM LOTES
Sintoma
Está levando todas as linhas da partição de lote da inbound para o recebimento, inclusive com
quantidade zero.
Solução
Ajustado programa de recebimento para tratar processos de Inbound com quebra em lotes.
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 13596 Data: 20/01/2014 Hora: 10:02:21
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 13596
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 9.0
Pacote : 00007
Agrupamento : 00170
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
12767 - 00001 - 9.0 - 00003 - ERRO NO BATCH-INPUT CAMPO QCERT_MIGO-ANSWER NÃO EXISTENTE NA TELA
13532 - 00002 - 9.0 - 00006 - ERRO NO RECEBIMENTO COM INBOUND
----------------------------------------------------------------------------------------------------
TRATAMENTO DE QUEBRA DA INBOUND EM LOTES
----------------------------------------------------------------------------------------------------
Palavras Chave:
REACEBIMENTO - INBOUND - QUEBRA - LOTE
/PWS/SAPMZYCI017
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_INBOUND_DELIVERY
FUNC /PWS/ZYCI_TRANSACAO_MIGO
REPS /PWS/MZYCI017F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_INBOUND_DELIVERY
...
APPEND t_zycit032.
ENDIF.
ENDLOOP.
IF NOT t_zycit032[] IS INITIAL.
EXIT.
ENDIF.
CLEAR: t_ekes, t_ekes[].
SELECT * FROM ekes INTO TABLE t_ekes
FOR ALL ENTRIES IN t_zycit511
WHERE vbeln = t_zycit511-inbound_delivery. "#EC CI_NOFIELD
* >> Início da exclusão: FUNCTION /PWS/ZYCI_INBOUND_DELIVERY
DELETE t_ekes WHERE dabmg <> '0.000'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_INBOUND_DELIVERY
CLEAR t_ekes.
DELETE t_ekes WHERE dabmg <> '0.000'
or menge EQ t_ekes-menge.
* << Fim da inclusão
IF nf_remessa IS INITIAL.
LOOP AT t_zycit042.
CLEAR: lv_menge, lv_qtd_iten.
lv_qtd_iten = t_zycit042-qtd_iten.
LOOP AT t_ekes WHERE ebeln = t_zycit042-ebeln
AND ebelp = t_zycit042-ebelp.
lv_menge = lv_menge + t_ekes-menge.
ENDLOOP.
IF lv_menge <> lv_qtd_iten.
t_zycit032-msg = text-059.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_TRANSACAO_MIGO
...
ENDIF.
PERFORM bdc_field USING:
'BDC_OKCODE' '=OK_GO'.
IF inbound EQ 'X'.
LOOP AT t_zycit031.
lt_ekes-vbeln = t_zycit031-vbeln.
APPEND lt_ekes.
ENDLOOP.
SORT lt_ekes.
DELETE ADJACENT DUPLICATES FROM lt_ekes.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_MIGO
SORT t_zycit031 BY vbeln ebeln ebelp.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_MIGO
SORT t_zycit031 BY vbeln ebeln ebelp vbelp.
* << Fim da inclusão
LOOP AT lt_ekes.
PERFORM bdc_screen USING 'SAPLMIGO' '0001'.
PERFORM bdc_field USING:
'BDC_OKCODE' '=OK_GO',
'BDC_CURSOR' 'GODYNPRO-INBOUND_DELIVERY',
'GODYNPRO-INBOUND_DELIVERY' lt_ekes-vbeln.
IF v_ok = 'S'.
PERFORM bdc_field USING:
'GOHEAD-OIB_BLTIME' v_time.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017F01
...
READ TABLE itab_itens_nf WITH KEY ebeln = itab_ekes-ebeln
ebelp = itab_ekes-ebelp.
itab_zycit031-tcode = itab_zycie033-tcode.
itab_zycit031-tabela = itab_zycie033-tabela.
itab_zycit031-cpochv = itab_zycie033-cpochv.
itab_zycit031-ebeln = itab_itens_nf-ebeln.
itab_zycit031-ebelp = itab_itens_nf-ebelp.
itab_zycit031-lgort = itab_itens_nf-lgort.
itab_zycit031-vbeln = itab_ekes-vbeln.
itab_zycit031-menge = itab_ekes-menge.
* >> Início da inclusão: FORM FILL_DATE_MB01
itab_zycit031-vbelp = itab_ekes-etens.
* << Fim da inclusão
CLEAR: itab_cert, v_cert_ativ.
READ TABLE itab_cert
WITH KEY ebeln = itab_itens_nf-ebeln
ebelp = itab_itens_nf-ebelp.
IF sy-subrc EQ 0 AND NOT itab_cert-zgtyp IS INITIAL.
CALL FUNCTION 'QBCK_MIGO_CERT_REL_CHECK'
EXPORTING
i_tq05_zgtyp = itab_cert-zgtyp
i_wemng = itab_zycit031-menge
i_xblnr = itab_zycie033-lfsnr
...