Sustituir El Campo SGTXT de La Tabla BSEG

21
Sustituir el campo SGTXT de la tabla BSEG Algunas veces necesitamos que el campo SGTXT de la tabla BSEG mantenga un valor igual en cada una de sus posiciones, ya sea el texto de cabecera, el texto de asignación o cualquier otro valor que se desee colocar. ¿Cómo podemos realizar dichas modificaciones?, ¿Se puede emplear una BTE, un cambio por la OBBH, o realizar un enhancement?. Tras las preguntas anteriores y con la experiencia de ya haber resuelto 2 temas similares, lo aconsejable para este procedimiento es el empleo de la transacción OBBH, la cual nos permite reemplazar un valor de las tablas BKPF y BSEG ya sea por un valor hardcode (Quiere decir un valor fijo colocado por nosotros) o en su defecto un valor que obtenemos de otros campos textos que contenemos en la BSEG o BKPF. En el siguiente tutorial vamos a ver la creación de un paso aplicando la lógica necesaria para el cambio en el campo SGTXT por medio de la transacción OBBH. Para ello vamos a dirigirnos a la transacción OBBH y nos aparecerá la siguiente ventana: En la imagen anterior, se puede ver que ya se han creado algunos casos de sustitución tanto a nivel de cabecera, posición de documento y documento completo de acuerdo a una sociedad en especifico, para nuestro caso, la sustitución que realizaremos será realizada en una sustitución de documento completo, ya que necesitamos que estén todas las posiciones y solo tengamos que reemplazar el valor solicitado. Para nuestro caso anterior vamos a dirigirnos a la sustitución ZFI002 Sustitución doc. Completos. De cualquier sociedad, ustedes deben fijarse bien el tema de las sociedades ya que muchas veces el cliente

Transcript of Sustituir El Campo SGTXT de La Tabla BSEG

Page 1: Sustituir El Campo SGTXT de La Tabla BSEG

Sustituir el campo SGTXT de la tabla BSEG

Algunas veces necesitamos que el campo SGTXT de la tabla BSEG mantenga un valor igual en cada una

de sus posiciones, ya sea el texto de cabecera, el texto de asignación o cualquier otro valor que se desee

colocar. ¿Cómo podemos realizar dichas modificaciones?, ¿Se puede emplear una BTE, un cambio por la

OBBH, o realizar un enhancement?.

Tras las preguntas anteriores y con la experiencia de ya haber resuelto 2 temas similares, lo aconsejable

para este procedimiento es el empleo de la transacción OBBH, la cual nos permite reemplazar un valor

de las tablas BKPF y BSEG ya sea por un valor hardcode (Quiere decir un valor fijo colocado por nosotros)

o en su defecto un valor que obtenemos de otros campos textos que contenemos en la BSEG o BKPF.

En el siguiente tutorial vamos a ver la creación de un paso aplicando la lógica necesaria para el cambio

en el campo SGTXT por medio de la transacción OBBH.

Para ello vamos a dirigirnos a la transacción OBBH y nos aparecerá la siguiente ventana:

En la imagen anterior, se puede ver que ya se han creado algunos casos de sustitución tanto a nivel de

cabecera, posición de documento y documento completo de acuerdo a una sociedad en especifico, para

nuestro caso, la sustitución que realizaremos será realizada en una sustitución de documento completo,

ya que necesitamos que estén todas las posiciones y solo tengamos que reemplazar el valor solicitado.

Para nuestro caso anterior vamos a dirigirnos a la sustitución ZFI002 – Sustitución doc. Completos. De

cualquier sociedad, ustedes deben fijarse bien el tema de las sociedades ya que muchas veces el cliente

Page 2: Sustituir El Campo SGTXT de La Tabla BSEG

no quiere que las sustituciones se realicen en todas, sino en las que más usa o simplemente en un única

sociedad, el agregar más sociedades o el quitarle lo pueden hacer con los botones de la barra superior

Para editar las líneas

Para agregar nuevas líneas a otras sociedades

Para realizar una copia de las líneas indicadas (valido cuando queremos agregar una sociedad)

Para eliminar una o más líneas

Una vez ubicado la sustitución a utilizar, nos colocamos encima y le damos doble clic, lo cual nos dirigirá

a la pantalla de las sustituciones, tal como se muestra a continuación

Nos ubicamos en el desglose de la sustitución para ver los pasos que contiene

Page 3: Sustituir El Campo SGTXT de La Tabla BSEG

Para nuestro caso, nuestra sustitución contiene ya 3 pasos, vamos a agregarle un nuevo paso en donde

realizaremos el cambio del campo SGTXT, para ello nos dirigimos al botón de “Nuevo Paso”

Nos aparecerá una dynpro que contiene todos los campos disponibles a realizarle una sustitución, tanto

de la BKPF y de la BSEG o también nos da la posibilidad de emplear una exit, la cual permitiría un mayor

dinamismo en casos en donde el campo no fuera de fácil acceso o se tenga una lógica detallada previo a

la sustitución.

Page 4: Sustituir El Campo SGTXT de La Tabla BSEG

Para nuestro caso vamos a ubicar el campo SGTXT de la tabla BSEG y para no tener que desplazarnos

entre todos los registros emplearemos el botón de búsqueda de la parte inferior y nos aparecerá la

siguiente dynpro

Allí colocaremos el campo que estamos buscando en nuestro caso SGTXT y de nuevo pulsamos en el

botón de los binoculares

Page 5: Sustituir El Campo SGTXT de La Tabla BSEG

Nos aparecerá una dynpro con todos aquellos campos que cumplan con la búsqueda realizada.

En nuestro caso solo trae una línea, le vamos a dar un clic encima de donde dice SGTXT sombreado de

crema y automáticamente nos dirigirá a su posición ubicada en la dynpro.

Page 6: Sustituir El Campo SGTXT de La Tabla BSEG

Le vamos a dar clic al check que se encuentra en la parte izquierda y en la parte inferior le damos clic al

botón con el icono del check

Seguido nos aparecerá una dynpro consultándonos la manera de sustituir el campo SGTXT

Page 7: Sustituir El Campo SGTXT de La Tabla BSEG

Las opciones que se plantean las explicaremos a continuación:

- Valor constante: El campo SGTXT será reemplazado por un valor hardcode (valor fijo) el cual se

lo indicamos con un simple texto

En el ejemplo se puede ver que vamos a reemplazar en todas las posiciones del campo SGTXT

por nuestro texto “Sustituir texto prueba”

- Exit: El campo SGTXT será reemplazado de acuerdo a la lógica que se incluya en un exit ubicado

en el programa “ZRGGBS000”

Para nuestro ejemplo hacemos un cambio de campo (en específico el SGTXT) con respecto a

nuestro exit y en la lógica del programa veremos lo siguiente:

Page 8: Sustituir El Campo SGTXT de La Tabla BSEG

El formulario emplea el campo psgtxt que hace referencia al campo SGTXT y es justo a dicho

valor al que vamos a modificar, empleando la lógica que creamos adecuada, además al

momento de declarar el exit notaremos también lo siguiente:

En donde el exits-param tiene relacionado la opción de aplicar el exit solamente al campo

solicitado.

PERO LO RECOMENDADO ES: Pero aparte de esta opción (que muchas veces no reemplaza el valor en todas las posiciones)

esta la opción de reemplazar únicamente ejecutando el exit y empleando un loop con una tabla

interna que contiene todas las posiciones de la tabla BSEG, para poder hacer un llamado a este

tipo hay que realizar las siguientes validaciones:

Primero lo que vamos a registrar en exits-param ahora será con referencia a aplicación de una

clase

Luego en el código del perform la manera de la declaración del USING es con respecto a la tabla

interna que contendrá los valores de la tabla BSEG, con lo cual a través del empleo de un LOOP

podremos reemplazar el valor que deseemos modificar.

Por último en la parte de la sustitución vamos a ver los pasos para poder indicarle que queremos

emplear una sustitución solo por exit, primero ya hemos visto la dynpro que nos trae por

defecto al indicar que deseamos hacer una sustitución por exit

Page 9: Sustituir El Campo SGTXT de La Tabla BSEG

Vamos a proceder a eliminar dicha línea y reemplazar por la realización de una sustitución

únicamente por exit, para ello damos clic al check que esta al costado de texto y presionamos la

opción de eliminar la línea

Nos aparecerá una dynpro preguntando la confirmación del borrado, presionamos el botón SI

Luego confirmamos que ya no aparece ninguna línea del campo y luego procedemos a presionar

en el botón de agregar nueva línea

Nos aparece de nuevo la dynpro de la consulta de los campos a sustituir, pero nosotros

indicaremos la primera opción que indica “Sólo exit” y confirmamos

Page 10: Sustituir El Campo SGTXT de La Tabla BSEG

A continuación nos aparecerá la línea que nos indica que la sustitución se realizara solo por Exit

y en la casilla de la derecha colocaremos el nombre de nuestro Exit que creamos líneas arriba

- Asignación Campo – Campo: El último tipo de sustitución permite el cambio de nuestro campo

SGTXT por otro campo de las tablas BSEG o BKPF, solo tendríamos que indicarle el valor a tomar

y el cambio lo realizaría automáticamente, la dynpro es la siguiente

Page 11: Sustituir El Campo SGTXT de La Tabla BSEG

En el cuadro de texto se puede ingresar el nombre del campo que usaremos para reemplazar, si

no sabemos como convocarlo podemos presionar el botón del matchcode o presionar la

tecla F4 y nos aparecerá una dynpro con los campos disponibles

Una vez encontremos el indicado, le presionamos encima del texto y damos clic al botón con el

icono de check

Una vez elegido el tipo de sustitución, vamos a proceder a colocar la condición para que se efectué, para

ello vamos a dar clic en condición, que lo encontramos en la parte inferior de nuestro paso creado

Page 12: Sustituir El Campo SGTXT de La Tabla BSEG

Nos aparecerá la dynpro para la creación de la condición

Por lo general las condiciones pueden emplearse con lo siguiente:

- Si se desean hacer condiciones con los valores de la tabla BKPF, se puede emplear

Page 13: Sustituir El Campo SGTXT de La Tabla BSEG

- Si se desean hacer condiciones con los valores de la tabla BSEG, se puede emplear

- Si se desean hacer condiciones con los valores del sistema, se puede emplear

Page 14: Sustituir El Campo SGTXT de La Tabla BSEG

En un breve ejemplo, vamos a hacer una validación con respecto a la transacción FB05, para ello en

Campos sistema ABAP daremos doble clic sobre Código de transacción y veremos que el mismo texto se

copia en la parte superior (valor no modificable por teclado)

Page 15: Sustituir El Campo SGTXT de La Tabla BSEG

Si queremos darle el signo de comparación nos apoyaremos en los botones con los signos adecuados,

los cuales los tenemos en la parte inferior derecha

Para nuestro caso emplearemos el de igualdad, dándole un clic encima y otra vez notaremos que en la

parte superior se coloca dicho valor

Por último, vamos a ingresarle el valor constante de la transacción, para lo cual nos apoyaremos en los

botones que aparecen también en la parte inferior derecha

Page 16: Sustituir El Campo SGTXT de La Tabla BSEG

En este caso eligiremos el botón que dice Constante, damos clic encima y nos aparecerá una dynpro

solicitando dicho valor

Para nuestro caso agregamos el código de la transacción “FB05”, lo agregamos sin las comillas y

presionamos el botón con icono de check

Y de nuevo notaremos que en la parte superior el código se actualiza con la condición que estamos

armando para la transacción

Page 17: Sustituir El Campo SGTXT de La Tabla BSEG

Una manera se saber que nuestra condición es correcta, es fijándonos en el semáforo de Status que

tenemos en la parte derecha, encima de los botones de signos

Si deseamos agregar otra condición, podemos emplear los botones de AND o OR, dependiendo lo que se

necesite

Una vez ya tenemos la condición y la sustitución procedemos a guardar, para ello damos clic en el icono

del disquete que aparece en la parte superior

Page 18: Sustituir El Campo SGTXT de La Tabla BSEG

Una vez grabado aparecerá en la parte inferior el siguiente mensaje

Se realizan las validaciones con los ejemplo que tengan a mano, el resultado debe ser el que buscaban,

en el caso del código que han podido ver en la parte del empleo del exit (líneas arriba), lo que se realiza

es primero una recuperación de un campo de la dynpro de la transacción FB05 la cual contiene el texto

que repetiremos en el campo SGTXT en cada una de las posiciones de la tabla BSEG, obteniendo tras la

ejecución el siguiente resultado:

Page 19: Sustituir El Campo SGTXT de La Tabla BSEG

Una vez se tenga correcto los ajustes, para proceder a transportar el paso nos ubicamos en el nombre

de la sustitución

Luego iremos al menú, damos clic en sustitución y ubicamos la opción transportar

Page 20: Sustituir El Campo SGTXT de La Tabla BSEG

Nos aparecerá la siguiente dynpro

Le damos clic en el icono de ejecutar y nos solicitará la orden de transporte a emplear

Page 21: Sustituir El Campo SGTXT de La Tabla BSEG

Una vez seleccionamos nuestra OT, damos clic en el botón con icono de check y transportamos la OT a

los demás ambientes.