Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 31/08/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 10:51:58
Descrição da Nota: DADOS DE TRANSPORTE NÃO SÃO CARREGADOS COM PEDIDO DE COMPRA
Sintoma
Os dados de transporte (transporte, rota, nomeação, navio) não são carregados nos programas de
embarque e dados adicionais do embarque, quando a nomeação era feita usando pedido de compra.
Solução
A tabela passa a ser usada nos embarque com pedido de compra (tipo 'D').
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04582 Data: 31/08/2007 Hora: 09:39:24
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04582
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00010
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04402 - 00001 - 7.0 - 00002 - SUBST. DA FUNÇÃO /PWS/ZYCE_TRATA_ORDEM PELA /PWS/ZYCE_SEPARA_ITEN
04556 - 00002 - 7.0 - 00002 - CONDIÇÃO DE PAGAMENTO MANUAL É PERDIDA APÓS REFRESH
----------------------------------------------------------------------------------------------------
DADOS DE TRANSPORTE NÃO SÃO CARREGADOS COM PEDIDO DE COMPRA
----------------------------------------------------------------------------------------------------
Palavras Chave:
EMBARQUE DADOS ADICIONAIS TRANSPORTE NOMEAÇÃO CARGA
ROTA NAVIO PEDIDO COMPRA
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCE003F01
REPS /PWS/MZYCE038F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE003F01
...
'Efetuando Refresh do Embarque'(m01).
PERFORM seleciona_novos_materiais.
PERFORM progress_indicator USING 15 36
'Efetuando Refresh do Embarque'(m01).
PERFORM seleciona_novos_comex.
PERFORM elimina_linhas_duplicadas.
ENDFORM.
FORM seleciona_dados_adicionais_pw.
DATA: itab_003 LIKE itab_zycet003 OCCURS 0 WITH HEADER LINE.
DATA: v_zterm_atual TYPE /pws/zycet046-zterm.
* >> Início da inclusão: FORM SELECIONA_DADOS_ADICIONAIS_PW
DATA: itab_nrseqno TYPE STANDARD TABLE OF /pws/zycet106-nrseqno.
* << Fim da inclusão
itab_003[] = itab_zycet003[].
IF sy-tcode NE c_transacao_c.
READ TABLE itab_t001 WITH KEY bukrs = /pws/zycee001-bukrs.
IF itab_t001-land1 EQ 'AR'.
SELECT nrseq
nrper
dtincl
nrseqper
FROM /pws/zycet292
INTO CORRESPONDING FIELDS OF TABLE itab_permiso
...
...
SELECT *
FROM /pws/zycet068
INTO TABLE itab_zycet068
WHERE nrseq = /pws/zycee001-nrseq.
SELECT *
FROM /pws/zycet100
INTO TABLE itab_zycet100
WHERE nrseq = /pws/zycee001-nrseq.
ENDIF.
IF NOT itab_zycet002[] IS INITIAL.
* >> Início da inclusão: FORM SELECIONA_DADOS_ADICIONAIS_PW
IF /pws/zycee001-tipo_emb <> 'D'.
* << Fim da inclusão
SELECT nrseqno
nrseqtr
vbeln_va
posnr
nrrota_tr
portdest
zolla
FROM /pws/zycet108
INTO TABLE itab_zycet108
FOR ALL ENTRIES IN itab_zycet002
WHERE vbeln_va = itab_zycet002-vbeln_va AND
posnr = itab_zycet002-aupos.
* >> Início da inclusão: FORM SELECIONA_DADOS_ADICIONAIS_PW
IF sy-subrc = 0.
itab_nrseqno[] = itab_zycet108[].
ENDIF.
ELSE.
SELECT nrseqno
FROM /pws/zycet135
INTO TABLE itab_nrseqno
FOR ALL ENTRIES IN itab_zycet002
WHERE ebeln = itab_zycet002-ebeln
AND ebelp = itab_zycet002-ebelp.
ENDIF.
IF NOT itab_nrseqno[] IS INITIAL.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DADOS_ADICIONAIS_PW
IF sy-subrc EQ 0.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS_ADICIONAIS_PW
SORT itab_nrseqno.
DELETE ADJACENT DUPLICATES FROM itab_nrseqno.
* << Fim da inclusão
SELECT nrseqno
nrseqtr
nrrota_tr
nome_tr
FROM /pws/zycet106
INTO TABLE itab_zycet106
* >> Início da exclusão: FORM SELECIONA_DADOS_ADICIONAIS_PW
FOR ALL ENTRIES IN itab_zycet108
WHERE nrseqno = itab_zycet108-nrseqno.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS_ADICIONAIS_PW
FOR ALL ENTRIES IN itab_nrseqno
WHERE nrseqno = itab_nrseqno-table_line.
* << Fim da inclusão
IF sy-subrc EQ 0.
SELECT nrseqtr
nrrota_tr
codprt
pais
tpemb
descprt
dteta
dtetd
FROM /pws/zycet103
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE038F01
FORM seleciona_dados.
DATA: v_flag(4) TYPE c,
* >> Início da exclusão: FORM SELECIONA_DADOS
itab_saida LIKE /pws/zycet002 OCCURS 10 WITH HEADER LINE,
itab_estorno LIKE /pws/zycet002 OCCURS 10 WITH HEADER LINE,
itab_devolucao LIKE /pws/zycet002 OCCURS 10 WITH HEADER LINE,
itab_complemento LIKE /pws/zycet002 OCCURS 10 WITH HEADER LINE.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
itab_saida LIKE /pws/zycet002 OCCURS 10 WITH HEADER LINE.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DADOS
data: BEGIN OF itab_vbfa OCCURS 0,
vbelv LIKE vbfa-vbelv,
posnv LIKE vbfa-posnv,
vbeln LIKE vbfa-vbeln,
posnn LIKE vbfa-posnn,
ntgew LIKE vbfa-ntgew,
END OF itab_vbfa.
DATA: BEGIN OF itab_vbap_aux OCCURS 0,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
netwr TYPE vbap-netwr,
kwmeng TYPE vbap-kwmeng,
vrkme TYPE vbap-vrkme,
END OF itab_vbap_aux.
DATA: BEGIN OF itab_vbrp_aux OCCURS 0,
vbeln TYPE vbrp-vbeln,
posnr TYPE vbrp-posnr,
netwr TYPE vbrp-netwr,
END OF itab_vbrp_aux.
* << Fim da exclusão
IMPORT v_flag FROM MEMORY ID 'EMBARQUE'.
IF v_flag EQ 'NOVO'.
GET PARAMETER ID '/PWS/ZYCEP001' FIELD wa_zycee001-nrseq.
SELECT SINGLE * FROM /pws/zycet001 INTO wa_zycee001
WHERE nrseq = wa_zycee001-nrseq.
* >> Início da exclusão: FORM SELECIONA_DADOS
/pws/zycee001-nremb = wa_zycee001-nremb.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
IF sy-subrc EQ 0.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DADOS
IF sy-subrc EQ 0.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
/pws/zycee001 = wa_zycee001.
* << Fim da inclusão
SELECT * FROM /pws/zycet002 INTO TABLE itab_zycet002
WHERE nrseq = wa_zycee001-nrseq.
SELECT * FROM /pws/zycet008 INTO TABLE itab_zycet008
WHERE nrseq = wa_zycee001-nrseq.
* >> Início da exclusão: FORM SELECIONA_DADOS
IF NOT itab_zycet002[] IS INITIAL.
SELECT vbeln
posnr
matnr
netwr
kwmeng
vrkme
FROM vbap
INTO TABLE itab_vbap_aux
FOR ALL ENTRIES IN itab_zycet002
WHERE vbeln = itab_zycet002-vbeln_va AND
posnr = itab_zycet002-aupos.
SELECT vbeln
posnr
netwr
FROM vbrp
INTO TABLE itab_vbrp_aux
FOR ALL ENTRIES IN itab_zycet002
WHERE vbeln = itab_zycet002-vbeln_vf AND
posnr = itab_zycet002-posnr.
ENDIF.
* << Fim da exclusão
CALL FUNCTION '/PWS/ZYCE_SEPARA_ITENS_EMB'
EXPORTING
* >> Início da exclusão: FORM SELECIONA_DADOS
nrseq = wa_zycee001-nrseq
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
nrseq = wa_zycee001-nrseq
* << Fim da inclusão
TABLES
* >> Início da exclusão: FORM SELECIONA_DADOS
tab_saida = itab_saida
tab_complemento = itab_complemento
tab_devolucao = itab_devolucao
tab_estorno = itab_estorno.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
tab_saida = itab_saida
EXCEPTIONS
itens_nao_encontrados = 1.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DADOS
DELETE itab_saida WHERE ( vlme = space AND vlfob = space ) OR
( ntgew = space AND brgew = space ).
LOOP AT itab_zycet002.
READ TABLE itab_saida WITH KEY vbeln_va = itab_zycet002-vbeln_va
vbeln_vf = itab_zycet002-vbeln_vf
vbeln_vl = itab_zycet002-vbeln_vl
posnl = itab_zycet002-posnl
posnr = itab_zycet002-posnr
aupos = itab_zycet002-aupos.
CHECK sy-subrc EQ 0.
APPEND itab_zycet002 TO itab_zycet002_102.
ENDLOOP.
DELETE itab_zycet002_102 WHERE vbeln_va = space OR
st_vd = 'ES'.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
APPEND LINES OF itab_saida[] TO itab_zycet002_102[].
* << Fim da inclusão
ENDIF.
ELSE.
IMPORT wa_zycee001 FROM MEMORY ID 'ID_ADIC_001'.
IF sy-subrc = 0.
MOVE-CORRESPONDING wa_zycee001 TO /pws/zycee001.
IMPORT itab_zycet002 FROM MEMORY ID 'ID_ADIC_002'.
IMPORT itab_zycet002_102 FROM MEMORY ID 'ID_ADIC_002_102'.
IMPORT itab_zycet008 FROM MEMORY ID 'ID_ADIC_008'.
FREE MEMORY ID: 'ID_ADIC_001',
'ID_ADIC_002',
...
...
CONTINUE.
ENDIF.
ENDLOOP.
/pws/zycee046-waers = itab_zycet002-waers.
ADD /pws/zycee313-vlme_frt TO /pws/zycee046-vlfrete.
ENDIF.
ENDIF.
ENDFORM.
FORM busca_rota.
DATA v_vinc(1) TYPE c.
* >> Início da inclusão: FORM BUSCA_ROTA
DATA: nrseqtr_tela TYPE /pws/zycet046-nrseqtr,
nrrota_tr_tela TYPE /pws/zycet046-nrrota_tr,
nrseqno_tela TYPE /pws/zycet046-nrseqno,
nrseqcg_tela TYPE /pws/zycet046-nrseqcg.
nrseqtr_tela = /pws/zycee046-nrseqtr.
nrrota_tr_tela = /pws/zycee046-nrrota_tr.
nrseqno_tela = /pws/zycee046-nrseqno.
nrseqcg_tela = /pws/zycee046-nrseqcg.
* << Fim da inclusão
READ TABLE itab_zycet002_102 INDEX 1.
IF /pws/zycee001-tipo_emb <> 'D'.
IF NOT itab_zycet002_102[] IS INITIAL.
CLEAR v_vinc.
LOOP AT itab_zycet002_102.
CHECK NOT itab_zycet002_102-vbeln_va IS INITIAL AND
NOT v_vinc = 'X'.
SELECT SINGLE nrseqtr
nrrota_tr
nrseqno
...
...
IF NOT itab_zycet002_102-ebeln IS INITIAL.
SELECT SINGLE * FROM /pws/zycet135 INTO /pws/zycet135
WHERE ebeln = itab_zycet002_102-ebeln.
IF sy-subrc = 0.
MOVE /pws/zycet135-nrseqno TO /pws/zycee046-nrseqno.
SELECT SINGLE * FROM /pws/zycet106 INTO /pws/zycet106
WHERE nrseqno = /pws/zycet135-nrseqno.
IF sy-subrc = 0.
MOVE: /pws/zycet106-nrseqtr TO /pws/zycee046-nrseqtr,
/pws/zycet106-nrrota_tr TO /pws/zycee046-nrrota_tr.
* >> Início da inclusão: FORM BUSCA_ROTA
ELSE.
CLEAR: /pws/zycee046-nrseqtr,
/pws/zycee046-nrrota_tr.
ENDIF.
ELSE.
CLEAR: /pws/zycee046-nrseqno,
/pws/zycee046-nrseqtr,
/pws/zycee046-nrrota_tr.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM BUSCA_ROTA
ELSE.
CLEAR: /pws/zycee046-nrseqno,
/pws/zycee046-nrseqtr,
/pws/zycee046-nrrota_tr.
* << Fim da inclusão
ENDIF.
ENDIF.
* >> Início da inclusão: FORM BUSCA_ROTA
IF nrseqtr_tela <> /pws/zycee046-nrseqtr
OR nrrota_tr_tela <> /pws/zycee046-nrrota_tr
OR nrseqno_tela <> /pws/zycee046-nrseqno
OR nrseqcg_tela <> /pws/zycee046-nrseqcg.
v_datar = 'X'.
* << Fim da inclusão
ENDIF.
ENDFORM.
FORM busca_banco.
READ TABLE itab_zycet002_102 INDEX 1.
IF /pws/zycee046-bco1 IS INITIAL AND
NOT itab_zycet002_102-vbeln_va IS INITIAL.
SELECT SINGLE lifnr FROM vbpa
INTO /pws/zycee046-bco1
WHERE vbeln = itab_zycet002_102-vbeln_va AND
parvw = 'ZP'.
...