Componente de función en formato fuente EGL

Puede declarar funciones en un archivo fuente EGL, como se describe en el apartado Formato fuente EGL.

El ejemplo siguiente muestra un componente de programa con dos funciones incorporadas, junto con una función autónoma y un componente de registro autónomo:
  Program myProgram(employeeNum INT) 
    {includeReferencedFunctions = yes}

    // variable global de programa
      employees record_ws;
      employeeName char(20);

    // función incorporada obligatoria
    Function main() 

      // inicializar nombres de empleados
      recd_init();

      // obtener el nombre de empleado correcto
      // en función del employeeNum pasado
      employeeName = getEmployeeName(employeeNum);
    end

    // otra función incorporada
    Function recd_init()
      employees.name[1] = "Employee 1";
      employees.name[2] = "Employee 2";
    end
  end

  // función autónoma
  Function getEmployeeName(employeeNum INT) returns (CHAR(20))

    // variable local
    index BIN(4);
    index = syslib.size(employees.name);
    if (employeeNum > index)
      return("Error");
    else
      return(employees.name[employeeNum]);
    end

  end

  // componente de registro que actúa como typeDef de empleados
  Record record_ws type basicRecord
    10 name CHAR(20)[2];
  end
El diagrama de sintaxis de un componente de función es el siguiente:

Diagrama de sintaxis de un componente de función
Function nombreComponenteFunción ... end
Identifica el componente como función y especifica el nombre del componente. Para conocer las normas de denominación, consulte el apartado Convenios de denominación.
parámetro
Un parámetro es un área de memoria disponible en toda la función y que puede recibir un valor de la función invocadora. Para obtener detalles sobre la sintaxis utilizada para declarar un parámetro, consulte Parámetros de función.
returns (tipoRetorno)
Describe los datos devueltos por la función al invocante. Las características del tipo de retorno deben coincidir con las características de la variable que recibe el valor en la función invocante. El tipo de retorno debe ser un tipo primitivo.

En un servicio, el tipo de retorno no puede ser de tipo ANY, BLOB ni CLOB.

{ functionProperties }
Las propiedades y sus tipos, cada uno de los cuales es opcional, son los siguientes:
@WSDL
Sólo es válida si la función es un componente de servicio; y sólo es significativa si una variable basada en ese componente de servicio está enlazada al servicio Web.
Permite a EGL extraer datos de la definición WSDL (Web Service Description Language) para utilizarlos al interactuar con el código de tiempo de ejecución de Java JAX-RPC. Los campos de propiedad y sus tipos son los siguientes:
elementName STRING
Si este campo de propiedad está presente, el valor pasa a ser el nombre del elemento de operación WSDL para la función. Si el campo de propiedad no está presente, se utiliza el nombre de la función. Los datos son sensibles a mayúsculas y minúsculas: por ejemplo, el nombre miFuncion es diferente de MIFUNCION.
nameSpace STRING
Este campo de propiedad se pasa por alto en el contexto de una función.
isLastParamReturnValue BooleanKind
Este campo de propiedad se pasa por alto en el contexto de una función.
alias STRING
Solo es válido si la función está en una biblioteca de tipo nativeLibrary. En ese contexto, el valor es el nombre de la función basada en DLL y por omisión es el nombre de la función EGL. Establezca la propiedad alias explícitamente si se produce un error de validación cuando denomine la función EGL con el nombre de la función basada en DLL.
nombreComponenteElementoDatos
Un componente dataItem que es visible para la función y que actúa como typedef (un modelo de formato) del valor de retorno.
tipoPrimitivo
El tipo primitivo de los datos devueltos al invocante.
longitud
La longitud de los datos devueltos al invocante. La longitud es un entero que representa el número de caracteres o dígitos del valor devuelto.
decimales
Para algunos tipos numéricos puede especificar decimales que es un entero que representa el número de posiciones después de la coma decimal. El número máximo de posiciones decimales es el menor de dos números: 18 o el número de dígitos declarado como longitud. La coma decimal no se almacena con los datos.
"máscaraFechaHora"
Para los tipos TIMESTAMP e INTERVAL puede especificar máscaraFechaHora", que asigna un significado (como por ejemplo "dígito de año") a una posición determinada en el valor de fecha y hora. La máscara está presente con los datos durante la ejecución.
sentencia
Una sentencia EGL, según se describe en el apartado Sentencias EGL. La mayoría terminan con un signo de punto y coma.
declaraciónVariable
Una declaración de variable, tal como se describe en la sección Variables de función.
containerContextDependent
Una indicación de si se debe ampliar el espacio de nombres utilizado para resolver las funciones invocadas por la función que se declara. El valor por omisión es no.

Este indicador es para utilizarlo en el código migrado de VisualAge Generator. Para obtener detalles, consulte el apartado containerContextDependent.

Conceptos relacionados
Proyectos, paquetes y archivos EGL
Componente de función
Import
Componente de biblioteca de tipo basicLibrary
Componente de biblioteca de tipo nativeLibrary
Componentes
Referencias a componentes
Referencias a variables en EGL
Diagrama de sintaxis para sentencias y mandatos EGL
Typedef

Consulta relacionada
Matrices
containerContextDependent
Sentencias EGL
Invocaciones de función
Parámetros de función
Variables de función
INTERVAL
Valores de error de E/S
Convenios de denominación
Tipos primitivos
TIMESTAMP

Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.