CE PLUS - Nota 004546

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Agrupamento de Câmbio

Data/Hora da Publicação: 28/08/2007 00:00:00

Data/Hora Última Alteração: 10/03/2010 16:53:58

Descrição da Nota: EXPORTAÇÃO AGRUPAMENTO DE FATURAS

Sintoma

 

No agrupamento de faturas, ao selecionar a fatura pelo match code o programa abre a relação de

faturas, porém, ao seleciona-la a table controll não está listando a fatura selecionada.

 

Solução

 

Alterado o programa para chamar o match code não mais standard e sim o standard do produto, onde o

usuário poderá escolher mais de um item trazendo para tela.

Versões Tratadas

7.0

Informações Complementares

 

----------------------------------------------------------------------------------------------------

Nota Número 04546 Data: 28/08/2007 Hora: 11:02:28

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 04546

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00010

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

----------------------------------------------------------------------------------------------------

EXPORTAÇÃO AGRUPAMENTO DE FATURAS

----------------------------------------------------------------------------------------------------

Palavras Chave:

EXPORTAÇÃO, AGRUPAMENTO, FATURAS

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

DYNP /PWS/SAPMZYCB010                        0100

REPS /PWS/MZYCB010F01

REPS /PWS/MZYCB010I01

REPS /PWS/MZYCB010TOP

SHLP /PWS/ZYCBA068

TABD /PWS/ZYCBE005

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em SHLP /PWS/ZYCBA068

 

Entrar na SE11 "Ajuda pesquisa", chamando o objeto /PWS/ZYCBA068, apagar este objeto e fazer uma

copia do objeto /PWS/ZYCBA008 com o nome de /PWS/ZYCBA068.

Depois entrar na Estrutura /PWS/ZYCBE005 tirar a ajuda de pesquisa /PWS/ZYCBA008 e passar para a

ajuda de pesquisa /PWS/ZYCBA068, como segue logo abaixo:

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em TABD /PWS/ZYCBE005

 

MODIFICAR ESTRUTURA: /PWS/ZYCBE005

DESCRIÇÃO BREVE: CB - Estrutura para Vinculações

 

COMPONENTES NOVOS

COMPONENTE:     TP. COMP:      TAB.REF.:       CPO.REF.:    AJUD. PESQU.

NRINVOIC        /PWS/ZYCBL084  /PWS/ZYCBT017                /PWS/ZYCBA068

 

COMPONENTES EXCLUÍDOS

COMPONENTE:     TP. COMP:      TAB.REF.:       CPO.REF.:    AJUD. PESQU.

NRINVOIC        /PWS/ZYCBL084  /PWS/ZYCBT017                /PWS/ZYCBA008

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em DYNP /PWS/SAPMZYCB010                        0100

 

...

 

    module verifica_saldo.

 

    module altera_itab_zycbt005.

  endloop.

 

  module:

    calcula_juros,

    verifica_fatura,

    calcula_montante,

    user_command_0100,

    user_command_exit at exit-command.

 

* >> Início da inclusão:PROCESS AFTER INPUT

process on value-request.

  field /pws/zycbe005-nrinvoic module get_invoice.

* << Fim da inclusão

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB010F01

 

...

  ENDIF.

  APPEND   'endform.                                     ' TO t_prog.

  GENERATE SUBROUTINE POOL t_prog NAME w_prog.

  IF sy-subrc = 0.

    PERFORM log IN PROGRAM (w_prog) USING    p_dados

                                             p_tabela

                                    CHANGING p_wa_log

                                    IF FOUND.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

FORM adiciona_linha_tc

  USING

    value(p_fieldname)  TYPE dynpread-fieldname

    value(p_fieldvalue)

    value(p_stepl)      TYPE dynpread-stepl

  CHANGING

    p_itab_dynpread     TYPE t_itab_dynpread.

  DATA:

    wa_dynpread TYPE dynpread.

  wa_dynpread-fieldname  = p_fieldname.

  wa_dynpread-fieldvalue = p_fieldvalue.

  wa_dynpread-stepl      = p_stepl.

  APPEND wa_dynpread TO p_itab_dynpread.

ENDFORM.

FORM transfere_campos

  USING

    p_itab_zycbt017_chave TYPE t_itab_zycbt017_chave

  CHANGING

    p_itab_dynpread TYPE t_itab_dynpread.

  TYPES:

     BEGIN OF t_zycbt017,

       nrinvoic TYPE /pws/zycbt017-nrinvoic,

       nrparcf  TYPE /pws/zycbt017-nrparcf,

       gsberf   TYPE /pws/zycbt017-gsberf,

       kunag    TYPE /pws/zycbt017-kunag,

       dtvencto TYPE /pws/zycbt017-dtvencto,

       waers    TYPE /pws/zycbt017-waers,

       codmod   TYPE /pws/zycbt017-codmod,

       prazo    TYPE /pws/zycbt017-prazo,

       werks    TYPE /pws/zycbt017-werks,

     END OF t_zycbt017,

     t_itab_zycbt017 TYPE SORTED TABLE OF t_zycbt017

       WITH UNIQUE KEY nrinvoic nrparcf gsberf.

  DATA:

    itab_zycbt017  TYPE t_itab_zycbt017,

    v_data_aux(10) TYPE c,

    v_index        TYPE i VALUE 0.

  FIELD-SYMBOLS:

    <fs_zycbt017> TYPE t_zycbt017.

  CHECK NOT p_itab_zycbt017_chave IS INITIAL.

  SELECT

    nrinvoic nrparcf gsberf kunag dtvencto waers

    codmod   prazo   werks

    FROM /pws/zycbt017

    INTO TABLE itab_zycbt017

    FOR ALL ENTRIES IN p_itab_zycbt017_chave

    WHERE

      nrinvoic EQ p_itab_zycbt017_chave-nrinvoic AND

      nrparcf  EQ p_itab_zycbt017_chave-nrparcf  AND

      gsberf   EQ p_itab_zycbt017_chave-gsberf.

  LOOP AT itab_zycbt017

    ASSIGNING <fs_zycbt017>.

    CLEAR itab_zycbt005.

    READ TABLE itab_zycbt005

      WITH KEY

        nrinvoic = <fs_zycbt017>-nrinvoic

        nrparcf  = <fs_zycbt017>-nrparcf

        gsberf   = <fs_zycbt017>-gsberf

      TRANSPORTING NO FIELDS.

    IF sy-subrc EQ 0.

      MESSAGE i061 WITH text-059 <fs_zycbt017>-nrinvoic.

      CONTINUE.

    ENDIF.

    v_index = v_index + 1.

    IF v_index GT 1.

      v_line = v_line + 1.

    ENDIF.

    CALL FUNCTION '/PWS/ZYGL_TRATA_DATA'

         EXPORTING

              i_trdata   = <fs_zycbt017>-dtvencto

         IMPORTING

              e_trdata   = v_data_aux

         EXCEPTIONS

              v_dtbranco = 1.

    PERFORM adiciona_linha_tc:

      USING

        '/PWS/ZYCBE005-NRINVOIC' <fs_zycbt017>-nrinvoic v_line

      CHANGING

        p_itab_dynpread,

      USING

        '/PWS/ZYCBE005-NRPARCF'  <fs_zycbt017>-nrparcf  v_line

      CHANGING

        p_itab_dynpread,

      USING

        '/PWS/ZYCBE005-GSBERF'   <fs_zycbt017>-gsberf   v_line

      CHANGING

        p_itab_dynpread,

      USING

        '/PWS/ZYCBE005-KUNNR'    <fs_zycbt017>-kunag    v_line

      CHANGING

        p_itab_dynpread,

      USING

        '/PWS/ZYCBE005-DTVENCTO' v_data_aux             v_line

      CHANGING

        p_itab_dynpread,

      USING

        '/PWS/ZYCBE005-WAERS'    <fs_zycbt017>-waers    v_line

      CHANGING

        p_itab_dynpread,

      USING

        '/PWS/ZYCBE005-PRAZO'    <fs_zycbt017>-prazo    v_line

      CHANGING

        p_itab_dynpread,

      USING

        '/PWS/ZYCBE209-WERKS'    <fs_zycbt017>-werks    v_line

      CHANGING

        p_itab_dynpread.

    itab_zycbt005-nrinvoic = <fs_zycbt017>-nrinvoic.

    itab_zycbt005-nrparcf  = <fs_zycbt017>-nrparcf.

    itab_zycbt005-gsberf   = <fs_zycbt017>-gsberf.

    itab_zycbt005-kunnr    = <fs_zycbt017>-kunag.

    itab_zycbt005-dtvencto = <fs_zycbt017>-dtvencto.

    itab_zycbt005-waers    = <fs_zycbt017>-waers.

    itab_zycbt005-werks    = <fs_zycbt017>-werks.

    APPEND itab_zycbt005.

  ENDLOOP.

ENDFORM.

* << Fim da inclusão

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB010I01

 

...

MODULE user_command_0051 INPUT.

  CASE ok_code.

    WHEN 'BC'.

      CALL METHOD html_control->go_back.

      CLEAR ok_code.

    WHEN 'AVAN'.

      CALL METHOD html_control->go_forward.

      CLEAR ok_code.

  ENDCASE.

ENDMODULE.

* >> Início da inclusão:

MODULE get_invoice INPUT.

  TYPES: BEGIN OF shlp_intdescr_t,

           issimple LIKE dd30v-issimple,

           hotkey LIKE dd30v-hotkey,

           selmtype LIKE dd30v-selmtype,

           selmethod LIKE dd30v-selmethod,

           texttab   LIKE dd30v-texttab,

           selmexit LIKE dd30v-selmexit,

           dialogtype LIKE dd30v-dialogtype,

           ddlanguage LIKE dd30v-ddlanguage,

           ddtext LIKE dd30v-ddtext,

           dialoginfo(1) TYPE c,

           f4state(1) TYPE c,

           tabname LIKE dd02v-tabname,

           fieldname LIKE dd03p-fieldname,

           title LIKE dd04v-ddtext,

           history,

         handle TYPE sy-tabix,

         END OF shlp_intdescr_t.

  TYPES: BEGIN OF shlp_descr_t,

           shlpname LIKE dd30v-shlpname,

           shlptype LIKE ddshdescr-shlptype,

           intdescr TYPE shlp_intdescr_t,

           interface LIKE ddshiface OCCURS 0,

           fielddescr LIKE dfies OCCURS 0,

           fieldprop LIKE ddshfprop OCCURS 0,

           selopt LIKE ddshselopt OCCURS 0,

         END OF shlp_descr_t.

  DATA:

    itab_zycbt017_chave TYPE t_itab_zycbt017_chave,

    wa_zycbt017_chave   TYPE t_zycbt017_chave,

    v_pos1              TYPE i,

    v_pos2              TYPE i,

    v_pos3              TYPE i.

  DATA: BEGIN OF itab_result OCCURS 0.

          INCLUDE STRUCTURE ddshretval.

  DATA: END OF itab_result.

  DATA: BEGIN OF record_tab OCCURS 0.

          INCLUDE STRUCTURE seahlpres.

  DATA: END OF record_tab.

  DATA: v_line2      LIKE sy-lilli,

        l_display(1) TYPE c,

        shlp_struc   LIKE /pws/zycbv204,

        shlp_curr    TYPE shlp_descr_t,

        tdynpread    LIKE dynpread OCCURS 0 WITH HEADER LINE.

  CLEAR tdynpread.

  REFRESH tdynpread.

  CALL FUNCTION 'DYNP_GET_STEPL'

       IMPORTING

            povstepl = v_line.

  tdynpread-fieldname = '/PWS/ZYCBE005-NRINVOIC'.

  tdynpread-stepl     = v_line.

  APPEND tdynpread.

  CALL FUNCTION 'DYNP_VALUES_READ'

       EXPORTING

            dyname     = '/PWS/SAPMZYCB010'

            dynumb     = '0100'

       TABLES

            dynpfields = tdynpread.

  IF sy-subrc             EQ 0 AND NOT

     tdynpread-fieldvalue IS INITIAL.

    EXIT.

  ENDIF.

  CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'

       EXPORTING

            tabname    = '/PWS/ZYCBE005'

            fieldname  = 'NRINVOIC'

            searchhelp = '/PWS/ZYCBA068'

            shlpparam  = 'NRINVOIC'

            multiple_choice = 'X'

            display    = l_display

       TABLES

            return_tab = itab_result

       EXCEPTIONS

            OTHERS     = 5.

  CHECK sy-subrc EQ 0 AND l_display EQ space.

  IMPORT record_tab FROM MEMORY ID 'mcx_record_tab'.

  IMPORT shlp_curr  FROM MEMORY ID 'mcx_shlp_curr'.

  CHECK sy-subrc EQ 0.

  CALL FUNCTION 'DYNP_GET_STEPL'

       IMPORTING

            povstepl = v_line.

  DO v_line TIMES.

    CLEAR tdynpread.

    REFRESH tdynpread.

    tdynpread-fieldname = '/PWS/ZYCBE005-NRINVOIC'.

    tdynpread-stepl     = v_line - 1.

    APPEND tdynpread.

    CALL FUNCTION 'DYNP_VALUES_READ'

         EXPORTING

              dyname     = '/PWS/SAPMZYCB010'

              dynumb     = '0100'

         TABLES

              dynpfields = tdynpread.

    IF sy-subrc             EQ 0       AND

       tdynpread-fieldvalue IS INITIAL AND

        tdynpread-stepl     GT 0.

      v_line = tdynpread-stepl.

    ELSEIF sy-subrc             EQ 0       AND

       NOT tdynpread-fieldvalue IS INITIAL.

      EXIT.

    ENDIF.

  ENDDO.

  CLEAR tdynpread.

  REFRESH tdynpread.

  READ TABLE record_tab INDEX 1.

  IF sy-subrc EQ 0.

    REFRESH itab_zycbt017_chave.

    SELECT SINGLE *

      FROM /pws/zycbt017

      WHERE

        nrinvoic EQ record_tab-string+03(15) AND

        nrparcf  EQ record_tab-string+31(02) AND

        gsberf   EQ record_tab-string+27(04).

    IF sy-subrc EQ 0.

      v_pos1 = 3.

      v_pos2 = 31.

      v_pos3 = 27.

    ELSE.

      v_pos1 = 0.

      v_pos2 = 28.

      v_pos3 = 24.

    ENDIF.

    LOOP AT record_tab.

      wa_zycbt017_chave-nrinvoic = record_tab+v_pos1(15).

      wa_zycbt017_chave-nrparcf  = record_tab+v_pos2(02).

      wa_zycbt017_chave-gsberf   = record_tab+v_pos3(04).

      INSERT wa_zycbt017_chave INTO TABLE itab_zycbt017_chave.

    ENDLOOP.

    PERFORM transfere_campos

      USING

        itab_zycbt017_chave

      CHANGING

        tdynpread[].

  ENDIF.

  CALL FUNCTION 'DYNP_VALUES_UPDATE'

       EXPORTING

            dyname     = sy-cprog

            dynumb     = '0100'

       TABLES

            dynpfields = tdynpread

       EXCEPTIONS

            OTHERS     = 8.

ENDMODULE.

* << Fim da inclusão

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB010TOP

 

PROGRAM  /pws/sapmzycb010 MESSAGE-ID /pws/zycbm.

* >> Início da inclusão:

TYPES:

  BEGIN OF t_zycbt017_chave,

    nrinvoic TYPE /pws/zycbt017-nrinvoic,

    nrparcf  TYPE /pws/zycbt017-nrparcf,

    gsberf   TYPE /pws/zycbt017-gsberf,

  END OF t_zycbt017_chave,

  t_itab_zycbt017_chave TYPE SORTED TABLE OF t_zycbt017_chave

    WITH UNIQUE KEY nrinvoic nrparcf gsberf,

  t_itab_dynpread TYPE TABLE OF dynpread.

* << Fim da inclusão

INCLUDE /pws/zygli100.

INCLUDE /pws/mzycb010x01.

DATA: itab_zyglt100 LIKE /pws/zyglt100 OCCURS 0 WITH HEADER LINE.

INCLUDE /pws/zygli101.

DATA v_tela_help LIKE sy-dynnr VALUE '0052'.

TABLES:

  /pws/zycbt004,

  /pws/zycbt007,

  /pws/zycbt016,

  /pws/zycbt017,

...

 

...

    v_tot_aux   LIKE /pws/zycbe001-vlme,

    v_tot_vlme  LIKE /pws/zycbe001-vlme,

    v_vlslf(1)  TYPE c,

    v_initial(1) TYPE c,

    v_nrseqc_ant LIKE /pws/zycbe001-nrseqc,

    v_fatura(1),

    v_txtinfaux(50) TYPE c,

    v_totalvlslf(22) TYPE c,

    tpcontr      LIKE /pws/zycbt016-txtdesc,

    v_syrepid LIKE sy-repid,

* >> Início da exclusão:

    v_status.

* << Fim da exclusão

* >> Início da inclusão:

    v_status,

    v_line              TYPE i.

* << Fim da inclusão

CONTROLS: tc_faturas TYPE TABLEVIEW USING SCREEN '0100'.

DATA: wa_cols    TYPE cxtab_column.

DATA:  v_campo(20),

       v_valor(20),

       v_index_sl  LIKE sy-tabix,

       v_vljur_acc LIKE /pws/zycbt005-vljur,

       v_vljur_ace LIKE /pws/zycbt005-vljur.

SELECTION-SCREEN BEGIN OF SCREEN 201 TITLE text-058.

SELECT-OPTIONS:   s_nrinv FOR /pws/zycbe017-nrinvoic    MODIF ID fat

                              MATCHCODE OBJECT /pws/zycba168,

...