Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 05/04/2007 00:00:00
Data/Hora Última Alteração: 03/03/2010 13:16:58
Descrição da Nota: CRIAÇÃO DE EMBARQUE PELO TRANSPORTE
Sintoma
Não era possível incluir diretamente ordens de transporte num embarque.
Solução
O embarque passa a aceitar a entrada de ordens de transporte. Cada transporte pode ter diversas
remessas vinculadas; ao incluir um transporte, o programa simula a inclusão dessas remessas.
6.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03401 Data: 05/04/2007 Hora: 13:57:36
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03401
Categoria : Melhoria
Prioridade : Baixa
Versão PW.CE : 6.0
Pacote : 00026
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
Texto Rápido:
CRIAÇÃO DE EMBARQUE PELO TRANSPORTE
----------------------------------------------------------------------------------------------------
Palavras Chave:
EMBARQUE CRIAÇÃO TRANSPORTE
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCE003 0102
REPS /PWS/MZYCE003F01
REPS /PWS/MZYCE003F02
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCE003 0102
Modificado o campo de entrada e saída (I/O) /PWS/ZYCEE002-TKNUM:
-Novo grupo de modificação 2: N
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE003F01
...
gjahr TYPE bkpf-gjahr,
END OF itab_doc.
DATA: BEGIN OF itab_ped OCCURS 0,
ebeln TYPE ekko-ebeln,
ebelp TYPE ekpo-ebelp,
END OF itab_ped.
DATA: wa_vbco6 TYPE vbco6.
DATA: v_vbtyp TYPE vbak-vbtyp,
v_vbeln TYPE vbak-vbeln,
v_posnr TYPE vbap-posnr.
* >> Início da inclusão: FORM SELECIONA_DADOS_SAP
DATA: itab_zycet002_rem_transp LIKE itab_zycet002[].
* << Fim da inclusão
FIELD-SYMBOLS: <fs_vbfa> TYPE vbfa.
IF p_unico EQ 'X'.
* >> Início da inclusão: FORM SELECIONA_DADOS_SAP
IF NOT itab_zycet002-tknum IS INITIAL.
SELECT vbeln
FROM vttp
APPENDING TABLE itab_for[]
WHERE tknum = itab_zycet002-tknum.
ENDIF.
* << Fim da inclusão
IF NOT itab_zycet002-vbeln_va IS INITIAL.
MOVE: itab_zycet002-vbeln_va TO itab_ovs-vbeln,
itab_zycet002-aupos TO itab_ovs-posnr.
APPEND itab_ovs.
ELSEIF NOT itab_zycet002-vbeln_vl IS INITIAL.
MOVE: itab_zycet002-vbeln_vl TO itab_for-vbeln,
itab_zycet002-posnl TO itab_for-posnr.
APPEND itab_for.
ELSEIF NOT itab_zycet002-ebeln IS INITIAL.
MOVE: itab_zycet002-ebeln TO itab_ped-ebeln,
itab_zycet002-ebelp TO itab_ped-ebelp.
APPEND itab_ped.
sy-subrc = 4.
ELSE.
EXIT.
ENDIF.
ELSE.
PERFORM limpa_dados_sap.
* >> Início da inclusão: FORM SELECIONA_DADOS_SAP
LOOP AT itab_zycet002 WHERE NOT tknum IS initial
AND novo = 'X'.
APPEND itab_zycet002-tknum TO itab_tra[].
DELETE itab_zycet002.
ENDLOOP.
IF NOT itab_tra[] IS INITIAL.
SORT itab_tra[] BY tknum.
DELETE ADJACENT DUPLICATES FROM itab_tra[] COMPARING tknum.
SELECT vbeln AS vbeln_vl
FROM vttp
INTO CORRESPONDING FIELDS OF TABLE itab_zycet002_rem_transp[]
FOR ALL ENTRIES IN itab_tra[]
WHERE tknum = itab_tra-tknum.
IF sy-subrc = 0.
APPEND LINES OF itab_zycet002_rem_transp[] TO itab_zycet002[].
ENDIF.
REFRESH itab_tra[].
ENDIF.
* << Fim da inclusão
LOOP AT itab_zycet002 WHERE NOT ebeln IS initial.
MOVE: itab_zycet002-ebeln TO itab_ped-ebeln,
itab_zycet002-ebelp TO itab_ped-ebelp.
COLLECT itab_ped.
ENDLOOP.
LOOP AT itab_zycet002 WHERE NOT vbeln_va IS initial.
MOVE: itab_zycet002-vbeln_va TO itab_ovs-vbeln,
itab_zycet002-aupos TO itab_ovs-posnr.
COLLECT itab_ovs.
ENDLOOP.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE003F02
...
PERFORM calcula_taxa_cambio.
okcode = 'DUMMY'.
WHEN 'ENTER'.
CHECK */pws/zycee001-dtemb NE /pws/zycee001-dtemb.
PERFORM calcula_taxa_cambio.
ENDCASE.
ENDFORM.
FORM okcode_0102.
DATA: v_linhas TYPE sy-tabix,
v_exclui TYPE c.
* >> Início da inclusão: FORM OKCODE_0102
DATA: it_tknum TYPE STANDARD TABLE OF vttp-tknum WITH KEY table_line,
it_zycet002_rem_transp LIKE itab_zycet002[].
* << Fim da inclusão
CASE okcode.
WHEN 'COMPLETE'.
READ TABLE itab_zycet002_tc WITH KEY mark = 'X'.
IF sy-subrc NE 0.
MESSAGE s323(v1).
EXIT.
ENDIF.
LOOP AT itab_zycet002_tc WHERE mark EQ 'X'.
CHECK NOT itab_zycet002_tc-vbeln_va IS INITIAL OR
NOT itab_zycet002_tc-ebeln IS INITIAL.
CLEAR itab_zycet002.
itab_zycet002-nrseq = /pws/zycee001-nrseq.
itab_zycet002-vbeln_va = itab_zycet002_tc-vbeln_va.
itab_zycet002-ebeln = itab_zycet002_tc-ebeln.
itab_zycet002-novo = 'X'.
COLLECT itab_zycet002.
wa_controle-novos_itens = 'X'.
okcode = 'REFRESH'.
* >> Início da inclusão: FORM OKCODE_0102
IF NOT itab_zycet002_tc-tknum IS INITIAL.
COLLECT itab_zycet002_tc-tknum INTO it_tknum[].
ENDIF.
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM OKCODE_0102
IF NOT it_tknum[] IS INITIAL.
SORT it_tknum[].
SELECT vbeln AS vbeln_vl
FROM vttp
INTO CORRESPONDING FIELDS OF TABLE it_zycet002_rem_transp[]
FOR ALL ENTRIES IN it_tknum[]
WHERE tknum = it_tknum-table_line.
IF sy-subrc = 0.
itab_zycet002-novo = 'X'.
MODIFY it_zycet002_rem_transp[]
FROM itab_zycet002
TRANSPORTING novo
WHERE novo <> 'X'.
APPEND LINES OF it_zycet002_rem_transp[] TO itab_zycet002[].
ENDIF.
ENDIF.
* << Fim da inclusão
WHEN 'DEL_MK'.
PERFORM elimina_itens_marcados USING 'X'
CHANGING v_exclui.
IF v_exclui EQ 'X'.
PERFORM refresh_embarque USING 'X'.
IF itab_zycet002_tc[] IS INITIAL.
okcode = 'T/02'.
ENDIF.
ENDIF.
WHEN 'DETAIL'.
...