• Jueves 2 de Mayo de 2024, 03:29

Autor Tema:  Llenar Una Tabla Z  (Leído 21211 veces)

fer_saikyo

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Llenar Una Tabla Z
« en: Lunes 26 de Noviembre de 2007, 14:01 »
0
holap!
soy nuevo en abap y quisiera saber como llenar una tabla z creada con el diccionario. O sea cree una tabla interna pero no se donde tengo que ingresar los datos para que puedan subirse.


Modificacion 5/12:

Gracias Agrodo por tu respuesta, para aclarar un poco la idea: Lo que llamo tabla Z es la tabla transparente. Lo que hice sobre ella fue ingresar, por ejemplo: Nombre (tipo char (50), apellido... edad (entero), etc.) Lo que no sé es como llenar los campos. EJ:
Nombre          |    apellido              |   Edad
nancy             |    perez                 |    27
pablo              |   Arranda              |    55
etc. etc.

y mi idea es llenarla DESDE una tabla interna.

ahora se entiende un poco mejor?

Gracias!!!

Agrodo

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Llenar Una Tabla Z
« Respuesta #1 en: Miércoles 28 de Noviembre de 2007, 16:44 »
0
Hola, no entiendo muy bien lo que dices, si creaste una tabla z, para llenarla necesita crear un mantenedor asociado a esta tabla z que creaste, los mantenedores se crean en la transacción SM30.

En el caso de que se una tabla interna la que necesitas llenar, las tablas internas existen solo donde las definiste en el programa, aquí lo más lógico seria realizar un select a una tabla z y guardar la información en la tabla interna que deseas llenar, algo más o menos así:


SELECT *
      INTO TABLE gt_vbak
         FROM vbak
            WHERE vbeln IN n_pedido
            AND auart = 'ZZTA'.


Lo que hace este select es seleccionar todos los registros de la tabla vbak donde el campo vbeln  este dentro del rango (select-options) n_pedido, y donde el campo auart sea igual a 'ZZTA', todos estos registros los guarda en la tabla interna gt_vbak que fue definida del tipo vbak.

Ojala te sirva.

Saludos.

rboswaldo

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Llenar Una Tabla Z
« Respuesta #2 en: Viernes 4 de Enero de 2008, 19:53 »
0
Que tal...

Si entiendo bien tu pregunta lo mas sencillo que se me ocurre es declarar una structura con el nombre de la tabla Z

tables ztabla

no se donde tengas los datos que quieres llenar pero suponiendo que estan en una tabla interna.

loop at tabla interna.
   aqui llenas los campos que vas a ingresar ejemplo
  ztabla-edad = it_tablainterna-edad.
   asi todos los campos de la tabla y despues hace es insert.
  insert znombre de la tabla
endloop.

tambien puedes hacer un insert directo de la tabla interna pero te recomiendo que si estas comenzando lo hagas de la primer forma

fer_saikyo

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Llenar Una Tabla Z
« Respuesta #3 en: Miércoles 9 de Enero de 2008, 13:21 »
0
Gracias a ambos por las respuestas!
Osvaldo, y a todos aquellos que sigan el foro, el codigo es el siguiente.
REPORT  z_p3.

TABLES: zpersonask.

DATA: BEGIN OF ti OCCURS 0.
        INCLUDE STRUCTURE zpersonask.
DATA: END OF ti.

PARAMETERS:
p_dni TYPE i,
p_nom(20),
p_ape(30),
p_direc(40),
p_piso(3),
p_lega TYPE p DECIMALS 2.

SELECT * FROM zpersonask INTO CORRESPONDING FIELDS OF TABLE ti.
LOOP AT ti.
  WRITE: /
  ti-dni,
  ti-nombre,
  ti-apellido,
  ti-direccion,
  ti-piso,
  ti-n_legajo.
******Supongo que aqui irian los INSERT, pero no se que poner dentro de ellos para *que puedan pegarse a la tabla zpersonask. Por cierto inclui todos los campos.
*Lo que supuse que se haria es completar los parametros y por cada resultado
*obtenido quedaria en la tabla z.
ENDLOOP.

Agrodo

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Llenar Una Tabla Z
« Respuesta #4 en: Miércoles 9 de Enero de 2008, 20:07 »
0
Cita de: "fer_saikyo"
Gracias a ambos por las respuestas!
Osvaldo, y a todos aquellos que sigan el foro, el codigo es el siguiente.
REPORT  z_p3.

TABLES: zpersonask.

DATA: BEGIN OF ti OCCURS 0.
        INCLUDE STRUCTURE zpersonask.
DATA: END OF ti.

PARAMETERS:
p_dni TYPE i,
p_nom(20),
p_ape(30),
p_direc(40),
p_piso(3),
p_lega TYPE p DECIMALS 2.

SELECT * FROM zpersonask INTO CORRESPONDING FIELDS OF TABLE ti.
LOOP AT ti.
  WRITE: /
  ti-dni,
  ti-nombre,
  ti-apellido,
  ti-direccion,
  ti-piso,
  ti-n_legajo.
******Supongo que aqui irian los INSERT, pero no se que poner dentro de ellos para *que puedan pegarse a la tabla zpersonask. Por cierto inclui todos los campos.
*Lo que supuse que se haria es completar los parametros y por cada resultado
*obtenido quedaria en la tabla z.
ENDLOOP.
Mira según lo que veo en el código, estas seleccionando todos los datos de la tabla zpersonask y lo estas guardando en la tabla interna ti, luego le haces un loop a la tabla interna y imprimes todos sus campos, ahora el insert a  q tabla lo quieres realizar?, ya que en estos momentos en la tabla ti tienes todos los datos de la tabla z. En el caso de que quieras realizar un insert a una tabla z la sentencia seria así:

INSERT TABLA Z FROM TABLE TABLA INTERNA

Y en el caso de que quisieras realizar un insert a una tabla interna el código seria el siguiente:

INSERT LINES OF TABLA INTERNA 1  INTO TABLE TABLA INTERNA 2.


Ojala te sirva mi ayuda.
Saludos.

fer_saikyo

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Llenar Una Tabla Z
« Respuesta #5 en: Viernes 11 de Enero de 2008, 12:50 »
0
Agrodo: Te agradezco tu ayuda, funciono!!! Super contento, es mi primer ABM, va A, pero ya llegare!!!! saludos!!!!!!