Componente de servicio en formato fuente EGL

Para tener una visión general de los servicios, consulte la sección Servicios EGL. Puede declarar servicios en un archivo EGL, como se describe en el apartado Formato fuente EGL.

El diagrama de sintaxis para un componente de servicio es el siguiente:

Diagrama de sintaxis de un componente de servicio
Service nombreComponenteServicio ... end
Identifica el componente como un servicio y especifica el nombre del componente. Para conocer las normas de denominación, consulte la sección Convenios de denominación.
implementsnombreInterfaz
Indica que el servicio implementa las interfaces especificadas. El significado principal es que el servicio contiene todas las funciones descritas en la interfaz. También se aplican las siguientes normas:
  • En una sentencia de asignación, una variable del tipo de interfaz puede recibir una variable del tipo de servicio:
      miInterfaz = miServicio;
  • De forma parecida, en una invocación de función, un parámetro del tipo de interfaz puede recibir un argumento del tipo de servicio

No es necesario que un servicio implemente una interfaz, aunque el usuario utilice la interfaz para acceder a un función del servicio.

propertyList
Todas las propiedades son opcionales:
@WSDL
Sólo es significativa si una variable basada en el componente de servicio está enlazada a un servicio Web.
Permite a EGL crear la definición WSDL (Web Service Description Language) utilizada para 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 establece los siguientes nombres:
  • El nombre del archivo de definición WSDL.
  • El nombre del portType WSDL.
  • El nombre del elemento de enlace; pero el nombre del elemento tiene también el sufijo Binding
  • El nombre del elemento de servicio; pero el nombre del elemento tiene también el sufijo Service

Si el campo de propiedad no está presente, el nombre del componente de servicio se utiliza para las finalidades indicadas anteriormente.

Los datos son sensibles a mayúsculas y minúsculas: por ejemplo, el nombre miServicio es diferente de MISERVICIO.

nameSpace STRING
Establece el espacio de nombres global de destino para la definición WSDL. Si el campo de propiedad no está presente, el valor se crea empezando por la serie http:// e invirtiendo el orden de todos los calificadores del nombre de paquete; por ejemplo, si el nombre de paquete es com.ibm.egl, el valor de nameSpace será el siguiente:
  http://egl.ibm.com

El valor es sensible a mayúsculas y minúsculas: por ejemplo, el espacio de nombres http://egl.ibm.com es diferente de http://EGL.IBM.com.

isLastParamReturnValue BooleanKind
Este campo de propiedad se pasa por alto en el contexto de un componente de servicio.
alias STRING
Identifica una serie que se incorpora a los nombres de la salida generada. Si no establece la propiedad alias, en su lugar se utiliza el nombre del componente de servicio.
localSQLScope BooleanKind
Indica si los identificadores para los conjuntos de resultados SQL y las sentencias preparadas son locales con respecto al código de servicio durante la invocación por parte de otro código EGL, que es el valor por omisión. Si acepta el valor yes, distintos programas pueden utilizar los mismos identificadores independientemente y el código EGL que utiliza el servicio puede utilizar independientemente los mismos identificadores que se utilizan en el servicio.

Si especifica no, los identificadores se comparten en toda la unidad de ejecución. Los identificadores creados cuando las sentencias SQL del servicio se invocan están disponibles en otro código que invoca el servicio, aunque el otro código puede utilizar localSQLScope = yes para bloquear el acceso a esos identificadores. Además, el servicio puede hacer referencia a los identificadores creados en el código invocante, pero solo si las sentencias relacionadas con SQL se hubieran ejecutado ya en el otro código y si el otro código no bloqueara el acceso.

Los efectos de compartir identificadores SQL son los siguientes:
  • Puede abrir un conjunto de resultados en un código y obtener filas de ese conjunto en otro
  • Puede preparar una sentencia SQL en un código y ejecutar esa sentencia en otra

En cualquier caso, los identificadores disponibles cuando el programa o pageHandler accede al servicio están disponibles cuando el mismo programa o pageHandler accede a la misma o a otra función del mismo servicio.

useDeclaration
Proporciona un acceso más fácil a una tabla de datos o biblioteca. Para conocer detalles, consulte la sección Declaración de uso.
private
Indica que la función no está disponible fuera del servicio. Si omite el término private, la función estará disponible.

Las variables y constantes son necesariamente privadas, pero el calificador está disponible.

nombreCampo
Nombre de un campo primitivo. Para conocer las normas de denominación, consulte la sección Convenios de denominación.
primitiveType
El tipo primitivo de un campo o, en relación con una matriz, el tipo primitivo de un elemento de matriz.
longitud
La longitud del parámetro o (en relación con una matriz) la longitud de un elemento de matriz. La longitud es un entero que representa el número de caracteres o dígitos en el área de memoria a la que hace referencia nombreCampo o (en el caso de una matriz) nombreMatrizDinámica.
decimales
Para un tipo numérico 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.
dataItemPartName
El nombre de un componente dataItem que es visible al programa. Para obtener detalles acerca de la visibilidad, consulte el apartado Referencias a componentes.

El componente actúa como un modelo de formato, tal como se describe en Typedef.

recordName
El nombre de un registro. Para conocer las normas de denominación, consulte la sección Convenios de denominación.
recordPartName
El nombre de un componente de registro que es visible al programa. Para obtener detalles acerca de la visibilidad, consulte el apartado Referencias a componentes.

El componente actúa como un modelo de formato, tal como se describe en Typedef.

constantName literal
El nombre y valor de una constante. El valor puede ser una serie entrecomillada o un número. Para conocer las normas de denominación, consulte la sección Convenios de denominación.
propiedadCampo
Un par de propiedad y valor específico de un campo, tal como se describe en la sección Visión general de propiedades y alteraciones temporales de EGL.
recordProperty
Un par de propiedad y valor específico de un registro. Para conocer detalles sobre las propiedades disponibles, consulte el tema de referencia para el tipo de registro específico.

Un registro básico no tiene propiedades.

nombreCampo
Nombre de un campo de registro cuyas propiedades desea alterar temporalmente. Consulte Visión general de propiedades y alteraciones temporales de EGL.
arrayName
Nombre de una matriz dinámica. Si utiliza esta opción, los demás símbolos a la derecha (nombreComponenteElementoDatos, tipoPrimitivo y demás) hacen referencia a cada elemento de la matriz.
size
El número de elementos de la matriz. Si especifica el número de elementos, la matriz se inicializa con el número de elementos especificado.
componenteFunción
Una función. Se aplican las siguientes restricciones:
  • El tipo de retorno no puede ser de tipo ANY, BLOB ni CLOB.
  • Un parámetro no puede incluir un campo de tipo ANY; no puede ser de tipo ANY, BLOB, CLOB; no puede ser de tipo loose, como por ejemplo NUMBER; y no puede incluir el modificador field o nullable
  • Los parámetros con el modificador OUT deben estar al final de la lista de parámetros
La siguiente propiedad de función sólo es válida en un componente de servicio, y sólo es significativa si la variable basada en ese componente está enlazada a un servicio Web:
@WSDL
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.

Para conocer detalles, consulte Componente de función en formato fuente EGL.

Conceptos relacionados
Interfaces EGL
Servicios EGL y servicios Web
Componente de biblioteca de tipo ServiceBindingLibrary

Tareas relacionadas
Crear un componente de interfaz de EGL
Crear un componente de servicio EGL
Crear un componente de interfaz a partir de un componente de servicio

Consulta relacionada
Prácticas recomendadas para servicios e interfaces relacionadas en EGL
Componente de función en formato fuente EGL
Componente de interfaz en formato fuente EGL
Interfaces de tipo BasicInterface

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