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.
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:
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.
Es la longitud máxima del valor de la variable.
Es el valor predeterminado de la variable. Si no se establece ningún valor en hora de ejecución, se emplea este valor.
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.
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.
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
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 |