Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 20/09/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 15:16:15
Descrição da Nota: ERRO AO VINCULAR ITENS DA DA MANUALMENTE NO EMBARQUE
Sintoma
Erro ao vincular itens da DA manualmente no embarque
Solução
ajustar seleção e vinculação de itens no embarque.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04780 Data: 20/09/2007 Hora: 17:11:34
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04780
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00013
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01468 - 00001 - 6.0 - 00023 - CONTROLE DE SALDO DA DA POR LOTE
01603 - 00002 - 6.0 - 00023 - APÓS A EMISSÃO DA NF, NÃO FOI POSSÍVEL FAZER O RECEBIMENTO.
02291 - 00003 - 6.0 - 00025 - AJUSTES FEITOS NA DA PARA TRATAMENTO DE CENTROS DIFERENTES
02314 - 00004 - 6.0 - 00025 - NO EMBARQUE REGIME 16 VERIFICAR SE A VINCULAÇÃO DA DA É MANUAL.
04312 - 00005 - 7.0 - 00002 - DECLARAÇÃO DE IMPORTAÇÃO RECOF
----------------------------------------------------------------------------------------------------
ERRO AO VINCULAR ITENS DA DA MANUALMENTE NO EMBARQUE
----------------------------------------------------------------------------------------------------
Palavras Chave:
ERRO - VINCULAÇÃO - ITENS DA DA - VINCULAÇÃO MANUAL - EMBARQUE - DA
----------------------------------------------------------------------------------------------------
Objetos da nota:
CUAD /PWS/SAPMZYCI001
REPS /PWS/MZYCI001F03
REPS /PWS/MZYCI001O01
REPS /PWS/MZYCI001X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em CUAD /PWS/SAPMZYCI001
*Seguintes botões criados
Texto informativo Teclas de função CI - Seleção DA
Código de função Tecla F Tecla de função Código de função Texto
000016 00 ENTER ENTER Selecionar
000016 80 Ctrl-Page up P 1ª página
000016 81 Page up P- Página
anterior
000016 82 Page down P+ Página
seguinte
000016 83 Ctrl-Page down P++ Última página
Texto informativo Funções ativas CI - Seleção DA
Status Código de função
0003 P+
0003 P++
0003 P-
0003 P
*Funções com textos estáticos
Código de função Categoria Res. Nome campo p/texto GUI dinâmico
P+ ICON_NEXT_PAGE
P++ ICON_LAST_PAGE
P- ICON_PREVIOUS_PAGE
P ICON_FIRST_PAGE
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F03
...
wa_cols-screen-input = '0'.
ELSE.
wa_cols-screen-input = '1'.
ENDIF.
ENDIF.
MODIFY tc_ped-cols FROM wa_cols.
ENDLOOP.
ENDIF.
ENDFORM.
FORM selecionar_da.
* >> Início da inclusão: FORM SELECIONAR_DA
DATA: BEGIN OF itab_zycit003_saldo_aux OCCURS 0.
INCLUDE STRUCTURE /pws/zycit003.
DATA: END OF itab_zycit003_saldo_aux.
* << Fim da inclusão
LOOP AT itab_zycit467.
itab_zycit467_aux1 = itab_zycit467.
APPEND itab_zycit467_aux1.
ENDLOOP.
CLEAR itab_zycit467.
REFRESH itab_zycit467.
IF NOT itab_zycit003[] IS INITIAL.
IF NOT so_nrseq IS INITIAL.
LOOP AT itab_zycit003 WHERE
nrseqda NE so_nrseq+3.
...
...
ENDLOOP.
DATA: itab_zycit003_saldo LIKE itab_zycit003 OCCURS 0
WITH HEADER LINE.
IF NOT itab_da[] IS INITIAL.
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
AND nrseqda EQ itab_da-nrseqda.
IF NOT itab_zycit003_saldo[] IS INITIAL.
* >> Início da inclusão: FORM SELECIONAR_DA
IF /pws/zycie001-regime EQ '16' .
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 regime EQ '16'
AND tpdecl EQ 'DI'.
ELSE.
* << Fim da inclusão
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 regime EQ '04'
AND tpdecl EQ 'DI'.
ENDIF.
* >> Início da inclusão: FORM SELECIONAR_DA
ENDIF.
MOVE itab_zycit003_saldo[] TO itab_zycit003_saldo_aux[].
CLEAR itab_zycit003_saldo.
REFRESH itab_zycit003_saldo.
* << Fim da inclusão
LOOP AT itab_zycit001_saldo.
* >> Início da exclusão: FORM SELECIONAR_DA
DELETE itab_zycit003_saldo
WHERE nrseq EQ itab_zycit001_saldo-nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_DA
LOOP AT itab_zycit003_saldo_aux WHERE
nrseq = itab_zycit001_saldo-nrseq.
MOVE itab_zycit003_saldo_aux TO itab_zycit003_saldo.
APPEND itab_zycit003_saldo.
ENDLOOP.
* << Fim da inclusão
ENDLOOP.
CLEAR v_qtdutil_da.
LOOP AT itab_da.
v_index = sy-tabix.
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_lote = itab_da-qtd_lote - v_qtdutil_da.
IF itab_da-qtd_lote LE 0.
DELETE itab_da.
* >> Início da inclusão: FORM SELECIONAR_DA
ELSE.
MODIFY itab_da INDEX v_index.
* << Fim da inclusão
ENDIF.
CLEAR v_qtdutil_da.
* >> Início da exclusão: FORM SELECIONAR_DA
MODIFY itab_da INDEX v_index.
* << Fim da exclusão
ENDLOOP.
ENDIF.
ELSE.
IF NOT so_lifn IS INITIAL.
SELECT /pws/zycit442~nrseqda /pws/zycit442~nrdi /pws/zycit442~bukrs
...
...
IF v_saldo LE 0.
DELETE itab_da INDEX v_tabix.
ELSE.
itab_da-qtd_lote = v_saldo.
MODIFY itab_da INDEX v_tabix.
ENDIF.
ENDLOOP.
ENDLOOP.
IF v_manual EQ 'X'.
v_caller = 'SELECIONAR_RC'.
* >> Início da inclusão: FORM SELECIONAR_DA
v_tela = 'X'.
* << Fim da inclusão
ELSE.
v_caller = 'SELECIONAR_DA'.
ENDIF.
CALL SCREEN '0003'.
ELSE.
MESSAGE s015 WITH text-259 text-264.
ENDIF.
ENDFORM.
FORM trata_delp.
DATA: v_werks_del LIKE /pws/zycbt001-werks.
...
...
MESSAGE e061 WITH text-235 text-236.
ENDIF.
ENDLOOP.
ENDFORM.
FORM user_command_0003.
CASE sy-ucomm.
WHEN 'ENTER'.
PERFORM:
selecionar_itens_da.
IF v_prod_dif NE 'X'.
* >> Início da inclusão: FORM USER_COMMAND_0003
refresh control 'TC_SELDA' from screen sy-dynnr .
* << Fim da inclusão
LEAVE TO SCREEN 0.
ENDIF.
WHEN 'CANCEL'.
* >> Início da inclusão: FORM USER_COMMAND_0003
refresh control 'TC_SELDA' from screen sy-dynnr .
* << Fim da inclusão
LEAVE TO SCREEN 0.
* >> Início da inclusão: FORM USER_COMMAND_0003
WHEN 'P-'.
tc_selda-top_line = tc_selda-top_line - 10.
WHEN 'P--'.
tc_selda-top_line = tc_selda-top_line - tc_selda-lines.
WHEN 'P+'.
tc_selda-top_line = tc_selda-top_line + 10.
WHEN 'P++'.
tc_selda-top_line = tc_selda-top_line + tc_selda-lines.
* << Fim da inclusão
ENDCASE.
ENDFORM.
FORM carrega_estrutura_0003.
MOVE :
itab_da-nrseqda TO /pws/zycie442-nrseqda ,
itab_da-ebeln TO /pws/zycie443-ebeln ,
itab_da-ebelp TO /pws/zycit443-ebelp ,
itab_da-matnr TO /pws/zycie443-matnr ,
itab_da-lote_forn TO /pws/zycie463-lote_forn,
itab_da-qtd_lote TO /pws/zycie463-qtd_lote.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001O01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001X01
...
DATA: END OF itab_zycit003_util.
DATA: itab_zycit477 TYPE /pws/zycit477 OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF itab_zycit125 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit125.
DATA : name1 LIKE lfa1-name1,
mark(1).
DATA : END OF itab_zycit125.
DATA : BEGIN OF itab_zycit125_aux OCCURS 0.
INCLUDE STRUCTURE /pws/zycit125.
DATA : END OF itab_zycit125_aux.
* >> Início da inclusão:
data v_tela.
* << Fim da inclusão
DATA: END OF COMMON PART a.