Información adicional sobre las variables dinámicas de entorno AE

La variable NZAE_DYNAMIC_ENVIRONMENT activa argumentos basados en variables dinámicas de entorno AE. (También se puede establecer con la opción --dynamic de register_ae) Si se establece en 0, por defecto, las variables de entorno dinámicas AE no son compatibles. Si se establece en 2, el sistema utiliza el último argumento del AE (cadena) para especificar los valores.
NZAE_DYNAMIC_ENVIRONMENT={0 | 2} (feature disabled, default)
NZAE_DYNAMIC_ENVIRONMENT=2 (environment variables from last argument)

Cuando NZAE_DYNAMIC_ENVIRONMENT se establece en 2, la función debe definirse para aceptar un argumento de tipo cadena como parámetro final adicional que puede utilizarse para pasar una o más variables de entorno adicionales. Si un nombre de clave AE-ENV coincide con una variable ya definida mediante registro, la variable dinámica anula la variable registrada.

Las variables de entorno se especifican como name1=value1, name2=value2, etc. Aplique la siguiente sintaxis para las variables de entorno:
  • Utilice una coma como separador de variables.
  • Utilice comillas dobles como carácter de entrecomillado.
  • Los valores que incluyan espacios en blanco y/o comas deben ir entre comillas dobles; de lo contrario, se ignoran los espacios en blanco.
  • Si un valor está entre comillas, las comillas dobles se eliminan después del análisis.
  • Si se requiere el carácter de comilla doble como parte de un valor, utilice el carácter de barra invertida ("\") para escapar.

Ejemplo

NZAE_EXECUTBLE_PATH=/bin/ae, data1="1,2,3,4,5,6", data2=wx\"b\"yz,data3="I am
an \"IBMer\""
Con NZAE_DYNAMIC_ENV activado, esto formaría parte de la invocación SQL como último argumento, es decir:
Select func(arg1,'NZAE_EXECUTABLE=/bin/ae...');
Después de analizar, esto se convierte en:
NZAE_EXECUTBLE_PATH=/bin/ae
data1=1,2,3,4,5,6
data2=wx"b"yz
data3=I am an "IBMer"

Una vez analizadas, las variables de entorno dinámicas se tratan exactamente igual que las variables de entorno de registro. Esto incluye el uso de prefijos como NZAE_APPEND_, NZAE_PREPEND_, NZAE_HOST_ONLY_ y NZAE_SPU_ONLY_ processing.

El siguiente es un ejemplo de SQL utilizando variables de entorno dinámicas AE para llamar a un Java AE con la clase principal DataMatrix:
SELECT * FROM demo, TABLE WITH FINAL(aedemo_varchar_dyn(f1,f2,f3,f4,
'NZAE_EXECUTABLE_PATH=%
{AEDEV_JAVA_JVM},NZAE_NUMBER_PARAMETERS=1,NZAE_PARAMETER1=DataMatrix'));

La cadena {AEDEV_JAVA_JVM} del fragmento de código anterior es una sustitución de variable de entorno AE, que se trata con más detalle en la sección Sustitución de variable de entorno AE.

La sustitución de variables puede controlarse si el AE ve este último argumento como un argumento de cadena única de la función, ya que siempre ve el resultado en las variables de entorno del AE (en otras palabras, si el AE ve que esta función toma 4 ó 5 argumentos). El quinto argumento, que es la cadena que contiene las variables ENV, puede pasarse o no, dependiendo de la configuración de NZAE_DYNAMIC_ENVIRONMENT_PASS_LAST_ARGUMENT.

Por defecto, NZAE_DYNAMIC_ENVIRONMENT_PASS_LAST_ARGUMENT se establece en 0, especificando que el último argumento no debe ser pasado al AE, que es la configuración recomendada. En el ejemplo anterior, cuando se establece en 0 el AE ve 4 argumentos, cuando se establece en 1 ve 5 argumentos.
NZAE_DYNAMIC_ENVIRONMENT_PASS_LAST_ARGUMENT={0 | 1}
Cuando NZAE_DYNAMIC_ENVIRONMENT no es cero, el sistema de ejecución AE espera que se especifique el último argumento de cadena, y devuelve un error si no se encuentra. Esto incluye el caso en que una porción de datos no tenga datos. Para suprimir un error en el caso de un segmento de datos vacío, especifique lo siguiente:
NZAE_DYNAMIC_ENVIRONMENT_INGORE_LAST_RUN_ERROR
(value 0 or 1, default is 1)
Si un segmento de datos no produce datos para una consulta, no es posible que el tiempo de ejecución de AE reciba las variables de entorno dinámicas de AE. Por defecto, los EAs no se lanzan para cortes de datos vacíos. Normalmente, este es el comportamiento correcto debido a la ausencia de datos; sin embargo, puede haber situaciones en las que debería marcarse como error. La siguiente configuración da lugar a un error:
NZAE_DYNAMIC_ENVIRONMENT_INGORE_LAST_RUN_ERROR=0