Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 16/05/2006 00:00:00
Data/Hora Última Alteração: 20/06/2011 12:28:00
Descrição da Nota: AJUSTES DE CAMPOS E CONSISTÊNCIAS NO EMBARQUE DE NACIONALIZAÇÃO.
Sintoma
1- Na vinculação da DA no embarque, aparece a tela com os lotes, mas para vários embarques o lote
aparece duplicado.
2- Não está permitindo vincular 2 lotes do mesmo item. Aparece um erro
3- Quando seleciona 1 lote e a quantidade e da enter, aparece ok o valor do embarque. Mas ao entrar
novamente no embarque, o valor está zerado
4-Não podemos deixar alterar a quantidade na tela do embarque, apenas na tela do lote
5- O Icone da DA está vindo com o nome Centro de Trabalho Trocar para Entreposto
6- Se o tipo de embarque for MA no entreposto, não pode deixar trocar para TA
7- No campo modalidade foi digitado 01, mas ao tentar salvar, o campo fica com 1 e da erro. Tenho
de voltar a digitar 01 e salvar
Solução
1 - Ajustes feitos para lotes duplicados
2 - Ajustes feitos para vincular dois lotes da mesma DA
3 - Ajustado o valor do embarque.
4 - O campo quantidade permanecerá fechado.
5 - Ajustada a descrição do ícone de DA
6 - Feito consistência com a Modalidade do embarque com a da DA
7 - Não trará mais a modalidade da DA, pois são diferentes.
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 01350 Data: 16/05/2006 Hora: 16:10:31
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 01350
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00023
Agrupamento : 00114
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01353 - 00001 - 6.0 - 00023 - APÓS SALVAR O EMBARQUE COM REGIME 16, O SALDO DA DA E O VALOR PLA
----------------------------------------------------------------------------------------------------
AJUSTES DE CAMPOS E CONSISTÊNCIAS NO EMBARQUE DE NACIONALIZAÇÃO.
----------------------------------------------------------------------------------------------------
Palavras Chave:
----------------------------------------------------------------------------------------------------
Objetos da nota:
CUAD /PWS/SAPMZYCI001
DYNP /PWS/SAPMZYCI001 0111
REPS /PWS/MZYCI001F01
REPS /PWS/MZYCI001F03
REPS /PWS/MZYCI001I01
REPS /PWS/MZYCI001O01
REPS /PWS/MZYCI001TOP
REPS /PWS/MZYCI001X01
REPT /PWS/SAPMZYCI001
----------------------------------------------------------------------------------------------------
Modificações efetuadas em CUAD /PWS/SAPMZYCI001
*Foi alterado o texto do ícone ICON_WORK_CENTER para 'DA'.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI001 0111
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
Modific. BTNT0102_06
Push 1 12 17 2 1 CHAR
SELE_DA
Ícn.=ICON_WORK_CENTER
Inserido BTNT0102_04
Push 1 18 28 2 1 CHAR
RC SELE_RC
Ícn.=ICON_IMPORT
Modific. /PWS/ZYCIE003-QTD_ITEN
I/O 1 5 19 14 1 DEC X Ent Off
Alinh.à dir., Elem.TC
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F01
...
WHEN 2.
MESSAGE a015 WITH text-024.
ENDCASE.
ENDLOOP.
ENDIF.
* >> Início da inclusão: FORM RECUPERANDO_ITENS
if /pws/zycie001-regime eq '14'.
perform recuperando_itens_da.
endif.
* << Fim da inclusão
ENDFORM.
FORM selecionar_itens.
DATA: itab_werks LIKE itab_zycit003 OCCURS 0 WITH HEADER LINE,
itab_t001w LIKE t001w OCCURS 0 WITH HEADER LINE.
DATA: v_nolin TYPE i VALUE IS INITIAL,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F03
...
where nrseqda = itab_da-nrseqda and
ebeln = itab_da-ebeln and
ebelp = itab_da-ebelp.
modify itab_da.
endloop.
* >> Início da exclusão: FORM SELECIONAR_DA
MOVE ITAB_DA[] TO ITAB_DA_AUX[].
* << Fim da exclusão
else.
SELECT /pws/zycit442~nrseqda /pws/zycit442~nrdi /pws/zycit442~bukrs
/pws/zycit442~dtdesemb /pws/zycit460~lifnr /pws/zycit443~ebeln
/pws/zycit443~ebelp /pws/zycit443~matnr /pws/zycit463~lote_forn
/pws/zycit463~numfatura /pws/zycit463~qtd_lote
...
...
AND /pws/zycit442~nrdi IN so_nrda
AND /pws/zycit443~ebeln IN so_beln
AND /pws/zycit443~ebelp IN so_belp
AND /pws/zycit443~matnr IN so_matn.
endif.
* >> Início da inclusão: FORM SELECIONAR_DA
sort itab_da by nrseqda ebeln ebelp matnr lote .
delete adjacent duplicates from itab_da comparing
nrseqda ebeln ebelp matnr lote.
* << Fim da inclusão
IF NOT itab_da[] IS INITIAL.
MOVE ITAB_DA[] TO ITAB_DA_AUX[].
if /pws/zycie001-regime eq '14'.
loop at itab_da.
if itab_da-qtd_lote is initial.
...
...
ENDIF.
MOVE:itab_zycit003-ebeln TO itab_zycit003_del-ebeln,
itab_zycit003-ebelp TO itab_zycit003_del-ebelp,
itab_zycit003-qtd_iten TO itab_zycit003_del-qtd_iten.
APPEND itab_zycit003_del.
* >> Início da inclusão: FORM TRATA_DELP
DELETE itab_zycit003 INDEX v_tabix.
CLEAR itab_zycit003.
* << Fim da inclusão
ELSE.
MESSAGE w015 WITH text-190.
EXIT.
ENDIF.
ENDLOOP.
...
...
IF sy-subrc = 0 AND NOT /pws/zycie001-nrseq IS INITIAL.
screen-input = 0.
MODIFY SCREEN.
ELSE.
screen-input = 1.
* >> Início da inclusão: FORM TRATA_SCREEN_0101
MODIFY SCREEN.
ENDIF.
IF /pws/zycie001-regime EQ '14' .
screen-input = 0.
* << Fim da inclusão
MODIFY SCREEN.
ENDIF.
ENDIF.
IF /pws/zycie001-regime EQ '14' or /pws/zycie001-regime EQ '16'.
IF screen-group2 EQ 'DA'.
...
...
ENDLOOP.
ENDFORM.
FORM atualiza_itens_da.
ENDFORM.
FORM trata_screen_0111.
* >> Início da inclusão: FORM TRATA_SCREEN_0111
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'RC'.
IF /pws/zycie001-regime NE '16'.
screen-invisible = '1'.
MODIFY SCREEN.
ENDIF.
ENDCASE.
ENDLOOP.
* << Fim da inclusão
IF v_status_s = 0.
LOOP AT tc_da-cols INTO wa_cols.
wa_cols-screen-input = '0'.
MODIFY tc_da-cols FROM wa_cols.
ENDLOOP.
...
...
/pws/zycit442-agente TO /pws/zycie001-agente ,
/pws/zycit442-bukrs TO /pws/zycie001-bukrs ,
/pws/zycit442-dtsaida TO /pws/zycie001-dtsaida ,
/pws/zycit442-inco1 TO /pws/zycie001-inco1 ,
/pws/zycit442-meiotransp TO /pws/zycie001-meioemba ,
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
/pws/zycit442-moddesps TO /pws/zycie001-modalidade ,
* << Fim da exclusão
/pws/zycit442-embarca TO /pws/zycie001-navio .
ENDIF.
loop at itab_da.
MOVE : itab_da-ebeln TO itab_nac-ebeln,
itab_da-ebelp TO itab_nac-ebelp,
...
...
itab_zycit443-qtd_da to itab_zycit003-menge ,
itab_zycit443-netpr to itab_zycit003-V_FOB ,
/pws/zycie001-nrseq TO itab_zycit003-nrseq .
IF NOT ITAB_ZYCIT443-QTD_DA IS INITIAL.
itab_zycit003-ntgew = ( itab_zycit443-ntgew /
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
itab_zycit443-qtd_da ) * itab_zycit003-qtd_iten.
itab_zycit003-v_fob = ( itab_zycit443-netpr /
* << Fim da exclusão
itab_zycit443-qtd_da ) * itab_zycit003-qtd_iten.
ENDIF.
itab_zycit003-sld_da = itab_zycit443-QTD_SLD =
itab_zycit443-qtd_da - itab_zycit443-qtd_util -
itab_zycit443-qtd_iten.
...
...
SELECT MAX( nrseq ) INTO (v_nrseq) FROM /pws/zycit006
WHERE nrseq LIKE v_ano1.
v_count = v_nrseq+0(7) + 1.
CONCATENATE v_count 'I' sy-datum+2(2) INTO /pws/zycit006-nrseq.
endform.
* >> Início da inclusão:
FORM recuperando_itens_da.
LOOP AT itab_zycit003.
PERFORM load_pttext USING itab_zycit003-matnr
sy-langu.
IF itab_zycit003-j_1bnbm IS INITIAL.
IF t001-land1 EQ 'BR'.
SELECT SINGLE steuc FROM marc INTO itab_zycit003-j_1bnbm
WHERE matnr = itab_zycit003-matnr.
ELSE.
SELECT SINGLE steuc FROM marc INTO itab_zycit003-j_1bnbm
WHERE matnr = itab_zycit003-matnr
AND werks = ekpo-werks.
ENDIF.
ENDIF.
MODIFY itab_zycit003.
v_netpr = ( itab_zycit003-v_fob * itab_zycit003-qtd_iten ).
PERFORM tratar_decimais USING itab_zycit003-waers
CHANGING v_netpr.
/pws/zycie001-netpr = /pws/zycie001-netpr + v_netpr.
IF /pws/zycie001-netpr < 0.
CLEAR /pws/zycie001-netpr.
MESSAGE e061 WITH text-235 text-236.
ENDIF.
ENDLOOP.
ENDFORM.
FORM selecionar_rc.
DATA:
BEGIN OF itab_rc_aux OCCURS 100,
cod_matriz TYPE /pws/zycie442-bukrs,
cod_filial TYPE /pws/zycie442-j_1bbranch,
num_da_di TYPE /pws/zycie442-nrdi,
num_adicao TYPE /pws/zycie443-adicao,
num_item_adicao TYPE /pws/zycie455-itseqda,
END OF itab_rc_aux.
REFRESH itab_da.
SELECT *
INTO TABLE itab_rc
FROM /pws/zyrct025
WHERE cod_matriz EQ pa_matri
AND cod_filial EQ pa_filia
AND num_da_di IN so_numda
AND num_adicao IN so_adica
AND num_item_adicao IN so_itadi.
LOOP AT itab_rc.
MOVE-CORRESPONDING itab_rc TO itab_rc_aux.
COLLECT itab_rc_aux.
ENDLOOP.
IF NOT itab_rc_aux[] IS INITIAL.
SELECT /pws/zycit442~nrseqda /pws/zycit442~nrdi
/pws/zycit442~bukrs /pws/zycit442~dtdesemb
/pws/zycit460~lifnr /pws/zycit443~ebeln
/pws/zycit443~ebelp /pws/zycit443~matnr
/pws/zycit463~lote_forn /pws/zycit463~numfatura
/pws/zycit463~qtd_lote /pws/zycit463~qtd_nac
INTO TABLE itab_da
FROM ( /pws/zycit442 INNER JOIN /pws/zycit460 ON
/pws/zycit442~nrseqda = /pws/zycit460~nrseqda
INNER JOIN /pws/zycit443 ON
/pws/zycit442~nrseqda = /pws/zycit443~nrseqda
INNER JOIN /pws/zycit463 ON
/pws/zycit463~nrseqda = /pws/zycit443~nrseqda )
FOR ALL entries IN itab_rc_aux
WHERE /pws/zycit442~bukrs EQ itab_rc_aux-cod_matriz
AND /pws/zycit442~j_1bbranch EQ itab_rc_aux-cod_filial
AND /pws/zycit442~nrdi EQ itab_rc_aux-num_da_di
AND /pws/zycit443~adicao EQ itab_rc_aux-num_adicao.
ENDIF.
IF NOT itab_da[] IS INITIAL.
DESCRIBE TABLE itab_da LINES v_line.
CALL SCREEN '0003'.
ELSE.
MESSAGE s015 WITH text-259.
ENDIF.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001I01
...
FROM /pws/zycit001
INTO /pws/zycie001-status
WHERE nrseq = /pws/zycie001-nrseq.
WHEN 'SELE_DA'.
CALL SELECTION-SCREEN '0700'.
* >> Início da inclusão: MODULE USER_COMMAND_0050
WHEN 'SELE_RC'.
CALL SELECTION-SCREEN '0701'.
* << Fim da inclusão
ENDCASE.
ENDIF.
CLEAR okcode.
ENDMODULE.
MODULE user_command_0002 INPUT.
...
...
if itab_da-qtd_nac gt itab_da-qtd_lote.
message e015 with text-258.
endif.
CLEAR: v_sld.
move itab_da[] to itab_da_aux[].
* >> Início da exclusão: MODULE QTD_LOTE
move itab_da[] to itab_da_aux2[].
* << Fim da exclusão
describe table itab_da_aux lines v_line.
* >> Início da exclusão: MODULE QTD_LOTE
loop at itab_da_aux .
v_tabix = sy-tabix.
loop at itab_da_aux2 .
if v_tabix ne sy-tabix.
if itab_da_aux-nrseqda ne itab_da_aux2-nrseqda
and not itab_da_aux2-qtd_nac is initial.
* << Fim da exclusão
* >> Início da inclusão: MODULE QTD_LOTE
LOOP AT itab_da_aux where not qtd_nac is initial.
IF itab_da_aux-nrseqda NE itab_da-nrseqda.
* << Fim da inclusão
v_dif = 'X'.
* >> Início da exclusão: MODULE QTD_LOTE
endif.
* << Fim da exclusão
endif.
* >> Início da exclusão: MODULE QTD_LOTE
endloop.
* << Fim da exclusão
endloop.
if v_dif = 'X'.
MESSAGE i015 WITH text-254.
clear itab_da-qtd_nac.
clear v_dif.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001O01
...
it_code-fcode = 'DI'. APPEND it_code.
SET PF-STATUS '0100' EXCLUDING 'DI'.
ENDIF.
IF /pws/zycie001-tpdecl EQ 'DSI' .
it_code-fcode = 'DA'. APPEND it_code.
* >> Início da inclusão: MODULE STATUS_0050
ENDIF.
IF /pws/zycie001-regime EQ '16' .
it_code-fcode = 'BL'. APPEND it_code.
* << Fim da inclusão
ENDIF.
SELECT SINGLE land1 INTO v_land1 FROM t001
WHERE bukrs = /pws/zycie001-bukrs.
SET PF-STATUS '0100' EXCLUDING it_code.
EXPORT v_status_s TO MEMORY ID '060'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001TOP
...
/pws/zycie396,
/pws/zycit395,
/pws/zycie442,
/pws/zycie443,
/pws/zycie463,
* >> Início da inclusão:
/pws/zyrct025,
* << Fim da inclusão
eket.
DATA: BEGIN OF itab_zycit013 OCCURS 0.
INCLUDE STRUCTURE /pws/zycie013.
DATA: END OF itab_zycit013.
DATA: BEGIN OF itab_zycit395 OCCURS 0.
...
...
so_nrda FOR /pws/zycie442-nrdi ,
so_beln FOR /pws/zycie443-ebeln,
so_belp FOR /pws/zycie443-ebelp,
so_matn FOR /pws/zycie443-matnr.
SELECTION-SCREEN END OF SCREEN 0700.
* >> Início da inclusão:
SELECTION-SCREEN BEGIN OF SCREEN 0701.
PARAMETERS:
pa_matri TYPE /pws/zyrct025-cod_matriz,
pa_filia TYPE /pws/zyrct025-cod_filial.
SELECT-OPTIONS:
so_numda FOR /pws/zyrct025-num_da_di,
so_adica FOR /pws/zyrct025-num_adicao,
so_itadi FOR /pws/zyrct025-num_item_adicao.
SELECTION-SCREEN END OF SCREEN 0701.
* << Fim da inclusão
AT SELECTION-SCREEN OUTPUT.
IF sy-dynnr EQ '0300'.
LOOP AT SCREEN.
* >> Início da exclusão:
IF
* << Fim da exclusão
* >> Início da inclusão:
IF ( screen-name EQ 'SO_INCO1-LOW' AND
* << Fim da inclusão
* >> Início da exclusão:
( screen-name EQ 'SO_INCO1-LOW' AND
* << Fim da exclusão
NOT /pws/zycie001-inco1 IS INITIAL ) OR
( screen-name EQ 'PA_BUKRS' ).
screen-input = '0'.
MODIFY SCREEN.
ELSE.
screen-input = '1'.
* >> Início da inclusão:
ENDIF.
ENDLOOP.
ENDIF.
IF sy-dynnr EQ '0701'.
SET TITLEBAR '0701'.
MOVE:
/pws/zycie001-bukrs TO pa_matri,
/pws/zycie001-j_1bbranch TO pa_filia.
LOOP AT SCREEN.
IF ( screen-name EQ 'PA_MATRI' AND
NOT pa_matri IS INITIAL ) OR
( screen-name EQ 'PA_FILIA' AND
NOT pa_filia IS INITIAL ).
screen-input = '0'.
MODIFY SCREEN.
* << Fim da inclusão
ENDIF.
ENDLOOP.
ENDIF.
AT SELECTION-SCREEN.
CASE sy-dynnr .
...
...
IF sy-ucomm EQ 'CRET'.
PERFORM carrega_itab_zycit011.
PERFORM selecionar_itens.
PERFORM dados_intrucao.
ENDIF.
* >> Início da exclusão:
WHEN '0700'.
* << Fim da exclusão
* >> Início da inclusão:
WHEN '0700'.
* << Fim da inclusão
PERFORM selecionar_da.
* >> Início da inclusão:
WHEN '0701'.
IF sy-ucomm EQ 'CRET'.
PERFORM selecionar_rc.
ENDIF.
* << Fim da inclusão
ENDCASE.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001X01
...
qtd_lote like /PWS/ZYCIE463-QTD_LOTE ,
qtd_nac like /pws/zycie463-qtd_lote ,
qtd_usada like /pws/zycie463-qtd_lote ,
mark.
DATA: END OF itab_da.
* >> Início da inclusão:
DATA itab_rc TYPE STANDARD TABLE OF /pws/zyrct025
WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 100
WITH HEADER LINE.
* << Fim da inclusão
data: itab_zycit443_aux like itab_zycit443 occurs 0 with header line,
itab_da_aux like itab_da occurs 0 with header line,
itab_da_aux2 like itab_da occurs 0 with header line.
data: begin of itab_nac occurs 0.
data: ebeln like /pws/zycit443-ebeln,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI001
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: PT
Variável (SELECT-OPTION / PARAMETER): PA_FILIA
Texto: (14 caracteres)
"Filial"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: PT
Variável (SELECT-OPTION / PARAMETER): PA_MATRI
Texto: (14 caracteres)
"Matriz"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: PT
Variável (SELECT-OPTION / PARAMETER): SO_ADICA
Texto: (14 caracteres)
"Adição"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: PT
Variável (SELECT-OPTION / PARAMETER): SO_ITADI
Texto: (22 caracteres)
"Item da Adição"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: PT
Variável (SELECT-OPTION / PARAMETER): SO_NUMDA
Texto: (20 caracteres)
"Número da DA"
Referência ao Dictionary: NÃO