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/05/12, 13:59:33
Karla V. Karla V. is offline
Senior Member
 
Fecha de Ingreso: may 2011
Mensajes: 101
Urgente! Duda

Hola Amigos, como hago para eliminar registos duplicados en una tabla declarada como FIELD-SYMBOLS TYPE ANY TABLE??
intenté con:
DELETE ADJACENT DUPLICATES FROM <lt_data> COMPARING LIFNR BELNR.
Pero me da error que dice
The specified type has no structure and therefore no component called
"LIFNR". .
Yo pensé que era por el nombre del campo pero ese campo si existe en la tabla....
Responder Con Cita
  #2  
Viejo 11/05/12, 14:08:04
Duarco Duarco is offline
Member
 
Fecha de Ingreso: jun 2009
Mensajes: 54
Hola como vas?...

intenta a hacer el borrado de la siguiente forma:

DELETE ADJACENT DUPLICATES FROM <lt_data> COMPARING ('LIFNR BELNR').

Los field symbol como tal tienen la referencia en memoria de la tabla que hayas asignado, por lo tanto, no puedes acceder directamente al campo que desees.
Responder Con Cita
  #3  
Viejo 11/05/12, 14:29:09
Karla V. Karla V. is offline
Senior Member
 
Fecha de Ingreso: may 2011
Mensajes: 101
:) :(

Hola!
al principio no me dio error de compilación pero cuando lo ejecuté me salio este error:

- "LIFNR BELNR" contains a specification of the form "A->B" for a
dynamic access to an object attribute.
This type of attribute access is only permitted statically at this
point in time.

- "LIFNR BELNR" contains significant closing spaces (only possible for the type
STRING).
Es una tabla dinámica no se q mas hacerle
Responder Con Cita
  #4  
Viejo 11/05/12, 14:53:33
Duarco Duarco is offline
Member
 
Fecha de Ingreso: jun 2009
Mensajes: 54
La tabla es completamente dinamica? o la creaste a partir de otra tabla interna?
Responder Con Cita
  #5  
Viejo 11/05/12, 15:19:53
Karla V. Karla V. is offline
Senior Member
 
Fecha de Ingreso: may 2011
Mensajes: 101
Bueno yo realmente estoy modificando el codigo que hizo otra persona, yo soy nueva programando en esto y no entiendo bien qué hizo, te envío lo que creo que es el centro de todo, según entiendo creo toda una tabla dinamica llamada gt_data y después no entiendo que hace el ASSIGN gt_data->* TO <lt_data>.? copia toda la información con estructura y todo?
*&--
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = gt_fcat
IMPORTING
ep_table = gt_data
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ASSIGN gt_data->* TO <lt_data>.
CREATE DATA ls_data LIKE LINE OF <lt_data>.
ASSIGN ls_data->* TO <ls_data>.
Responder Con Cita
  #6  
Viejo 11/05/12, 16:11:26
Karla V. Karla V. is offline
Senior Member
 
Fecha de Ingreso: may 2011
Mensajes: 101
:)

Bueno lo resolvi de otra manera, vacié una variable que era lo que hacia que se me duplicaran los registros, gracias de todos modos.
Responder Con Cita
  #7  
Viejo 11/05/12, 16:14:07
Duarco Duarco is offline
Member
 
Fecha de Ingreso: jun 2009
Mensajes: 54
si, efectivamente es una tabla dinamica....

aca creas la tabla dinamica segun un catalogo de tabla (gt_fcat)

CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = gt_fcat
IMPORTING
ep_table = gt_data
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

Y la tabla o estructura creada queda en gt_data.

Haz el intento de eliminar la tabla a gt_data y no al field symbol.

Hice la prueba, y el

DELETE ADJACENT DUPLICATES FROM <fs> COMPARING ALL FIELDS.

Si funciona, no se si te servira la comparacion por todos los campos.
Responder Con Cita
  #8  
Viejo 11/05/12, 16:26:04
Duarco Duarco is offline
Member
 
Fecha de Ingreso: jun 2009
Mensajes: 54
OK...con gusto, la idea es colaborar
Responder Con Cita
  #9  
Viejo 11/05/12, 16:29:12
Karla V. Karla V. is offline
Senior Member
 
Fecha de Ingreso: may 2011
Mensajes: 101
Gracias, si lo probé con el ALL pero tenia que ordenar la tabla y me desconfiguraba la presentación, lo que estaba pasando es que una tabla quedaba llena con informacion vieja y por eso repetia los registros, lo que hice fue vaciar la tabla y listo, Gracias! ahora no se si sabes como me copio una clase de objeto?
es que necesito probar la clase original que hizo el programador para ir comparando si me falta algo, yo pense que servia presionando boton derecho sobre el nombre de la clase y copiandola pero cuando hago eso, pareciera que lo copiara todo con sus metodos, pero al ejecutar la transaccion dice que no encuentra los metodos de la clase.
Responder Con Cita
  #10  
Viejo 11/05/12, 16:36:15
Duarco Duarco is offline
Member
 
Fecha de Ingreso: jun 2009
Mensajes: 54
mmm... la verdad las clases no son mi fuerte, pero valida la transaccion SE24.
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 22:07:29.


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