CE PLUS - Nota 010704

Módulo: CÂMBIO IMPORTAÇÃO

Funcionalidade: Parâmetros

Data/Hora da Publicação: 03/11/2010 00:00:00

Data/Hora Última Alteração: 03/11/2010 10:02:33

Descrição da Nota: FUNÇÃO QUE PERMITE GRAVAR OS PARÂMETROS DE CÂMBIO EM REQUEST

Sintoma

Quando os parâmetros do câmbio não são de visão de atualização, não possibilita gravar os dados

alterados em uma request.

 

 

Solução

Criar função que permita gravar os dados de parâmetros em uma request, quando os mesmos são de

programa(module pool)

 

Versões Tratadas

8.0

Informações Complementares

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

Nota Número 10704 Data: 03/11/2010 Hora: 10:46:08

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

 

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

Nota Número              : 10704

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00005

Agrupamento              : 00045

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

FUNÇÃO QUE PERMITE GRAVAR OS PARÂMETROS DE CÂMBIO EM REQUEST

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

Palavras Chave:

FUNÇÃO QUE PERMITE GRAVAR OS PARÂMETROS DE CÂMBIO EM REQUEST

 

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

Objetos da nota:

FUNC /PWS/ZYCB_GRAVA_CONT_TABELA_CR

REPS /PWS/LZYCBGF5UXX

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_GRAVA_CONT_TABELA_CR

 

CRIAR MÓDULO DE FUNÇÃO: /PWS/ZYCB_GRAVA_CONT_TABELA_CR

 

 

CARACTERÍSTICAS

 

CLASSIFICAÇÃO:

GRUPO DE FUNÇÕES: /PWS/ZYCBGF5

TEXTO BREVE: Gravação de Conteúdo de Tabela em Request

CLASSE DE DESENVOLVIMENTO: /PWS/ZYCB

 

TIPO DE EXECUÇÃO:

 

(X) - MÓDULO DE FUNÇÃO NORMAL

(_) - MÓDULO DE ACESSO REMOTO

(_) - MÓDULO DE ATUALIZAÇÃO

     (X) - INÍCIO IMEDIATO

     (_) - INÍCIO IMEDIATO-SEM ATUAL.POSTER.

     (_) - INÍC. RETARDADO

     (_) - PROCES. CLOETIVO

 

DADOS GERAIS:

 

(_) - BLOQUEIO PROCESSO

(_) - GLOBAL

 

 

IMPORTAÇÃO:

 

NOME PARAM.   ATRIB. TIPO REFERÊNCIA  VL. PROPOSTO OPCIONAL TRANSF. TEXT

I_TABLENAME   TYPE   DD03L-TABNAME                   ' '     ' '    Nome da tabela

I_TASK TYPE   TRKORR                                 'X'     ' '    Ordem/tarefa

I_ORDER       TYPE   TRKORR                          'X'     ' '    Ordem/tarefa

 

 

EXPORTAÇÃO:

 

NOME PARAM.   ATRIB. TIPO REFERÊNCIA   TRANSF.  TEXTO BREVE

E_ORDER       TYPE   TRKORR              ' '    Ordem/tarefa

E_TASK TYPE   TRKORR                     ' '    Ordem/tarefa

 

 

MODIFIC.:

 

NOME PARAM.   ATRIB. TIPO REFERÊNCIA  VL. PROPOSTO OPCIONAL TRANSF. TEXT

 

 

TABELAS:

 

NOME PARAM.   ATRIB. TIPO REFERÊNCIA  OPCIONAL TEXTO BREVE

T_DATA_TABLE                            ' '

 

 

EXCEÇÕES:

EXCEÇÃO                    TEXTO BREVE

NO_DATA

SAVE_ERROR

NO_CR_SELECTED

 

 

 

 

TEXTO FONTE

 

* >> Início da inclusão:

FUNCTION /pws/zycb_grava_cont_tabela_cr.

  TABLES: e071,

          e071k,

          e070.

  TYPES: t_table_structure TYPE STANDARD TABLE OF dfies

            WITH NON-UNIQUE KEY fieldname.

  DATA: v_table_type      TYPE dd02v-tabclass,

        v_tabkey          TYPE e071k-tabkey,

        v_task            TYPE trkorr,

        v_order           TYPE trkorr,

        v_strlen_key      TYPE i,

        v_strlen_fie      TYPE i.

  DATA: itab_structure TYPE t_table_structure,

        itab_fields    TYPE TABLE OF rfc_db_fld,

        itab_e071a     TYPE STANDARD TABLE OF e071,

        itab_e071ka    TYPE STANDARD TABLE OF e071k,

        itab_e071      TYPE STANDARD TABLE OF e071,

        itab_e071k     TYPE STANDARD TABLE OF e071k.

  DATA: wa_fields LIKE LINE OF itab_fields.

  FIELD-SYMBOLS: <fs_data>  TYPE ANY,

                 <fs_field> TYPE ANY,

                 <fs_structure> LIKE LINE OF itab_structure.

  COMMIT WORK AND WAIT.

  CALL FUNCTION 'DDIF_FIELDINFO_GET'

       EXPORTING

            tabname        = i_tablename

            langu          = sy-langu

       IMPORTING

            ddobjtype      = v_table_type

       TABLES

            dfies_tab      = itab_structure

       EXCEPTIONS

            not_found      = 1

            internal_error = 2

            OTHERS         = 3.

  LOOP AT itab_structure ASSIGNING <fs_structure>

    WHERE keyflag = 'X'.

    wa_fields-fieldname = <fs_structure>-fieldname.

    wa_fields-length    = <fs_structure>-outputlen.

    APPEND wa_fields TO itab_fields.

  ENDLOOP.

  LOOP AT t_data_table ASSIGNING <fs_data>.

    LOOP AT itab_fields INTO wa_fields.

      ASSIGN COMPONENT wa_fields-fieldname OF STRUCTURE <fs_data>

        TO <fs_field>.

      IF <fs_field> IS ASSIGNED.

        v_strlen_fie = wa_fields-length.

        IF v_strlen_key IS INITIAL.

          v_tabkey = <fs_field>.

        ELSE.

          v_tabkey+v_strlen_key(v_strlen_fie) =

                  <fs_field>(v_strlen_fie).

        ENDIF.

        v_strlen_key = v_strlen_key + v_strlen_fie.

        UNASSIGN <fs_field>.

      ENDIF.

    ENDLOOP.

    CLEAR: v_strlen_key, v_strlen_fie.

    e071k-pgmid = 'R3TR'.

    e071k-object = 'TABU'.

    e071k-objname = i_tablename.

    e071k-as4pos  = '000000'.

    e071k-mastertype  = 'TABU'.

    e071k-mastername  = i_tablename.

    e071k-tabkey = v_tabkey.

    APPEND e071k TO itab_e071k.

    CLEAR: v_tabkey, e071k.

  ENDLOOP.

  IF sy-subrc EQ 0.

    e071-pgmid   = 'R3TR'.

    e071-object = 'TABU'.

    e071-obj_name  = i_tablename.

    e071-as4pos  = '000000'.

    e071-objfunc = 'K'.

    APPEND e071 TO itab_e071.

    CLEAR e071.

    IF i_task IS INITIAL.

      CALL FUNCTION 'TRINT_ORDER_CHOICE'

           EXPORTING

                wi_simulation          = ' '

                wi_order_type          = 'K'

                wi_task_type           = 'S'

                wi_category            = 'syst'

                wi_client              = sy-mandt

                wi_order               = ' '

                wi_e070                = e070

                wi_suppress_dialog     = ' '

                wi_cli_dep             = 'X'

                wi_remove_locks        = 'X'

                wi_display_button      = ' '

                iv_current_project     = ' '

           IMPORTING

                we_order               = v_order

                we_task                = v_task

           TABLES

                wt_e071                = itab_e071a

                wt_e071k               = itab_e071ka

           EXCEPTIONS

                no_correction_selected = 01

                object_append_error    = 01.

    ELSE.

      v_task  = i_task.

      v_order = i_order.

    ENDIF.

    IF NOT v_task IS  INITIAL.

      CALL FUNCTION 'TR_APPEND_TO_COMM_OBJS_KEYS'

           EXPORTING

                wi_simulation         = ' '

                wi_suppress_key_check = ' '

                wi_trkorr             = v_task

           TABLES

                wt_e071               = itab_e071

                wt_e071k              = itab_e071k

           EXCEPTIONS

                OTHERS                = 68.

      IF sy-subrc NE 0.

        RAISE save_error.

      ENDIF.

      e_order = v_order.

      e_task  = v_task.

    ELSE.

      IF sy-subrc NE 1.

        RAISE save_error.

      ELSE.

        RAISE no_cr_selected.

      ENDIF.

    ENDIF.

    REFRESH: itab_e071, itab_e071k.

  ELSE.

    RAISE no_data.

  ENDIF.

ENDFUNCTION.

* << Fim da inclusão

 

 

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

Modificações efetuadas em REPS /PWS/LZYCBGF5UXX

 

**Obs.: não aplicar este código, pois o mesmo é gerado automaticamente pelo SAP

 

INCLUDE /PWS/LZYCBGF5U01.

INCLUDE /PWS/LZYCBGF5U02.

INCLUDE /PWS/LZYCBGF5U03.

* >> Início da inclusão:

INCLUDE /PWS/LZYCBGF5U04.

* << Fim da inclusão