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 25/04/16, 16:14:46
mogus mogus is offline
Junior Member
 
Fecha de Ingreso: oct 2013
Mensajes: 3
Grabar Nombre de Tabla en campo itab

Hola Todos.

Necesito la forma de asignar el nombre de la tabla en la que estoy haciendo un select a un campo en mi tabla itab... me explico, la consulta va a varias tablas y necesito mostrale a usuario cada registro en que tabla quedó grabado... pej en este código necesito colocarle a cada registro si proviene de la tabla A690 o de la A694.... Como puedo hacer eso? Gracias!!!!!

CLEAR itab.
REFRESH itab.

SELECT KAPPL KSCHL WERKS INCO1 INCO2 MFRGR VRKME KFRST DATBI DATAB
KBSTAT KNUMH
INTO CORRESPONDING FIELDS OF TABLE itab
FROM A690
WHERE werks in werks.

SELECT KAPPL KSCHL WERKS INCO1 INCO2 KONDM VRKME KFRST DATBI DATAB KBSTAT KNUMH
INTO CORRESPONDING FIELDS OF TABLE itab1
FROM A694
WHERE werks in werks.

LOOP AT itab1.
APPEND itab1 TO itab.
ENDLOOP.
Responder Con Cita
  #2  
Viejo 25/04/16, 16:49:58
Avatar de Jesicka_21
Jesicka_21 Jesicka_21 is offline
Junior Member
 
Fecha de Ingreso: sep 2013
Mensajes: 15
Lo que se me ocurre

Buenas tardes,

Lo que se me ocurre que podes llegar a hacer es lo siguiente:
Deberias realizarte un types de la siguiente manera.

TYPES: BEGIN OF TY_ITAB,
KAPPL TYPE A690-KAPPL,
KSCHL TYPE A690-KSCHL,
WERKS TYPE A690-WERKS,
INCO1 TYPE A690-INCO1,
INCO2 TYPE A690-INCO2,
MFRGR TYPE A690-MFRGR,
VRKME TYPE A690-VRKME,
KFRST TYPE A690-KFRST,
DATBI TYPE A690-DATBI,
DATAB TYPE A690-DATAB,
KBSTAT TYPE A690-KBSTAT,
KNUMH TYPE A690-KNUMH,
TABNAME TYPE CHAR20,
END OF TY_ITAB.

Agregamos un campo llamado TABNAME que contendrá el nombre de la tabla.

Realizas tu consulta:

CLEAR itab.
REFRESH itab.

SELECT KAPPL KSCHL WERKS INCO1 INCO2 MFRGR VRKME KFRST DATBI DATAB
KBSTAT KNUMH
INTO CORRESPONDING FIELDS OF TABLE itab
FROM A690
WHERE werks in werks.

SELECT KAPPL KSCHL WERKS INCO1 INCO2 KONDM VRKME KFRST DATBI DATAB KBSTAT KNUMH
INTO CORRESPONDING FIELDS OF TABLE itab1
FROM A694
WHERE werks in werks.

Luego, realizas lo siguiente:

*Loopeo de los datos de tabla A694.
LOOP ITAB1.

ITAB1-TABNAME = 'A694'.

APPEND ITAB1 TO ITAB.

ENDLOOP.

* Los registros que tengan el campo TABNAME vacio, no vienen de la A694.
LOOP ITAB
WHERE TABNAME EQ SPACE.

ITAB-TABNAME = 'A690'.

MODIFY ITAB.

ENDLOOP.

No sabría decirte si hay otra manera, pero es lo mas sencillo que se me ocurrió.
__________________
Saludos!,

Jess.

"...Puedes llegar a cualquier parte, siempre y cuando andes lo suficiente..."
Responder Con Cita
  #3  
Viejo 26/04/16, 14:26:15
mogus mogus is offline
Junior Member
 
Fecha de Ingreso: oct 2013
Mensajes: 3
Thumbs up Gracias

Hola Jess, funcionó perfecto! Muchas Gracias.
Responder Con Cita
  #4  
Viejo 26/04/16, 18:49:55
Avatar de Jesicka_21
Jesicka_21 Jesicka_21 is offline
Junior Member
 
Fecha de Ingreso: sep 2013
Mensajes: 15

Buenisimo Mogus, me alegro que te haya podido ayudar.
__________________
Saludos!,

Jess.

"...Puedes llegar a cualquier parte, siempre y cuando andes lo suficiente..."
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 08:24:17.


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