Modificar tabla BSEG (agregarle un dato)

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • RAMONES
    Member
    • mar
    • 69

    #1

    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!!
    El mundo es Redondo y de Ricota......
  • RAMONES
    Member
    • mar
    • 69

    #2
    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!!
    El mundo es Redondo y de Ricota......

    Comentario

    • Jonathan Barrio Rodriguez
      Senior Member
      • oct
      • 199

      #3
      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.
      Editado por última vez por Jonathan Barrio Rodriguez; 17/04/2009, 00:21:32.
      Barrio Rodriguez, Jonathan.
      _____________________________________
      "No sigas a quien haya encontrado la verdad sino a quien la busque"

      Comentario

      • DavidXD_XD
        Moderator
        • ago
        • 1255

        #4
        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 , 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
        David Carballido Córdova

        Comentario

        • bisonye
          Senior Member
          • ago
          • 635

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

          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
          http://sapymas.blogspot.com/

          Comentario

          • RAMONES
            Member
            • mar
            • 69

            #6
            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!!
            El mundo es Redondo y de Ricota......

            Comentario

            • Jonathan Barrio Rodriguez
              Senior Member
              • oct
              • 199

              #7
              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.

              Originalmente publicado por RAMONES
              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!!
              Barrio Rodriguez, Jonathan.
              _____________________________________
              "No sigas a quien haya encontrado la verdad sino a quien la busque"

              Comentario

              • bisonye
                Senior Member
                • ago
                • 635

                #8
                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.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.
                Editado por última vez por bisonye; 17/04/2009, 16:04:24.
                http://sapymas.blogspot.com/

                Comentario

                • Jonathan Barrio Rodriguez
                  Senior Member
                  • oct
                  • 199

                  #9
                  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.

                  Originalmente publicado por bisonye
                  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.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.
                  Barrio Rodriguez, Jonathan.
                  _____________________________________
                  "No sigas a quien haya encontrado la verdad sino a quien la busque"

                  Comentario

                  • RAMONES
                    Member
                    • mar
                    • 69

                    #10
                    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!
                    El mundo es Redondo y de Ricota......

                    Comentario

                    • bisonye
                      Senior Member
                      • ago
                      • 635

                      #11
                      Originalmente publicado por RAMONES
                      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!
                      El fin último de los comentarios es hacerte ver, de forma más o menos sutil (la mia no ha sido sutil) que la modificación que has puede producir daños graves en la BD y que por lo tanto tu empleo puede estar en riesgo.

                      Tuve hace poco una persona a mi cargo y precisamente hizo una modificación de ese estilo. No la eché a la calle pero me puse tan serio que estuvo una semana entera enseñandome el código con miedo.... Es una de las cosas que deberían recalcar bien en cualquier curso de sap.

                      Saludos y si tienes dudas pregunta.
                      http://sapymas.blogspot.com/

                      Comentario

                      • RAMONES
                        Member
                        • mar
                        • 69

                        #12
                        En este instante, estoy en el cliente en el cual tengo que hacer la modificacion. Quisiera si me pueden decir, como hago para agregarle un campo a la transaccion FCH5, yo anteriormente lo hice copiando el programa de control a uno Z y en la se80 le agregue el campo, esta bien eso?? lo hice asi porque esta TX no tiene screen-exits...gracias!!
                        El mundo es Redondo y de Ricota......

                        Comentario

                        • marianoa
                          Member
                          • jun
                          • 77

                          #13
                          tendrias que buscar una badi que te deje agregar un campo, si no encuentras ningun screen exit.
                          con respecto a la modificacion de las tablas estandar coincido con lo dicho anteriormente. ademas si esa tabla tiene tablas relacionadas te pueden quedar varios datos inconcistentes.
                          Saludos

                          Comentario

                          • cjbravom
                            Junior Member
                            • abr
                            • 7

                            #14
                            Funcion para modificar datos en la BSEG

                            Hola a todos, para mofidicar datos en la tabla BSEG, puedes utilizar esta funcion:

                            CALL FUNCTION 'CHANGE_DOCUMENT' IN UPDATE TASK
                            TABLES
                            t_bkpf = zbkpf
                            t_bkdf = zbkdf
                            t_bseg = zbseg
                            t_bsec = zbsec
                            t_bsed = zbsed
                            t_bset = zbset.

                            COMMIT WORK.

                            Comentario

                            • RAMONES
                              Member
                              • mar
                              • 69

                              #15
                              Originalmente publicado por cjbravom
                              Hola a todos, para mofidicar datos en la tabla BSEG, puedes utilizar esta funcion:

                              CALL FUNCTION 'CHANGE_DOCUMENT' IN UPDATE TASK
                              TABLES
                              t_bkpf = zbkpf
                              t_bkdf = zbkdf
                              t_bseg = zbseg
                              t_bsec = zbsec
                              t_bsed = zbsed
                              t_bset = zbset.

                              COMMIT WORK.


                              Muchas gracias! Lo voy a probar......
                              El mundo es Redondo y de Ricota......

                              Comentario

                              Trabajando...