Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 05/05/2008 00:00:00
Data/Hora Última Alteração: 22/02/2011 15:20:56
Descrição da Nota: AO VINCULAR PEDIDOS SEM SALDO NO EMBARQUE, DÁ DUMP
Sintoma
Ao vincular pedidos sem saldo no Embarque, dá dump
Solução
Verificar se há saldo antes de permitir vincular.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 06500 Data: 05/05/2008 Hora: 09:42:53
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 06500
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00005
Agrupamento : 00046
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01450 - 00001 - 6.0 - 00023 - INTERFACE PW.CE X PW.RECOF - CARGA DE EMBARQUE DE NACIONALIZAÇÃO.
03080 - 00002 - 6.0 - 00026 - EMBARQUE CAMPO PESO LIQUIDO ESTÁ VINDO EM BRANCO.
04882 - 00003 - 7.0 - 00003 - AJUSTE PARA TRATAR A QUANTIDADE EXCEDIDA DE ACORDO COM A TOLERANC
05364 - 00004 - 7.0 - 00003 - EMBARQUE: VINCULAÇÃO RECOF
05811 - 00005 - 7.0 - 00004 - INCLUSÃO DA COLUNA NCM NA SELEÇÃO AUTOMATICA PARA A DI DE NACIONA
----------------------------------------------------------------------------------------------------
AO VINCULAR PEDIDOS SEM SALDO NO EMBARQUE, DÁ DUMP
----------------------------------------------------------------------------------------------------
Palavras Chave:
PEDIDO - SALDO - EMBARQUE - DUMP
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI001F03
REPS /PWS/MZYCI001F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F01
...
ebelp = itab_itens-ebelp.
IF sy-subrc NE 0.
MOVE-CORRESPONDING itab_itens TO itab_zycit003.
MOVE: /pws/zycie001-nrseq TO itab_zycit003-nrseq.
PERFORM load_pttext USING itab_itens-matnr
itab_itens-spras.
CLEAR itab_zycit013.
READ TABLE itab_zycit013 WITH KEY ebeln = itab_itens-ebeln
ebelp = itab_itens-ebelp.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM SELECIONAR_ITENS
IF ( sy-tcode EQ '/PWS/ZYCI001_C' or
sy-tcode EQ '/PWS/ZYCI001_A' ) AND
itab_zycit013-slqtde < 0.
MESSAGE i015 WITH
text-472 itab_zycit003-ebeln
text-473 itab_zycit003-ebelp.
CONTINUE.
ENDIF.
* << Fim da inclusão
IF itab_zycit013-menge NE itab_itens-menge.
itab_zycit013-slqtde = itab_zycit013-slqtde +
( itab_itens-menge - itab_zycit013-menge ).
ELSE.
MOVE: itab_zycit013-slqtde TO itab_zycit003-slqtde.
ENDIF.
MOVE: itab_zycit013-slqtde TO itab_zycit003-slqtde,
itab_itens-menge TO itab_zycit003-menge,
itab_itens-uebto TO itab_zycit003-uebto,
itab_itens-uebtk TO itab_zycit003-uebtk.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F03
...
IF sy-subrc NE 0 OR itab_rc_aux-quantidade IS INITIAL.
DELETE itab_da INDEX v_reg.
ELSE.
itab_da-qtd_nac = itab_rc_aux-quantidade.
MODIFY itab_da FROM itab_da TRANSPORTING qtd_nac.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
IF NOT itab_da[] IS INITIAL.
* >> Início da exclusão: FORM SELECIONAR_RC
SELECT * FROM /pws/zycit003
INTO TABLE itab_zycit003_saldo
FOR ALL ENTRIES IN itab_da
WHERE ebeln EQ itab_da-ebeln
AND ebelp EQ itab_da-ebelp.
IF sy-subrc EQ 0.
SELECT nrseq regime FROM /pws/zycit001
INTO TABLE itab_zycit001_saldo
FOR ALL ENTRIES IN itab_zycit003_saldo
WHERE nrseq EQ itab_zycit003_saldo-nrseq
AND tpdecl EQ 'DI'.
READ TABLE itab_zycit482 WITH KEY
processo = '1'.
IF sy-subrc = 0.
LOOP AT itab_zycit001_saldo WHERE regime EQ '01'.
DELETE itab_zycit003_saldo
WHERE nrseq EQ itab_zycit001_saldo-nrseq.
ENDLOOP.
LOOP AT itab_da.
CLEAR v_qtdutil_da.
LOOP AT itab_zycit003_saldo WHERE ebeln EQ itab_da-ebeln
AND ebelp EQ itab_da-ebelp.
v_qtdutil_da = v_qtdutil_da + itab_zycit003_saldo-qtd_iten.
ENDLOOP.
itab_da-qtd_nac = itab_da-qtd_lote - v_qtdutil_da.
IF itab_da-qtd_nac LE 0.
DELETE itab_da.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT itab_zycit001_saldo WHERE regime EQ '04'.
DELETE itab_zycit003_saldo
WHERE nrseq EQ itab_zycit001_saldo-nrseq.
ENDLOOP.
LOOP AT itab_da.
CLEAR v_qtdutil_da.
LOOP AT itab_zycit003_saldo WHERE ebeln EQ itab_da-ebeln
AND ebelp EQ itab_da-ebelp.
v_qtdutil_da = v_qtdutil_da + itab_zycit003_saldo-qtd_iten.
ENDLOOP.
itab_da-qtd_nac = itab_da-qtd_nac - v_qtdutil_da.
IF itab_da-qtd_nac LE 0.
DELETE itab_da.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
* << Fim da exclusão
DESCRIBE TABLE itab_da LINES v_line.
v_caller = 'SELECIONAR_RC'.
SORT itab_da BY j_1bnbm.
CALL SCREEN '0003'.
ELSE.
MESSAGE s015 WITH text-259 text-264.
ENDIF.
ENDIF.
ENDFORM.
...
...
READ TABLE itab_pedido WITH KEY ebeln = itab_zycit013-ebeln
ebelp = itab_zycit013-ebelp.
IF sy-subrc EQ 0.
CLEAR v_qtdemb.
LOOP AT itab_zycit003_util WHERE ebeln EQ itab_zycit013-ebeln
AND ebelp EQ itab_zycit013-ebelp.
v_qtdemb = v_qtdemb + itab_zycit003_util-qtd_iten.
ENDLOOP.
ENDIF.
v_slqtde = itab_pedido-menge - v_qtdemb.
* >> Início da inclusão: FORM CARREGA_SALDO
v_slqtde = itab_pedido-menge - v_qtdemb.
if v_slqtde lt 0 and okcode eq 'PED'.
delete itab_zycit003 where ebelp eq itab_zycit013-ebelp
and ebeln eq itab_zycit013-ebeln.
MESSAGE w061 WITH text-004 itab_zycit013-ebelp
text-005 itab_zycit013-ebeln.
endif.
* << Fim da inclusão
IF v_slqtde NE itab_zycit013-slqtde.
IF /pws/zycie001-regime NE '16'.
itab_zycit013-slqtde = v_slqtde.
UPDATE /pws/zycit013 SET slqtde = itab_zycit013-slqtde
menge = itab_pedido-menge
WHERE ebeln = itab_zycit013-ebeln
AND ebelp = itab_zycit013-ebelp .
ENDIF.
itab_zycit013-menge = itab_pedido-menge.
MODIFY itab_zycit013.
...
----------------------------------------------------------------------------------------------------
Textos de report
*Criados os seguintes símbolos de textos.
ID Chave Comprimento Txt.
I 472 15 O pedido
I 473 30 possui saldo insuficiente item