PDA

Ver la Versión Completa : Borrado dinámico de tablas


poketina
06/08/13, 12:29:31
Hola,

Me han pedido que haga lo siguiente: crear un report con 3 campos en la pantalla de selección:

- nombre de tabla
- nombre de campo
- valor (rango)

Lo que quieren hacer es con ese programa poder borrar valores de cualquier tabla. Es decir, q ellos puedan meter MARA, MATNR, 150 y entonces me borre de la MARA ese registro. O bien VBAK, VBELN, xxx y me borre de la VBAK.

Esto se puede hacer de alguna manera ??

gracias !!

María

SidV
06/08/13, 13:40:13
Quiero creer que como programadora ABAP dijiste que SAP no permite borrar registros de tablas estandar.

Un programa ZETA nunca debería poder borrar datos de tablas del sistema. :mad:

Kope
06/08/13, 15:30:20
Hola,

Me han pedido que haga lo siguiente: crear un report con 3 campos en la pantalla de selección:

- nombre de tabla
- nombre de campo
- valor (rango)

Lo que quieren hacer es con ese programa poder borrar valores de cualquier tabla. Es decir, q ellos puedan meter MARA, MATNR, 150 y entonces me borre de la MARA ese registro. O bien VBAK, VBELN, xxx y me borre de la VBAK.

Esto se puede hacer de alguna manera ??

gracias !!

María

Es una locura eso!!! pierdes directamente el soporte de SAP por hacer una bestialidad así.

poketina
07/08/13, 06:39:27
En realidad lo he puesto mal, quieren borrar de tablas Z, que ayer con las prisas lo puse mal...
La final lo haré así, que funciona:

DATA name(80) TYPE c.

PARAMETERS: pa_tabla TYPE tabname MATCHCODE OBJECT dd_tabl,
p_campo type string.
select-OPTIONS: s_valor for (name).

CONCATENATE p_campo ' IN ' s_valor
INTO optiontext SEPARATED BY space.
options-text = optiontext.
APPEND options.

DELETE from (pa_tabla) WHERE (options).

SidV
07/08/13, 13:41:55
Disculpame pero dijiste esto:
Lo que quieren hacer es con ese programa poder borrar valores de cualquier tabla. Es decir, q ellos puedan meter MARA, MATNR, 150 y entonces me borre de la MARA ese registro. O bien VBAK, VBELN, xxx y me borre de la VBAK.
Ahí las tablas que mencionas son estandar.

Tene mucho cuidado con lo que programes (para ese cliente y cualquiera).
Te pueden hacer responsable de perdidas de datos muy grandes, y encima, SAP no se hará responsable para recuperar esos datos y curar las inconsistencias.

Saludos

pancho6102
07/08/13, 18:18:06
Aunque el programa vaya destinado a borrar Z's yo no haría el desarrollo así, se presta mucho a errores de dedo y consecuencias enormes.

Si ese lo que tienes que hacer y no tienes otra opcion (que te lo firmen ) yo optaría por poner un candado ya sea por el match code (construyendo uno o en runtime) o por código que si la tabla no comienza con Z no haga nada.

aunque lo que te piden esta bastante loco.

Saludos.

poketina
08/08/13, 10:19:11
Sí, puse ejemplos de tablas estándar por poner un ejemplo, pero no quieren borrar tablas estándar, de hecho si la tabla que meten no empieza por Z saltará un mensaje de error.
No creo que lo utilicen muy a menudo, por ahora quieren, mediante un job, poder borrar de una tabla Z registros de meses anteriores. Y la opción de poder borrar de cualquier tabla Z no creo que ni que lleguen a usarla. Además, es sólo un usuario que tendrá acceso a ese programa así que si se borran datos que no debieran será con su usuario...
gracias !!