Reglas de asignación de las impresoras al lanzamiento de un informe 

Introduction

En el momento de lanzar u informe, se puede propner un valor por defecto de forma automática en función del contexto para indicar el destino de la edición (impresora, fichero, mensaje...) Este valor por defecto puede proceder del usuario, del informe, de la planta... con un conjunto de reglas de prioridad sofisticadas. Este documento describe las reglas y las prioridades de asignación de las impresoras en función del contexto.

Pre-requisitos

Puede haber distintos parámetros descritos para gestionar las asignaciones de impresoras:

*    La tabla de destinatinos permite definir las impresoras disponibles para los usuarios, así como el tipo de salida asociada. Hay que tener en cuenta que el tipo de salida es el menú local numéro 22, que puede parametrizarse.

*    La parametrización de los usuarios que permite definir una tabla de destinos por defecto y por tipo, bien de forma directa o haciendo referencia a otro usuario.

*    El diccionario de informes los define con un destino por defecto, un tipo de salida que servirá de filtro (excepto si se trata del primer valor que es maestro), y una fórmula que permite expresar el valor del complemento descrito a continuación.

*    La tabla de destinos por usuario, que define las reglas más concretas de asignación de destino (por cada tres usuarios, complemento, informe, etc).

Reglas de asignación detalladas

Se realiza una primera observación. Antes de asignar destinos, hay dos casos particulares que permiten definir una impresora de forma específica:

* El punto de entrada DEFIMP se utiliza por un desarrollo específico; el código activado puede imponer un destino a partir de reglas particulares. Este punto de entrada, prioritario, se activa al finalizar el algoritmo ( se sabe qué impresora habría escogido por defecto aplicando todas las reglas).

* el programa activado (si la impresión se activa por un tratamiento) puede también imponer el destino.

Con la excepción de estos dos casos particulares, las reglas de asignación se definen a continuación. El algoritmo comienza determinando los tres valores siguientes:

*  En el diccionario de informes se define un Tipo de salida. El algoritmo que se determina a continuación buscará un destino del tipo que corresponda si el tipo solicitado en el informe no es el primero de la lista (dicho de otro modo, si el destino encontrado no es el correcto, la búsqueda continúa). Es necesario también que el destino esté activo y que el usuario esté habilitado para usarlo; es el acceso en ejecución al código de acceso asociado al destino. El el destino no lo está, la búsqueda continuará.

*  Si la zona Formula complemento se indica en el diccionario de informes, se evalúa el resultado de la fórmula, que se denomina complemento. El complemento puede, por ejemplo, ser un código de planta, si el informe se lanza con los datos de una planta. De esto modo, el destino empleado podrá depender de la planta a la que afecta la edición. Si la zona Formula complemento no está indicada, se considera que el valor complemento está vacío. En la fórmula de cálculo empleada, se pueden incluir: constantes, funciones, el valor de un parámetro del informe por la sintaxis PARAM (NOMPARAM), siendo NOMPARAM el código del parámetro tal y como se define en el diccionario del informe, y las variables que están indicadas en el contexto -por ejemplo, la planta por defecto de un usuario para un módulo dado, que puede encontrarse en el cuadro GFCYDEF...

* De este modo, a partir de ahí se utiliza como parámetro de determinación el código de usuario conectado, excepto si, en su ficha, existe otro código de usuario en la zonaDestinos usuario (esto permite definir que un usuario tiene las mismas reglas de asignación que otro usuario modelo). Puede haber falta de definición en el código de usuario, pero en caso de haber un bucle en la lista, el código que se toma es el del usuario de inicio.

Los tres valores (tipo de salida buscada, valor del código complemento, código usuario) están eterminados, y la regla es la siguiente:

* es relativa a la tabla de los destinos por usuario. Si existe una línea en esta tabla para el informe actual, el código de usuario afectado y el valor de complemento calculado anteriormente, se utilizará el destino definido en la línea.

*  Si no se encuentra ningún valor para el trío y si el valor del complemento evaluado no está vacío, la referencia es también esta misma tabla buscando una línea con el código de usuario y el código de estado idóneo, y con la zona complementaria vacía (si la zona complemento estuviera vacía, se habría realizado la búsqueda en la etapa anterior). Si existe una línea, se toma el destino correspondiente.

* Por defecto se toma el destino definido en la ficha del informe (si existe).

* Si el destino sigue sin encontrarse, se toma el destino del tipo correcto definido en la ficha del usuario (si existe).

*  Si el destino sigue sin encontrarse, se busca el destino del tipo correcto asociado a la planta por defecto del usuario (parámetros PRT1, PRT2, PRT3, PRT4). La planta por defecto del usuario depende a la vez de su perfil de función y del módulo al que pertenece el informe. Esta búsqueda se realiza con las reglas habituales y la jerarquía planta/sociedad/dossier para los valores de parámetros.

* Por defecto, si se realiza un lanzamiento en batch, se escoge el primer destino del tipo correcto. Si se está en edición directa desde un puesto de trabajo, se propondrá el primer destino de tipo Previsualización

Si el destino ha sido definido por el usuario en la tabla de destino o en el diccionario de informes, tendrá una casilla Obligatorio asociada. Si ésta no está marcada, el destino determinado no será obligatorio y el usuario podrá cambiar de destino o redefinirlo escogiendo destino/servidor/nombre de impresora/características. Un destino determinado a partir de otras reglas, no se considera nunca como obligatorio.

Tablas utilizadas

Las tablas empleadas sonAPRINTER [AIM] (tabla de destinos), APRINTDES [AID] (tabla de destinos, complementos), APRTAUS [AIA] (tabla que asocia un destino a un trío [ código de informe, código de usuario, código complemento] ).