Funcion para introducir datos en tabla

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • ppchico
    Senior Member
    • oct
    • 144

    #1

    Funcion para introducir datos en tabla

    Hola:

    Alguien conoce alguna función para manejar dinamicamente datos en una tabla de base de datos? es decir, para poder actualizar, modificar, introducir, o borrar datos de una tabla

    A ser posible que sea de RFC.

    Muchas gracias.
    Editado por última vez por ppchico; 11/09/2007, 15:59:54.
  • ibecerra

    #2
    hola q tal, q sepa no hay ninguna funcion para eso, deberas de crearla.
    utilizando tablas dinamicas.
    pero si existe una funcion para visualizar cualquier tabla se llama
    RFC_READ_TABLE.
    si deseas tengo una RFC que hice hace tiempo y actualiza ,inserta e elimina
    registro de n tablas.


    FUNCTION Z_RFC_MANT_TABLAS_WEB.

    *"---------------------------------------------------------------------

    *"*"Interfase local

    *" TABLES

    *" TIMANTTABLA STRUCTURE ZEBMANTTABLA

    *" EMENSA STRUCTURE T100

    *" EXCEPTIONS

    *" NOT_AUTHORIZED

    *" TABLE_NOT_AVAILABLE

    *" TABLE_WITHOUT_DATA

    *" TABLE_PARAMETRO_VACIA

    *"----------------------------------------------------------------------

    *&---------------------------------------------------------------------*

    *& Report Z_RFC_MANT_TABLAS_WEB *

    *&---------------------------------------------------------------------*

    *& Mantenimiento de tablas para la seguridad Web *

    *&---------------------------------------------------------------------*

    *& Creación *

    *&---------------------------------------------------------------------*

    *& Autor : Israel Jorge Becerra Fernandez *

    *& Fecha : 09/09/2005 *

    *& Observación: Inserta,Actualiza,elimina Registro de tablas Seguridad*

    *& en forma dinamica *

    *& : Campos: *

    *----------------------------------------------------------------------*



    * ----------------------------------------------------------------------

    * find out about the structure of QUERY_TABLE

    * ----------------------------------------------------------------------

    CLEAR : TI_MANTTABLA, TI_MESSAGE, emensa, tmensa.

    FREE : TI_MANTTABLA, TI_MESSAGE, emensa, tmensa.



    TI_MANTTABLA[] = TIMANTTABLA[].

    PERFORM VALIDA_DATOS.

    *--------------------------------------------------

    *Si no existe informacion a actualizar

    *--------------------------------------------------

    IF TI_MANTTABLA[] IS INITIAL.

    RAISE TABLE_PARAMETRO_VACIA.

    ENDIF.



    *-------------------------------------------------------------

    *Insercion de datos

    *-------------------------------------------------------------

    DATA : WFLAG TYPE I ,

    WACCION LIKE TI_MANTTABLA-ACCION,

    wpos LIKE TI_MANTTABLA-POS.



    LOOP AT TI_MANTTABLA.

    AT NEW TABLA.

    WFLAG = 1.

    ENDAT.

    IF WFLAG = 1.

    WACCION = TI_MANTTABLA-ACCION.

    wpos = TI_MANTTABLA-pos.





    WTABLA = TI_MANTTABLA-TABLA.

    refresh: it_details ,it_fldcat .

    clear : wa_it_fldcat ,wa_details.

    free : wa_it_fldcat ,wa_details.

    *-------------------------------------------------------------

    * Creacion de Nueva Estructura

    * Agregar estructura a nueva tabla

    *-------------------------------------------------------------

    ref_descr ?= cl_abap_typedescr=>describe_by_name( WTABLA ).

    it_details[] = ref_descr->components[].

    LOOP AT it_details INTO wa_details.



    CLEAR wa_it_fldcat.

    wa_it_fldcat-fieldname = wa_details-name .

    wa_it_fldcat-datatype = wa_details-type_kind.

    wa_it_fldcat-intlen = wa_details-length.

    wa_it_fldcat-decimals = wa_details-decimals.

    APPEND wa_it_fldcat TO it_fldcat .

    ENDLOOP.



    CALL METHOD cl_alv_table_create=>create_dynamic_table

    EXPORTING

    it_fieldcatalog = it_fldcat

    IMPORTING

    ep_table = new_table.







    ASSIGN new_table->* TO <dyn_table>.

    *-------------------------------------------------------------

    * create dynamic work area and assign to fs

    *-------------------------------------------------------------



    CREATE DATA new_line LIKE LINE OF <dyn_table>.

    ASSIGN new_line->* TO <dyn_wa>.

    clear : <dyn_table>.

    free : <dyn_table>.



    LOOP AT it_details INTO wa_details.

    *

    READ TABLE TI_MANTTABLA

    WITH KEY TABLA = WTABLA

    FIELDNAME = wa_details-NAME

    ACCION = WACCION

    pos = wpos .

    IF SY-SUBRC EQ 0.

    ASSIGN COMPONENT wa_details-NAME OF STRUCTURE

    <dyn_wa> TO <dyn_field>.

    <dyn_field> = TI_MANTTABLA-VALOR .

    ENDIF.

    endloop.

    INSERT <dyn_wa> INTO TABLE <dyn_table>.

    IF WACCION CO 'UI'.

    PERFORM MENSAJE USING

    'E02'

    'Se actualizo Tabla '

    WTABLA.

    MODIFY (WTABLA) FROM TABLE <dyn_table>.

    ELSE.

    DELETE (WTABLA) FROM TABLE <dyn_table>.

    PERFORM MENSAJE USING

    'E03'

    'Se Elimino registros de tabla '

    WTABLA.



    ENDIF.

    WFLAG = 0.

    ENDIF.



    endloop.

    EMENSA[] = tmensa[].



    ENDFUNCTION.

    Comentario

    • ppchico
      Senior Member
      • oct
      • 144

      #3
      Muchas gracias por la respuesta (Y por la Funcion).

      El caso es que me habian pedido que investigase si existia alguna funcion de este tipo, y tras haber echado una horita buscando por todo el sistema funciones del estilo, habia decidido preguntarlo aqui... asi que creo que si quieren la funcion habra que implementarla.

      Muchas gracias por la funcion, por que posiblemente me sea muy util para mi desarrollo.

      Comentario

      Trabajando...