Cláusula PATH

La función PATH es opcional y especifica una lista de esquemas externos, separados por comas, a través de los cuales se busca.

La lista contiene varias funciones, por ejemplo, funciones y procedimientos reutilizables.
Nota: El <esquema nodo> se incluye de manera implícita como primer elemento PATH, tanto si está presente como no.

Sintaxis

Esta definición proporciona compatibilidad con versiones anteriores de WebSphere Business Integration Message Broker. El ESQL de intermediario generado por el conjunto de herramientas de Eclipse cuando el esquema sin nombre es el único esquema referenciado, no contiene la nueva sintaxis.

La función PATH se utiliza para resolver nombres de función y procedimiento no calificados en las herramientas, según el siguiente algoritmo.

Debe haber una sola función o procedimiento que coincide con el nombre no calificado, o las herramientas informan acerca de un error. Puede corregir el error si califica el nombre de función o procedimiento con un IDesquema:
  1. Se busca una función o procedimiento coincidente en el MODULE actual (si hay alguno). Las funciones y procedimientos de ámbito de MODULE sólo son visibles en el MODULE que los contiene. Las funciones y procedimientos de ámbito de MODULE ocultan las funciones y procedimientos de ámbito de esquema.
  2. Se busca una función o procedimiento coincidente en el <esquema de nodo> (pero en ninguno de los MODULE contenidos) y en el <esquema de intermediario-SQL> o esquemas identificados por la sentencia PATH.
Nota: El IDesquema debe ser un nombre de esquema completo.

El <esquema de nodo> es el esquema que contiene el flujo de mensajes del nodo. El último segmento del nodo de proceso de mensajes uuid del mensaje XML del intermediario proporciona el nombre de este esquema.

Cuando se invoca una rutina, el nombre de esquema puede calificar el nombre utilizado. El comportamiento depende de las circunstancias, de la manera siguiente:
  • Si se especifica el esquema, se invoca la rutina de esquema con nombre. Las funciones escalar incorporadas, excluyendo CAST, EXTRACT y los registros especiales, se consideran definidas en un esquema declarado de manera implícita denominado SQL. De esta manera se pueden invocar, por ejemplo, SQL.SUBSTRING(... ).

    Lo que suceda a continuación dependerá de si el llamador se encuentra en una rutina de módulo o es una rutina de esquema.

    Para una rutina de módulo:
    • Si no se especifica el esquema, la sentencia que llama se encuentra en una rutina de módulo y existe una rutina del nombre indicado en el módulo local, se invocará esa rutina local.
    • Si no se especifica el esquema, la sentencia que llama se encuentra en una rutina de módulo y no existe una rutina del nombre indicado en el módulo local, se buscará una rutina del mismo nombre en todos los esquemas de la vía de acceso de esquemas.
      Si una función coincidente existe en un esquema, se utiliza. Si una función coincidente existe en más de un esquema, se produce un error de tiempo de compilación. Si no hay ninguna función coincidente, se busca en el SQL de esquema.
      Nota: Esta norma y la norma anterior implican que una rutina de módulo local tiene prioridad sobre una rutina incorporada del mismo nombre.
    Para una rutina de esquema:
    • Si no se especifica el esquema, el llamador es una rutina de módulo y existe una rutina del nombre indicado en el esquema local, se invocará esa rutina local.
    • Si no se especifica el esquema, la sentencia que llama se encuentra en una rutina de esquema y no existe una rutina del nombre indicado en el módulo local, se buscará una rutina del mismo nombre en todos los esquemas de la vía de acceso de esquemas.
      Si una función coincidente existe en un esquema, se utiliza. Si una función coincidente existe en más de un esquema, se produce un error de tiempo de compilación. Si no hay ninguna función coincidente, se busca en el SQL de esquema.
      Nota: Esta norma y la norma anterior implican que una rutina de esquema local tiene prioridad sobre una rutina incorporada del mismo nombre.

El <esquema de nodo> se define como el esquema que contiene el flujo de mensajes del nodo. El último segmento del nodo de proceso de mensajes uuid del mensaje XML del intermediario proporciona el nombre de este esquema.

El <esquema de nodo> se especifica de esta manera para proporcionar compatibilidad con versiones anteriores de WebSphere Business Integration Message Broker

Cuando el <esquema de nodo> es el único esquema referenciado, el mensaje XML de intermediario no incluye las funciones adicionales contenidas en WebSphere Business Integration Message Broker V5.0.

Los intermediarios de versiones anteriores de WebSphere Business Integration Message Broker no dan soporte a varios esquemas, por ejemplo, bibliotecas de subrutinas para volver a utilizarlos. Para difundir en un intermediario de una versión anterior del producto, ponga todas las subrutinas ESQL en el mismo esquema que el flujo de mensajes y el nodo que los invoca.

Las herramientas de Eclipse utilizan la sintaxis de ESQL de WebSphere Business Integration Message Broker V5.0 en la validación de asistencia de contenido y código fuente. Al generar código ESQL de intermediario, las herramientas de Eclipse pueden generar el código de estilo de la V2.1 para tener compatibilidad con versiones anteriores.

El esquema de intermediario del flujo de mensajes debe contener cualquiera de los elementos siguientes en sus archivos ESQL en el nivel de esquema:
  • Una función de nivel de esquema
  • Un procedimiento de nivel de esquema
  • Una constante de nivel de esquema
  • Una constante de nivel de módulo
  • Una variable de nivel de módulo

Sin la presencia de ninguno de los elementos anteriores, las herramientas de Eclipse generan ESQL de intermediario sin los Reiniciadores principales de MODULE y FUNCTION. Los intermediarios de V2.1 y V5.0 aceptan este estilo. Sin embargo, si utiliza un intermediario de V2.1, no puede utilizar la sintaxis de la V5.0 en el código como, por ejemplo, espacio de nombres

Los nombres de funciones y procedimientos deben ser exclusivos en su SCHEMA o MODULE.

Conceptos relacionados
ESQL

Tareas relacionadas
Desarrollo de ESQL

Referencia relacionada
Preferencia de sintaxis
Sentencias ESQL
Sentencia BROKER SCHEMA
Sentencia CREATE MODULE