Sondear Oracle E-Business Suite mediante la instrucción SELECT
Puede configurar el adaptador de Oracle E-Business para recibir mensajes periódicos de cambio de datos mediante una instrucción SELECT para sondear continuamente las tablas de interfaz, las vistas de interfaz, las tablas y las vistas de Oracle E-Business Suite. Puede especificar una instrucción SELECT como una instrucción de sondeo que el adaptador ejecuta periódicamente para sondear Oracle E-Business Suite. También puede especificar un bloque de código PL/SQL posterior al sondeo que el adaptador ejecuta después de ejecutar la instrucción de sondeo.
Para habilitar el sondeo, debe especificar determinadas propiedades de enlace en el puerto de recepción WCF-Custom o WCF-OracleEBS. Para obtener más información sobre cómo el adaptador admite el sondeo, consulte Compatibilidad con llamadas entrantes mediante sondeo. Para obtener información sobre la estructura del mensaje SOAP para las operaciones de sondeo, vea Esquemas de mensaje para las operaciones de sondeo.
Configuración de una operación de sondeo con las propiedades de enlace del adaptador de Oracle E-Business Suite
En la tabla siguiente se resumen las propiedades de enlace del adaptador de Oracle E-Business que se usan para configurar el adaptador para recibir mensajes de cambio de datos. Debe especificar estas propiedades de enlace al configurar el puerto de recepción en BizTalk Server consola de administración.
Binding (propiedad) | Descripción |
---|---|
InboundOperationType | Especifica si desea realizar la operación de sondeo o de entrada de notificación . El valor predeterminado es Sondeo. |
PolledDataAvailableStatement | Especifica la instrucción SQL que ejecuta el adaptador para determinar si hay datos disponibles para el sondeo. Solo si hay un registro disponible, se ejecutará la instrucción SELECT que especifique para la propiedad de enlace PollingInput . |
PollingInterval | Especifica el intervalo, en segundos, en el que el adaptador de Oracle E-Business ejecuta la instrucción especificada para la propiedad de enlace PolledDataAvailableStatement . El valor predeterminado es 30 segundos. El intervalo de sondeo determina el intervalo de tiempo entre sondeos sucesivos. Si la instrucción se ejecuta dentro del intervalo especificado, el adaptador se suspende durante el tiempo restante del intervalo. |
PollingInput | Especifica la instrucción de sondeo. Para sondear mediante una instrucción SELECT, debe especificar una instrucción SELECT para esta propiedad de enlace. El valor predeterminado es null. Debe especificar un valor para la propiedad de enlace PollingInput para habilitar el sondeo. La instrucción de sondeo solo se ejecuta si hay datos disponibles para el sondeo, que viene determinado por la propiedad de enlace PolledDataAvailableStatement . |
PollingAction | Especifica la acción para la operación de sondeo. Puede determinar la acción de sondeo de una operación específica a partir de los metadatos que genere para la operación mediante el complemento Consumir servicio de adaptador. |
PostPollStatement | Especifica un bloque de instrucciones que se ejecuta después de que se ejecute la instrucción especificada por la propiedad de enlace PollingInput . |
PollWhileDataFound | Especifica si el adaptador de Oracle E-Business omite el intervalo de sondeo y ejecuta continuamente la instrucción de sondeo, si los datos están disponibles en la tabla que se está sondeando. Si no hay datos disponibles en la tabla, el adaptador revierte para ejecutar la instrucción de sondeo en el intervalo de sondeo especificado. El valor predeterminado es False. |
Para obtener una descripción más completa de estas propiedades, vea Leer sobre las propiedades de enlace del adaptador de BizTalk para Oracle E-Business Suite. Para obtener una descripción completa de cómo usar el adaptador de Oracle E-Business para sondear la base de datos de Oracle, lea más.
Cómo muestra este tema el sondeo
En este tema, para demostrar cómo el adaptador de Oracle E-Business admite la recepción de mensajes de cambio de datos mediante instrucciones SELECT, cree un proyecto de BizTalk y genere un esquema para la operación de sondeo para la tabla que desea sondear. En este tema, se genera el esquema para la operación de sondeo para la tabla de interfaz de MS_SAMPLE_EMPLOYEE en la aplicación Biblioteca de objetos de aplicación. Esta tabla se crea al ejecutar el script create_apps_artifacts.sql proporcionado con los ejemplos para crear estos objetos en Oracle E-Business Suite.
A continuación, usaremos el enrutamiento basado en contenido (CBR) en BizTalk Server para configurar una aplicación con un puerto de recepción que recibirá mensajes de sondeo de la tabla de interfaz de MS_SAMPLE_EMPLOYEE y, a continuación, lo enrutaremos a un puerto de envío. En este caso, crearemos un filtro en el puerto de envío que comprueba la ubicación de recepción especificada y el mensaje se enruta al puerto de envío.
Para demostrar una operación de sondeo, hacemos lo siguiente:
Especifique una instrucción SELECT para la propiedad de enlace PolledDataAvailableStatement para determinar dónde se sondea (MS_SAMPLE_EMPLOYEE) la tabla de interfaz tiene datos. En este ejemplo, puede establecer esta propiedad de enlace como:
SELECT COUNT (*) FROM MS_SAMPLE_EMPLOYEE
Esto garantiza que el adaptador ejecute la instrucción de sondeo solo cuando la tabla de interfaz de MS_SAMPLE_EMPLOYEE tenga algunos registros.
Especifique una instrucción SELECT para la propiedad de enlace PollingInput . Esta instrucción recupera todas las filas de la tabla de interfaz MS_SAMPLE_EMPLOYEE. En este ejemplo, puede establecer esta propiedad de enlace como:
SELECT * FROM MS_SAMPLE_EMPLOYEE FOR UPDATE
Nota
Para obtener información sobre la cláusula FOR UPDATE usada en la instrucción SELECT, vea Poll Oracle E-Business Suite using SELECT statement (Sondear Oracle E-Business Suite mediante la instrucción SELECT).
Especifique una instrucción DELETE como parte de la propiedad de enlace PostPollStatement . Esta instrucción eliminará todos los datos de MS_SAMPLE_EMPLOYEE tabla de interfaz. En este ejemplo, puede establecer esta propiedad de enlace como:
DELETE FROM MS_SAMPLE_EMPLOYEE
Una vez que esto suceda, la próxima vez que se ejecute la instrucción especificada para PollingInput , no capturará ningún dato.
Hasta que se agreguen más datos a la tabla de interfaz de MS_SAMPLE_EMPLOYEE, no obtendrá ningún mensaje de sondeo. Por lo tanto, debe volver a rellenar la tabla de interfaz MS_SAMPLE_EMPLOYEE con nuevos registros. Para ello, ejecute el script insert_apps_data.sql proporcionado con los ejemplos. Después de ejecutar este script, la siguiente operación de sondeo capturará los nuevos registros insertados en la tabla.
Cómo recibir mensajes de cambio de datos de Oracle E-Business Suite
Realizar una operación en una base de datos de Oracle mediante el adaptador de Oracle E-Business con BizTalk Server implica las siguientes tareas de procedimientos descritas en Bloques de creación para crear aplicaciones de Oracle E-Business Suite. Para configurar el adaptador para sondear Oracle E-Business Suite mediante una instrucción SELECT, estas tareas son:
Cree un proyecto de BizTalk y genere el esquema para la operación de sondeo de la tabla de interfaz que desea sondear.
Compile e implemente el proyecto de BizTalk.
Configure la aplicación de BizTalk mediante la creación de puertos de recepción y envío. Además, agregue filtro en el puerto de envío para que compruebe la ubicación de recepción especificada en el puerto de recepción y el mensaje de sondeo se enruta al puerto de envío.
Importante
Para escenarios de sondeo entrante, siempre debe configurar un puerto de recepción unidireccional. No se admiten puertos de recepción bidireccionales para las operaciones entrantes.
Inicie la aplicación de BizTalk.
En este tema se proporcionan instrucciones para realizar estas tareas.
Ejemplo basado en este tema
También se proporciona un ejemplo, PollingUsingSelectStatement, basado en este tema, con el paquete de adaptadores de BizTalk. Para obtener más información, consulta Ejemplos.
Generar esquema
Debe generar el esquema para la operación De sondeo en la tabla de interfaz MS_SAMPLE_EMPLOYEE en la aplicación Biblioteca de objetos de aplicación. Realice las tareas siguientes al generar el esquema mediante el complemento Consumir servicio de adaptador.
Seleccione el tipo de contrato como Servicio (operación de entrada).
Genere el esquema para la operación De sondeo en la tabla de interfaz MS_SAMPLE_EMPLOYEE. Puede seleccionar la operación y la tabla de interfaz en el nodo Vista basada en aplicaciones o en el nodo Vista basada en artefactos .
Para obtener más información sobre cómo generar el esquema, vea Examinar, buscar y obtener metadatos para operaciones de Oracle E-Business Suite.
Compilar e implementar el proyecto de BizTalk
Ahora debe compilar la solución de BizTalk e implementarla en un BizTalk Server. Para obtener información sobre cómo implementar la solución en BizTalk Server, vea Implementar ensamblados de BizTalk desde Visual Studio en una aplicación de BizTalk.
Configuración de la aplicación de BizTalk
Después de implementar el proyecto de BizTalk, la aplicación aparece en el nodo Aplicaciones de la consola de administración de BizTalk Server. Debe usar la consola de administración de BizTalk Server para configurar la aplicación. Como parte de la configuración de la aplicación, debe crear un puerto de recepción y un puerto de envío en la aplicación y, a continuación, agregar filtro al puerto de envío para que todos los mensajes del puerto de recepción se enruten al puerto de envío.
La configuración de una aplicación implica:
Selección de un host para la aplicación.
Creación de puertos de recepción y envío.
Creación de un puerto de recepción
Debe crear una WCF-Custom o WCF-OracleEBS puerto de recepción unidireccional, que sondea Oracle mediante la instrucción SELECT especificada para la propiedad de enlace PollingInput . Para obtener información sobre cómo crear puertos de recepción, consulte Configuración manual de un enlace de puerto físico al adaptador de E-Business de Oracle. Al crear el puerto de recepción, asegúrese de especificar las siguientes propiedades de enlace.
Para sondeo
Binding (propiedad) | Value |
---|---|
InboundOperationType | Establézcalo en Sondeo. |
PolledDataAvailableStatement | En este ejemplo, establezca esta propiedad de enlace en:SELECT COUNT (*) FROM MS_SAMPLE_EMPLOYEE |
PollingAction | Recupere la acción de sondeo del esquema generado para la operación De sondeo en MS_SAMPLE_EMPLOYEE tabla de interfaz. En este ejemplo, establezca esta propiedad de enlace en InterfaceTables/Poll/FND/APPS/MS_SAMPLE_EMPLOYEE. |
PollingInput | Para esta propiedad de enlace, especifique una instrucción SELECT para recuperar todos los registros de la tabla de interfaz de MS_SAMPLE_EMPLOYEE. En este ejemplo, establezca esta propiedad de enlace en:SELECT * FROM MS_SAMPLE_EMPLOYEE FOR UPDATE |
PostPollStatement | Especifique la instrucción post-poll para eliminar todos los datos de la tabla de interfaz de MS_SAMPLE_EMPLOYEE. En este ejemplo, establezca esta propiedad de enlace en:DELETE FROM MS_SAMPLE_EMPLOYEE |
Para establecer el contexto de la aplicación
Si está realizando operaciones en artefactos de Oracle E-Business Suite, debe especificar valores para las propiedades de enlace adecuadas para establecer el contexto de la aplicación. Para obtener más información sobre el contexto de la aplicación y las propiedades de enlace necesarias para establecer el contexto de la aplicación, consulte Establecer contexto de aplicación.
En este ejemplo, especifique los valores adecuados para las propiedades de enlace oracleUserName, oraclePassword y oracleEBSResponsibility .
Nota
Se recomienda configurar el nivel de aislamiento de transacción y el tiempo de espera de la transacción mientras se realizan operaciones de entrada mediante el adaptador de Oracle E-Business. Para ello, agregue el comportamiento del servicio al configurar el puerto de recepción. Para obtener instrucciones sobre cómo agregar el comportamiento del servicio, consulte Configurar el nivel de aislamiento de transacción y el tiempo de espera de transacción con Oracle E-Business Suite.
Crear un puerto de envío
Defina una ubicación en el disco duro y cree un puerto de envío file correspondiente donde BizTalk Server quitará los mensajes de Oracle. Estos mensajes serán en respuesta a la instrucción de sondeo que especifique para el puerto de recepción. Para obtener información sobre cómo crear puertos de envío, consulte Configuración manual de un enlace de puerto físico al adaptador de oracle E-Business.
También debe agregar un filtro en el puerto de envío para enrutar los mensajes desde la ubicación de recepción. Para agregar un filtro al puerto de envío:
Haga doble clic en el puerto de envío para abrir el cuadro de diálogo Propiedades del puerto de envío.
En el cuadro de diálogo Propiedades de puerto de envío, haga clic en la pestaña Filtros .
Especifique los siguientes valores:
En la lista Propiedad , haga clic en BTS. ReceivePortName.
En la lista Operador , haga clic en ==.
En el campo Valor , especifique el nombre del puerto de recepción.
En el cuadro de diálogo Propiedades de puerto de envío, haga clic en Aceptar.
Iniciar la aplicación
Debe iniciar la aplicación de BizTalk para sondear Oracle E-Business Suite. Para obtener instrucciones sobre cómo iniciar una aplicación de BizTalk, vea Cómo iniciar una orquestación.
En esta fase, asegúrese de que:
El WCF-Custom o WCF-OracleEBS puerto de recepción unidireccional, que sondea Oracle mediante la instrucción SELECT especificada para la propiedad de enlace PollingInput , se está ejecutando.
El puerto de envío FILE, que recibe mensajes de la base de datos de Oracle, se está ejecutando.
Ejecución de la operación
Después de ejecutar la aplicación, se realiza el siguiente conjunto de acciones, en la misma secuencia:
El adaptador ejecuta polledDataAvailableStatement , que devuelve un valor positivo que indica que el adaptador debe ejecutar la instrucción especificada para la propiedad de enlace PollingInput .
El adaptador ejecuta la instrucción SELECT para la propiedad de enlace PollingInput y devuelve todas las filas de la tabla de interfaz MS_SAMPLE_EMPLOYEE. La respuesta de Oracle E-Business Suite es similar a la siguiente:
<?xml version="1.0" encoding="utf-8" ?> <Poll xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/InterfaceTables/FND/APPS/MS_SAMPLE_EMPLOYEE"> <DATA> <SelectRecord xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/TableViewRecord/APPS/MS_SAMPLE_EMPLOYEE"> <EMP_NO>10002</EMP_NO> <NAME>JEFF PRICE</NAME> <DESIGNATION>MANAGER</DESIGNATION> <SALARY>25000</SALARY> <JOIN_DATE>2007-12-15T00:00:00</JOIN_DATE> </SelectRecord> <SelectRecord xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/TableViewRecord/APPS/MS_SAMPLE_EMPLOYEE"> <EMP_NO>10003</EMP_NO> <NAME>DON HALL</NAME> <DESIGNATION>ACCOUNTANT</DESIGNATION> <SALARY>12000</SALARY> <JOIN_DATE>2005-10-29T00:00:00</JOIN_DATE> </SelectRecord> … <SelectRecord xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/TableViewRecord/APPS/MS_SAMPLE_EMPLOYEE"> … </SelectRecord> … </DATA> </Poll>
El adaptador ejecuta la instrucción post-poll, que elimina todos los datos de MS_SAMPLE_EMPLOYEE tabla de interfaz.
Después del intervalo de sondeo, el adaptador vuelve a ejecutar PolledDataAvailableStatement. Dado que la tabla de interfaz MS_SAMPLE_EMPLOYEE no tiene registros ahora, PolledDataAvailableStatement no devuelve un valor positivo y, por tanto, el adaptador no ejecuta la instrucción especificada para la propiedad de enlace PollingInput . Como resultado, el cliente del adaptador no obtiene ningún mensaje de sondeo.
El cliente del adaptador no obtendrá más mensajes de sondeo hasta que algunos registros se inserte explícitamente en la tabla de interfaz de MS_SAMPLE_EMPLOYEE. Para insertar más registros, puede ejecutar el script insert_apps_data.sql proporcionado con los ejemplos. Después de ejecutar este script, la próxima vez que se ejecute PolledDataAvailableStatement , devuelve un valor positivo. Como resultado, el adaptador ejecuta de nuevo la instrucción de sondeo y los clientes del adaptador reciben un mensaje de sondeo.
Nota
El adaptador de Oracle E-Business seguirá sondeando hasta que deshabilite explícitamente el puerto de recepción de la consola de administración de BizTalk Server.
Prácticas recomendadas
Después de implementar y configurar el proyecto de BizTalk, puede exportar los valores de configuración a un archivo XML denominado archivo de enlaces. Una vez que genere un archivo de enlaces, puede importar los valores de configuración del archivo para que no sea necesario crear los puertos de envío y los puertos de recepción. Para obtener más información sobre el enlace de archivos, consulte Reutilización de enlaces de adaptador con Oracle E-Business Suite.