En muchas ocasiones, cuando queremos imprimir cierta información como listados, informes o formularios, recurrimos a las órdenes SPOOL de SAP.

Dependiendo del tipo de información o más bien de su formato, se generan distintos tipos de órdenes que podemos tratar desde la transacción SP01.

SAP órdenes SPOOL, como agruparlas

En este artículo vamos a ver cómo agrupar en una sola orden, el contenido de otras ya existentes.

Órdenes de tipo ADSP en SAP

En nuestro caso, trabajaremos con órdenes de tipo ADSP, es decir PDF. Con esto, obtendremos una nueva orden SAP con tantas partes como órdenes se hayan agrupado.

Para crear la nueva orden, utilizaremos la función ADS_SR_OPEN, pasándole como parámetro obligatorio el tipo de orden que queremos crear (LIST, OTF, SMART, ADSP…).

Podemos indicar también distintas propiedades de la orden de SAP:

  • Dispositivo de salida,
  • El número de copias
  • Salida inmediata
  • Borrar tras imprimir

Utilizaremos también la función ADS_GET_PATH para obtener la ruta del servidor donde almacenaremos el contenido de esta nueva orden de spool creada.

SAP órdenes SPOOL, ruta

Pasamos ahora a tratar todas aquellas órdenes que queramos agrupar. Por cada una de ellas, seguiremos el siguiente proceso:

ADS_SR_READ_CONTENT_DIR

Obtenemos un listado con todas las partes que conforman el contenido de la orden. Por ejemplo, si el número de la orden es el 7974, la función nos devolverá una tabla interna con las siguientes entradas:

SAP órdenes SPOOL, listado

TRINT_FILE_GET_EXTENSION y ADS_SR_READ_CONTENT

Obtenemos la extensión y el contenido de cada una de las partes obtenidas anteriormente.

El siguiente paso será conformar el nombre de cada una de dichas partes para que puedan posteriormente formar parte de la nueva orden creada. Por ejemplo, si el número de la nueva orden es el 7979, las partes obtenidas de la orden 7974 deberán quedar de la siguiente forma:

  • SPOOL0000007979_00001.cfg
  • SPOOL0000007979_00001.pdf
  • SPOOL0000007979_00001.xfd

Por cada orden a agrupar, incrementaremos el número de la parte, es decir:

  • SPOOL0000007979_00002.cfg
  • SPOOL0000007979_00002.pdf
  • SPOOL0000007979_00002.xfd

OPEN DATASET, TRANSFER y CLOSE DATASET

Una vez conformado el nombre de cada parte, las iremos dejando junto con su contenido en la ruta del servidor obtenida anteriormente.

ADS_SR_CONFIRM_MULT

Cuando hayamos tratado todas las partes de la orden, escribiremos en la nueva orden aquellas partes que queramos que se visualicen desde la SP01. También podemos utilizar la función ADS_SR_CONFIRM e ir escribiéndolas una a una.

ADS_SR_CLOS

Por último y una vez tratada cada orden que queramos agrupar, cerraremos la nueva orden creada.

SAP órdenes SPOOL

A parte de las ya citadas, podemos utilizar también las siguientes funciones:

GET_PRINT_PARAMETERS

Obtiene, entre otros, el nombre del dispositivo de salida asignado al usuario que ejecuta el programa. Este dato se utiliza para crear la nueva orden en la función ADS_SR_OPEN.

FPCOMP_CREATE_PDF_FROM_SPOOL

Pasándole como parámetros el número y parte de una orden, devuelve las propiedades (contenido y número de páginas) de dicha parte. Podemos utilizar el número de páginas en la función ADS_SR_CONFIRM.

Tras este artículo ya tenemos los conocimientos necesarios para agrupar las órdenes SPOOL de SAP.