Truco 13. Transacciones personalizadas con las variantes de transacción (SHDO).


Conocer otra funcionalidad como la que nos ofrece la transacción SHD0 nos puede ser muy útil en ocasiones en las que queremos personalizar el comportamiento de las transacciones estándar (o incluso la desarrolladas por nosotros mismos).

En muchas transacciones podemos por customizing o por opciones de usuario personalizar valores predeterminados al entrar en ellas (clase de documento en transacciones de contabilización, valores predeterminados en documentos de compras, parametros de memoria para datos de unidades organizativas (sociedad, organización de ventas, sector), etc).

Pero a traves de las variantes de transacciones y de pantalla, podemos personalizar y simplificar los procesos mediante:

  • la asignación previa de campos con valores (valores predefinidos en campos)
  • la supresión y modificación de la disponibilidad para entrada de los campos.
  • la supresión y modificación de los atributos de las columnas en los table control (tablas de introducción de datos en muchas de las transacciones estándar).
  • la supresión de las funciones de menú.
  • la supresión de todas las imágenes.

Algunas de estas funcionalidades pueden estar disponibles a través del customizing (por ejemplo, mostrar o suprimir determinados campos en el mantenimiento de datos maestros de clientes, proveedores, materiales, cuentas o en los procesos de compras, ventas, contabilidad, etc), pero son opciones globales que afectan a todos los usuarios. En cambio, con las variantes de transacción podemos personalizar los procesos de transacción según el tipo de tarea o funciones que realiza un usuario, para hacer la introducción de datos más rápida, concisa, eliminando campos, pantallas u opciones de menú innecesarias o inicializando los valores con valores propios o repetitivos para hacer más productivo el trabajo del usuario. Aunque es importante remarcar que esta personalización siempre tendrá que respetar la lógica de las aplicaciones: campos obligatorios, verificación de valores introducidos, etc, que nunca nos vamos a poder saltar.

Vamos a realizar 3 ejemplos sencillos de lo que podríamos configurar utilizando esta funcionalidad:

1. Grabación de apuntes contables fijando la clase de documento y un texto de cabecera.

Queremos dejar preparada la entrada de datos a un usuario de forma que siempre se le inicialice el valor de la clase de documento (que no será modificable) y le proponga un texto de cabecera del documento (si modificable).

Pasos a seguir:

a) Creación de la variante: entramos en la transacción SHD0, indicamos la transacción para la que vamos a crear la variante (la FB50), el nombre de la variante de transacción (ZAPUNTES_CAJA) y pulsamos el icono Crear (F5).

La grabación nos lleva a la transacción que estamos personalizando. Introducimos los diferentes valores y pulsamos Intro.Se nos grabará una variante de pantalla por cada pantalla  que existiera en la dynpro de la transacción. En las variantes podremos indicar para cada campo, si mantiene el contenido introducido al grabar, si es visible o no, obligatorio o de solo salida (impedimos que se pueda modificar su contenido).

b) Ajuste de la variante: al salir de la transacción, se recogen todas las variantes de pantalla creadas, y se crea la variante de transacción propiamente dicha, a la que habrá que poner una descripción.Aquí podremos ajustar los diferentes campos de las pantallas, adaptandolos a nuestras necesidades, tal y como hemos comentado (visibles o no, obligatorios, solo salida, etc).

c) Creación de una transacción: la transacción de variante hay que convertirla a una transacción para que pueda ser ejecutada directamente por los usuarios, incluirla en los menús estandar o de rol. La crearemos con la transaccion SE93, indicando un código de transacción (por ejemplo, ZFB50), una descripción y el tipo de transacción “Transacción con variantes”.

Al crear la transacción, indicaremos la transacción estándar y el nombre de la variante que hemos creado. Importante siempre marcar el flag Valido para todos los mandantes.

d) Inclusión en el arbol de menú con la transacción SE43N para el menú estandar o bien en los roles asignados al usuario (transacción PFCG), para que aparezca en sus menús de usuario.

Al entrar en la transacción ZFB50, ya nos aparece los campos personalizados según nuestra configuración.

Siguiendo el mismo procedimiento, vamos a preparar dos transacciones personalizadas mas.

2. Creación de pedidos de venta, omitiendo la primera pantalla donde se introduce clase de documento y organización de ventas.

Personalizamos la transacción VA01 con la diferencia del ejemplo anterior que en la variante de pantalla para la primera dynpro de la transacción, marcamos el flag “No visualizar imagen” y llenamos los campos de clase de documento, organización de ventas, canal de distribución y sector.Cuando el usuario entre a la transacción personalizada, no pasará por esa pantalla y accederá directamente a la grabación del pedido, con los valores indicados predeterminados.

3. Personalización del table control en la grabación de pedidos de compras, omitiendo opciones de menú.

En este caso vamos a personalizar la transacción ME21N. Entramos en la SHD0 y nos quedamos en principio solo con la dynpro 1211, que es la que tiene el detalle de las posiciones de compras.En este caso, suprimimos un montón de campos del table control que no son relevantes (marcando el flag invisible). Ademas, de la barra de botones disponible, ponemos como solo salida los que permiten borrar o bloquear posiciones. Esta opción solo la podrán realizar determinados usuarios en la transacción estandar.Estos son algunos ejemplos de lo que nos permiten las variantes de transacción. Sin duda, algo muy interesante y potente. Y con muchas posibilidades para aquellos caso de usuarios que utilizan pocas funcionalidades del sistema o para los que queremos evitar errores o mejorar de forma notable su productividad.

También podriamos haber ajustado las opciones de menú disponibles, tal y como os muestra en la siguiente imagen para la transacción VA05n (listado de pedidos de venta).Seleccionando el botón Funciones de menú al crear la variante, nos aparecen las opciones de menú, que podemos activar o desactivar (tanto opciones de menús y submenus, como botones y barras).

NOTA: la transacción SHD0 también nos permite asignar las variantes de transacción creadas como variantes predefinidas en las transacciones estandar. Aunque esta es una opción que habrá que tratar con mucha cautela, pues puede producir mas problemas que ventajas.

La SHD0 solo esta disponible para transacciones con dialogo. Y en las transacciones que ejecutan reports, solo las podremos utilizar para ajustar las opciones de menú disponibles.

Esta entrada fue publicada en Sap Basis. Guarda el enlace permanente.

59 respuestas a Truco 13. Transacciones personalizadas con las variantes de transacción (SHDO).

  1. Mariano dijo:

    Buenos días, muy buen artículo.
    Sólo un aporte: en muchas partes de la página se nombra a la Tx SHD0 como SDH0.
    Saludos!

    • Me alegro Mariano que te haya sido de utilidad. Ya he corregido lo que comentas de los nombres de transaccion, que estaban incorrectos.

      Un saludo.

      • Esteban Campos dijo:

        Estimado.
        Quisiera saber si existe alguna forma de poder pegar una lista de un archivo excel con mas de 50 posiciones de una sola vez, en el momento de crear un pedido en la transaccion me21n. Ya que en mi trabajo, aveces son muchos los productos que debemos dar en una sola entrega y los tenemos en una planilla excel. Pero al momento de pasarlos a SAP, debemos ir solo de 20 en 20 copiando y pegando, o aveces de 30 en 30. Seria de gran ayuda que me explicaras si existe alguna manera de hacer eso.
        Muchas gracias. ecamposencina@gmail.com

      • Hola Esteban:

        Lo que vosotros quereis hacer no se puede hacer con una funcionalidad estandar, no existe. Pero se puede solucionar con un desarrollo. Este desarrollo te permitiria cargar los datos de una excel (con un formato definido) y realizar la creacion de los pedidos de compra mediante la BAPI de creacion de pedidos (BAPI_PO_CREATE1). A esta Bapi se le pasan unas estructuras con los datos de cabecera y posiciones del pedido, y realiza la creacion de los pedidos de compra realizando todas las validaciones en la introducicon de datos.

        Luego, los pedidos creados con esta BAPI estarian disponibles en el sistema para su modificacion por si teneis que cambiar algo de ellos (precios, textos o añadir nuevas posiciones).

      • Nestor dijo:

        Roberto, una consulta quisiera que el campo “Grupo de compras” en la transacción ME31K (crear pedidos abiertos) actualmente me muestra como obligatorio, quisiera que ya no lo sea, intenté por la tx. SHD0 lo oculta, pero aún así me lo sigue pidiendo con mensaje de error?, que otro cambio debería realizar en la configuración?. Gracias.

  2. Mariano dijo:

    Buenas! de nuevo.
    He tenido que trabajar con variantes y debía distinguir entre la variante y la transacción en sí.
    Para ello, encontré la siguiente función, que creo que es muy útil.
    Saludos!

    call function ‘RS_HDSYS_GET_TC_VARIANT’
    importing
    tcvariant = variant.

  3. Ruben Dario dijo:

    Buen dia.. Muy buen aporte.. me ayudo a comprender mejor la utilización de la SHD0.
    Una consulta, ya he creado una variante para la VA01, donde dejé el campo BLOQUEO DE ENTREGA como “solo salida”. El problema es que no puedo utilizar la variante nueva con una trx nueva de variates, y solo la pude utilizar si se configura en la VOV8 para que todos los pedidos trabajen con la variante nueva.
    Lo que necesito es que ciertos usuarios tengas la posibidad de trabajar sin esta variante.

    Desde ya agradecido.

    RubenD

    • Yo con algunas transacciones de finanzas he conseguido crear una transacción Z con la personalización de pantallas que yo quiero (jugando con las variantes de imagen y variantes de transacción). Luego esa transacción Z, por autorizaciones solo le das acceso a los usuarios que tu deseas (con el objeto de autorización S_TCODE).

      Por ejemplo, yo he hecho una transacción para grabar apuntes contables con el campo División a nivel de lineas, y solo aparece en una transacción Z. Solo algunos usuarios tienen acceso a esta transacción,y el resto de usuarios no tiene accesible ese campo.

      Un saludo.

    • MB dijo:

      Hola Rubén,
      Quisiera saber, si lograste asignar la variante nueva a usuarios específicos? y cómo lo lograste?

      Desde ya, gracias por tus comentarios.

      Saludos,

  4. Pingback: Resumen. Opciones de personalización en nuestro sistema Sap. « Notas y trucos SAP (Bitacora)

  5. Alicia Lopez dijo:

    Buenas tardes. Necesito que el usuario al grabar la variante de visualización, el campo “parametrización previa” aparezca grisado, es decir que no tenga la opción de poder tildarlo”. ¿cómo se puede realizar este requerimiento?
    muchas gracias!
    Alica

  6. Alicia Lopez dijo:

    Muchas gracias Roberto!!
    Lo pruebo y les cuento si nos funcionó.

  7. Griselda dijo:

    Hice lo que comentan para que el campo fecha contable en la MIRO sea visible en lugar de modificable, al entrar a la transaccion en desarrollo ya lo veo visible, pero al liberar el transporte me manda un codigo de error de retorno 4 , como puedo saber en donde esta el problema y corregirlo para poder aplicar el transporte. Algo que pude observar despues de hacer la variantes, es que el programa que veo en la SHDO no es el mismo que me mostro cuando elegia que campos quiero visibles, de salida, etc, y en la SHD0 no pued modificar el programa. De todos modos este cambio lo hice para dos transacciones, en una si es diferente el programa, en la otra no hay diferencia , pero en ambos casos me manda el error el trasnporte.

    saludos,

  8. Veronica Conde dijo:

    Gracias Roberto por este excelente tip pero sobre todo por tu generosidad que no cualquiera se toma el tiempo para ayudar 🙂 ojala muchos de la comunidad SAP intentemos ayudarnos unos a otros.

  9. gusrayas dijo:

    hola roberto como estas; gracias por compartir tus conosimientos tengo una consulta para ti
    estoy tratando de que un usuario solo tenga a ccesos a visualizar inventarios y algunos reportes no se como hacerlo me comentaron que por medio de roles se puede hacer pero no tengo la minima ide ade como hacerlo reviando tu post, esta super para mi pero desafortunadamente a lo que le vamos a dar acceso son ya en si transacciones de variates

  10. Susanna dijo:

    Hola,

    Hemos estado investigando un poco este tema y nos hemos encontrado que las variantes de transacción no se pueden generar para todos los tipos de programas como se explica en la nota SAP 331360, quedando fuera de ellos los programas que tienen pantalla de selección no definida en un modulepool entre otras.

    Por eso me gustaría preguntaros a ver si se os ocurre o si existe algo, como podríamos gestionar las variantes de selección de diferentes programas de manera que pudieran ser compartidas por un grupo de usuarios. Es decir, cuando tu accedes a un programa y seleccionas que te muestre las variantes en lugar de únicamente aparecerte la lista de las tuyas, que aparecieran algunas comunes a todos los usuarios sin necesidad de tenerlas que duplicar, o quitarle el nombre de usuario para seleccionar las variantes de otro usuario. La opción de copiarlas tampoco me sirve ya que entonces no tendrían el mismo nombre y no nos aseguraríamos que todos hacen la misma consulta ya que cada usuario podría modificar la suya…

    Muchas gracias!

    Y enhorabuena por la web, es super útil.

  11. DORIS dijo:

    ESPERO QUE ALGUIEN ME AYUDE …NECESITO SABER CUÁL ES LA TRANSACCIÓN PARA OBTENER REPORTE DEL MAESTRO DE PROVEEDORES CREADOS EN EL SAP, EL CUAL ME INCLUYA LA GESTIÓN DE CUENTAS

  12. Ari Rice-Oxley dijo:

    hola 🙂 alguien me podria ayudar ya cree la variante y en desarrollo si jala bien pero en QAS no ya pase los transportes y visualizo la variante y esta igual qeu en desarrollo pero nose por qeu no la respeta ojala me pudieran ayudar con este problema.. Gracias Saludos!!!

  13. neox dijo:

    Hola

    Alguien me podría ayudar, ya que estoy intentando desactivar el botón “Registrar de forma preliminar” de la transacción FB70, mediante la transacción SHD0 y no me deja. Para ello voy a Confirmar entradas –> funciones de menu, y cuando le doy a desactivar no hace nada.

    Gracias de antemano.

    Un saludo.

  14. Pingback: Los números de 2012 « Notas y trucos SAP (Bitacora)

  15. Hernan dijo:

    Hola!, es excelente la informacion que vas poniendo en el blog! Queria consultar si con esta transaccion Shdo, son posibles dos cosas.
    1. En la MIRO, que por defecto traiga, para un unico usuario, un tipo de documento distinto al RE que viene por default.
    2. Si es posible, en la MIRO tambien, que los costos indirectos, en vez de dividirse, segun la cantidad de articulos, me los muestre agrupado en una sola posicion. (por ejemplo, si tengo 2 articulos y un gasto de flete, me lo divide y me muestra dos posiciones de flete).
    gracias!!

    • Hola Hernan:

      eso que pides no se puede realizar con la SHDO. Quizas tendrias que mirar las exits o badis que hay en la MIRO para personalizar su comportamiento.

      Un saludo.

      • Hernan dijo:

        ok, y hacer q al entrar a la miro, entre primero a la pestaña de detalles? se podra??

    • No creo que puedas hacerlo, Hernan. Ten en cuenta que cuando entras a la miro lo primero es obligatorio introducir una fecha de contabilizacion, fecha de documento y normalmente tambien el documento de referencia. No te puedes saltar ese control para pasar a otra pestaña.

      Con programacion y utilizando un call transaction si se puede hacer, pero no se si tendras un recurso de programador para preparar esto.

      Un saludo.

      Un saludo.

  16. Jaione dijo:

    Hola!!
    He creado la variante de transaccion zme11 para la transaccion me11 indicando la obligatoriedad de la organizacion de compras. Ahora si entran por la me11 no es obligatoria pero si entran por la zme11 si.
    Lo que hice fue quitar acceso a todos los usuarios para la transaccion me11 y darsela para la zme11. El problema es que parece ser que necesito darles autorizacion a la me11 para que puedan ejecutar la zme11.
    ¿Como puedo lograr que la organizacion de compras sea obligatoria al crear registros info?
    Muchisimas gracias.

  17. Raul Torres dijo:

    Roberto, excelente aporte era gusto lo que andaba buscando solo que no logro que funcione esta parametrizacion de la variante, el detalle es que cuando creo la variante para la transaccion FBCJ para desactivar el boton de contabilizar si lo hace lo desactiva pero para las dos transaccion tanto para la standar de sap FBCJ y la que estoy creando ZFBCJ, como ahi que puedo hacer no se si estoy haciendo algo mal, porque ocupo que la standar si tenga ese boton y la transaccion z, no lo tenga porque esta solo va hacer para ciertos usuarios.

    Quedo en espera de tu respuesta.

    y muchas gracias.

  18. Raul Torres dijo:

    Hola,
    Roberto, ya lo solucione estaba creando la variante como “Variante Standar” y deberia de ser “Variantes Transaccion”, ya la verifique y funciona correctamente, un falla del sistema, jejeje.

    Aprovechando Roberto de tu excelente dominio en estos temas, una pregunta se puede mandar llamar a la transaccion z que de dio de alta en la SE93, pero con diferente variante definida en la SHD0, lo que pasa que varios usr la van a utilizar y quiero habilitar un campo para solo visualizar pero que le corresponda a ese usuario que no vea el dato de los demas usr.

    ¿ la pregunta se puede hacer esto ?

    de antemano mil gracias y excelente aporte.

    saludos.

    • Hola Raul:

      Puedes hacer dos variante, una que si tenga el campo modificable y luego otra que no. Para cada una de ellas haces una transacción,y luego por autorizaciones (objeto S_TCODE), asignas la posibilidad de utilizar uno y otra a cada usuario.

      Un saludo.

  19. Guillermo dijo:

    que tal Roberto, no sabrías si hay un truco para que el side scrolling sea mas rápido en las tx

    gracias

  20. oriel dijo:

    estimado necesito ayuda para compensar facturas masivamente en la f-30 solo puedo ir pegando de a pocos nª de documentos
    como puedo hacer para pegar masivamente

  21. Xavier dijo:

    Hola Roberto,
    muchas gracias por el aporte.

    De todas formas tengo una duda, he realizado una variante de transacción ZVA03 que oculta ciertos campos y la he asignado como variante estándar para ciertos usuarios (de esta manera cuando entran en la VA03, se le aplican las restricciones). Hasta aquí todo bien. Sin embargo ahora quisiera ir un poco más allá. Me gustaría saber si puedo hacer incluir condiciones en los campos que quiero ocultar. Por ejemplo, en VA03 he ocultado el precio neto de la pantalla principal; quisiera que este campo sólo se ocultara si la Organización de Ventas (un campo obligado de cabecera del pedido de ventas) es una en concreto. ¿Sabes si esto es posible realizarlo mediante la transacción SHD0?

    Gracias de antemano.

  22. asaavedra dijo:

    Estimado, estoy utilizando la transaccion MIR7 para registro de facturas con orden de compra, al generarse una diferencia entre ambas yo me voy a la viñeta “CUENTA MAYOR” y agrego una cuenta de gasto para reflejar dicha diferencia.
    Me gustaria saber como agregar en esta viñeta y en este registro, la columna “ORDEN”, ya que una cuenta de gasto permite cargar además un centro de costo o una orden, pero en esta transaccion solo me permite ingresar el centro de costo pero no la Orden……favor su ayuda

  23. Buenos dias Roberto…. excelete iniciativa la tuya…. aprovechando queria hacerte una consulta sabes si es factible que en la me21n se restrinjan los proveedores, limitando en la matchcode solo a los proveedores que tienen acceso el usuario (nosotros tenemos varias sociedades, y los usuarios solo tienen asociado una sociedad), pero se nos da el caso que buscan el proveedor, que pudiera existir pero al no estar activo en la sociedad da error y hay que re-procesar la orden de compra.

  24. Ariel dijo:

    Hola Roberto! Cómo estás? Cada tanto entro a este lugar para sacarme algunas dudas, ya que en donde trabajo se implementó SAP. Trabajo en el área de Compras y cuando emitimos Pedidos de Compras, utilizamos la conocida transacción ME21N. El tema es que por default la Clase de Documento es ZAIM y la mayoría de pedidos son de tipo ZANA. Hay alguna manera de configurarlo a nivel usuario para que nos sugiera la clase ZANA por default? Muchas Gracias!

  25. Surama dijo:

    buena noche
    Necesito que en el documento contable me traiga el código del material y cuenta correspondiente operada.
    Actualmente integra por cuenta el total contabilizado cuando los materiales se contabilizan a una misma cuenta y no puedo distinguir el monto o detalles por material.

    como puedo hacer para para poder obtener la información

  26. ANTONIO GUTIERREZ dijo:

    Buenas tardes,
    trabajo para una empresa que utiliza SAP.
    para crear transportes o talones de embarque se usa la transacción VT01N, en la cual si se van a despachar vehículos completos, solo hay que crear una entrega en transporte. El problema viene cuando se hace con empresas paqueteadoras, las cuales por su naturaleza hay que crear varias notas de entrega, lo cual hace la labor tediosa y fastidiosa, ya que pierde uno mucho tiempo.
    Me gustaría saber, si se puede realizar una carga general y uno determinar qué y cuantas notas de entrega generar. Quedo atento a su respuesta.

    Cordialmente,
    AJGA

  27. Paola Quevedo dijo:

    Hola Buenas tardes en la empresa en la que trabajo estamos implementando SAP, he estado utilizando la transaccion FB50 y he guardado de forma preliminar y quisiera pedir de su ayuda ya que no logro contabilizar el documento,

    Favor de su ayuda quedo atenta a su respuesta muchas gracias.

  28. danny martinez dijo:

    como puedo hacer que aparesca la ubicacion de una mercaderia en la transaccion mb53. es posible realizar eso

  29. Alba dijo:

    Buenas Roberto, muchas gracias por tu ayuda, he estado viendo la SHD0 pero no sé si me sirve para lo que quiero: hacer que aparezca directamente la pestaña Resumen de posiciones al entrar en la VA01/ VA02/ VA03, ¿Sabes si esto es posible realizarlo mediante la transacción SHD0? ¿Hay alguna otra forma?

  30. tino devesa rivera dijo:

    Muchas gracias por la información. Tenía una duda importante y me la has solucionado con este blog.

    saludos,

    Florentino Devesa Rivera

  31. Ricardo dijo:

    Hola me gustaría saber si hay otra forma de personalizar una transacción en SAP ya que con ésta transacción no me deja ingresar el Sistema SAP, al pulsar F5, me indica el Sistema SAP tiene el status no modificable.

    • Florentino Devesa Rivera dijo:

      Hola Ricardo…y por qué no te deja ingresar en sap?? ¿qué es lo que hiciste? cuéntame.

      saludos,

      • Ricardo dijo:

        Hola Florentino, lo que pasa es que tengo acceso a la Transacción SHD0, pero el sistema SAP me indica que no se pueden crear variantes para una determinada transacción, en este caso la transacción que deseo personalizar en la VT01N(Creación de Ordenes de Transporte), es el sistema que no me deja crear una variante personalizada ya que indica que los objetos de Repository no pueden modificarse en este sistema,que se puede hacer otra opción en la cual pueda personalizar ésta transacción.

    • Ricardo, eso se realiza en el sistema de desarrollo. En productivo no se puede hacer.

      Un saludo.

  32. Ricardo dijo:

    Me puedes explicar ese detalle amigo.Saludos

  33. Juan dijo:

    Buenas, Se Podrá Imprimir en MB1A Reserva el Texto de Cabecera? Como se hace. Muchas Gracias

  34. Ana dijo:

    Hola , buenos días es posible setear la fecha, que al entrar muestre la fecha actual??

  35. Julio Ibarra dijo:

    Buen dia como puedo hacer para que en MIGO de SAP me pueda grabar referencias que ya haya capturado anteriormente.

  36. Karina dijo:

    Hola
    Necesito ayuda para realizar un pedido en VA01 con muchos ítems, pero que al querer facturarlos, tenga la opción de generar sólo una glosa que diga por ejemplo sistema o KIT de electricidad y no me vuelva a desplegar todos los ítems de la Nota de pedido generada en el VA01.

    • mario dijo:

      hola karina. lo que necesitas es crear una lista de materiales. creas un nuevo material y todos los demas apareceran como subposiciones. luego puedes optar para que se despliegue o no la lista de materiales en la factura. suerte.

  37. Pingback: Truco 85. Variantes de transacción en el registro de facturas de compras (MIRO). – XS Data App

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s