Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 23/01/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 15:09:53
Descrição da Nota: EMBARQUE ESTÁ SE PERDENDO AO VINCULAR ITENS DO PEDIDO OU SCHEDULE
Sintoma
Ao vincular o schedule agreement ou o pedido no embarque, salvar e sair do embarque e depois
precisar alterar a quantidade do schedule agreement ou do pedido, ao entrar no embarque, eliminar
os itens e vincular de novo fica com quantidade do schedule ou do pedido no embarque negativa ou
zerada.
Solução
atualizar quantidade de itens conforme selecionado.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02944 Data: 23/01/2007 Hora: 10:37:16
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02944
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00026
Agrupamento : 00149
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02234 - 00001 - 6.0 - 00025 - SALDO EMBARQUE
----------------------------------------------------------------------------------------------------
EMBARQUE ESTÁ SE PERDENDO AO VINCULAR ITENS DO PEDIDO OU SCHEDULE
----------------------------------------------------------------------------------------------------
Palavras Chave:
VINCULAÇÃO - SCHEDULE AGREEMENT - PEDIDO - EXCEDER SALDO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI001F01
REPS /PWS/MZYCI001F03
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F01
...
b~spart
c~gsber
INTO CORRESPONDING FIELDS OF TABLE itab_divisao2
FROM ( ( ekpo AS a INNER JOIN mara AS b
ON a~ematn = b~matnr )
INNER JOIN t134h AS c ON b~spart = c~spart
AND a~werks = c~bwkey )
FOR ALL ENTRIES IN itab_itens
WHERE a~ebeln = itab_itens-ebeln
AND a~ebelp = itab_itens-ebelp.
* >> Início da inclusão: FORM SELECIONAR_ITENS
refresh: itab_zycit013.
* << Fim da inclusão
SELECT * FROM /pws/zycit013 INTO TABLE itab_zycit013
FOR ALL ENTRIES IN itab_itens WHERE
ebeln = itab_itens-ebeln AND
ebelp = itab_itens-ebelp.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F03
...
DATA: v_qtdemb TYPE /pws/zycit003-qtd_iten,
v_slqtde TYPE /pws/zycit013-slqtde .
DATA: BEGIN OF itab_zycit003_util OCCURS 0.
INCLUDE STRUCTURE /pws/zycit003.
DATA: END OF itab_zycit003_util.
SELECT ebeln ebelp menge bstyp FROM ekpo
INTO TABLE itab_pedido
FOR ALL ENTRIES IN itab_zycit013
WHERE ebeln EQ itab_zycit013-ebeln
AND ebelp EQ itab_zycit013-ebelp.
* >> Início da inclusão: FORM CARREGA_SALDO
REFRESH: itab_zycit003_util.
itab_zycit003_util[] = itab_zycit003[].
* << Fim da inclusão
SELECT * FROM /pws/zycit003
* >> Início da exclusão: FORM CARREGA_SALDO
INTO TABLE itab_zycit003_util
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_SALDO
APPENDING TABLE itab_zycit003_util
* << Fim da inclusão
FOR ALL ENTRIES IN itab_zycit013
WHERE ebeln EQ itab_zycit013-ebeln
AND ebelp EQ itab_zycit013-ebelp
* >> Início da exclusão: FORM CARREGA_SALDO
AND nrseqli NE /pws/zycie001-nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_SALDO
AND nrseq NE /pws/zycie001-nrseq.
* << Fim da inclusão
ENDIF.
LOOP AT itab_zycit013.
CLEAR: itab_pedido, itab_zycit003_util.
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.
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 .
* >> Início da inclusão: FORM CARREGA_SALDO
itab_zycit013-menge = itab_pedido-menge.
* << Fim da inclusão
MODIFY itab_zycit013.
ENDLOOP.
ENDFORM.
...