Mostrando entradas con la etiqueta FORMULARIOS. Mostrar todas las entradas
Mostrando entradas con la etiqueta FORMULARIOS. Mostrar todas las entradas

viernes, 26 de septiembre de 2014

Generar Códigos de Barras con SMARTFORMS

En este post os voy a contar como podemos generar códigos de barras utilizando SMARTFORMS. SAP dispone de dos métodos para la impresión de códigos de barras. Mediante el sistema antiguo era necesario disponer de una impresora especial para el tratamiento de los códigos de barras. La “nueva tecnología de códigos de barra” puede utilizarse con impresoras convencionales sin tener que realizar adaptación alguna en el hardware.
Este nuevo método sólo está disponible para SmartForms. SapScript no soporta este tipo de impresión.
Los pasos a seguir son los siguientes:

1. Crear el código de barras en la transacción SE73.

Abrir la transacción SE73 y marcar Cód.barras sistema.
 
 
Aparecerán una lista de diferentes códigos de barras predeterminados. 

 
Para crear un código de barras nuevo habrá que proporcionar una serie de parámetros como la simbología o la orientación. Los detalles sobre estos parámetros pueden obtenerse de la nota OSS 645158.
 
2. Crear un estilo que incluya el código de barras.
 
Desde la transacción SMARTFORMS pueden crearse y modificar estilos marcando la opción Estilos. Se debe crear un formato de caracteres y asignarle el código de barras deseado.
 
 
 
3. Aplicar el estilo al texto del formulario deseado.
 
En el formulario se deberá aplicar el formato de caracteres que hemos definido en el estilo al texto que contenga el código que debe aparecer como código de barras.


 
 
 

miércoles, 3 de septiembre de 2014

SMARTFORMS IV Insertar imágenes

Continuamos con los post dedicados a los SMARTFORMS. En este vamos a ver como podemos insertar imagenes, como por ejemplo puede ser insertar el logo de la compañia dentro del formulario.
Para seguir el ejemplo es necesario haberse leido los post anteriores, pues voy a seguir la estructura del formulario de ejemplo que estamos construyendo.

Lo primero es dar doble clic sobre la Pagina1 y seleccionar la pestaña Fondo; Posteriormente Colocar un nombre que identifique la imagen subida en el servidor (SE78) para nuestro caso se utilizo una imagen de Súper Mario la cual fue subida como Z_MARIO. En el campo Objeto colocar GRAPHICS; En el campo ID colocar BMAP. Seleccionar la primera opción Im. Graf tramas blanco/negro(BMON), cuando la imagen no es a color. Y en los atributos de edición colocar como resolución 075 DPI. En el modo de visualización seleccionar de la lista la opción X como se muestra en la pantalla siguiente.

 
 
El resultado sería el siguiente:

 
Como vemos en la ventana anterior no se cuenta con una cabecera para describir la información. Para poder realizar esto se debe crear un ámbito de cabecera sobre la tabla.
Dar clic derecho sobre el nodo Ámbito cabecera y seleccionar la opción Crear --> Entrada en tabla del menú contextual que aparece.


 
Luego nos aparece la siguiente pantalla en la cual debemos seleccionar el tipo de línea; siguiendo nuestro ejemplo debemos seleccionar de la lista LINEA, automáticamente se visualizaran dos columnas %CELL3, %CELL4. 

 
Una vez las columnas %CELL3, %CELL4 aparecen debemos crearle la cabecera para esas columnas. Este proceso se realiza dando clic derecho sobre cada una de estas columnas y seleccionando del menú contextual la opción Crear --> Texto. 

 
Una vez el paso anterior es realizado, debemos colocar el texto en la pestaña Propiedades generales, en el editor de texto que aparece; para seguir nuestro ejemplo colocamos el texto “Nombre completo” 

 
 
Finalmente guardamos y activamos.

martes, 2 de septiembre de 2014

SMARTFORMS III Creación de ventanas

Seguimos con los post dedicados a los SMARTFORMS. En este vamos a comenzar a crear las diferentes ventamos que va a contener nuestro formulario de ejemplo. La página que se va a crear para nuestro ejemplo va a contener:
  1. Una ventana MAIN que será la que va a contener los datos. 
  2. Una ventana titulo principal del formulario.
  3. Una ventana contador de páginas.
Páginas y Ventanas

Lo primero consiste en definir la página de nuestro formulario. Para nuestro caso se creo una página llamada PAGINA1. Esta pantalla esta divida en tres pestañas:
  • Propiedades Generales. Sobre esta pestaña definimos la página que se mostrará después de la página principal, el contador de páginas y el modo de incrementar sus páginas.
  • Opciones de salida. Sobre esta pestaña definimos los atributos de impresión de la pagina
  • Fondo. Sobre esta pestaña definimos si queremos una imagen para nuestra pagina, por ejemplo el logo de la empresa.

 
Ventana MAIN
 
Los formularios SMARTFORMS por defecto crean una ventana llamada MAIN, la cual la encontramos dando doble clic sobre la carpeta PAGINA1. Sobre la Ventana MAIN vamos a encontrar 3 pestañas:
  • Propiedades generales.
  • Opciones de Salida.
  • Condiciones.
 
 
En la pestaña Propiedades generales especificamos el tipo de ventana que vamos a utilizar. Para nuestro caso seleccionaremos como tipo de ventana M Ventana principal.
 
En la pestaña Opciones de salida, especificamos la posición, el tamaño, y el marco de nuestra ventana.


 
Ventana de Titulo
 
El segundo paso a seguir es la creación de la ventana del titulo de nuestro formulario. Para esto debemos, dar doble clic sobre PAGINA1, y luego dar clic derecho para desplegar un menú contextual en donde se debe seleccionar la opción Crear -->Ventanas 

 
Nos aparece la siguiente ventana en donde debemos darle los atributos a esa ventana. En el campo Ventanas debemos colocarle un nombre para nuestro caso Titulo, en el campo Significado le damos una descripción de lo que es la ventana para nuestro caso colocamos Titulo del Formulario. En tipo de ventana seleccionamos el tipo de ventana T ventana auxiliar. 

 
En la pestaña Opciones de salida de la misma ventana especificamos los atributos de esta ventana tales como su posición y tamaño, marco sombreado, etc. Los valores que se muestran en la figura son los tomados para esta ventana 

 
Hasta este punto hemos creado la ventana más. Aún no hemos creado el texto que va a llevar el titulo para esta ventana. Para crear el texto debemos dar doble clic sobre la ventana que acabamos de crear y luego dar clic derecho para desplegar un menú contextual en donde debemos seleccionar la opción Crear -->Texto 

 
Se nos crea una nueva pantalla con cuatro pestañas.
  • Propiedades Generales. En esta pestaña debemos darle un nombre y una descripción breve. Y en la ventana de texto que aparece en la parte de abajo colocar el Texto que nosotros queremos que salga como titulo en el formulario.
  • Atributos Web
  • Opciones de Salida
  • Condiciones

 
Ventana del contador de páginas

Para crear nuestra ventana que nos enumerara las paginas que contendrá el formulario., debemos dar doble clic sobre Pagina1, luego dar clic derecho sobre esta misma, en la cual se desplegara un menú contextual en donde debemos seleccionar la opción Crear --> Ventanas.

 
Nos aparece una ventana la cual le debemos dar los atributos como se hizo con las ventanas que ya se han creado tales como, un nombre para nuestro caso contador, una descripción breve para nuestro caso contador de paginas, un tipo de ventana que para nuestro caso es t ventana auxiliar, todo esto para la pestaña Propiedades Generales. Para la pestaña Opciones de salida, configuramos el la posición, el tamaño, el marco, etc. Todo esto lo podemos ver en las dos siguiente figuras. 


 
Hasta este punto hemos creado la ventana mas no hemos creado el texto que va a llevar el titulo para esta ventana. Para crear el texto debemos dar doble clic sobre la ventana que acabamos de crear y luego dar clic derecho para desplegar un menú contextual en donde debemos seleccionar la opción Crear --> Texto 

 
Se muestra la siguiente pantalla la cual debemos configurar las pestañas Propiedades generales y Opciones de salida.
En la pestaña Propiedades generales debemos colocar y el texto y el comando necesario para realizar el conteo de páginas cada vez que exista una pagina nueva. Los comandos utilizados fueron:
  • &SFSY-PAGE&
  • &SFSY-FORMPAGES(Z4.0)&
Si deseas ver más comandos de SAPSCRIPT, tendrás que ir a la ultima pagina de este manual.




domingo, 31 de agosto de 2014

SMARTFORMS II Creación del formulario

Seguimos con el segundo capítlo dedicado a los SMARTFORMS. En este caso vamos a crear el formulario que en siguientes post iremos diseñando.

Existen dos funciones necesarias para el funcionamiento de un formulario SmartForm:
  1. SSF_FUNCTION_MODULE_NAME 
  2. Variable
La función “variable” es una función que se genera en el momento de la creación del SmartForm.
Introducimos en la línea de comando la transacción SMARTFORMS y presionar la tecla INTRO.
 
 

 
 En esta pantalla debemos seleccionar la opción Estilos y escoger el estilo creado en el paso anterior llamado WSEDOLLY, luego seleccionar la primera opción Formulario y dar un nombre a nuestro formulario; en este caso se llamará ZFORMULARIO y presionar el botón Crear.
 
 
Aparecerá la siguiente pantalla con dos pestañas:
  • Propiedades Generales. Sobre esta pestaña debemos colocarle una breve descripción sobre nuestro formulario, como además, el autor, el idioma, etc.

  • Opciones de Salida. Sobre esta pestaña definimos el formato de página, los caracteres por pulgadas, líneas por pulgadas, y la salida del formulario.

A partir de aquí comenzaremos a crear las diferentes ventanas del formulario, pero esto lo veremos en el siguiente post.

 

SMARTFORMS I Creación de estilos

Voy a comenzar una serie de post sobre SMARTFORMS. SAP Smart Forms es una herramienta de impresión de formularios. Con esta herramienta podemos crear y modificar formularios mediante la utilización de una herramienta de diseño gráfico.

Cualquiera que se haya tenido que enfrentar a la tarea de construir un formulario en SAP, sabre que es una de las cosas mas tediosas a las que nos podemos enfrentar. Las herramientas que nos ha proporcionado SAP tradicionalmente no son una maravilla precisamente. Pero como la elaboración de formularios es algo bastante habitual, deberemos conocerlo.

La creación de un SmartForm se divide en dos fases:
  1. Creación del programa control.
  2. Creación del SmartForm
Cabe anotar que los SmartForm solo pueden ser utilizados con tablas que se encuentren incluidas en el diccionario de datos, por lo que se hace necesario crear la tabla adecuada a nuestras necesidades.

Creación de estilo

Escribir en la línea de comandos la transacción que se muestra en el recuadro negro

 
Definir un estilo nuevo para ser aplicado en el formulario, lo primero a realizar es colocar un nombre al estilo; en este caso se llamará ZWSEDOLLY (paso 1) y luego presionar el botón Crear (Paso 2)

 
Posteriormente aparecerá la siguiente ventana en donde debemos dar doble clic sobre el nodo Formatos de Párrafo, y sobre este mismo dar clic derecho y seleccionar la opción Crear Nodos como se muestra en la siguiente pantalla.


Aparecerá la siguiente ventana emergente solicitando un nombre para el formato de párrafo; para este ejemplo se creará el formato de párrafo WS.


Aparecerá la siguiente pantalla en donde se debe definir los atributos que va a tener ese párrafo tales como la fuente, el tamaño, los tabuladores, etc.


Sangrias e Interlin

La primera pestaña “Sangrías e Interlin.” esta divida en cuatro secciones:

  1. Alineación --> La alineación se refiere siempre al margen derecho e izquierdo definido para el párrafo.
  2. Sangría
    Margen izquierdo de un párrafo. El margen izquierdo es la distancia entre el margen izquierdo de la ventana y el comienzo de las líneas de texto del párrafo.

    Margen derecho de un párrafo. El margen derecho es la distancia entre el margen derecho de la ventana y el margen derecho del texto con margen justificado.

    Sangría en la primera línea del párrafo. La sangría es definida como la distancia entre el margen izquierdo y el comienzo de la primera línea. La sangría podrá ser indicada como valor positivo o valor negativo.
  3. Interlineado

    Espacio anterior. Es la distancia entre el espacio posterior del párrafo anterior y la primera línea del párrafo actual.

    Interlineado. Es la distancia entre la línea de base inferior de un renglón de texto y la línea de base superior del renglón siguiente.

    Espacio posterior. Es la distancia entre la última línea del párrafo actual y el espacio anterior al párrafo siguiente
Tabuladores

Marcamos la pestaña Tabuladores como se muestra en la imagen

 
Esta pantalla consta de una tabla en donde debemos configurar nuestro tabulador.
  1. Posición. La posición se indica como distancia del margen izquierdo de la ventana. 
  2. Unidad. Unidad de medida para definir la posición de una tabulación. 
  3. Alineación. Define el tipo de alineación que tendrá el párrafo.
Selecciona  la pestaña Font como se muestra en la siguiente imagen


Fuente

Esta pantalla consta de una tabla en donde debemos configurar la fuente que tendrá nuestro párrafo. 
  1. Font. En esta lista seleccionamos la fuente que deseamos utilizar para el párrafo.
  2. Altura de font. Es el tamaño que tendrá la fuente.
  3. Sección de font. En esta lista seleccionamos el tipo de letra existente.
Despues de haber realizado los pasos anteriores debemos dar doble clic en parte izquierda de la pantalla sobre el nodo Datos Cab. Como se muestra en el recuadro negro de la siguiente pantalla.


Para poder seleccionar el párrafo creado en el paso anterior.


Guardamos, activamos y listo.

domingo, 22 de junio de 2014

ADOBE FORMS. Programa de impresión

Es este post vamos a destallar como podemos imprimir un formulario ADOBE en SAP desde código ABAP.

En el anterior post sobre Adobe Forms vimos como diseñarlo, sería conveniente revisar primero este post antes de continuar.

Para poder invocar al formulario desde un programa impresor ABAP se deberán seguir los siguientes pasos:

1) Llenar las tablas, estructuras, etc. que se pasarán cómo parámetros al formulario. En este ejemplo se llenaron la tabla pt_reserv y la estructura pa_header.

2) Abrir el formulario para impresión:

Invocar la siguiente función con los parámetros de impresión, entre ellos: indicar si se desea suprimir el diálogo pop-up de impresión (como en este ejemplo: l_outputparams-nodialog = ‘X’ ) e indicar que el archivo que retorne sea un PDF con el parámetro l_outputparams-getpdf = ‘X’.
DATA: l_outputparams TYPE sfpoutputparams.

* Output parameters and open spool job
l_outputparams-nodialog = ‘X’.
l_outputparams-getpdf = ‘X’.

* Open the form for printing

CALL FUNCTION 'FP_JOB_OPEN'
CHANGING

    ie_outputparams = l_outputparams
EXCEPTIONS
    cancel = 1
    usage_error = 2
    system_error = 3
    internal_error = 4
    OTHERS = 5.

IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

3) Obtener el nombre dinámico del formulario:

CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
EXPORTING
    i_name = 'ZFORM_VH'
IMPORTING
    e_funcname = p_func_name.

4) Llamar al formulario con el nombre obtenido, pasándole los parámetros con los datos ya cargados:

DATA: l_docparams TYPE sfpdocparams,
            l_formoutput TYPE fpformoutput.

l_docparams-langu = 'E'.
l_docparams-fillable = c_on.
 
CALL FUNCTION p_func_name
EXPORTING
   /1bcdwb/docparams = l_docparams
    i_gt_reserv = pt_reserv
    ga_header = pa_header

IMPORTING
    /1bcdwb/formoutput = l_formoutput
EXCEPTIONS
    usage_error = 1
    system_error = 2
    internal_error = 3
    OTHERS = 4.


5) Cerrar el procesamiento del formulario:

CALL FUNCTION 'FP_JOB_CLOSE'
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error = 3
OTHERS = 4.
 
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
 

domingo, 1 de junio de 2014

ADOBE FORMS

La tecnología mas reciente para la creación de formularios en SAP, es la solución SAP Interactive  Forms by Adobe. Esto permite crear formularios interactivos y formularios de impresión basados en Adobe PDF para optimizar los procesos de impresión de las aplicaciones.

El punto interesante en el uso de esta tecnologia es su compatibilidad con las personalidades ABAP y JAVA del SAP Netweaver Application Server. Actualmente, el uso de los formularios de impresión basados en PDF, puede reemplazar a los SmartForms, del lado ABAP, y además, potencias las Web Dynpro, tanto del lado Java como ABAP, usando formularios interactivos.
Para tal efecto esta nueva solución SAP Interactive Forms by Adobe (disponible a partir de SAP Netweaver 04) utiliza el Adobe LiveCycle Designer, que es una herramienta de diseño que permite la creación de formularios utilizando UI Elements, de manera muy intuitiva y facil de utilizar, y está totalmente integrado en el ABAP Workbench y en el Netweaver Developer Studio.

Los formularios de impresión basados en Adobe son parte de SAP Interactive Forms by Adobe y son usados para imprimir en los sistemas SAP.

Un formulario de Abobe PDF consta de tres partes, en las que todas son necesarias para la creacion del mismo:

  • Interfase: Contiene los parametros (tablas, estructuras, etc.) que un formulario podra utilizar. Es independiente del formulario.
  • Contexto: Contiene unicamente los parametros de la interfase que son requeridos en un determinado momento.
  • Layout: Es el diseño del formulario

Ahora voy a explicar los pasos a seguir para crear un formulario con Adobe en SAP:
 
 
 
  1. Acceder a la transacción SFP - Form Builder.
  2. Crear la interfase que utilizará el formulario de la siguiente manera: indicar un nombre y presionar Create, como se ve en la imagen.

  3. Completar la siguiente pantalla con la descripción de la interfase y grabamos.

  4. Una vez creada la interfase, se debe indicar cuales serán los parametros de entrada y salida que manejará la misma. Esta etapa es similar al manejo de parametros de una función. A continuación se muestra la interfase creada anteriormente, con tres parametros de entrada.



    Si se desea modificar la interfase en esta  etapa, los pasos con los siguientes segun corresponda:

    - Hacer doble click sobre  Import y agregar en la parte derecha de la pantalla todos los parametros de entrada que tendrá la interfase.
    - Repetir está operación para los parámetros de Export, las excepciones, datos globales, etc.
    - En Initialization, agregar código ABAP de ser necesario.

    Una vez hechas las modificaciones necesarias se debe grabar y activar.
  5. Una vez grabada la interfase, accedemos de nuevo a la transacción SFP, para crear el formulario. Elegir un nombre para el formulario y presionar Create. 
  6. Completar la descripción del formulario y asociarlo con una interfase. Luego seleccionar Save.

  7. Una vez creado el formulario, se debe asociar un contexto para el mismo. En la solapa Context aparecerán sobre la izquierda todos los parámetros que se declararon en la interfase. De dicha interfase se deberán seleccionar solo los parámetros que se utilizarán en el formulario. Para ello, arrastrar hacia el contexto (parte derecha de la pantalla) los parametros que se deseen, tal como se muestra en la imagén.

  8. Una vez diseñado el contexto del formulario, Grabar y Activar.
  9. Después, diseñar la imagén de salida que tendrá el formulario, a través de la solapa Layout.

    En la solapa Páginas de Trabajo se diseñará el formulario. Las principales herramientas para ellos son las "Paletas", que se pueden ubicar libremente  en la pantalla. De no estar visibles, se las puede agregar desde el menú, yendo a Paletas y seleccionando la deseada:

    - Paleta Jerarquía/Vista de Datos: En la vista de datos aparecerán  todos los parámetros definidos en el contexto y simplemente habrá que arrastrarlos hacia la página de trabajo tal como se muestra en la figura anterior.
    - Paleta Objeto: Se definen algunos atrinbitos del objeto tales como bordes, presentación, si es de solo lectura, obligatorio, etc. Además en dicha paleta se encuentra el enlace del parametro  del contexto, es decir, que parametro del contexto esta a cada campo del formulario.

    - Paleta Fuente/Parrafo: Permite definir la fuente (tipo, color) y el estilo de párrafo (centrado, alineado, etc.) para cada objeto del formulario.

    - Paleta Biblioteca: Contiene todos los elementos (Controles) que se pueden arrastrar al formulario. 
     
     
     

    En el caso de querer mostrar una tabla en el formulario, desde la paleta "Vista de Datos" se debe arrastrar la tabla a la página de trabajo como cualquier otro componente.



    - En la pagian de trabajo seleccionar la tabla e ir a la paleta Objeto completando con los siguientes datos:



    - Por último seleccionar en la página de trabajo el tipo de tabla dentro de la tabla (tener cuidado que la tabla y el tipo de tabla están muy encimados y es dificil distinguirlos) y completar los siguientes datos en la paleta Objeto:



    En la solapa Vista Previa del PDF se puede visualizar el diseño del formulario completo.
  10. Por último, Grabar y Activar.
Es importante tener en cuenta que para poder desplegar el formulario en la vista previa, es necesario la configuración de los Adobe Document Services (ADS) del lado del SAP Netweaver Application Server Java y la conexión desde ABAP con el sistema servidor JAVA que ofrece los Adobe Documents Services.

La configuración de ADS está fuera del alcance de este post, podeis consultar el HELP de SAP y buscar por: Adobe Document Services Configuration Guide.

En el siguiente post veremos como imprimir el formulario a partir de un programa ABAP.

Os dejo también un video donde se ve un ejemplo de uso de un adobe form con web dynpro abap:







Integración SAP

Cuando hablamos de SAP como sistema integrado que cubre toda la casuística de nuestro negocio estamos siendo bastante osados. Casi cualquier...