lunes, 16 de diciembre de 2013

Definir una impresora PDF en Sap

Es un tema muy común que piden muchos clientes, la posibilidad de generar un documento PDF en vez de imprimir el documento o listado en papel a través de un impresora.

Primero,  en el equipo local debe estar configurada una impreso tipo Generic/ Text Only y que como formato de salida tenga FILE:

Ir a  Inicio -> Panel de control -> Dispositivos e Impresoras.

Seleccionamos Agregar una impresora -> Agregar una impresora local
Cuando nos pida elegir un puerto para la impresora -> FILE


Puerto FILE: la salida sera un archivo

Como controlador o driver, selecciona Generic -> Generic text only.

Dejar el nombre que nos da por defecto para la impresora o escribir uno nuevo y siguiente.
Para finalizar, como se ejecutara locamente, yo le doy no compartir y desmarco impresora predeterminada


Controlador Generic/Text Only

Para definir una impresora PDF en Sap, nos vamos a la transacción SPAD y  pulsar el botón Visual del campo Dispositivos salida de la pestaña Dispos.y servidor.


Definir nueva impresora en el sistema Sap
En pantalla aparece una lista de todos los dispositivos de impresión existente.
Nos posicionamos sobre cualquiera de ellos y pulsamos el lápiz en la barra de herramientas

Modificar Dispositivo de salida

Aparecerá el icono CREAR en la barra de herramientas, pulsa sobre el .

Crear nuevo dispositivo de salida

Pestaña Atrib.dispos. -> Dispositivo de salida:  nombre del dispistivo de salida en sap, por ejemplo PDF_PRUEBA.
Pestaña Atrib.dispos. -> Nombre breve: PDF1
Pestaña Atrib.dispos. -> Tipo de dispositivo:  PDF1 ISO Latin-1



En la pestaña Acoplam. SPOOL host para Forma acopl.a SPOOL host -> seleccionamos G: Impresión front-end c/tecnologia control.

En Impresora Host escribimos cualquier nombre y grabamos el nuevo dispositivo de salida

Para probarlo, por ejemplo, podemos usar la transacción SM04 he intentar imprimir en pdf la lista de usuarios conectados al sistema Sap. 

SM04 y si impresión en PDF

Entradas relacionadas
Definir una nueva impresora en SAP
Upload drivers de impresora a SAP

jueves, 12 de diciembre de 2013

Definir una nueva impresora en SAP

Para definir nuevas impresoras en SAP , nos vamos a la transacción SPAD  , pulsar el botón Visual del campo Dispositivos salida de la pestaña Dispos.y servidor.


Definir nueva impresora en el sistema Sap
En pantalla aparece una lista de todos los dispositivos de impresión existente.
Nos posicionamos sobre cualquiera de ellos y pulsamos el lápiz en la barra de herramientas

Modificar Dispositivo de salida

Aparecerá el icono CREAR en la barra de herramientas, pulsa sobre el .

Crear nuevo dispositivo de salida

En la siguiente pantalla, vamos primero a la pestaña Atrib.dispos.

Dispositivo salida: Asignamos un nombre para Sap a la impresora.
Tipo de dispositivo, si es impresora láser podéis usar HPLJ4 o cualquiera que indique el fabricante que sea compatible con Sap.

Pestaña Atrib.dispos

En la Pestaña Acoplam.SPOOL host -> Forma acopl.a SPOOL host , como se va ha comunicar Sap con la impresora y como le va ha transmitir los datos:
  • F:  Si queremos imprimir a través de la impresora predeterminada en windows en el equipo local
  • C: Cuando se realiza a través de un servidor de impresión.
  • L:  Si el servidor de impresión se ejecuta sobre un sistema Unix
  • G:  Cuando la salida no es una impresora sino un programa externo ( ej: PDF )
Existen mas formas , pero yo soló he necesitado usar estas 4. Aquí esta la lista completa.

Impresora Host: nombre REAL o ID de la impresora configurada en el servidor de impresión.
Sí hemos seleccionado F como Forma de acoplamiento sera __DEFAULT.

Acoplam.SPOOL host


Volvemos a la primera pestaña y ahora podemos introducir el servidor de impresión (si hemos seleccionado una forma de acoplamiento diferente de F ó G). Si no sabéis cual es podéis usar la ayuda búsqueda.

Ayuda búsqueda para el servidor de impresión

Por ultimo , grabar todo y probar a imprimir algún formulario o  lista para comprobar que todo esta bien

Seleccionando el nuevo disp. de salida para imprimir

Fuente: SAP Printing Guide

martes, 10 de diciembre de 2013

Upload drivers de impresora a SAP

Lo primero, conseguir los drivers de la impresora. Lo mas seguro es que podamos descargarlos en la pagina oficial del fabricante de la impresora o bien desde el Sap Service Marketplace. La gran mayoría de los fabricantes como HP, Cannon, Zebra o  Epson tienen drivers para sap. 

Podemos consultar las siguientes  notas de Sap, para encontrar los link de los drivers de los principales fabricantes de impresoras y comprobar si sin compatibles con Sap:
Cuando me ha tocado trabajar con impresoras de etiquetas, estos link me han sido muy utilies:
Si  vuestra impresora no esta soportada, solo os queda buscar un driver genérico.

Una vez tenemos el driver de la impresora, Ejecutar el programa RSTXSCRP desde la transacción SE38.

Rellenar los siguientes campos de la pantalla de selección: 
  1. Marcar Tipo dispositivo.
  2. En Nombre del objeto introducir un nombre que empeze con Z por el cual se identifica los drivers en SAP.
  3. Modo IMPORT
  4. En Fichero aquí va la ruta al fichero que contiene los driver de la impresora.
Por ejemplo, en este caso voy a hacer un upload de los drivers para una HP laserjet 4300:

Upload driver para HP LaserJet 4300
Ejecutar ( F8 ) y ya podemos seleccionar los nuevos drivers desde la SPAD:

Driver ya esta cargado en Sap


jueves, 5 de diciembre de 2013

GUIXT: Teclado numérico táctil para Sap

Este es uno de los ejemplos de Synactive para GuiXT que más me gusta y que demuestra lo que se puede llegar ha hacer en Sap con GuiXT. 

Es un teclado numérico para pantallas táctiles con el que el usuario puede introducir el código de material y acceder a la información del mismo en el maestro de materiales del sistema Sap.


Por un lado, tenemos el GuiXT scripts que modifica la pantalla y añade los botones del teclado numérico.

Por otro, el archivo Digit.txt contiene el inputscript que va concatenando las pulsaciones del usuario en el teclado numérico.

Empezemos por las imagenes que harán la función de botones del panel numérico y pantalla donde se mostrara el codigo introducido.D
Descargar las siguientes imágenes ( boton derecho -> Guardar imagen como... ) y guardarlas en el mismo directorio donde guardáis los scripts de GuiXT.


Pantalla y pulsador del teclado numérico

Para crear el GuiXT script:

  1.  Acceder a la transacción MM03 y cambiamos a la ventana de GuiXT.
  2.  Pulsar el boton SCRIPT en la barra de herramienta de la venta de GuiXT.
  3.  Copiamos el siguiente código y grabamos
  4. GuiXT Script Editor

if Q[Transaction=MM03] pos F[Material] (8,52) // Display numeric keypad Offset (1,1) Image (0,0) "numbutton.gif" Input="U[digit]:7;OK:process=digit.txt" -plain textstring="7" textheight=80 -textcenter Image (0,15) "numbutton.gif" Input="U[digit]:8;OK:process=digit.txt" -plain textstring="8" textheight=80 -textcenter Image (0,30) "numbutton.gif" Input="U[digit]:9;OK:process=digit.txt" -plain textstring="9" textheight=80 -textcenter Image (5,0) "numbutton.gif" Input="U[digit]:4;OK:process=digit.txt" -plain textstring="4" textheight=80 -textcenter Image (5,15) "numbutton.gif" Input="U[digit]:5;OK:process=digit.txt" -plain textstring="5" textheight=80 -textcenter Image (5,30) "numbutton.gif" Input="U[digit]:6;OK:process=digit.txt" -plain textstring="6" textheight=80 -textcenter Image (10,0) "numbutton.gif" Input="U[digit]:1;OK:process=digit.txt" -plain textstring="1" textheight=80 -textcenter Image (10,15) "numbutton.gif" Input="U[digit]:2;OK:process=digit.txt" -plain textstring="2" textheight=80 -textcenter Image (10,30) "numbutton.gif" Input="U[digit]:3;OK:process=digit.txt" -plain textstring="3" textheight=80 -textcenter Image (15,0) "numbutton.gif" Input="U[digit]:0;OK:process=digit.txt" -plain textstring="0" textheight=80 -textcenter Image (15,15) "numbutton.gif" Input="U[digit]:back;OK:process=digit.txt" -plain textstring="Back" textheight=40 -textcenter Image (15,30) "numbutton.gif" Input="U[digit]:clear;OK:process=digit.txt" -plain textstring="Clear" textheight=40 -textcenter // Display material number Image (1,50) (6,130) "whitebox.gif" -plain textstring="&F[Material]" textfont="Arial" textheight="100" endif


Lo mas importante son los parámetros Input="U[digit]:1;OK:process=digit.txt" y textstring="0".

En anteriores entradas se explico que el  parámetro Input permite volver interactiva la imagen y que al hacer clic sobre ella se ejecuten una serie de acciones. Estas acciones pueden ir desde guardar algún dato en una variable a ejecutar un inputscript o llamar a una transacción del sistemas Sap.

Cada acción que deseamos ejecutar va separada por ';' .
OK representa la acción de presionar la tecla Intro.

En este ejemplo estamos programando, que cuando el usuario haga clic sobre la imagen, se realicien las siguientes acciones:

  1. Asignar el dato '1' a la variable U[digit] .  U[digit]:1
  2. Intro                                                        OK
  3. Ejecutar el InputScript digit.txt                 process=digit.txt
El parámetro textstring pinta sobre la imagen un texto, puede ser un texto fijo como los números del teclado o estan contenido en una variable como textstring="&F[Material]" , en este caso F[Material] es una variable donde vamos concatenando los números que selecciona el usuario.

Para crear el Inputscript:

  1. Pulsar el botón INPUTSCRIPT en la la barra de herramienta de la venta de GuiXT.
  2. Copia el siguiente código.
  3. Guarda el inputscript como digit.txt en el mismo directorio que el guixt script.

InputScript editor
Parameter digit Set V[matnr] "&F[Material]" if U[digit=clear] Set V[matnr] "" goto return endif if U[digit=back] Set V[k] "&V[matnr]" -stringlength if V[k>0] Set V[k] &V[k] - 1 Set V[matnr] "&V[matnr](1-&V[k])" endif goto return endif Set V[matnr] "&V[matnr]&U[digit]" Set V[matnr] "&V[matnr](1-8)" label return Set F[Material] "&V[matnr]" Return

Es como una subrutina. Recibe un parámetro digit, comprueba su valor y actua en consecuencia

Cuando llamamos al inputscripts, damos valor a parámetro digit  y creamos la variable matnr con el valor actual del campo de pantalla Material de la transacción MM03. Después actuamos dependiendo del valor que nos han pasado en el parámetro digit.  Si es un numero concatenamos el valor actual  y el nuevo número, limitamos a 8 digitos y devolvemos el dato al elemento de la pantalla.

La instrucción goto return rompe la ejecución des inputscript y salta a la etiqueta return.

Recordemos:
U[...]  es un parámetro.
V[...]  es una variable
F[.....] es un elemento de pantalla de sap


Ya solo queda acceder a la transacción MM03 y ver el resultado.
Recordar activar el modulo InputAssistant o no funcionara el inputscript.


Fuente:
Display a numeric keypad ( Ir a Tips&Trick -> nº 26 Display a numeric keypad ).

Entradas Anteriores:

martes, 3 de diciembre de 2013

Descargar SAP GUI y sus parches desde el Sap Support Portal


Ir  la pagina de Sap Service Marketplace. Click en Sap Support Portal.

Sap Support Portal

Necesitareis un usuario valido  para acceder al  Sap Support Portal.
Una vez dentro Software Downloads-> Installations and Upgrades ->A -Z Index -> "G"
Download SapGui 
Click en "SAP GUI FOR WINDOWS" y otra vez en "SAP GUI FOR WINDOWS 7.30 CORE".

SAP GUI FOR WINDOWS

SAP GUI FOR WINDOWS 7.30 CORE

Ahora , a la derecha, click en Support Packages and Patches y a la izquierda win32

Support Packages and Patches

Columna Location on SAP Service Marketplace, el Componente SAP GUI for Windows 7.30 CORE, click en el link.

Ya casi estamos....


por fin...los links de descarga

Teneis que descargar e instalar el SAP GUI for windows  7.30 Patch level  0 .
Después descargar el ultimo parche ( o aquel nivel de parche que necesiteis ) e instalarlo.


SAPRUPGM: Determinar automáticamente modos de ajuste en la SPDD/SPAU


SAPRUPGM es un programa que se ejecuta durante la fase RUN_SPAU_? de un upgrade o parcheado, su función es determinar automáticamente el tipo de ajuste que debe aplicarse a los objetos del repositorio ( rapports, grupos de funciones, códigos de transacción,...) modificados durante el upgrade o parcheado.

Cuando se realiza un upgrade o parcheado, SAP detecta los programas standard que han sido modificados ya sea  por la aplicación de notas o por modificaciones directas sobre el código standard. Por ejemplo, analiza las notas aplicadas en el sistema SAP y determina cuales han quedado obsoletas o requieren nuevos ajustes.

Cada registro en la SPAU tiene un icono que representa el modo de ajuste requerido:

 No existen conflictos entre las versiones, SAP puede automaticamente trasportar los cambios a la nueva versión.
 Existe algún tipo de conflicto entre las versiones, el usuario debe decidir que modificaciones trasportar.
Existen conflictos entre las versiones, el objeto debe ser tratado con al transacción correspondiente para crear/modificar el objeto o usar el gestor de versiones para comparar los cambios que se han realizado en ele objeto.
aparece sobre todo en la categoría de Notas de corrección, significa que la nta a quedado obsoleta.
       Para este objeto, No ha sido posible determinar el tipo de ajuste.
      Es necesario confirmar los ajustes realizados sobre el objeto en el log de ajustes, esto responde a que el usuario que realiza los ajustes no es el mismo que creo o modifico el objeto del repositorio

Si SAPRUPGM no ha sido capaz de determinar el modo de tratamiento del objeto, en la transacción SPAU, el objeto aparecerá  en un modo de ajuste desconocido junto con  un icono con el símbolo de interrogación "?". Normalmente este caso se da sobre todo con notas de corrección.

Objetos sin tratamiento determinado

Al hacer doble clic sobre el símbolo de interrogación, automáticamente el sistema vuelve a ejecutar  en modo job el  programa SAPRUPGM.

En mi caso, cuando tengo que procesar una SPDD/SPAU, ejecuto el programa directamente desde la transacción SE38 y desmarco la opción salida del log a fichero, así obtengo un log con el resultado del análisis.

Pantalla de selección - SAPRUPGM
Log del proceso de determinación de tratamiento
Si aun así , sigue siendo  imposible determinar el modo de ajuste de la nota, intenta volver a descargar la nota a través de la transacción SNOTE, si tu conexión al SAPOSS no funciona, habla con un consultor e sistema para que la configure. Después de descargar la nota, espero unos minutos y ejecuto otra vez el programa. 

error conexión SAPOSS

Si aun así continua, revisa  la nota y comprueba que esta correctamente implementada. Algunas notas incluyen cambios que hay que realizar manualmente.

Un par de casos que no quiero olvidar porque seguro que volverán a pasarme:

Corrección de notas : OCS bloqueado por el usuario DDIC con la transacción SPAM 

Al intentar ajustar o determinar el tipo de ajuste de una nota, salta el siguiente mensaje:

        (OCS bloqueado por el usuario DDIC con la transacción SPAM ) Nº mensaje: TN401

Me ha saltado ya varias veces, siempre al tratar de ajustar notas en la SPDD.
No trateis en la SPDD las notas que den este mensaje y tratarlas posteriormente durante la SPAU.
En la SPAU desaparece este bloqueo sobre las notas.


Corrección de notas :  Datos Inconsistentes

Tenia una nota con la marca de interrogación y el programa SAPRUPGM daba el siguiente log:



¿Datos inconsistentes? Perdí bastante tiempo, porque no se me ocurrió mirar el log de la nota.
Transacción SNOTE, hacer doble click sobre el numero de la nota, dentro del Note Assistant puedes ver un log de la implementación de la nota.

Note Assistant
Daba siempre el mismo mensaje:
  •  La parametrización del sistema no permite modificar el objeto NOTE 0000888889
Hable con mi encargado de sistemas, me abrió completamente el sistema y consegui ajustar la nota. 

Espero no olvidar este caso para la próxima vez....