PDA

Ver la Versión Completa : ¿Ingresar parametros en una tabla?


X200
22/11/10, 15:45:19
Hola, soy nuevo en ABAP y si bien es costoso, de a poco voy mejorando. Me gustaria que me orienten un poco respecto al cargado de datos en la tabla.

Estoy intentando hacer un pequeño programa el cual recibe datos que se reciben de input fields. Queria que los mismos se guarden en la tabla. Por lo que cree una tabla interna con la misma estructura y bueno asigno los parametros a la tabla interna y despues con un loop la recorro y las guardo en la tabla real.

Mi duda es si es correcto, guardar asi los datos de los parametros o hay otra manera? Aqui dejo el pseudocodigo por decirlo de alguna manera de lo que hice, para un mejor entendimiento.


PARAMETERS:

dato1 TYPE tabla1-campo1,
dato2 TYPE tabla1-campo2,
dato3 TYPE tabla1-campo3.


TYPES: BEGIN OF sy_struc,

dato1 TYPE tabla1-campo1,
dato2 TYPE tabla1-campo2,
dato3 TYPE tabla1-campo3,

END OF sy_struc.

* Creo una tabla interna y su respectiva workarea

DATA: itab_pr TYPE STANDARD TABLE OF sy_struc.
DATA wa_tab TYPE sy_struc.


START-OF-SELECTION.

* Los datos de los parametros los guardo en la tabla interna

itab_pr-dato1 = dato1.
itab_pr-dato2 = dato2.
itab_pr-dato3 = dato3.


* Recorro la tabla interna y voy haciendo un insert del dato en la tabla.

LOOP AT itab_pr INTO wa_tab.

INSERT wa_tab-dato1 INTO tabla1.
INSERT wa_tab-dato2 INTO tabla1.
INSERT wa_tab-dato3 INTO tabla1.

ENDLOOP.

Saludos y gracias desde ya.

jossnet
22/11/10, 16:46:48
tu codigo deberia ser asi:

* Los datos de los parametros los guardo en la tabla interna
wa_tab-dato1 = dato1.
wa_tab-dato2 = dato2.
wa_tab-dato3 = dato3.
append wa_tab to itab_pr.

*insert del dato en la tabla.
insert tabla1 from table itab_pr.

X200
23/11/10, 11:10:10
Ah ya entendi, esto es porque no se puede acceder directamente a la tabla interna sino que debe hacerse siempre mediante el workarea. Luego le hago un append a la tabla interna vacia y luego la inserto en la tabla real. Muchas gracias por tu ayuda y seguire praticando.

Saludos

VLozano
23/11/10, 12:41:13
Por si acaso (uno nunca sabe cuándo con un consejo así está salvando puestos de trabajo):

NUNCA, JAMÁS, BAJO NINGÚN CONCEPTO uses estos métodos con tablas estándar de SAP. Sólo con tablas propias (Z*).

Modificar/insertar datos en tablas estándar de SAP puede llevar a inconsistencias en los datos que podrían crear verdaderas catástrofes empresariales.

Es mucho peor que mandar cartas en cadena o que matar gatitos. Bueno, que lo de los gatitos no. Pero casi.

X200
23/11/10, 12:49:37
Muchas gracias por el consejo ^^ . Si desde el principio tengo en mente que las tablas de SAP son sagradas, solo uso esto con tablas creadas por mi. Muchas gracias a todos, ya he cambiado el estado del tema a solucionado.

Saludos