CE PLUS - Nota 005905

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.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

TRATAMENTO CO-PA EXPORTAÇÃO

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