#1
|
|||
|
|||
borrar registros de tabla interna, urgente
saludos a todos amigos , tengo un problema que no he podido resolver por mi propia cuenta , tengo una tabla interna ZTEP luego de la lleno , quiero filtrarla , lei que puedo usar la sentencia delete from where , pero cada vez que la trato de compilar me aparece este error
The dictionary structure or table ZTEP does not exist or is not active , alguien me puede ayudar o decirme que pasa . esta es la tabla y como la declaro: DATA: BEGIN OF REG, fili type PA0001-bukrs, anom type PA0001-abkrs, nper1 type PA9111-pernr, ced type Pa0185-icnum, nom type PA0001-ename, perf type PA9111-perfil, freg1 type PA9111-finimedemb, mtot type PA9111-mtunico, ptot type PA9111-porsmn, int type ZINT_EVAL-intereses, mot type Z9HRMOTEMB-dsmotemb, stat type Z9HRTSTEMB-tstatus, cedb type PA9111-nbbenfr, nomb type PA9111-cibenfr, trib1 type PA9111-tribunal, nofic1 type PA9111-numofic, fofc type PA9111-fofc, numfs type PA9111-numofcsup, statu type PA9111-status, FC TYPE PA9111-begda, FF TYPE PA9111-ENDDA, CM TYPE PA9111-CODMOTIVO, END OF REG. DATA: BEGIN OF ZTEP OCCURS 0. INCLUDE STRUCTURE REG. DATA END OF ZTEP. |
#2
|
||||
|
||||
Hola, lo puedes declarar asi:
TYPES: BEGIN OF REG, fili like PA0001-bukrs, anom like PA0001-abkrs, nper1 like PA9111-pernr, ced like Pa0185-icnum, nom like PA0001-ename, perf like PA9111-perfil, freg1 like PA9111-finimedemb, mtot like PA9111-mtunico, ptot like PA9111-porsmn, int like ZINT_EVAL-intereses, mot like Z9HRMOTEMB-dsmotemb, stat like Z9HRTSTEMB-tstatus, cedb like PA9111-nbbenfr, nomb like PA9111-cibenfr, trib1 like PA9111-tribunal, nofic1 like PA9111-numofic, fofc like PA9111-fofc, numfs like PA9111-numofcsup, statu like PA9111-status, FC like PA9111-begda, FF like PA9111-ENDDA, CM like PA9111-CODMOTIVO, END OF REG. DATA: ZTEP TYPE STANDARD TABLE OF REG WITH HEADER LINE.
__________________
Luis Lipa
|
#3
|
|||
|
|||
sigue igual
sigue igual , cambie la forma de declaracion pero el mismo error , es como si no existiera
|
#4
|
||||
|
||||
Has declarado las tablas que usas:
tables: PA0001, Pa0185. Estas seguro que existe la PA9111?
__________________
Luis Lipa
|
#5
|
|||
|
|||
si de eso estoy seguro , ya lo verifique , lo que no entiendo es porque no hace el delete de la tabla interna pero si hace el
DELETE ADJACENT DUPLICATES FROM ZTEP. de la misma tabla |
#6
|
|||
|
|||
Hola ALNICO:
Lo que pasa es que la instrucción Delete FROM WHERE es sólo para tablas transparentes, osea tablas del diccionario y base de datos, no así para las tablas internas, lo que puedes hacer es recorrer tu tabla con un loop y mediante una condición borrar el registro. Loop at IT. If... delete IT. endif. endloop. Saludos |
#7
|
||||
|
||||
Ah ya entiendo tu problema, lo que sucede es que el DELETE FROM WHERE se usa para tablas de base de datos y no para tablas internas.
Si quieres borrar las filas de un tabla interna tienes que usar: DELETE <TABLA> INDEX <INDICE> Ahora el DELETE ADJACENT DUPLICATES FROM ZTEP que mencionas tambien se aplica para tablas internas. Espero que te sirva
__________________
Luis Lipa
|
#8
|
|||
|
|||
Hola ALNICO:
declara tu tabla interna asi: TYPES: BEGIN OF REG, fili like PA0001-bukrs, anom like PA0001-abkrs, nper1 like PA9111-pernr, ced like Pa0185-icnum, nom like PA0001-ename, perf like PA9111-perfil, freg1 like PA9111-finimedemb, mtot like PA9111-mtunico, ptot like PA9111-porsmn, int like ZINT_EVAL-intereses, mot like Z9HRMOTEMB-dsmotemb, stat like Z9HRTSTEMB-tstatus, cedb like PA9111-nbbenfr, nomb like PA9111-cibenfr, trib1 like PA9111-tribunal, nofic1 like PA9111-numofic, fofc like PA9111-fofc, numfs like PA9111-numofcsup, statu like PA9111-status, FC like PA9111-begda, FF like PA9111-ENDDA, CM like PA9111-CODMOTIVO, END OF REG. ****declara otra con la estructura de la anterior asi, en esta tabla guardas tus datos: DATA: ZTEP TYPE TABLE OF REG . ***hace la logica para llenar tu tabla interna ***elimina los registros que quieras sin utilizar la palabra from DELETE ZTEP WHERE (condición). ****o si quieres eliminar los duplicados DELETE ADJACENT DUPLICATES FROM ZTEP COMPARING nom. espero te sirva, Saludos, |
#9
|
|||
|
|||
ya resolvi , gracias por la ayuda a todos.
|
#10
|
|||
|
|||
Delete from where se utiliza para tablas de diccioario. Por eso te dice que no existe esa tabla en el diccionario.
Tú deberías utilizar DELETE TU_TABLA_INTERNA WHERE condicion. Saludos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|