Cómo parametrizar los valores de archivos máster y de acceso utilizando variables

Cómo:

Referencia:

Puede definir variables globales en un archivo máster, y usarlas para parametrizar ciertos atributos del archivo máster y el archivo de acceso correspondiente. Por ejemplo, puede parametrizar el atributo de conexión en el archivo de acceso, con una variable que puede definir el archivo máster, y luego especificar el nombre de la conexión en hora de ejecución.


Principio de página

x
Sintaxis: Cómo Crear una variable de archivo máster

Añada definiciones de variable después de la declaración FILE, en el archivo máster:

VARIABLE NAME=[&&]var, USAGE=Aln, [DEFAULT=defvalue,][QUOTED={OFF|ON},] $

donde:

[&&]var

Es el nombre que está asignando a la variable global. Al hacer referencia a la variable en el archivo máster o de acceso, debe añadir dos ampersands al principio del nombre. Sin embargo, los ampersands son opcionales al definir la variable.

ln

Es la longitud máxima del valor de la variable.

defvalue

Es el valor predeterminado de la variable. Si no se establece ningún valor en hora de ejecución, se emplea este valor.

QUOTED = {OFF|ON}

ON añade comillas simples alrededor de la cadena asignada de la variable. La comilla simple de la cadena queda convertida en dos comillas simples. OFF es el valor predeterminado.


Principio de página

x
Referencia: Soporte de variables en atributos de archivo máster o de acceso

En el archivo máster, puede parametrizar los atributos siguientes con variables: POSITION, OCCURS, REMARKS, DESCRIPTION, TITLE, HELPMESSAGE.

En el archivo de acceso, puede parametrizar los atributos siguientes con variables: CONNECTION, TABLENAME, START, CHKPT_SAVE, CHKPT_FILE, POLLING, TIMEOUT, MAXLUWS, ACTION, MSGLIMIT, DIRECTORY, NAME, EXTENSION, DATA_ORIGIN, MAXFILES, MAXRECS, PICKUP, TRIGGER, DISCARD, ARCHIVE.

Nota: Puede concatenar varias variables, para crear un valor de atributo.



Ejemplo: Cómo parametrizar atributos en archivos máster o de acceso

La siguiente solicitud crea una tabla Oracle llamada ORAEMP, a partir del origen de datos FOCUS llamado EMPLOYEE:

TABLE FILE EMPLOYEE
SUM LAST_NAME FIRST_NAME CURR_SAL CURR_JOBCODE DEPARTMENT
BY EMP_ID
ON TABLE HOLD AS ORAEMP FORMAT SQLORA
END

A continuación le mostramos el archivo máster creado por la solicitud:

FILENAME=ORAEMP , SUFFIX=SQLORA , $
  SEGMENT=SEG01, SEGTYPE=S0, $
    FIELDNAME=EMP_ID, ALIAS=EID, USAGE=A9, ACTUAL=A9, $
    FIELDNAME=LAST_NAME, ALIAS=LN, USAGE=A15, ACTUAL=A15, $
    FIELDNAME=FIRST_NAME, ALIAS=FN, USAGE=A10, ACTUAL=A10, $
    FIELDNAME=CURR_SAL, ALIAS=CSAL, USAGE=D12.2M, ACTUAL=D8, $
    FIELDNAME=CURR_JOBCODE, ALIAS=CJC, USAGE=A3, ACTUAL=A3, $
    FIELDNAME=DEPARTMENT, ALIAS=DPT, USAGE=A10, ACTUAL=A10, $

A continuación le mostramos el archivo de acceso creado por la solicitud:

SEGNAME=SEG01, TABLENAME=ORAEMP, KEYS=01, WRITE=YES, $

Añada las siguientes definiciones de variables al archivo máster, para parametrizar el atributo TABLENAME en el archivo de acceso, y el atributo TITLE de la columnas EMP_ID, en el archivo máster:

FILENAME=ORAEMP, SUFFIX=SQLORA , $
VARIABLE NAME=table, USAGE=A8, DEFAULT=EDUCFILE, $
VARIABLE NAME=emptitle, USAGE=A30, DEFAULT=empid,$

A continuación, desde el archivo máster, añada el atributo TITLE a la declaración FIELD de EMP_ID:

FIELDNAME=EMP_ID, ALIAS=EID, USAGE=A9, ACTUAL=A9,
      TITLE='&&emptitle', $

Desde el archivo de acceso, reemplace el valor del atributo TABLENAME con el nombre de la variable:

SEGNAME=SEG01, TABLENAME=&&table, KEYS=01, WRITE=YES, $

La siguiente solicitud establece los valores de las variables, y después emite una solicitud TABLE:

-SET &&table = ORAEMP;
-SET &&emptitle = 'Id,number';
TABLE FILE ORAEMP
PRINT EMP_ID LAST_NAME FIRST_NAME DEPARTMENT
END

Tenga en cuenta que el valor de &&emptitle aparece entre comillas simples en el comando –SET, ya que contiene un carácter especial (la coma). Las comillas simples no forman parte de la cadena y no aparecen en la salida del informe. El título de la columna aparecería entre comillas simples, si la definición de la variable contuviese el atributo QUOTED=ON.

En la salida del informe, el título de la columna Id. de empleado muestra el valor establecido para &&emptitle, mientras que la tabla a la que accede la solicitud es la tabla ORAEMP, creada como primer paso del ejemplo:

Id    
number     LAST_NAME        FIRST_NAME  DEPARTMENT 
------     ---------        ----------  ---------- 
071382660  STEVENS          ALFRED      PRODUCTION
112847612  SMITH            MARY        MIS       
117593129  JONES            DIANE       MIS       
119265415  SMITH            RICHARD     PRODUCTION
119329144  BANNING          JOHN        PRODUCTION
123764317  IRVING           JOAN        PRODUCTION
126724188  ROMANS           ANTHONY     PRODUCTION
219984371  MCCOY            JOHN        MIS       
326179357  BLACKWOOD        ROSEMARIE   MIS       
451123478  MCKNIGHT         ROGER       PRODUCTION
543729165  GREENSPAN        MARY        MIS       
818692173  CROSS            BARBARA     MIS


Ejemplo: Cómo concatenar variables para crear un valor de atributo

En el ejemplo siguiente, el atributo TABLENAME requiere un nombre con varias partes, compuesto de un nombre de base de datos, un Id. de propietario, un prefijo de tabla y un nombre de tabla estática, con un sufijo de variable. En este caso, puede definir variables diferentes para las partes, y concatenarlas.

Primero, defina variables diferentes para cada parte:

VARIABLE NAME=db,USAGE=A8,DEFAULT=mydb,$
VARIABLE NAME=usr,USAGE=A8,DEFAULT=myusrid,$
VARIABLE NAME=tprf,USAGE=A4,DEFAULT=test_,$
VARIABLE NAME=tsuf,USAGE=YYM,$

Desde el archivo de acceso, concatene las variables para crear el atributo TABLENAME. Tenga en cuenta que el separador entre cada parte es un punto, aunque para concatenar un nombre de variable y mantener el punto, debe usar dos puntos:

TABLENAME=&db..&usr..&tprf.table&tsuf,

Según los valores predeterminados, TABLENAME sería:

TABLENAME=mydb.myusrid.test_table

En una solicitud, establezca los valores siguientes para las variables diferentes:

I-SET &&db=db1;
-SET &&tprf=prod_;
-SET &&tsuf=200801;

Con estos valores, se utiliza el TABLENAME siguiente:

TABLENAME=db1.myusrid.prod_table200801

WebFOCUS