Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 12/02/2008 00:00:00
Data/Hora Última Alteração: 22/02/2011 10:57:26
Descrição da Nota: REFATORAÇÃO DO PROGRAMA DE LANÇAMENTOS EM CO-PA
Sintoma
Indicação de erros durante Inspeção de Código.
Posicionamento vertical incorreto da tabela de campos usando a barra de rolagem.
Campo de status dos itens lançados não utilizado.
Solução
Implementação de ajustes para conformidade com inspeção de código.
Correção da referência da tabela de campos.
Remoção de campo de status dos itens lançados.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05905 Data: 12/02/2008 Hora: 14:17:10
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05905
Categoria : Melhoria
Prioridade : Baixa
Versão PW.CE : 7.0
Pacote : 00004
Agrupamento : 00034
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
05261 - 00001 - 7.0 - 00003 - TRATAMENTO CO-PA EXPORTAÇÃO
----------------------------------------------------------------------------------------------------
REFATORAÇÃO DO PROGRAMA DE LANÇAMENTOS EM CO-PA
----------------------------------------------------------------------------------------------------
Palavras Chave:
LANÇAMENTOS CO-PA
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCE400 0102
FUNC /PWS/ZYCE_ITENS_EMBARQUE_CO_PA
FUNC /PWS/ZYCE_MOD_ITENS_CO_PA
REPS /PWS/MZYCE400F01
REPS /PWS/MZYCE400F02
REPS /PWS/MZYCE400I01
REPS /PWS/MZYCE400O01
REPS /PWS/MZYCE400TOP
REPS /PWS/ZYCER401
REPT /PWS/ZYCER401
TABD /PWS/ZYCET403
TTYP /PWS/ZYGLL820
TTYP /PWS/ZYGLL821
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCE400 0102
LÓGICA DE PROCESSAMENTO TELA 0102:
PROCESS BEFORE OUTPUT.
* >> início da exclusão:
MODULE:
ajusta_tela,
ajusta_tc_cmplct.
* << fim da exclusão
* >> início da inclusão:
MODULE ajusta_tela.
* << fim da inclusão
LOOP WITH CONTROL tc_cmplct.
MODULE carrega_tabctrl.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP WITH CONTROL tc_cmplct.
FIELD /pws/zycee401-fiede MODULE ajusta_descricao ON REQUEST.
MODULE recupera_tabctrl.
ENDLOOP.
MODULE comando_usuario.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCE_ITENS_EMBARQUE_CO_PA
...
posnr TYPE vbpa-posnr,
parvw TYPE vbpa-parvw,
kunnr TYPE vbpa-kunnr,
lifnr TYPE vbpa-lifnr,
END OF t_item_parceiro.
DATA:
it_itens_parceiro TYPE STANDARD TABLE OF t_item_parceiro,
it_itens_embarque TYPE STANDARD TABLE OF /pws/zycet002,
it_faturamentos TYPE STANDARD TABLE OF /pws/zycet002-vbeln_vf,
wa_item_embarque TYPE /pws/zycet002,
* >> Início da exclusão: FUNCTION /PWS/ZYCE_ITENS_EMBARQUE_CO_PA
wa_item_parceiro TYPE t_item_parceiro.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCE_ITENS_EMBARQUE_CO_PA
wa_item_parceiro TYPE t_item_parceiro,
wa_parceiro TYPE vbpa.
* << Fim da inclusão
MOVE t_itens_embarque[] TO it_itens_embarque.
IF it_itens_embarque IS INITIAL.
RAISE itens_embarque_invalidos.
ENDIF.
SORT it_itens_embarque ASCENDING BY nrseq.
DELETE ADJACENT DUPLICATES FROM it_itens_embarque.
DELETE it_itens_embarque WHERE vbeln_vf = space.
CHECK NOT it_itens_embarque[] IS INITIAL.
* >> Início da exclusão: FUNCTION /PWS/ZYCE_ITENS_EMBARQUE_CO_PA
SELECT *
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCE_ITENS_EMBARQUE_CO_PA
SELECT vbeln_vf posnr_vf
* << Fim da inclusão
FROM /pws/zycet403
INTO TABLE t_itens_co_pa
FOR ALL ENTRIES IN it_itens_embarque
WHERE
vbeln_vf = it_itens_embarque-vbeln_vf AND
posnr_vf = it_itens_embarque-posnr.
CHECK NOT i_retorna_parceiros IS INITIAL.
LOOP AT it_itens_embarque INTO wa_item_embarque.
APPEND wa_item_embarque-vbeln_vf TO it_faturamentos.
ENDLOOP.
SORT it_faturamentos.
DELETE ADJACENT DUPLICATES FROM it_faturamentos.
SELECT vbeln posnr parvw kunnr lifnr
FROM vbpa
INTO TABLE it_itens_parceiro
FOR ALL ENTRIES IN it_faturamentos
WHERE vbeln = it_faturamentos-table_line AND
posnr = 0.
CLEAR t_parceiros[].
LOOP AT it_itens_parceiro INTO wa_item_parceiro.
* >> Início da exclusão: FUNCTION /PWS/ZYCE_ITENS_EMBARQUE_CO_PA
MOVE-CORRESPONDING wa_item_parceiro TO t_parceiros.
APPEND t_parceiros.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCE_ITENS_EMBARQUE_CO_PA
MOVE-CORRESPONDING wa_item_parceiro TO wa_parceiro.
APPEND wa_parceiro TO t_parceiros.
* << Fim da inclusão
ENDLOOP.
ENDFUNCTION.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCE_MOD_ITENS_CO_PA
FUNCTION /pws/zyce_mod_itens_co_pa.
* >> Início da exclusão: FUNCTION /PWS/ZYCE_MOD_ITENS_CO_PA
CONSTANTS c_lancamento(1) TYPE c VALUE 'L'.
DATA wa_item_lancado TYPE /pws/zycet403.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCE_MOD_ITENS_CO_PA
CONSTANTS:
c_lancamento(1) TYPE c VALUE 'L',
c_estorno(1) TYPE c VALUE 'E'.
DATA:
wa_item_lancado TYPE /pws/zycet403,
it_itens_lancados TYPE HASHED TABLE OF /pws/zycet403
WITH UNIQUE KEY vbeln_vf posnr_vf.
* << Fim da inclusão
IF t_itens_embarque[] IS INITIAL.
RAISE itens_embarque_invalidos.
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCE_MOD_ITENS_CO_PA
LOOP AT t_itens_embarque.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCE_MOD_ITENS_CO_PA
LOOP AT t_itens_embarque WHERE dtlancrc NE '00000000'.
* << Fim da inclusão
wa_item_lancado-vbeln_vf = t_itens_embarque-vbeln_vf.
wa_item_lancado-posnr_vf = t_itens_embarque-posnr.
* >> Início da exclusão: FUNCTION /PWS/ZYCE_MOD_ITENS_CO_PA
IF NOT t_itens_embarque-dtlancrc IS INITIAL.
wa_item_lancado-stlct = 'X'.
ENDIF.
DELETE FROM /pws/zycet403 WHERE
vbeln_vf = wa_item_lancado-vbeln_vf AND
posnr_vf = wa_item_lancado-posnr_vf.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCE_MOD_ITENS_CO_PA
INSERT wa_item_lancado INTO TABLE it_itens_lancados.
ENDLOOP.
* << Fim da inclusão
* >> Início da exclusão: FUNCTION /PWS/ZYCE_MOD_ITENS_CO_PA
CHECK i_modo = c_lancamento.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCE_MOD_ITENS_CO_PA
CHECK NOT it_itens_lancados IS INITIAL.
* << Fim da inclusão
* >> Início da exclusão: FUNCTION /PWS/ZYCE_MOD_ITENS_CO_PA
INSERT INTO /pws/zycet403 VALUES wa_item_lancado.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCE_MOD_ITENS_CO_PA
CASE i_modo.
WHEN c_lancamento.
MODIFY /pws/zycet403 FROM TABLE it_itens_lancados.
* << Fim da inclusão
* >> Início da exclusão: FUNCTION /PWS/ZYCE_MOD_ITENS_CO_PA
ENDLOOP.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCE_MOD_ITENS_CO_PA
WHEN c_estorno.
DELETE /pws/zycet403 FROM TABLE it_itens_lancados.
ENDCASE.
* << Fim da inclusão
COMMIT WORK.
ENDFUNCTION.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE400F01
...
ENDFORM.
FORM recupera_tabctrl.
DATA wa_campo_lct TYPE t_campo_lct.
v_cmplct_ln = sy-loopc.
READ TABLE it_campos_lct WITH KEY fienm = /pws/zycee401-fienm
TRANSPORTING NO FIELDS.
CHECK sy-subrc = 0.
MOVE-CORRESPONDING /pws/zycee401 TO wa_campo_lct.
MODIFY it_campos_lct FROM wa_campo_lct INDEX tc_cmplct-current_line.
ENDFORM.
* >> Início da exclusão: FORM COMANDO_USUARIO_0001
FORM comando_usuario_0001.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0001
FORM comando_usuario_0001 CHANGING p_modo TYPE char1.
* << Fim da inclusão
CASE okcode.
WHEN 'BACK' OR 'CANCEL' OR 'ABORT'.
LEAVE PROGRAM.
WHEN 'EXIBIR'.
CLEAR okcode.
* >> Início da exclusão: FORM COMANDO_USUARIO_0001
v_modo = c_ex.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0001
p_modo = c_ex.
* << Fim da inclusão
PERFORM selecionar_dados USING
/pws/zycee400-erkrs
* >> Início da exclusão: FORM COMANDO_USUARIO_0001
v_modo.
CALL SCREEN '0100'.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0001
p_modo.
* << Fim da inclusão
WHEN 'MODIF'.
CLEAR okcode.
* >> Início da exclusão: FORM COMANDO_USUARIO_0001
v_modo = c_md.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0001
p_modo = c_md.
* << Fim da inclusão
PERFORM selecionar_dados USING
/pws/zycee400-erkrs
* >> Início da exclusão: FORM COMANDO_USUARIO_0001
v_modo.
CALL SCREEN '0100'.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0001
p_modo.
* << Fim da inclusão
WHEN 'CRIAR'.
CLEAR:
/pws/zycee400-paledger,
/pws/zycee400-vrgar,
/pws/zycee400-finco,
/pws/zycee400-lmemb,
it_campos_lct,
okcode.
* >> Início da exclusão: FORM COMANDO_USUARIO_0001
v_modo = c_cr.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0001
p_modo = c_cr.
* << Fim da inclusão
PERFORM selecionar_dados USING
/pws/zycee400-erkrs
* >> Início da exclusão: FORM COMANDO_USUARIO_0001
v_modo.
CALL SCREEN '0100'.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0001
p_modo.
* << Fim da inclusão
ENDCASE.
ENDFORM.
* >> Início da exclusão: FORM COMANDO_USUARIO_0100
FORM comando_usuario_0100.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0100
FORM comando_usuario_0100
CHANGING
p_modo TYPE char1
p_tela TYPE dynnr.
* << Fim da inclusão
DATA v_confirmacao(1) TYPE c.
CASE okcode.
WHEN 'SAVE'.
CLEAR okcode.
* >> Início da exclusão: FORM COMANDO_USUARIO_0100
PERFORM grava_dados.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0100
PERFORM grava_dados USING p_modo.
* << Fim da inclusão
WHEN 'CANCEL'.
CLEAR okcode.
* >> Início da exclusão: FORM COMANDO_USUARIO_0100
PERFORM desbloqueia_registro USING v_modo /pws/zycee400-erkrs.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0100
PERFORM desbloqueia_registro USING p_modo /pws/zycee400-erkrs.
* << Fim da inclusão
LEAVE TO SCREEN '0001'.
WHEN 'BACK'.
CLEAR okcode.
* >> Início da exclusão: FORM COMANDO_USUARIO_0100
PERFORM desbloqueia_registro USING v_modo /pws/zycee400-erkrs.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0100
PERFORM desbloqueia_registro USING p_modo /pws/zycee400-erkrs.
* << Fim da inclusão
LEAVE TO SCREEN '0001'.
WHEN 'ABORT'.
* >> Início da exclusão: FORM COMANDO_USUARIO_0100
PERFORM desbloqueia_registro USING v_modo /pws/zycee400-erkrs.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0100
PERFORM desbloqueia_registro USING p_modo /pws/zycee400-erkrs.
* << Fim da inclusão
LEAVE PROGRAM.
WHEN 'CPCAB'.
CLEAR okcode.
* >> Início da exclusão: FORM COMANDO_USUARIO_0100
v_tela = c_cmpcab-tela.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0100
p_tela = c_cmpcab-tela.
* << Fim da inclusão
ts_co_pa-activetab = c_cmpcab-tab.
WHEN 'CPLCT'.
CLEAR okcode.
* >> Início da exclusão: FORM COMANDO_USUARIO_0100
v_tela = c_cmplct-tela.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0100
p_tela = c_cmplct-tela.
* << Fim da inclusão
ts_co_pa-activetab = c_cmplct-tab.
WHEN 'DELE'.
CLEAR okcode.
* >> Início da exclusão: FORM COMANDO_USUARIO_0100
PERFORM confirma_remocao
USING /pws/zycee400-erkrs CHANGING v_confirmacao.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0100
PERFORM confirma_remocao CHANGING v_confirmacao.
* << Fim da inclusão
CASE v_confirmacao.
WHEN 'J' OR 'Y'.
PERFORM:
apagar_dados USING /pws/zycee400-erkrs,
desbloqueia_registro USING v_modo /pws/zycee400-erkrs.
ENDCASE.
WHEN 'EXIBIR'.
CLEAR okcode.
* >> Início da exclusão: FORM COMANDO_USUARIO_0100
PERFORM desbloqueia_registro USING v_modo /pws/zycee400-erkrs.
v_modo = c_ex.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0100
PERFORM desbloqueia_registro USING p_modo /pws/zycee400-erkrs.
p_modo = c_ex.
* << Fim da inclusão
WHEN 'MODIF'.
CLEAR okcode.
* >> Início da exclusão: FORM COMANDO_USUARIO_0100
v_modo = c_md.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0100
p_modo = c_md.
* << Fim da inclusão
PERFORM bloqueia_registro
* >> Início da exclusão: FORM COMANDO_USUARIO_0100
USING /pws/zycee400-erkrs CHANGING v_modo.
* << Fim da exclusão
* >> Início da inclusão: FORM COMANDO_USUARIO_0100
USING /pws/zycee400-erkrs CHANGING p_modo.
* << Fim da inclusão
ENDCASE.
ENDFORM.
FORM comando_usuario_0101.
CASE okcode.
WHEN 'ENTE'.
CLEAR okcode.
PERFORM atualiza_descricoes
USING /pws/zycee400-paledger /pws/zycee400-vrgar
CHANGING tkelt-ledbo_bz tvgat-vrgarx.
ENDCASE.
...
...
USING v_linhas v_cmplct_ln CHANGING v_topo_tc_cmplct.
WHEN OTHERS.
v_topo_tc_cmplct = tc_cmplct-top_line.
ENDCASE.
tc_cmplct-top_line = v_topo_tc_cmplct.
ENDFORM.
FORM ajustes_iniciais.
v_nome_programa = sy-repid.
v_tela = '0101'.
ts_co_pa-activetab = c_cmpcab-tab.
* >> Início da inclusão: FORM AJUSTES_INICIAIS
CLEAR v_modo.
* << Fim da inclusão
ENDFORM.
FORM paginacao_table_control
USING
p_linhas TYPE sy-tabix
p_cmplct_ln TYPE sy-loopc
CHANGING
p_pagina TYPE sy-tabix.
CASE okcode.
WHEN 'P--'.
p_pagina = 1.
...
...
CASE wa_cols-screen-group1.
WHEN 'EDT'.
IF v_modo = c_ex.
wa_cols-screen-input = '0'.
ELSE.
wa_cols-screen-input = '1'.
ENDIF.
MODIFY tc_cmplct-cols FROM wa_cols.
ENDCASE.
ENDLOOP.
* >> Início da inclusão: FORM AJUSTA_TELA_0102
DESCRIBE TABLE it_campos_lct LINES tc_cmplct-lines.
* << Fim da inclusão
ENDFORM.
FORM ajusta_status_0001.
SET PF-STATUS 'INICIAL'.
ENDFORM.
FORM ajusta_status_0100 USING p_modo TYPE char1.
TYPES:
* >> Início da exclusão: FORM AJUSTA_STATUS_0100
BEGIN OF t_btgui,
fcode TYPE rsmpe-func,
END OF t_btgui,
* << Fim da exclusão
* >> Início da inclusão: FORM AJUSTA_STATUS_0100
t_btgui TYPE LINE OF /pws/zygll820,
* << Fim da inclusão
BEGIN OF t_stgui,
modo(1) TYPE c,
* >> Início da exclusão: FORM AJUSTA_STATUS_0100
btgui TYPE t_btgui OCCURS 0,
* << Fim da exclusão
* >> Início da inclusão: FORM AJUSTA_STATUS_0100
btgui TYPE /pws/zygll820,
* << Fim da inclusão
END OF t_stgui.
STATICS
it_stgui TYPE STANDARD TABLE OF t_stgui.
DATA:
v_tabix TYPE sy-tabix,
wa_stgui TYPE t_stgui,
wa_btgui TYPE t_btgui.
DEFINE insere_btgui.
* >> Início da exclusão: FORM AJUSTA_STATUS_0100
wa_btgui-fcode = &2.
* << Fim da exclusão
* >> Início da inclusão: FORM AJUSTA_STATUS_0100
wa_btgui = &2.
* << Fim da inclusão
clear wa_stgui.
read table it_stgui into wa_stgui
with key modo = &1.
if sy-subrc = 0.
v_tabix = sy-tabix.
append wa_btgui to wa_stgui-btgui.
modify it_stgui from wa_stgui index v_tabix.
else.
wa_stgui-modo = &1.
append:
...
...
CLEAR /pws/zycee401-txtde.
ENDIF.
CHECK NOT /pws/zycee401-fiede IS INITIAL AND
/pws/zycee401-txtde IS INITIAL AND
NOT it_campos_exp IS INITIAL.
READ TABLE it_campos_exp INTO wa_campo_exp WITH KEY
campo = /pws/zycee401-fiede.
CHECK sy-subrc = 0.
/pws/zycee401-txtde = wa_campo_exp-descr.
ENDFORM.
* >> Início da inclusão:
FORM executa_comando_usuario.
DATA:
v_pmodo(1) TYPE c,
v_ptela TYPE dynnr.
v_pmodo = v_modo.
v_ptela = v_tela.
CASE sy-dynnr.
WHEN '0001'.
PERFORM comando_usuario_0001 CHANGING v_pmodo.
v_modo = v_pmodo.
CHECK NOT v_modo IS INITIAL.
CALL SCREEN '0100'.
WHEN '0100'.
PERFORM comando_usuario_0100 CHANGING v_pmodo v_ptela.
WHEN '0101'.
PERFORM comando_usuario_0101.
WHEN '0102'.
PERFORM comando_usuario_0102.
ENDCASE.
v_modo = v_pmodo.
v_tela = v_ptela.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE400F02
FORM selecionar_dados USING
p_area_resultado TYPE /pws/zycee400-erkrs
p_modo TYPE char1.
* >> Início da exclusão: FORM SELECIONAR_DADOS
DATA:
v_nvlct(1) TYPE c,
wa_campo_lct TYPE t_campo_lct.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_DADOS
DATA v_nvlct(1) TYPE c.
* << Fim da inclusão
CLEAR v_nvlct.
IF p_modo = c_cr.
v_nvlct = 'X'.
ENDIF.
CALL FUNCTION '/PWS/ZYCE_RET_CAMPOS_CO_PA'
EXPORTING
i_area_resultado = p_area_resultado
i_novos_lct = v_nvlct
IMPORTING
e_param_area_resultado = /pws/zycee400
...
...
USING /pws/zycee400-erkrs CHANGING v_modo.
ENDIF.
CALL FUNCTION '/PWS/ZYCE_CAMPOS_EXP_CO_PA'
TABLES
t_campos_exp_co_pa = it_campos_exp.
CHECK p_modo = c_md OR p_modo = c_ex.
PERFORM atualiza_descricoes
USING /pws/zycee400-paledger /pws/zycee400-vrgar
CHANGING tkelt-ledbo_bz tvgat-vrgarx.
ENDFORM.
* >> Início da exclusão: FORM GRAVA_DADOS
FORM grava_dados.
DATA wa_campo_lct TYPE t_campo_lct.
* << Fim da exclusão
* >> Início da inclusão: FORM GRAVA_DADOS
FORM grava_dados USING p_modo TYPE char1.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCE_MOD_CAMPOS_CO_PA'
EXPORTING
i_param_area_resultado = /pws/zycee400
* >> Início da exclusão: FORM GRAVA_DADOS
i_modo = v_modo
* << Fim da exclusão
* >> Início da inclusão: FORM GRAVA_DADOS
i_modo = p_modo
* << Fim da inclusão
TABLES
...
...
TABLES
t_descr_param = it_descr_param.
ENDIF.
READ TABLE it_descr_param INTO wa_descr_param
WITH KEY tpdsc = 'TM' tipo = p_paledger.
p_ledbo_bz = wa_descr_param-descr.
READ TABLE it_descr_param INTO wa_descr_param
WITH KEY tpdsc = 'TO' tipo = p_vrgar.
p_vrgarx = wa_descr_param-descr.
ENDFORM.
* >> Início da exclusão: FORM CONFIRMA_REMOCAO
FORM confirma_remocao
USING p_area_resultado TYPE /pws/zycee400-erkrs
CHANGING p_confirmacao TYPE char1.
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_REMOCAO
FORM confirma_remocao CHANGING p_confirmacao TYPE char1.
* << Fim da inclusão
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
defaultoption = 'N'
textline1 = 'Deseja apagar os parâmetros?'(001)
titel = 'Preenchimento de Campos no CO-PA'(002)
start_column = 25
start_row = 6
IMPORTING
answer = p_confirmacao
EXCEPTIONS
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE400I01
MODULE recupera_tabctrl INPUT.
PERFORM recupera_tabctrl.
ENDMODULE.
MODULE comando_usuario INPUT.
* >> Início da exclusão: MODULE COMANDO_USUARIO
CASE sy-dynnr.
WHEN '0001'.
PERFORM comando_usuario_0001.
WHEN '0100'.
PERFORM comando_usuario_0100.
WHEN '0101'.
PERFORM comando_usuario_0101.
WHEN '0102'.
PERFORM comando_usuario_0102.
ENDCASE.
* << Fim da exclusão
* >> Início da inclusão: MODULE COMANDO_USUARIO
PERFORM executa_comando_usuario.
* << Fim da inclusão
ENDMODULE.
MODULE ajusta_descricao INPUT.
PERFORM ajusta_descricao.
ENDMODULE.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE400O01
...
PERFORM ajustes_iniciais.
ENDMODULE.
MODULE ajusta_status OUTPUT.
CASE sy-dynnr.
WHEN '0001'.
PERFORM ajusta_status_0001.
WHEN '0100'.
PERFORM ajusta_status_0100 using v_modo.
ENDCASE.
ENDMODULE.
* >> Início da exclusão: MODULE AJUSTA_TC_CMPLCT
MODULE ajusta_tc_cmplct OUTPUT.
tc_cmplct-lines = v_cmplct_ln + sy-srows - 3.
ENDMODULE.
* << Fim da exclusão
MODULE ajusta_tela OUTPUT.
CASE sy-dynnr.
WHEN '0101'.
PERFORM ajusta_tela_0101.
WHEN '0102'.
PERFORM ajusta_tela_0102.
ENDCASE.
ENDMODULE.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE400TOP
CONTROLS:
tc_cmplct TYPE TABLEVIEW USING SCREEN '0102',
* >> Início da exclusão:
ts_co_pa TYPE TABSTRIP.
* << Fim da exclusão
* >> Início da inclusão:
ts_co_pa TYPE TABSTRIP. "#EC NEEDED
* << Fim da inclusão
TABLES:
tkes,
tkelt,
tvgat,
/pws/zycee400,
/pws/zycee401.
TYPES t_campo_lct TYPE /pws/zycet401.
CONSTANTS:
c_ex(1) TYPE c VALUE 'E',
c_md(1) TYPE c VALUE 'M',
...
...
END OF c_cmpcab,
BEGIN OF c_cmplct,
tela TYPE sy-dynnr VALUE '0102',
tab TYPE sy-ucomm VALUE 'CPLCT',
END OF c_cmplct.
DATA:
it_campos_lct TYPE STANDARD TABLE OF t_campo_lct,
it_campos_exp TYPE STANDARD TABLE OF /pws/zycet323,
okcode TYPE sy-ucomm,
v_modo(1) TYPE c,
* >> Início da exclusão:
v_nome_programa TYPE sy-repid,
v_tela TYPE sy-dynnr,
* << Fim da exclusão
* >> Início da inclusão:
v_nome_programa TYPE sy-repid, "#EC NEEDED
v_tela TYPE sy-dynnr, "#EC NEEDED
* << Fim da inclusão
v_cmplct_ln TYPE sy-loopc,
v_topo_tc_cmplct TYPE i.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCER401
...
cons_incoterm TYPE /pws/zycee400-finco,
lanc_moeda_emb TYPE /pws/zycee400-lmemb,
tipo_moeda_aval TYPE tkel-curtp,
END OF t_param_cmpcab,
BEGIN OF t_coluna,
nome TYPE fieldname,
desc TYPE /pws/zycet401-txtnm,
comp TYPE i,
END OF t_coluna,
BEGIN OF t_relatorio,
* >> Início da exclusão:
colunas TYPE bapi_copa_field OCCURS 0,
dados TYPE bapi_copa_data OCCURS 0,
* << Fim da exclusão
* >> Início da inclusão:
colunas TYPE bapi_copa_fieldlist,
dados TYPE /pws/zygll821,
* << Fim da inclusão
END OF t_relatorio,
* >> Início da inclusão:
t_status_lct TYPE /pws/zycet403,
t_status_lcts TYPE STANDARD TABLE OF t_status_lct,
* << Fim da inclusão
t_item_embarque TYPE /pws/zycet002,
t_param_cmplct TYPE /pws/zycet401,
* >> Início da exclusão:
t_status_lct TYPE /pws/zycet403,
* << Fim da exclusão
t_param_cmpexp TYPE /pws/zycet323,
t_parceiros TYPE STANDARD TABLE OF vbpa,
t_colunas TYPE STANDARD TABLE OF t_coluna,
t_param_cmpslct TYPE STANDARD TABLE OF t_param_cmplct,
t_param_cmpsexp TYPE STANDARD TABLE OF t_param_cmpexp,
t_mensagens TYPE STANDARD TABLE OF bdcmsgcoll,
* >> Início da exclusão:
t_campos TYPE STANDARD TABLE OF bapi_copa_field,
* << Fim da exclusão
* >> Início da inclusão:
t_campos TYPE bapi_copa_fieldlist,
* << Fim da inclusão
t_dados TYPE STANDARD TABLE OF bapi_copa_data,
t_selecoes TYPE STANDARD TABLE OF bapi_copa_selection,
t_retorno TYPE STANDARD TABLE OF bapiret2.
DATA:
it_itens_embarque TYPE STANDARD TABLE OF t_item_embarque,
it_param_cmpslct TYPE t_param_cmpslct,
it_param_cmpsexp TYPE STANDARD TABLE OF t_param_cmpexp,
it_status_lct TYPE STANDARD TABLE OF t_status_lct,
it_retorno TYPE t_retorno,
it_parceiros TYPE t_parceiros,
wa_param_cmpcab TYPE t_param_cmpcab,
wa_adm_area_res TYPE tkeb,
v_modo(1) TYPE c,
v_tipo(1) TYPE c,
v_tpcalc TYPE /pws/zycet001-tpcalc,
v_categ_moeda TYPE /pws/zycbt011-ctmoed,
v_seqemb TYPE /pws/zycee001-nrseq.
INITIALIZATION.
PERFORM confirma_operacao.
START-OF-SELECTION.
* >> Início da inclusão:
PERFORM seleciona_dados CHANGING v_tipo it_status_lct.
END-OF-SELECTION.
* << Fim da inclusão
SET PF-STATUS 'PADRAO' IMMEDIATELY.
PERFORM:
* >> Início da exclusão:
seleciona_dados,
processa_itens,
apresenta_dados.
* << Fim da exclusão
* >> Início da inclusão:
processa_itens USING v_tipo CHANGING it_status_lct,
apresenta_dados USING it_status_lct v_tipo.
* << Fim da inclusão
* >> Início da exclusão:
END-OF-SELECTION.
* << Fim da exclusão
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'ESTO'.
CLEAR sy-ucomm.
* >> Início da exclusão:
PERFORM confirma_estorno.
* << Fim da exclusão
* >> Início da inclusão:
PERFORM confirma_estorno CHANGING it_status_lct.
* << Fim da inclusão
WHEN 'VOLTAR'.
CLEAR sy-ucomm.
LEAVE PROGRAM.
ENDCASE.
* >> Início da exclusão: FORM SELECIONA_DADOS
FORM seleciona_dados.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
FORM seleciona_dados
CHANGING
p_tipo TYPE char1
p_status_lcts TYPE t_status_lcts.
* << Fim da inclusão
DATA:
it_itens_emb TYPE STANDARD TABLE OF t_item_embarque,
it_mensagens TYPE t_mensagens,
wa_param_area TYPE /pws/zycee400,
wa_status_lct TYPE t_status_lct,
* >> Início da exclusão: FORM SELECIONA_DADOS
wa_mensagem TYPE bdcmsgcoll,
wa_retorno TYPE bapiret2,
* << Fim da exclusão
wa_item_embarque TYPE t_item_embarque.
...
...
i_embarque = v_seqemb
IMPORTING
e_calculo_condicao = v_tpcalc
e_categoria_moeda = v_categ_moeda
EXCEPTIONS
embarque_invalido = 1
evento_embarque_invalido = 2.
CASE sy-subrc.
WHEN 1.
MESSAGE e003(/pws/zycem).
* >> Início da exclusão: FORM SELECIONA_DADOS
EXIT.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
LEAVE PROGRAM.
* << Fim da inclusão
WHEN 2.
MESSAGE e234(/pws/zycem).
* >> Início da exclusão: FORM SELECIONA_DADOS
EXIT.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
LEAVE PROGRAM.
* << Fim da inclusão
ENDCASE.
CALL FUNCTION '/PWS/ZYCE_SEPARA_ITENS_EMB'
EXPORTING
nrseq = v_seqemb
inclui_par_dt = space
inclui_es_saida = space
TABLES
tab_saida = it_itens_embarque
EXCEPTIONS
itens_nao_encontrados = 1.
IF sy-subrc NE 0.
MESSAGE e120(/pws/zycem).
* >> Início da exclusão: FORM SELECIONA_DADOS
EXIT.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
LEAVE PROGRAM.
* << Fim da inclusão
ENDIF.
CALL FUNCTION '/PWS/ZYCE_ITENS_EMBARQUE_CO_PA'
EXPORTING
i_retorna_parceiros = 'X'
TABLES
t_itens_embarque = it_itens_embarque
* >> Início da exclusão: FORM SELECIONA_DADOS
t_itens_co_pa = it_status_lct
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
t_itens_co_pa = p_status_lcts
* << Fim da inclusão
t_parceiros = it_parceiros
EXCEPTIONS
itens_embarque_invalidos = 1.
IF sy-subrc = 0.
it_itens_emb = it_itens_embarque.
* >> Início da exclusão: FORM SELECIONA_DADOS
LOOP AT it_status_lct INTO wa_status_lct WHERE stlct = 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
LOOP AT p_status_lcts INTO wa_status_lct.
* << Fim da inclusão
DELETE it_itens_emb WHERE
vbeln_vf = wa_status_lct-vbeln_vf AND
posnr = wa_status_lct-posnr_vf.
ENDLOOP.
IF it_itens_emb IS INITIAL.
* >> Início da exclusão: FORM SELECIONA_DADOS
IF NOT it_status_lct IS INITIAL.
v_tipo = c_estorno.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
IF NOT p_status_lcts IS INITIAL.
p_tipo = c_estorno.
* << Fim da inclusão
WRITE 'Lançamento(s) já efetuado(s).'(015).
ULINE.
ELSE.
MESSAGE e198(/pws/zycem).
EXIT.
ENDIF.
ELSE.
it_itens_embarque = it_itens_emb.
* >> Início da exclusão: FORM SELECIONA_DADOS
v_tipo = c_lancamento.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
p_tipo = c_lancamento.
* << Fim da inclusão
ENDIF.
ENDIF.
READ TABLE it_itens_embarque INTO wa_item_embarque INDEX 1.
CALL FUNCTION 'COPA_ERKRS_FIND'
EXPORTING
bukrs = wa_item_embarque-bukrs
IMPORTING
erkrs = wa_param_cmpcab-area_resultado
t_keb = wa_adm_area_res
EXCEPTIONS
error_kokrs_find = 1
kokrs_wrong = 2
no_erkrs_defined = 3
no_erkrs_for_kokrs = 4.
IF sy-subrc NE 0.
MESSAGE e205(/pws/zycem) WITH wa_item_embarque-bukrs.
* >> Início da exclusão: FORM SELECIONA_DADOS
EXIT.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
LEAVE PROGRAM.
* << Fim da inclusão
ENDIF.
CALL FUNCTION '/PWS/ZYCE_RET_CAMPOS_CO_PA'
EXPORTING
i_area_resultado = wa_param_cmpcab-area_resultado
IMPORTING
e_param_area_resultado = wa_param_area
e_tipo_moeda_aval = wa_param_cmpcab-tipo_moeda_aval
TABLES
t_campos_lct = it_param_cmpslct
EXCEPTIONS
area_resultado_invalida = 1
area_resultado_existe = 2.
IF sy-subrc NE 0.
MESSAGE e200(/pws/zycem) WITH wa_param_cmpcab-area_resultado.
* >> Início da exclusão: FORM SELECIONA_DADOS
EXIT.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
LEAVE PROGRAM.
* << Fim da inclusão
ENDIF.
wa_param_cmpcab-area_resultado = wa_param_area-erkrs.
wa_param_cmpcab-tipo_moeda = wa_param_area-paledger.
wa_param_cmpcab-tipo_operacao = wa_param_area-vrgar.
wa_param_cmpcab-cons_incoterm = wa_param_area-finco.
wa_param_cmpcab-lanc_moeda_emb = wa_param_area-lmemb.
CALL FUNCTION '/PWS/ZYCE_TRANSACAO_KEBC'
EXPORTING
i_modo = v_modo
i_area_resultado = wa_param_cmpcab-area_resultado
TABLES
t_mensagens = it_mensagens
EXCEPTIONS
modo_nao_especificado = 1.
IF sy-subrc NE 0.
MESSAGE e206(/pws/zycem) WITH wa_param_cmpcab-area_resultado.
* >> Início da exclusão: FORM SELECIONA_DADOS
EXIT.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
LEAVE PROGRAM.
* << Fim da inclusão
ENDIF.
CALL FUNCTION '/PWS/ZYCE_RET_CAMPOS_EXP'
TABLES
t_campos_exp = it_param_cmpsexp
EXCEPTIONS
campos_nao_definidos = 1.
* >> Início da exclusão: FORM SELECIONA_DADOS
IF sy-subrc NE 0.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
CHECK sy-subrc NE 0.
* << Fim da inclusão
MESSAGE e195(/pws/zycem).
* >> Início da exclusão: FORM SELECIONA_DADOS
EXIT.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
LEAVE PROGRAM.
* << Fim da inclusão
ENDFORM.
FORM recupera_parametros.
* >> Início da exclusão: FORM RECUPERA_PARAMETROS
DATA: v_flag(4) TYPE c.
CLEAR v_flag.
IMPORT v_flag FROM MEMORY ID 'EMBARQUE'.
IF v_flag IS INITIAL.
MESSAGE e207(/pws/zycem).
ENDIF.
* << Fim da exclusão
GET PARAMETER ID '/PWS/ZYCEP001' FIELD v_seqemb.
IF v_seqemb IS INITIAL.
MESSAGE e003(/pws/zycem).
* >> Início da inclusão: FORM RECUPERA_PARAMETROS
LEAVE PROGRAM.
* << Fim da inclusão
ENDIF.
v_modo = 'N'.
ENDFORM.
* >> Início da exclusão: FORM PROCESSA_ITENS
FORM processa_itens.
* << Fim da exclusão
* >> Início da inclusão: FORM PROCESSA_ITENS
FORM processa_itens
USING p_tipo TYPE char1
CHANGING p_status_lcts TYPE t_status_lcts.
* << Fim da inclusão
* >> Início da exclusão: FORM PROCESSA_ITENS
CHECK v_tipo = c_lancamento.
* << Fim da exclusão
* >> Início da inclusão: FORM PROCESSA_ITENS
CHECK p_tipo = c_lancamento.
* << Fim da inclusão
* >> Início da exclusão: FORM PROCESSA_ITENS
PERFORM efetua_lancamentos USING v_tipo.
* << Fim da exclusão
* >> Início da inclusão: FORM PROCESSA_ITENS
PERFORM efetua_lancamentos USING p_tipo CHANGING p_status_lcts.
* << Fim da inclusão
ENDFORM.
FORM prepara_item_co_pa
TABLES
* >> Início da exclusão: FORM PREPARA_ITEM_CO_PA
p_dados TYPE t_dados
* << Fim da exclusão
p_param_cmpslct TYPE t_param_cmpslct
p_parceiros TYPE t_parceiros
p_param_cmpsexp TYPE t_param_cmpsexp
USING
p_item_embarque TYPE t_item_embarque
p_param_cmpcab TYPE t_param_cmpcab
p_record_id TYPE bapi_copa_data-record_id
* >> Início da exclusão: FORM PREPARA_ITEM_CO_PA
p_modo TYPE char1.
* << Fim da exclusão
* >> Início da inclusão: FORM PREPARA_ITEM_CO_PA
p_modo TYPE char1
CHANGING
p_dados TYPE t_dados.
* << Fim da inclusão
CONSTANTS:
c_item_embarque(15) TYPE c VALUE 'P_ITEM_EMBARQUE',
c_parceiros(15) TYPE c VALUE 'WA_PARCEIRO',
c_vlagente_r TYPE fieldname VALUE 'VLAGENTE_R',
c_vlod_r TYPE fieldname VALUE 'VLOD_R',
c_vlacrescimo_r TYPE fieldname VALUE 'VLACRESCIMO_R',
c_vldesconto_r TYPE fieldname VALUE 'VLDESCONTO_R',
c_vlfrete_r TYPE fieldname VALUE 'VLFRETE_R',
c_vlseguro_r TYPE fieldname VALUE 'VLSEGURO_R',
c_vlemb TYPE fieldname VALUE 'VLEMB',
c_vlme TYPE fieldname VALUE 'VLME',
c_vlme_r TYPE fieldname VALUE 'VLME_R',
c_parvw TYPE fieldname VALUE 'PARVW',
c_paledger TYPE fieldname VALUE 'PALEDGER',
c_budat TYPE fieldname VALUE 'BUDAT',
c_vrgar TYPE fieldname VALUE 'VRGAR',
c_frwae TYPE fieldname VALUE 'FRWAE',
c_kursf TYPE fieldname VALUE 'KURSF'.
* >> Início da inclusão: FORM PREPARA_ITEM_CO_PA
TYPES t_parceiro TYPE LINE OF t_parceiros.
* << Fim da inclusão
DATA:
wa_param_cmplct TYPE t_param_cmplct,
* >> Início da inclusão: FORM PREPARA_ITEM_CO_PA
wa_dados TYPE LINE OF t_dados,
* << Fim da inclusão
wa_parceiro TYPE LINE OF t_parceiros,
v_periodo TYPE cest1-perio,
v_nome_campo TYPE fieldname,
v_parceiro TYPE tpar-parvw,
v_tipo(1) TYPE c,
v_moeda TYPE waers,
v_taxa TYPE tcurr-ukurs,
v_defator TYPE tcurr-ffact,
v_parafator TYPE tcurr-tfact.
FIELD-SYMBOLS <fs_valor> TYPE ANY.
DEFINE insere_dado_bapi.
* >> Início da exclusão: FORM PREPARA_ITEM_CO_PA
clear p_dados.
p_dados-record_id = p_record_id.
p_dados-fieldname = &1.
p_dados-value = &2.
* << Fim da exclusão
* >> Início da inclusão: FORM PREPARA_ITEM_CO_PA
clear wa_dados.
wa_dados-record_id = p_record_id.
wa_dados-fieldname = &1.
wa_dados-value = &2.
* << Fim da inclusão
describe field &2 type v_tipo.
if v_tipo = 'P'.
* >> Início da exclusão: FORM PREPARA_ITEM_CO_PA
p_dados-currency = &3.
* << Fim da exclusão
* >> Início da inclusão: FORM PREPARA_ITEM_CO_PA
wa_dados-currency = &3.
* << Fim da inclusão
endif.
* >> Início da exclusão: FORM PREPARA_ITEM_CO_PA
append p_dados.
* << Fim da exclusão
* >> Início da inclusão: FORM PREPARA_ITEM_CO_PA
append wa_dados to p_dados.
* << Fim da inclusão
END-OF-DEFINITION.
insere_dado_bapi:
c_paledger p_param_cmpcab-tipo_moeda space,
c_budat sy-datlo space,
c_vrgar p_param_cmpcab-tipo_operacao space.
IF NOT p_param_cmpcab-lanc_moeda_emb IS INITIAL.
PERFORM recupera_taxa_conversao
USING
p_item_embarque-waers
wa_adm_area_res-waers
...
...
USING
p_param_cmpcab-area_resultado
p_item_embarque-dtlancrc
CHANGING
v_periodo.
insere_dado_bapi 'PERIO' v_periodo space.
WHEN OTHERS.
IF wa_param_cmplct-fiede(5) = c_parvw AND
wa_param_cmplct-fiede NE c_parvw.
v_parceiro = wa_param_cmplct-fiede+5(2).
* >> Início da inclusão: FORM PREPARA_ITEM_CO_PA
CLEAR wa_parceiro.
* << Fim da inclusão
READ TABLE p_parceiros INTO wa_parceiro WITH KEY
vbeln = p_item_embarque-vbeln_vf
parvw = v_parceiro
lifnr = space.
* >> Início da exclusão: FORM PREPARA_ITEM_CO_PA
IF sy-subrc NE 0.
* << Fim da exclusão
* >> Início da inclusão: FORM PREPARA_ITEM_CO_PA
IF wa_parceiro IS INITIAL.
* << Fim da inclusão
READ TABLE p_parceiros INTO wa_parceiro WITH KEY
vbeln = p_item_embarque-vbeln_vf
parvw = v_parceiro
kunnr = space.
* >> Início da exclusão: FORM PREPARA_ITEM_CO_PA
CONCATENATE
c_parceiros
'-LIFNR'
INTO v_nome_campo.
* << Fim da exclusão
* >> Início da inclusão: FORM PREPARA_ITEM_CO_PA
ASSIGN ('WA_PARCEIRO-LIFNR') TO <fs_valor>.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FORM PREPARA_ITEM_CO_PA
CONCATENATE
c_parceiros
'-KUNNR'
INTO v_nome_campo.
* << Fim da exclusão
* >> Início da inclusão: FORM PREPARA_ITEM_CO_PA
ASSIGN ('WA_PARCEIRO-KUNNR') TO <fs_valor>.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FORM PREPARA_ITEM_CO_PA
ASSIGN (v_nome_campo) TO <fs_valor>.
* << Fim da exclusão
* >> Início da inclusão: FORM PREPARA_ITEM_CO_PA
CHECK sy-subrc NE 0.
MESSAGE e197(/pws/zycem) WITH
wa_param_cmplct-fiede
wa_param_cmplct-fienm.
LEAVE PROGRAM.
* << Fim da inclusão
ELSE.
CONCATENATE
c_item_embarque
'-'
wa_param_cmplct-fiede
INTO v_nome_campo.
ASSIGN (v_nome_campo) TO <fs_valor>.
IF sy-subrc NE 0.
MESSAGE e197(/pws/zycem) WITH
wa_param_cmplct-fiede
wa_param_cmplct-fienm.
* >> Início da exclusão: FORM PREPARA_ITEM_CO_PA
EXIT.
* << Fim da exclusão
* >> Início da inclusão: FORM PREPARA_ITEM_CO_PA
LEAVE PROGRAM.
* << Fim da inclusão
ENDIF.
IF p_modo = c_estorno.
PERFORM aplica_estorno
TABLES p_param_cmpsexp
USING wa_param_cmplct-fiede
CHANGING <fs_valor>.
ENDIF.
IF p_param_cmpcab-lanc_moeda_emb IS INITIAL.
CASE wa_param_cmplct-fiede.
WHEN
...
...
CHANGING <fs_valor>.
v_moeda = wa_adm_area_res-waers.
ENDCASE.
ENDIF.
ENDIF.
insere_dado_bapi wa_param_cmplct-fienm <fs_valor> v_moeda.
UNASSIGN <fs_valor>.
ENDCASE.
ENDLOOP.
ENDFORM.
* >> Início da exclusão: FORM APRESENTA_DADOS
FORM apresenta_dados.
* << Fim da exclusão
* >> Início da inclusão: FORM APRESENTA_DADOS
FORM apresenta_dados
USING
p_status_lcts TYPE t_status_lcts
p_tipo TYPE char1.
* << Fim da inclusão
DATA:
* >> Início da exclusão: FORM APRESENTA_DADOS
it_pf_status TYPE STANDARD TABLE OF sy-ucomm,
wa_status_lct TYPE /pws/zycet403.
* << Fim da exclusão
* >> Início da inclusão: FORM APRESENTA_DADOS
it_pf_status TYPE STANDARD TABLE OF sy-ucomm,
wa_status_lct TYPE t_status_lct.
* << Fim da inclusão
* >> Início da exclusão: FORM APRESENTA_DADOS
READ TABLE it_status_lct WITH KEY stlct = c_estorno
TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
* << Fim da exclusão
* >> Início da inclusão: FORM APRESENTA_DADOS
IF p_tipo = c_estorno.
* << Fim da inclusão
APPEND 'ESTO' TO it_pf_status.
ENDIF.
SET PF-STATUS 'SUMARIO' EXCLUDING it_pf_status IMMEDIATELY.
FREE it_pf_status.
WRITE 'Sumário de lançamentos:'(001).
ULINE.
WRITE:
'Status'(002),
AT 11 'Faturamento'(003),
AT 26 'Item Fat.'(004).
ULINE.
* >> Início da exclusão: FORM APRESENTA_DADOS
LOOP AT it_status_lct INTO wa_status_lct.
CASE wa_status_lct-stlct.
WHEN 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM APRESENTA_DADOS
LOOP AT p_status_lcts INTO wa_status_lct.
CASE p_tipo.
WHEN c_lancamento.
* << Fim da inclusão
WRITE / icon_okay AS ICON.
* >> Início da exclusão: FORM APRESENTA_DADOS
WHEN 'E'.
* << Fim da exclusão
* >> Início da inclusão: FORM APRESENTA_DADOS
WHEN c_estorno.
* << Fim da inclusão
WRITE / icon_planning_out AS ICON.
WHEN space.
WRITE / icon_cancel AS ICON.
...
...
EXPORTING
erkrs = p_area_resultado
date = p_data
IMPORTING
perio = p_periodo
EXCEPTIONS
i_erkrs_notfound = 1
i_error = 2
i_periv_notedited = 3
i_perspec_invalid = 4.
* >> Início da inclusão: FORM TRANSFORMA_DATA_EM_PERIODO
.
* << Fim da inclusão
* >> Início da exclusão: FORM TRANSFORMA_DATA_EM_PERIODO
CHECK sy-subrc = 0.
* << Fim da exclusão
* >> Início da inclusão: FORM TRANSFORMA_DATA_EM_PERIODO
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
LEAVE PROGRAM.
ENDIF.
* << Fim da inclusão
wa_data_em_periodo-erkrs = p_area_resultado.
wa_data_em_periodo-data = p_data.
wa_data_em_periodo-perio = p_periodo.
APPEND wa_data_em_periodo TO it_data_em_periodo.
ENDIF.
p_periodo = wa_data_em_periodo-perio.
ENDFORM.
FORM converte_montante
USING p_data_conversao TYPE datum
p_categ_moeda TYPE /pws/zycbt011-ctmoed
...
...
FORM registra_lancamentos USING p_tipo TYPE char1.
CALL FUNCTION '/PWS/ZYCE_MOD_ITENS_CO_PA'
EXPORTING
i_modo = p_tipo
TABLES
t_itens_embarque = it_itens_embarque
EXCEPTIONS
itens_embarque_invalidos = 1.
CHECK sy-subrc NE 0.
MESSAGE e209(/pws/zycem).
* >> Início da exclusão: FORM REGISTRA_LANCAMENTOS
EXIT.
* << Fim da exclusão
* >> Início da inclusão: FORM REGISTRA_LANCAMENTOS
LEAVE PROGRAM.
* << Fim da inclusão
ENDFORM.
FORM inicia_estruturas.
CLEAR:
it_retorno,
it_itens_embarque,
it_status_lct.
ENDFORM.
FORM confirma_operacao .
* >> Início da exclusão: FORM CONFIRMA_OPERACAO
DATA v_confirmacao(1) TYPE c.
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_OPERACAO
DATA:
v_confirmacao(1) TYPE c,
v_flag(4) TYPE c.
CLEAR v_flag.
IMPORT v_flag TO v_flag FROM MEMORY ID 'EMBARQUE'.
IF v_flag IS INITIAL.
MESSAGE e207(/pws/zycem).
LEAVE PROGRAM.
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: FORM CONFIRMA_OPERACAO
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_OPERACAO
CALL FUNCTION 'POPUP_TO_CONFIRM'
* << Fim da inclusão
EXPORTING
* >> Início da exclusão: FORM CONFIRMA_OPERACAO
defaultoption = 'N'
textline1 =
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_OPERACAO
titlebar = 'Lançamento em CO-PA'(012)
text_question =
* << Fim da inclusão
'Deseja prosseguir lançamento em co-pa?'(011)
* >> Início da exclusão: FORM CONFIRMA_OPERACAO
titel = 'Lançamento em CO-PA'(012)
start_column = 25
start_row = 6
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_OPERACAO
text_button_1 = 'Sim'(016)
icon_button_1 = 'ICON_OKAY'
text_button_2 = 'Não'(017)
icon_button_2 = 'ICON_CANCEL'
display_cancel_button = space
default_button = '1'
start_column = 25
start_row = 6
* << Fim da inclusão
IMPORTING
* >> Início da exclusão: FORM CONFIRMA_OPERACAO
answer = v_confirmacao
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_OPERACAO
answer = v_confirmacao
* << Fim da inclusão
EXCEPTIONS
* >> Início da exclusão: FORM CONFIRMA_OPERACAO
OTHERS = 1.
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_OPERACAO
text_not_found = 1
OTHERS = 2.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* << Fim da inclusão
CASE v_confirmacao.
* >> Início da exclusão: FORM CONFIRMA_OPERACAO
WHEN 'J' OR 'Y'.
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_OPERACAO
WHEN '1'.
* << Fim da inclusão
PERFORM:
inicia_estruturas,
recupera_parametros.
* >> Início da exclusão: FORM CONFIRMA_OPERACAO
WHEN 'N' OR 'A'.
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_OPERACAO
WHEN '2'.
* << Fim da inclusão
MESSAGE s196(/pws/zycem).
LEAVE PROGRAM.
ENDCASE.
ENDFORM.
* >> Início da exclusão: FORM CONFIRMA_ESTORNO
FORM confirma_estorno .
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_ESTORNO
FORM confirma_estorno CHANGING p_status_lcts TYPE t_status_lcts.
* << Fim da inclusão
DATA v_confirmacao(1) TYPE c.
* >> Início da exclusão: FORM CONFIRMA_ESTORNO
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_ESTORNO
CALL FUNCTION 'POPUP_TO_CONFIRM'
* << Fim da inclusão
EXPORTING
* >> Início da exclusão: FORM CONFIRMA_ESTORNO
defaultoption = 'N'
textline1 = 'Deseja estornar o(s) lançamento(s)'(013)
textline2 = 'em CO-PA já efetuado(s)?'(014)
titel = 'Lançamento em CO-PA'(012)
start_column = 25
start_row = 6
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_ESTORNO
titlebar = 'Lançamento em CO-PA'(012)
text_question =
'Deseja estornar o(s) lançamento(s) em CO-PA já efetuado(s)?'(013)
text_button_1 = 'Sim'(016)
icon_button_1 = 'ICON_OKAY'
text_button_2 = 'Não'(017)
icon_button_2 = 'ICON_CANCEL'
default_button = '1'
display_cancel_button = space
start_column = 25
start_row = 6
* << Fim da inclusão
IMPORTING
* >> Início da exclusão: FORM CONFIRMA_ESTORNO
answer = v_confirmacao
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_ESTORNO
answer = v_confirmacao
* << Fim da inclusão
EXCEPTIONS
* >> Início da exclusão: FORM CONFIRMA_ESTORNO
OTHERS = 1.
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_ESTORNO
text_not_found = 1
OTHERS = 2.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* << Fim da inclusão
CASE v_confirmacao.
* >> Início da exclusão: FORM CONFIRMA_ESTORNO
WHEN 'J' OR 'Y'.
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_ESTORNO
WHEN '1'.
* << Fim da inclusão
CLEAR:
* >> Início da exclusão: FORM CONFIRMA_ESTORNO
it_status_lct,
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_ESTORNO
p_status_lcts,
* << Fim da inclusão
it_retorno.
* >> Início da exclusão: FORM CONFIRMA_ESTORNO
PERFORM efetua_lancamentos USING c_estorno.
PERFORM apresenta_dados.
* << Fim da exclusão
* >> Início da inclusão: FORM CONFIRMA_ESTORNO
PERFORM:
efetua_lancamentos USING c_estorno CHANGING p_status_lcts,
apresenta_dados USING p_status_lcts c_estorno.
* << Fim da inclusão
ENDCASE.
ENDFORM.
* >> Início da inclusão:
FORM efetua_lancamentos
USING p_tipo TYPE char1
CHANGING p_status_lcts TYPE t_status_lcts.
* << Fim da inclusão
* >> Início da exclusão: FORM EFETUA_LANCAMENTOS
FORM efetua_lancamentos USING p_tipo TYPE char1.
* << Fim da exclusão
DATA:
it_dados TYPE t_dados,
it_campos TYPE t_campos,
* >> Início da exclusão: FORM EFETUA_LANCAMENTOS
wa_status_lct TYPE /pws/zycet403,
* << Fim da exclusão
* >> Início da inclusão: FORM EFETUA_LANCAMENTOS
wa_status_lct TYPE t_status_lct,
* << Fim da inclusão
wa_retorno TYPE bapiret2,
wa_dado TYPE bapi_copa_data,
wa_item_embarque TYPE t_item_embarque,
wa_campo TYPE bapi_copa_field,
v_item TYPE bapi_copa_data-record_id,
v_interrompe_bapi(1) TYPE c.
CLEAR:
v_item,
v_interrompe_bapi,
* >> Início da exclusão: FORM EFETUA_LANCAMENTOS
it_status_lct.
* << Fim da exclusão
* >> Início da inclusão: FORM EFETUA_LANCAMENTOS
p_status_lcts[].
* << Fim da inclusão
* >> Início da exclusão: FORM EFETUA_LANCAMENTOS
LOOP AT it_itens_embarque
INTO wa_item_embarque.
* << Fim da exclusão
* >> Início da inclusão: FORM EFETUA_LANCAMENTOS
LOOP AT it_itens_embarque INTO wa_item_embarque.
* << Fim da inclusão
CLEAR wa_status_lct.
wa_status_lct-vbeln_vf = wa_item_embarque-vbeln_vf.
wa_status_lct-posnr_vf = wa_item_embarque-posnr.
IF wa_item_embarque-dtlancrc = 0.
* >> Início da exclusão: FORM EFETUA_LANCAMENTOS
APPEND wa_status_lct TO it_status_lct.
* << Fim da exclusão
* >> Início da inclusão: FORM EFETUA_LANCAMENTOS
APPEND wa_status_lct TO p_status_lcts.
* << Fim da inclusão
CONTINUE.
ENDIF.
ADD 1 TO v_item.
PERFORM prepara_item_co_pa
TABLES
* >> Início da exclusão: FORM EFETUA_LANCAMENTOS
it_dados
* << Fim da exclusão
it_param_cmpslct
it_parceiros
it_param_cmpsexp
USING
wa_item_embarque
wa_param_cmpcab
v_item
* >> Início da exclusão: FORM EFETUA_LANCAMENTOS
p_tipo.
* << Fim da exclusão
* >> Início da inclusão: FORM EFETUA_LANCAMENTOS
p_tipo
CHANGING
* << Fim da inclusão
* >> Início da exclusão: FORM EFETUA_LANCAMENTOS
CASE p_tipo.
WHEN c_lancamento.
wa_status_lct-stlct = 'X'.
WHEN c_estorno.
wa_status_lct-stlct = 'E'.
ENDCASE.
* << Fim da exclusão
* >> Início da inclusão: FORM EFETUA_LANCAMENTOS
it_dados.
* << Fim da inclusão
* >> Início da exclusão: FORM EFETUA_LANCAMENTOS
APPEND wa_status_lct TO it_status_lct.
* << Fim da exclusão
* >> Início da inclusão: FORM EFETUA_LANCAMENTOS
APPEND wa_status_lct TO p_status_lcts.
* << Fim da inclusão
ENDLOOP.
LOOP AT it_dados INTO wa_dado.
wa_campo = wa_dado-fieldname.
APPEND wa_campo TO it_campos.
AT END OF record_id.
EXIT.
ENDAT.
ENDLOOP.
IF it_dados IS INITIAL OR it_campos IS INITIAL.
MESSAGE e199(/pws/zycem).
* >> Início da exclusão: FORM EFETUA_LANCAMENTOS
EXIT.
* << Fim da exclusão
* >> Início da inclusão: FORM EFETUA_LANCAMENTOS
LEAVE PROGRAM.
* << Fim da inclusão
ENDIF.
CALL FUNCTION 'BAPI_COPAACTUALS_POSTCOSTDATA'
EXPORTING
operatingconcern = wa_param_cmpcab-area_resultado
testrun = space
TABLES
inputdata = it_dados
fieldlist = it_campos
return = it_retorno.
IF NOT it_retorno IS INITIAL.
...
...
IF NOT v_interrompe_bapi IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
IMPORTING
return = wa_retorno.
IF NOT wa_retorno IS INITIAL.
WRITE / wa_retorno-message.
ENDIF.
WRITE:
/,
/ 'Nenhum lançamento realizado.'(010).
* >> Início da exclusão: FORM EFETUA_LANCAMENTOS
STOP.
* << Fim da exclusão
* >> Início da inclusão: FORM EFETUA_LANCAMENTOS
EXIT.
* << Fim da inclusão
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = wa_retorno.
IF NOT wa_retorno IS INITIAL.
WRITE / wa_retorno-message.
* >> Início da exclusão: FORM EFETUA_LANCAMENTOS
STOP.
* << Fim da exclusão
* >> Início da inclusão: FORM EFETUA_LANCAMENTOS
EXIT.
* << Fim da inclusão
ENDIF.
PERFORM registra_lancamentos USING p_tipo.
ENDIF.
ENDFORM.
FORM aplica_estorno
TABLES p_param_cmpsexp TYPE t_param_cmpsexp
USING p_cmp_exp TYPE t_param_cmplct-fiede
CHANGING p_valor TYPE any.
STATICS it_tipo TYPE STANDARD TABLE OF datatype_d.
DATA wa_tipo TYPE datatype_d.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/ZYCER401
------------------------------------------------------------------------
Modificado símbolo de texto:
Idioma: PT
Símbolo: 013
Texto: (59 caracteres)
"Deseja estornar o(s) lançamento(s) em CO-PA já efetuado(s)?"
Comprimento máximo: 59
------------------------------------------------------------------------
Excluído símbolo de texto:
Idioma: PT
Símbolo: 014
Texto: (24 caracteres)
"em CO-PA já efetuado(s)?"
Comprimento máximo: 24
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 016
Texto: (3 caracteres)
"Sim"
Comprimento máximo: 3
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 017
Texto: (3 caracteres)
"Não"
Comprimento máximo: 3
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCET403
MODIFICAR TABELA TRANSPARENTE: /PWS/ZYCET403
CAMPOS EXCLUÍDOS
CAMPOS: ELEMENTO DADOS:
STLCT CHAR1
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TTYP /PWS/ZYGLL820
CRIAR CATEGORIA DE TABELA /PWS/ZYGLL820
DESCRIÇÃO BREVE: GL - Códigos GUI
CARACTERÍSTICAS
CLASSE DE DESENVOLVIMENTO: /PWS/ZYGL
CTG. LINHAS E ACESSO
TIPO DE LINHA
(X) TIPO DE LINHA: GUI_CODE
TIPO DE ACESSO
(X) TABELA STANDARD
CHAVE
(X) CHAVE STANDARD
ACESSO
(X) NON-UNIQUE
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TTYP /PWS/ZYGLL821
CRIAR CATEGORIA DE TABELA /PWS/ZYGLL821
DESCRIÇÃO BREVE: GL - Categoria p/transferência de dados CO-PA
CARACTERÍSTICAS
CLASSE DE DESENVOLVIMENTO: /PWS/ZYGL
CTG. LINHAS E ACESSO
TIPO DE LINHA
(X) TIPO DE LINHA: BAPI_COPA_DATA
TIPO DE ACESSO
(X) TABELA STANDARD
CHAVE
(X) CHAVE STANDARD
ACESSO
(X) NON-UNIQUE