41

Sap Script

Embed Size (px)

Citation preview

Page 1: Sap Script
Page 2: Sap Script

1.- INTRODUCCION.......................................................................................................21.1.- ¿Qué es un formulario SAPSCRIPT?...................................................................21.2.- Arquitectura de un formulario...............................................................................31.3.- Método de proceso de Formularios.......................................................................4

2.- FORMULARIO: Form Painter....................................................................................72.1.- Cabecera................................................................................................................82.2.- Formato de párrafo................................................................................................92.3.- Formato de carácter.............................................................................................112.4.- Disposición de página.........................................................................................122.5.- Ventanas, páginas y ventana página....................................................................12

3.- FORMULARIO: Editor.............................................................................................144.- IMÁGENES...............................................................................................................195.- PROGRAMA DE CONTROL...................................................................................256.- FORMULARIOS ASIGNADOS A LOS DOCUMENTOS DE SAP.......................277.- OPERACIONES CON FORMULARIO...................................................................30

7.1.- Copiar formulario por mandante.........................................................................307.2.- Exportar un formulario a fichero.........................................................................30

Page 3: Sap Script

1.- INTRODUCCION

1.1.- ¿Qué es un formulario SAPSCRIPT?

Es una plantilla que simplifica el proceso de diseñar documentación anexada a los documentos generados por SAP: suministrando la disposición (por ejemplo, el tamaño de la página) y el contenido (por ejemplo, datos de las ventas para una factura). Se necesitan formularios de SAPSCRIPT para imprimir, distribuir, o mostrar los detalles del documento creado por el sistema.

Ejemplos: Pedidos de compras, Facturas, Albaranes de entrega, emisión de cheques, ….

Page 4: Sap Script

1.2.- Arquitectura de un formulario

Un formulario de SAPSCRIPTS consiste en dos componentes principales:- Disposición: se estructura en páginas, ventanas- Contenido: es la información que aparece en cada ventana

Page 5: Sap Script

1.3.- Método de proceso de Formularios

Para poder extraer en SAP R/3 un formulario, se necesita:- Programa de control: que extrae la información de la base de datos, y realiza

mediante funciones la llamada al formulario- SAPscript runtime environment: es el procesador que interpreta la plantilla de

SAPSCRIPT

Existen dos formas de extracción de formularios:- Formularios asociados a un documento: SAP incluye en cada documento

(pedido de compras, pedidos de ventas, avisos, orden,. …) la gestión de mensajes de formularios. Mediante parametrización se anexará a estos mensajes el programa de control y el formulario. El sistema, ya tiene una serie de programas de control y formularios estándares ya realizados.

Ejemplo: pedido de compras

Page 6: Sap Script

- Formularios no asociados a los documentos, donde se tiene que crear el programa de control y el formulario. Desde el mismo programa de control, se gestiona la salida de los formularios.

Utilizaremos como ejemplo el programa de control RSTXEXP1 con el formulario S_EXAMPLE_1.

Page 7: Sap Script

El formulario es dependiente del mandante y del idioma.

Page 8: Sap Script

2.- FORMULARIO: Form Painter

Trasacción de acceso a Form Painter : Tools SAPscript SE71 -Form.

Para gestionar el SAPSCRIPT tenemos dos herramientas:- Form Painter: donde especificaremos la disposición del formulario- PC Editor: donde colocaremos el contenido de las ventanas mediante código

específico.

Estas dos herramientas tienen dos versiones: la gráfica y la Standard.

Form Painter: Standard Form Painter Gráfico

Para poder activar las versiones gráficas, desde la primera pantalla del Form Painter: en el menú Opciones

Page 9: Sap Script
Page 10: Sap Script

El formulario está formado por diferentes partes:Cabecera: datos de gestión y parametrización básicaFormato de párrafoFormato de caracteresDisposición: ventanas, página, ventana por página

DocumentaciónEditor de Sapscript : elemento de texto

2.1.- Cabecera

En la cabecera, se informa los datos de gestión y las parametrizaciones básicas del formulario.En los datos de gestión, el único dato que se puede informar es la descripción del formulario. El resto de información, hace referencia a:

- mandante en que se ha creado el formulario: es un objeto dependiente de mandante.

- Clave de idioma: el formulario es dependiente de idioma, y cuando se accede al form painter, hay que especificar el nombre del formulario como el idioma de creación (importante para formularios estándar y los mensajes anexos al documento)

Page 11: Sap Script

En la parametrización básica del formulario, hay que especificar:- la página inicial del formulario- formato de página: vertical o apaisado, como las dimensiones del formulario- los valores por defecto del formato de texto

2.2.- Formato de párrafo

Contiene la información de los diferentes formatos de texto, que se pueden utilizar en el contenido de una ventana.No todos los formatos de párrafo, se tienen que utilizar en el formulario. Se utiliza en el editor para cada línea de contenido:

En cada párrafo se tiene que especificar:- las fuentes: tipo de letra y tamaño, características (negrita, cursiva,

subrayado)- tabuladores: la posición de los tabuladores, así como su alineación- márgenes, alineación y espacio entre líneas

Formato de párrafo en el editor

Page 12: Sap Script
Page 13: Sap Script

2.3.- Formato de carácter

Es el formato de texto que se aplica no para todo un párrafo sino para un carácter. En el editor se especificará de la siguiente forma <B>These words will be bold</>.con el párrafo B.

Se especificará el tipo de letra, tamaño y características (negrita, cursiva y subrayado). También se puede especificar si corresponde a CODIGO DE BARRAS.

Page 14: Sap Script

2.4.- Disposición de páginaSi tenemos el form painter gráfico, tendremos esta componente.

En esta sección, se puede:- gestionar las páginas: especificando que página es la siguiente- gestionar las ventanas: para la página declarada en la parte superior, se

seleccionan las ventanas, especificando las dimensiones y la posición en la página

- disposición de las ventanas: permite mover la ventana a la posición deseada

2.5.- Ventanas, páginas y ventana página

En el caso de no tener el form painter gráfico, aparecerán tres nuevas componentes:- página: donde se especifican las páginas declaradas, con los márgenes y la

página siguiente- ventanas: se declaran las ventanas - ventana página: para cáda página, se asocia las ventanas con sus dimensiones

y su posición en la página

Una ventana, puede estar asociada a varias páginas, con diferentes dimensiones y posiciones. Pero con un único ELEMENTO DE TEXTO (contenido de la ventana).

Page 15: Sap Script
Page 16: Sap Script

3.- FORMULARIO: Editor

Para cada ventana, se definen los elementos de texto (contenido del formulario).

Para acceder al editor, se selecciona la ventana a tratar y se pulsa sobre el icono

Cada línea del editor, comenzará con el tipo de formato de línea. Si abrimos la ayuda de búsqueda aparecerán todos los Formatos de Párrafos creados con anterioridad. Este formato define la apariencia de la línea ( márgenes, tipo de letra, tabuladores,…).

Nombre de la ventana que se esta tratando

Tipo de formato de línea

Comandos de control: literales, variables y sentencias

Page 17: Sap Script

Los formatos comunes son los siguientes:- * párrafo por defecto, que es el formato definido en la cabecera del

formulario- / avance de línea- /: línea de comando, sentencias de control (IF, ENDIF, …)- /* comentarios- /E elemento de texto, que son llamados mediante el programa de control

En la líneas de código, se puede introducir:- Literales: no van entre comillas- Variables: se introduce entre &. Ej: &date&- Comandos de control: sentencias del tipo IF, ENDIF- Cajas, líneas y sombreados: BOX, POSITION, SIZE- Imágenes: INCLUDE, BITMAT

1.-Variables – símbolos del sistema &DATE&: Fecha del sistema. Se imprimirá de acuerdo al tipo de SET DATE

MASK definida anteriormente. &DAY& &MONTH& &YEAR& &NAME_OF_DAY& &NAME_OF_MONTH& &TIME& &HOURS& &MINUTES& &SECONDS& &PAGE& &NEXTPAGE& &DEVICE&. Tipo del dispostivo de salida (PRINTER, SCREEN, TELEX, ABAP). &SPACE& Símbolo ‘ ‘. &ULINE& Línea de subrayado &VLINE& Línea vertical &SAPSCRIPT-SUBRC&. Recibe un valore después de ejecutar un comando

INCLUDE. (0 si lo encuentra, 4 si no). &SAPSCRIPT-DRIVER&. Nombre del dispositivo de salida (POST, HPL2, PRES).

Page 18: Sap Script

&SAPSCRIPT-FORMPAGES&. Nº total de páginas del form. &SAPSCRIPT_CONTER_X& (x = 0…9) Representan 10 variables de contador que

se puede utilizar en el texto y formularios para cualquier propósito.

Se puede especificar el formato de estas variables mediante:Desplazamiento &symbol+offset&Longitud de salida &symbol(length)&Omisión del signo &symbol(S)&Sacar el signo por la izquierda &symbol(<)&Sacar el signo por la derecha &symbol(>)&Omitir los ceros iniciales &symbol(Z)&Comprimir los espacios &symbol(C)&Número de decimales &symbol(.2)&Omitir el indicador de miles &symbol(T)&Especificar exponente &symbol(E2)&Alinear a la derecha &symbol(8R)&Rellenar de caracteres &symbol(Ff)&Suprimir valores iniciales &symbol(I)&Ignorar rutinas de converisión &symbol(K)&Cambiar valor de un contador &SAPSCRIPT_COUNTER_X(+)&Textos precedentes &’pre-text’symbol’post-text’&

2.- Variables – símbolos de programasEl programa aceptará las variables, que se hayan definido en el programa de

control. En el caso de que la variable no está declarada, el valor de la variable será inicial.

3.- Comandos de controlLas sentencias que permite Sapscript són las siguientes:

NEW-PAGE. Provoca el salto automático de página PROTECT – ENDPROTECT. Se asegura que el texto introducido entre estos

dos comandos aparezca siempre en una misma página. NEW-WINDOW. Llama automáticamente a la siguiente ventana MAIN

definida en una misma página. DEFINE: Permite crear una constante con un valor dado. SET DATE MASK. Define el formato de los campos fecha.

/: SET DATE MASK = ‘DD/MM/YYYY’ SET TIME MASK. Define el formato de los campos hora.

/: SET TIME MASK = ‘HH:MM’ SET COUNTRY. Define el formato de ciertos campos como el punto para los

millares adaptados a un país específico. SET SIGN. Indica la posición del signo. RESET. Inicializa el contador de un párrafo de numereación. INCLUDE: Inserte el contenido de otro texto en el texto actual.

/: INCLUDE ADRS_FOOTER OBJECT TEXT ID ADRS Donde ADRS_FOOTER es un texto estandar

STYLE: Cambia el contenido del estilo actual del texto. ADDRESS - ENDADDRESS: Formatea una dirección de acuerdo con las

convenciones postales del país definido por el parámetro COUNTRY.

Page 19: Sap Script

TOP – ENDTOP.. Especifica líneas de texto que siempre quieres definir en la parte superior de la ventana MAIN.

BOTTOM – ENDBOTTOM. Especifica líneas de texto que siempre quieres definir en la parte inferior de la ventana MAIN.

IF – ENDIF. Permite especificar que líneas debería imprimirse solamente cuando se cumplan ciertas condiciones.

CASE: Cubre el caso de múltiples comandos IF anidados. PERFORM. Permite llamar una rutina de un programa ABAP

/: PERFORM <form> IN PROGRAM <proa>/: USING &INVAR1&/: USING &INVAR2&/: CHANGING &OUTVAR1&/: CHANGING &OUTVAR2&/: ENDPERFORM

En el programa, se creará un form con las variables: FORM <form> TABLES IN_TAB STRUCTURE ITCSY

OUT_TAB STRUCTURE ITCSY. ….. ENDFORM. Donde la tabla IN_TAB, OUT_TAB, recogen los campos de entrada y de salida.

PRINT-CONTROL: Llama directamente ciertas funciones de la impresora. BOX, POSITION, LINE: Dibuja líneas y cajas./: BOX XPOS '2.5' CM WIDTH 7 CM HEIGHT 10 CM FRAME 12 TW./: BOX XPOS '7.5' CM WIDTH 7 CM HEIGHT 10 CM FRAME 10 TW.

Page 20: Sap Script

SAPscript: Definition of borders, lines, and shading 

Description

In SAPscript Release 3.0A, text commands were introduced for drawing borders, lines, and shading. Parameters can be set for position, size, border thickness, and shading. Within a layout set, individual windows or specific text passages within a window can therefore be output with a border or shading.

The SAP printer drivers based on page printers (HP Laserjet driver, Postscript driver, Kyocera Prescribe driver) convert this command during output. All other line printers or page printers not supported in the standard version ignore these commands.This printout can be displayed in the SAPscript previewer (30A: UNIX Motif , 30B: DOS, NT WINDOWS).

How are the borders defined in the layout set?

Using the following new text commands:

1. /: BOX [XPOS] [YPOS] [WIDTH] [HEIGHT] [FRAME] [INTENSITY] 2. /: POSITION [XORIGIN] [YORIGIN] [WINDOW] [PAGE] 3. /: SIZE [WIDTH] [HEIGHT] [WINDOW] [PAGE] 1. /: BOX [XPOS] [YPOS] [WIDTH] [HEIGHT] [FRAME] [INTENSITY]

EffectDraws a box at this position with the specified size.

AdditionalXPOS, YPOS, WIDTH, HEIGHT and FRAME always require

specifs.a measurement and a unit of measurement to be specified. The additional specification INTENSITY requires the specification of a percent number between 0 and 100.

XPOS, YPOSUpper left corner of box, based on the values from the POSITION command.Default: Values from POSITION command

The following internal calculation rule is used to determine the absolute output position of a box on the page:X(abs) = XORIGIN + XPOSY(abs) = YORIGIN + YPOS

WIDTHWidth of boxDefault: WIDTH value from SIZE command

HEIGHTHeight of boxDefault: HEIGHT value from SIZE command

FRAMEFrame thickness

Page 21: Sap Script

Default: 0 (no frame line)

INTENSITYDensity of the box contents in %Default: 100 (solid black)

MeasurementsDecimal measurements must be enclosed in inverted commas as literals (like ABAP number constants). The period should be used as the decimal point. Also see the following examples.

UnitValid units of measurement are TW (twip), PT (point), IN (inch), MM (millimeter), CM (centimeter), LN (line), CH (character). The following conversions apply:1 TW = 1/20 PT1 PT = 1/72 IN 1 IN = 2.54 CM1 CM = 10 MM1 CH = character height from layout set header (CPI)1 LN = line height from layout set header (LPI)

Examples

/: BOX FRAME 10 TW

Draws a frame around the current window with a frame thickness of 10 TW (= 0.5 PT)

/: BOX INTENSITY 10

Shades the window background with a density (gray shade) of10 %

/: BOX HEIGHT 0 TW FRAME 10 TW

Draws a horizontal line at the upper window border over the entire window width

/: BOX WIDTH 0 TW FRAME 10 TW

Draws a vertical line at the left window border over the entire window height

/: BOX WIDTH '17.5' CM HEIGHT '1' CM FRAME 10 TW INTENSITY 15 /: BOX WIDTH '17.5' CM HEIGHT '13.5' CM FRAME 10 TW /: BOX XPOS '10.0' CM WIDTH 0 TW HEIGHT '13.5' CM FRAME 10 TW /: BOX XPOS '13.5' CM WIDTH 0 TW HEIGHT '13.5' CM FRAME 10 TW

Draws two rectangles and two lines to construct a three-column table with a highlighted heading line

2. /: POSITION [XORIGIN] [YORIGIN] [WINDOW] [PAGE]

EffectDetermines the origin of the coordinate system for the parameters XPOS and YPOS from the BOX command. When the window is output, the POSITION value is set to the upper left corner point of the window (default setting).

Additional

Page 22: Sap Script

If a parameter value does not have a sign, its value is

specifs.regarded as an absolute value, this means the values refer to the upper left corner point of the output page. If a parameter value does have a sign, the new value of this parameter is calculated relative to the old value. If a parameter is missing, the current value of this parameter is not changed.

XORIGIN, YORIGINOrigin of the coordinate system

WINDOWSets the values for left and upper border to the values of the current window (default setting)

PAGESets the values for left and upper border to the values of the current output page (XORIGIN = 0 cm, YORIGIN = 0 cm)

Examples

/: POSITION WINDOW

Sets the coordinate origin to the upper left window corner point

/: POSITION XORIGIN 2 CM YORIGIN '2.5 CM'

Sets the coordinate origin to 2 CM measured from the left page border and 2.5 CM measured from the upper page border

/: POSITION XORIGIN '-1.5' CM YORIGIN -1 CM

Moves the upper left coordinate origin 1.5 cm to the left and 1 cm up

3. /: SIZE [WIDTH] [HEIGHT] [WINDOW] [PAGE]

EffectDetermines the values for the parameters WIDTH and HEIGHT from the BOX command. When a window is output, the SIZE value is set to the corresponding values of this window (default setting).

AdditionalIf a parameter is missing in the command, the current value

specifs.of this parameter is not changed. If a parameter value does not contain a sign, its value is regarded as an absolute value. If a parameter value does contain a sign, the new value of this parameter is calculated relative to the old value.

WIDTH, HEIGHTDimension of the rectangle or line

WINDOWSets the values for width and height to the corresponding values of the current window (default setting)

PAGE

Page 23: Sap Script

Sets the values for width and height to the corresponding values of the current output page

Examples

/: SIZE WINDOW

Sets WIDTH and HEIGHT to the window dimensions

/: SIZE WIDTH '3.5' CM HEIGHT '7.6' CM

Sets WIDTH to 3.5 cm and HEIGHT to 7.6 cm

/: POSITION WINDOW /: POSITION XORIGIN -20 TW YORIGIN -20 TW /: SIZE WIDTH +40 TW HEIGHT +40 TW /: BOX FRAME 10 TW

The current window is framed. The frame projects beyond the beginning of the window so that the first and last text characters are not overwritten.

HEX – ENDHEX. Envía a la impresora órdenes en el lenguaje que utiliza la impresora.

SUMMING. Acumula un valor total para un símbolo de programa.

Las sentencias no finalizan con punto, y el formato de línea es ‘/:’

Textos estándar

El editor puede hacer referencia a un texto estándar ya definido (código independiente de formulario).

/: INCLUDE ADRS_FOOTER OBJECT TEXT ID ADRS

El texto estándar ADRS_FOOTER, se crea desde la misma transacción SE71

Page 24: Sap Script

Donde se accede al editor

Page 25: Sap Script

4.- IMÁGENES

En los formularios, se pueden incorporar imágenes. Para ello se tienen que introducir el fichero dentro del sistema.

Transacción de gestión de imágenes para SAPSCRIPT : SE78 Función Gráfica

Existe dos métodos:- Imagen en el servidor- conversión en texto estándar

4.1.- Imágenes gráfico en tramas

Objeto Gráfico: GRAPHICSID Gráfico: BMAP

Las propiedades del fichero

Page 26: Sap Script

Visualizar el fichero:

Para crear una nueva imagen:

Los formatos permitidos del fichero de la imagen son:*.bmp (Window Bitmap)*.tif, *.tiff (Tagged Image File Format)

En el editor del formulario, se utilizará la sentencia:

/: BITMAP ‘ENJOY’ OBJECT GRAPHICS ID BMAP TYPE BCOL

o utilizando el asistente en el editor

Page 27: Sap Script

Se puede incluir la Resolución (para aumentar o disminuir la imagen)

4.2.- Imágenes texto estándar

Objeto Gráfico: TEXTID Gráfico: ST

Page 28: Sap Script

También se puede acceder a visualizar las propiedades (no son modificables) y la imagen (no todos los textos estándar son del tipo imagen, por lo que no se visualizarán).

Para crear un texto estándar

Page 29: Sap Script

donde se debe incluir:ruta del fichero (formato *tif)BMON o BCOLResolución Nombre del Texto EstándarIdioma (es dependiente de idioma)

En el editor del formulario, se utilizará la sentencia:

/: INCLUDE BIR_LOGO OBJECT TEXT ID ST LANGUAGE ES

o utilizando el asistente en el editor

Page 30: Sap Script
Page 31: Sap Script

5.- PROGRAMA DE CONTROL

Es un programa de SAP, donde se realizan las siguientes funciones:- declaración de variables- búsqueda de datos a la BD- llamada del formulario- control del disposición de salida del formulario: impresión, correo

electrónico, fax, por pantalla, salida inmediata, …- llamada de los diferentes elementos del formularios

Utiliza funciones para realizar todas estas tareas:

- Llamada al formulario, idioma y opciones de salida:

CALL FUNCTION 'OPEN_FORM' EXPORTING DEVICE = 'PRINTER' FORM = 'S_EXAMPLE_1'

OPTIONS = ITCPO DIALOG = 'X' EXCEPTIONS CANCELED = 1 DEVICE = 2 FORM = 3 OPTIONS = 4 UNCLOSED = 5 OTHERS = 6.

La estructura ITCPO, determina las características de salida del formulario:

cantidad de copias, salida inmediata, …El campo DIALOG, implica si aparece la pantalla de diálogo de características

de salida

- Cerrar el formulario

Si se utiliza la función OPEN_FORM, se necesita cerrar el formulario con la función

Page 32: Sap Script

CALL FUNCTION 'CLOSE_FORM' EXCEPTIONS OTHERS = 1.

IF SY-SUBRC <> 0. WRITE 'Error in close_form'(007). EXIT.

ENDIF.

- Empezar y cerrar formulario:

CALL FUNCTION 'START_FORM' EXCEPTIONS OTHERS = 1.

CALL FUNCTION 'END_FORM' EXCEPTIONS OTHERS = 1. IF SY-SUBRC <> 0. WRITE 'Error in end_form'(006). EXIT. ENDIF.

- Llamada a elementos de texto de una ventana

CALL FUNCTION 'WRITE_FORM' EXPORTING ELEMENT = 'HEADING' FUNCTION = 'SET' TYPE = 'TOP' WINDOW = 'MAIN' EXCEPTIONS OTHERS = 1.

CALL FUNCTION 'WRITE_FORM' EXPORTING ELEMENT = 'BOOKING' FUNCTION = 'SET' TYPE = 'BODY' WINDOW = 'MAIN' EXCEPTIONS OTHERS = 1.

Page 33: Sap Script

6.- FORMULARIOS ASIGNADOS A LOS DOCUMENTOS DE SAP

Los documentos de SAP (pedidos de compras, contratos, pedidos de ventas, entrega, avisos, ....) tienen una opción de salida de documento para poderlos gestionar.

Ejemplo: pedido de compras

Los documentos de SAP, tienen asociados MENSAJES de IMPRESIÓN, donde se especifican las características:

- mensaje- método de envio: externo-mail, fax, impresión.- idioma del formulario asociado- forma de gestión: inmediato, o mediante programa de impresión.

Todas estas características, vienen por defecto con el mensaje de impresión. El mensaje de impresión, se debe parametrizar:

Page 34: Sap Script
Page 35: Sap Script

En el mensaje se parametriza el programa de control y el formulario asociado:

Page 36: Sap Script

7.- OPERACIONES CON FORMULARIO

7.1.- Copiar formulario por mandante

Los formularios como son dependientes de mandante, se puede copiar de un mandante a otro:

7.2.- Exportar un formulario a fichero

Se puede exportar el contenido de un formulario a un fichero, para ello hay que utilizar el programa RSTXSCRP