MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Modificar tabla BSEG (agregarle un dato) (foro/showthread.php?t=29522)

RAMONES 16/04/09 18:10:15

Modificar tabla BSEG (agregarle un dato)
 
Una consulta amigos saperos, tengo que modificar un dato de la tabla BSEG, la cosa es asi en una determinada transaccion, el usuario va a ingresar una fecha (este campo lo agregue yo), y cuando se ejecuta la transaccion tengo que ir a la bseg (campo ZFBDT) y modificar el dato existente por el que el haya ingresado.
Como puedo hacerlo?? Me urge!! Les agradezco su ayuda!!

Saludos!!

RAMONES 16/04/09 20:21:07

Solucionado
 
Lo logre solo, no es recomendable, pero es lo que me pedian...

hice lo siguiente:

DATA: it_bseg TYPE TABLE OF bseg,
wa_bseg TYPE bseg.

IF BSEG-ZFBDT IS INITIAL.

* si el campo es vacio que no haga nada, de lo contrario me modifica el
* campo y lo guarda vacio.

ELSE.

SELECT SINGLE *
FROM bseg
INTO wa_bseg "selecciono la posicion a modificar segun las condiciones
WHERE bukrs = payr-zbukr
AND belnr = payr-vblnr
AND gjahr = payr-gjahr
AND bschl = '39'
AND umskz = 'R'.

IF sy-subrc = 0.

wa_bseg-zfbdt = BSEG-ZFBDT. "copio de la screen a la WA
MODIFY bseg FROM wa_bseg. "grabo los cambios a la tabla BSEG

ENDIF.
ENDIF.





espero que a alguien le ayude esto....saludos!!

Jonathan Barrio Rodriguez 17/04/09 00:17:56

Ey Ey Ey... espero haberte entendido bien pero vamos... bajo mi opinion ni se te ocurra hacer eso:

Esos datos se archivan en el sistema mediantes las transacciones STANDAR. Si lo haces directamente sobre la tabla standar te estarás saltando todos los pasos de validación y carga de otras tablas dependiente que hace R/3 para asegurar la consistencia e integridad de los datos... Si solo lo cargas en esa tabla, al visualizar el documento saldrá bien... pero es posible que en otros datos, otras pantallas no te los muestre o haga calculos erroneos si carece de esa fecha... podría valer esa fecha para calcular impuestos en otras tablas...

Creo recordar que la BSEG es una tabla de posiciones de la MSEG y son datos maestros (lo cual toma más importancia ) ¿cargados por la tx FB01?

Si es así haz un Batch input por la FB02 (modificación).Si necesitas más ayuda escribe, creo recordar que tenía algún programilla por ahí y te lo podría enviar.

Contrasta lo que te digo con tu superior. Si alguien cree que estoy equivocado... por favor!! corríjanme.

Saludos.

DavidXD_XD 17/04/09 03:14:20

Apoyo lo que menciona Jonathan, un UPDATE o MODIFY a una tabla standard no es para nada recomendable, hasta t pueden correr si alguien se entera :p , lo que quieres hacer me suena a una sustitucion (OBBH) ya que quieres sustituir el campo de la BSEG con otro dato, puedes usar tecnicas de memoria (EXPORT MEMORY) y jalarlo dentro de la sustitucion

bisonye 17/04/09 06:27:58

De acuerdo con Jonathan y David, eso de atacar las tablas directamente es "caca" y no se hace. :D

A partir de aqui, la única forma que conozco de modificar documentos es mediante la FB02 por lo que tendrás que hacer un BI como dice Jonathan ya que por lo que parece no es una transacción estandard y creo que no puedes utilizar ampliaciones. Por otro lado el valor que estás modificando no es más que la fecha de vencimiento. A nivel financiero no tiene demasiada importancia pero si está ligado con el módulo de ventas o compras no te van a cuadrar los datos....

Saludos

RAMONES 17/04/09 13:13:34

Recien acabo de leer sus respuestas, en este momento no estoy en el cliente, por lo que cuando vuelva al mismo voy a reveer lo que hice y cualquier cosa, les consulto. Muchisimas gracias, les pido que si tengo dudas me ayuden...gracias!!

Jonathan Barrio Rodriguez 17/04/09 15:45:43

Bueno... si el programa se está usando o probando... yo iría ahora mismo. Imagino que está en desarollo, por lo que no sería grave el estropicio, aunque tampoco es plan de maltratar el entorno donde vas a hacer pruebas.

Si es un tema de fechas de vencimiento de docuemnto... podría dar errores en cuanto a las condiciones de precio, no?

Saludos.


bisonye 17/04/09 15:55:45

La fecha de vencimiento se calcula a partir de las condiciones de pago pero una vez calculada en el documento financiero la puedes cambiar.

Personalmente si alguien que trabaja conmigo hiciese una consulta de actualización así lo tiraba a la calle. Solo lo permitiría en tablas Z, para modificar las tablas del sistema hay muchas formas.

Menos mal que no tengo trabajadores a mi cargo!! :p

P.D: Estoy releyendo el mensaje y parece un poco duro. Señalar que el último responsable de un código así es el analista que debería dejar claro desde un principio que eso no se puede hacer.

Jonathan Barrio Rodriguez 17/04/09 16:15:40

JaJaJa...

Eso te iba a decir Bisonye. Vuelvo a lo de antes... el tema no son los novatos, que claro, como yo, los hay. El tema es dar un curso de una semana y dejar a alguien solito en un cliente y que para consultar... tenga que venir a mundosap.

Enhorabuena por no tener gente a tu cargo.
De todos modos me llama la atención que se trabaje en Abap y no se tengan conocimiento de modificar tabla por sql y sin supervisión le hagan atacar a tablas standar de maestros.

Creo que si ocurren casos como este... el supervisor se merece el marrón.

Ramones, no te desanimes por nuestros comentarios, todos metemos la pata, pero ten cuidadin con algunas cosas porque hay errores atroces.


RAMONES 17/04/09 19:05:37

Muchachos, me estan matando con sus comentarios, jaja, menos mal que no son mis enemigos....!!! voy a arreglar eso en cuanto vaya al cliente.....muchas gracias por su ayuda......si preciso algo les voy a consultar....GRACIAS!


Husos Horarios son GMT. La hora en este momento es 15:37:49.

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