viernes, 14 de diciembre de 2012

GUIXT: Introducción

GUIXT es un software que trabaja sobre el cliente SapGui y está basado en scripts que permite personalizar y mejorar la experiencia del usuario con nuevas funcionalidades ( botones personalizados, imágenes , datos por defecto, campos de entrada y textos…) o la posibilidad de cambiar el aspecto visual del cliente SapGui adaptándolo a las necesidades del usuario.


Cuando solicitamos o ejecutamos una transacción/programa/dynpro en SAP, el servidor de aplicacion envía un objeto al SapGui que lo ejecuta  la información encapsulada en el objeto, interpreta las instrucciones y   muestra por la pantalla al usuario la información. GuiXT consiste fundamentalmente, en que antes de que SapGui muestre la información en la pantalla, interpreta secuencialmente una serie de scripts contenidos en un archivo de texto plano ( .txt ). Estos scripts pueden modificar el contenido del objeto, pueden eliminar elementos de la pantalla, cargar valores por defecto, añadir imágenes, crear matchcodes, crear pulsadores, llamar a BAPIS y un sinfín de pequeñas utilidades que permiten al consultor poder personalizar el aspecto del sistema a cada usuario.

Guixt trabaja sobre el cliente SapGui
Por ejemplo podríamos diseñar un script que ocultase campos que no se utilizan del maestro de materiales.

Cambiando el maestro de materiales (MM03)
GuiXT no modifica nada en el servidor de aplicación. las modificaciones son locales , únicamente en el equipo conectado a Sap y con GuiXT activado, otro equipo sin GuiXT seguiría viendo la MM03 estándar.

El cambio visual que se puede desarrollar con GuiXT no es solo aplicable a transacciones individualmente, es tan flexible que nos permite combinar varias transacciones en una sola o sustituir varios elementos de  una transacción, también puede ejecutar BAPIS desarrolladas en ABAP a través de RFC. 

Por ejemplo, podemos combinar todas las pestañas de la transacción MM01,  con Info records de la transacción ME11. Imaginemos un usuario que para crear un material necesita utilizar 15 campos de las diferentes pestañas de la transacción MM01 y 4 pantallas de la transacción ME11, con GuiXT el usuario será capaz de crear el material, los info records y extender el material a 3 canales de distribución con solo un click sobre un pulsador. También, podemos a la vez, actualizar códigos de descuento que se almacenan en una tabla Z del diccionario, a través de una BAPI programada en ABAP.

MM01 y ME11 recreada con GuiXT



GuiXT ha sido desarrollado por la empresa Synactive, fundada en 1998 en Mannheim, Alemania por el    Dr. Gerhard Rodé, desarrollan componentes de software de gran calidad en conjunto con SAP. Son productos a medida, enfocados a adaptar los interfaces de un sistema SAP, a las necesidades del usuario, pero con una instalación sencilla de sus componentes y sin modificar el sistema SAP. 

Los productos de software que ofrece son los siguientes:


Su software GUIXT ha sido integrado completamente en el sistema SAP ERP (SAPGUI) y  viene ya incluido en el cliente SapGui a partir de la versión 4.6B y es compatible con todas las versiones certificadas por SAP para NETWEAVER


Para comprobar si tenemos las DLLs instaladas, en la esquina superior izquierda del SapGui y sobre el símbolo hacer click con el botón derecho del ratón y seleccionar 'Acerca de Sap Logon' -> DLLs cargadas


Sapgui DLLs cargadas
El archivo ejecutable GUIXT.EXE podemos encontrarlo en la ruta:

  • C:\Archivos de programa\SAP\FrontEnd\SapGui 
Para activar GUIXT, desde pantalla de inicio de SAP, click sobre el icono (  ALT+F12 ).

Se desplegara el menú de 'Ajustar disposición local', seleccionar la opción 'Activar GUIXT', aparecerá en la pantalla una segunda ventana con el título “Synactive GUIXT”.




Fuente:
Synactive Documentation


Entradas siguientes:
GUIXT: Instalación y Configuración (I)
GUIXT: Instalación y Configuración (II)
GUIXT: Los scripts de GuiXT
GUIXT: Personalizar el acceso al sistema y el comando image
GUIXT: Añadir y Modificar campos de texto, pulsadores y radiobuttons
GUIXT: El modulo InputAssistant
GUIXT: Estructuras de control
GUIXT: Teclado numérico táctil para Sap

lunes, 3 de diciembre de 2012

Carga Masiva de anexos en SAP


El código de la anterior entrada esta limitado a un solo archivo que debe ser elegido por el usuario pero ¿ Y si necesitamos cargar 1000 pdf  o 10000...o 100000!!? .

Si utilizamos la clase CL_GOS_DOCUMENT_SERVICE anexaríamos de uno en uno....demasiado tiempo y el programa podria llegar a ralenizar todo el sistema.




Lo primero de todo, es especificar  una relación entre los archivos  y objetos de negocio en sap (solicitudes de compra, pedidos de compra, pedidos de venta documentos contables ) .  Gracias a esta relación podremos determinar a que objeto de negocio anexar cada archivo del directorio. Podemos determinar cualquier relación como por ejemplo que el nombre del archivo coincidirá con el nº de factura que referencia el documento contable en SAP.

Por ejemplo, la Factura 0000157910 es el archivo  0000157910.PDF y el archivo 0000157910.PDF tiene que adjuntarse al documento contable que tenga la factura  0000157910 como documento de referencia (campo BKPF-XBLNR).

Como caso de prueba, tenemos un directorio "fuente" con 6 facturas en PDF,

Facturas en PDF y los doc. contables a los que deben ser adjuntadas

El nombre del archivo es el nº de factura y coincide con el campo BKPF-XBLNR del doc. contable.

El programa seguirá la siguiente lógica:
  1. Lee los archivos del directorio "fuente"
  2. Busca los doc. contables con BKPF-XBLNR igual al nombre del archivo
  3. Si existe, anexa el archivo al doc. contable y mueve el archivo al directorio "procesados".
  4. Si no existe, deja el archivo en el directorio fuente
Podeis encontrar el código del programa en el repositorio git del blog:
Para organizar mejor el código he dividido el programa en 3 archivos:
  • ZZ_ATTA_MULTIPLES_PDF: programa pincipal.
  • ZZ_ATTA_MULTIPLES_PDF_TOP: variables globales.
  • ZZ_ATTA_MULTIPLES_PDF_F01: Subrutinas.

Notas OSS de interes:
927407 - Determining the content of GOS and SAPoffice documents
904711 - SAPoffice: Where are documents physically stored?
916512 - SAPoffice: Directory for upload/download/display
448074 - Calling generic object services from the dialog

Entradas Anteriores: