MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 11/09/07, 15:57:38
Avatar de ppchico
ppchico ppchico is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Localización: Málaga
Mensajes: 144
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.

Úlima edición por ppchico fecha: 11/09/07 a las 15:59:54.
Responder Con Cita
  #2  
Viejo 11/09/07, 16:06:27
ibecerra
 
Mensajes: n/a
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.
Responder Con Cita
  #3  
Viejo 11/09/07, 16:19:26
Avatar de ppchico
ppchico ppchico is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Localización: Málaga
Mensajes: 144
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.

Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 18:02:19.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web