Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 09/10/2006 00:00:00
Data/Hora Última Alteração: 20/06/2011 12:59:17
Descrição da Nota: SALDO EMBARQUE
Sintoma
O embarque está com o saldo do pedido negativo negativo.
Solução
Feito o tratamento para o saldo do pedido quando entra no embarque, e criado o bloquei pelo pedido
não so pelo embarque.
Atualizado saldo do pedido do embarque, quando o schedule agreement ou o pedido de compra tiver a
quantidade alterada.
6.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02234 Data: 09/10/2006 Hora: 11:11:36
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02234
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00025
Agrupamento : 00134
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
SALDO EMBARQUE
----------------------------------------------------------------------------------------------------
Palavras Chave:
SALDO - EMBARQUE - NEGATIVO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI001F01
REPS /PWS/MZYCI001F03
REPS /PWS/MZYCI001O01
REPS /PWS/MZYCI001X01
REPT /PWS/SAPMZYCI001
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F03
*&---------------------------------------------------------------------*
*& Form carrega_saldo
*&---------------------------------------------------------------------*
*Perform inteiro criado
FORM carrega_saldo.
CLEAR : itab_pedido.
REFRESH : itab_pedido.
IF NOT itab_zycit013[] IS INITIAL.
DATA: v_qtdemb TYPE /pws/zycit003-qtd_iten,
v_slqtde TYPE /pws/zycit013-slqtde .
DATA: BEGIN OF itab_pedido_temp OCCURS 0.
DATA: ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp.
DATA: END OF itab_pedido_temp.
* DATA: BEGIN OF itab_zycit003_util OCCURS 0.
* INCLUDE STRUCTURE /pws/zycit003.
* DATA: END OF itab_zycit003_util.
"seleciona itens do pedido
SELECT ebeln ebelp menge bstyp FROM ekpo "itens do pedido
INTO TABLE itab_pedido
FOR ALL ENTRIES IN itab_zycit013
WHERE ebeln EQ itab_zycit013-ebeln
AND ebelp EQ itab_zycit013-ebelp.
REFRESH itab_pedido_temp.
LOOP AT itab_zycit013.
READ TABLE itab_zycit003_util WITH KEY
ebeln = itab_zycit013-ebeln
ebelp = itab_zycit013-ebelp.
IF sy-subrc NE 0.
itab_pedido_temp-ebeln = itab_zycit013-ebeln.
itab_pedido_temp-ebelp = itab_zycit013-ebelp.
APPEND itab_pedido_temp.
ENDIF.
ENDLOOP.
DELETE itab_zycit003_util WHERE nrseq EQ /pws/zycie001-nrseq.
LOOP AT itab_zycit003 .
itab_zycit003_util-nrseq = itab_zycit003-nrseq.
itab_zycit003_util-ebeln = itab_zycit003-ebeln.
itab_zycit003_util-ebelp = itab_zycit003-ebelp.
itab_zycit003_util-qtd_iten = itab_zycit003-qtd_iten.
APPEND itab_zycit003_util.
ENDLOOP.
IF NOT itab_pedido_temp[] IS INITIAL.
SELECT nrseq ebeln ebelp qtd_iten FROM /pws/zycit003
APPENDING TABLE itab_zycit003_util
FOR ALL ENTRIES IN itab_pedido_temp
WHERE ebeln EQ itab_pedido_temp-ebeln
AND ebelp EQ itab_pedido_temp-ebelp
AND nrseq NE /pws/zycie001-nrseq.
ENDIF.
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.
IF v_slqtde NE itab_zycit013-slqtde.
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 .
itab_zycit013-menge = itab_pedido-menge.
MODIFY itab_zycit013.
ENDIF.
ENDLOOP.
ENDFORM. " carrega_saldo
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F01
...
SELECT * FROM /pws/zycit013
INTO TABLE itab_zycit013
FOR ALL ENTRIES IN itab_zycit003 WHERE
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp.
* >> Início da inclusão: FORM VERIFICA_ITENS
perform carrega_saldo.
* << Fim da inclusão
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
...
...
SELECT * FROM /pws/zycit013
INTO TABLE itab_zycit013
FOR ALL ENTRIES IN itab_zycit003 WHERE
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp.
* >> Início da inclusão: FORM SELECIONA_EMBARCACAO
perform carrega_saldo.
* << Fim da inclusão
ENDIF.
LOOP AT itab_zycit003.
READ TABLE itab_zycit013 WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
MOVE: itab_zycit013-slqtde TO itab_zycit003-slqtde,
...
...
SELECT * FROM /pws/zycit013
INTO TABLE itab_zycit013
FOR ALL ENTRIES IN itab_zycit003 WHERE
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp.
* >> Início da inclusão: FORM RECUPERANDO_ITENS
perform carrega_saldo.
* << Fim da inclusão
ENDIF.
LOOP AT itab_zycit003.
READ TABLE itab_zycit013 WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
MOVE: itab_zycit013-slqtde TO itab_zycit003-slqtde,
...
...
AND a~ebelp = itab_itens-ebelp.
SELECT * FROM /pws/zycit013 INTO TABLE itab_zycit013
FOR ALL ENTRIES IN itab_itens WHERE
ebeln = itab_itens-ebeln AND
ebelp = itab_itens-ebelp.
* >> Início da inclusão: FORM SELECIONAR_ITENS
perform carrega_saldo.
* << Fim da inclusão
ENDIF.
LOOP AT itab_itens.
CLEAR itab_zycit003.
READ TABLE itab_zycit003 WITH KEY nrseq = /pws/zycie001-nrseq
ebeln = itab_itens-ebeln
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001O01
...
ENDIF.
IF NOT itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit013 FOR ALL ENTRIES IN itab_zycit003
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
* >> Início da inclusão: MODULE USER_COMMAND_0001
perform carrega_saldo.
* << Fim da inclusão
MOVE: /pws/zycit013-slqtde TO itab_zycit003-slqtde,
/pws/zycit013-menge TO itab_zycit003-menge.
MODIFY itab_zycit003.
ENDSELECT.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001X01
...
* >> Início da inclusão
data: begin of itab_pedido occurs 0.
data: ebeln type ekpo-ebeln,
ebelp type ekpo-ebelp,
menge type ekpo-menge,
bstyp type ekpo-bstyp.
data: end of itab_pedido.
DATA: BEGIN OF itab_zycit003_util OCCURS 0.
DATA: nrseq TYPE /pws/zycit003-nrseq,
ebeln TYPE /pws/zycit003-ebeln,
ebelp TYPE /pws/zycit003-ebelp,
qtd_iten TYPE /pws/zycit003-qtd_iten,
regime type /pws/zycit001-regime .
DATA: END OF itab_zycit003_util.
* << Fim da inclusão
DATA: END OF COMMON PART A.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI001
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: EN
Símbolo: 324
Texto: (31 caracteres)
"The order is already been used."
Comprimento máximo: 40
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 324
Texto: (32 caracteres)
"Pedido já está sendo processado!"
Comprimento máximo: 40
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: EN
Símbolo: 325
Texto: (24 caracteres)
"Only allowed exhibition."
Comprimento máximo: 27
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 325
Texto: (27 caracteres)
"Permitida somente exibição."
Comprimento máximo: 27