Condividi tramite


Eseguire il polling di Oracle E-Business Suite usando stored procedure

È possibile configurare l'adapter Oracle E-Business per ricevere messaggi periodici di modifica dei dati usando stored procedure per eseguire continuamente il polling del database Oracle. È possibile specificare una stored procedure come istruzione di polling eseguita periodicamente dall'adapter per eseguire il polling del database Oracle.

Per abilitare il polling, è necessario specificare determinate proprietà di associazione nel WCF-Custom o WCF-OracleEBS porta di ricezione. Per altre informazioni su come l'adattatore supporta il polling, vedere Supporto per le chiamate in ingresso tramite polling. Per informazioni sulla struttura del messaggio SOAP per le operazioni di polling, vedere Schemi messaggio per le operazioni di polling.

Configurazione di un'operazione di polling con le proprietà di associazione dell'adapter Oracle E-Business

La tabella seguente riepiloga le proprietà di associazione dell'adapter Oracle E-Business usate per configurare l'adapter per ricevere messaggi di modifica dei dati. È necessario specificare queste proprietà di associazione durante la configurazione della porta di ricezione WCF-Custom o WCF-OracleEBS nella console di amministrazione di BizTalk Server.

Binding, proprietà Descrizione
InboundOperationType Specifica se si desidera eseguire un'operazione di polling o notifica in ingresso. Il valore predefinito è Polling.
PolledDataAvailableStatement Specifica l'istruzione SQL eseguita dall'adapter per determinare se i dati sono disponibili per il polling. Solo se è disponibile un record, verrà eseguita la stored procedure specificata per la proprietà di associazione PollingInput .
PollingInterval Specifica l'intervallo, espresso in secondi, in cui l'adapter Oracle E-Business esegue l'istruzione specificata per la proprietà di associazione PolledDataAvailableStatement . Il valore predefinito è 30 secondi. L'intervallo di polling determina l'intervallo di tempo tra i sondaggi successivi. Se l'istruzione viene eseguita entro l'intervallo specificato, l'adattatore rimane in sospensione per il tempo rimanente nell'intervallo.
PollingInput Specifica l'istruzione di polling. Per eseguire il polling usando una stored procedure, è necessario specificare l'intero messaggio di richiesta per questa proprietà di associazione. Il messaggio di richiesta deve essere lo stesso inviato all'adapter per richiamare la stored procedure come operazione in uscita. Il valore predefinito è Null.

Per abilitare il polling, è necessario specificare un valore per la proprietà di associazione PollingInput . L'istruzione di polling viene eseguita solo se sono disponibili dati per il polling, determinato dalla proprietà di associazione PolledDataAvailableStatement .
PollingAction Specifica l'azione per l'operazione di polling. You can determine the polling action for a specific operation from the metadata you generate for the operation using the Consume Adapter Service Add-in.
PostPollStatement Specifica un blocco di istruzioni eseguito dopo l'esecuzione dell'istruzione specificata dalla proprietà di associazione PollingInput .
PollWhileDataFound Specifica se l'adapter Oracle E-Business ignora l'intervallo di polling ed esegue continuamente l'istruzione di polling, se i dati sono disponibili nella tabella di cui viene eseguito il polling. Se nella tabella non sono disponibili dati, l'adattatore viene ripristinato per eseguire l'istruzione di polling all'intervallo di polling specificato. L'impostazione predefinita è false.

Per una descrizione più completa di queste proprietà, vedere Informazioni sulle proprietà di associazione di BizTalk Adapter per Oracle E-Business Suite. Per una descrizione completa di come usare l'adapter Oracle E-Business per eseguire il polling del database Oracle, leggere le sezioni seguenti.

Come illustra il polling in questo argomento

In questo argomento viene illustrato in che modo l'adapter Oracle E-Business supporta la ricezione di messaggi di modifica dei dati tramite stored procedure, creare un progetto BizTalk e generare lo schema per la stored procedure da usare per eseguire il polling del database Oracle. In questo argomento viene usata la stored procedure GET_ACTIVITYS per eseguire il polling della tabella ACCOUNTACTIVITY. Questa stored procedure è disponibile con il pacchetto ACCOUNT_PKG. È possibile eseguire gli script SQL forniti con gli esempi per creare questi oggetti nel database.

Nota

L'orchestrazione in questo argomento esegue il polling della tabella ACCOUNTACTIVITY, ovvero una tabella di database di base creata eseguendo gli script forniti con gli esempi. Per eseguire il polling di qualsiasi altra tabella, incluse le tabelle di interfaccia, è necessario eseguire procedure simili, come descritto in questo argomento.

Per illustrare un'operazione di polling, eseguire le operazioni seguenti:

  • Specificare un'istruzione SELECT per la proprietà di associazione PolledDataAvailableStatement per determinare dove la tabella sottoposta a polling (ACCOUNTACTIVITY) contiene dati. In questo esempio è possibile impostare questa proprietà di associazione come:

    SELECT COUNT (*) FROM ACCOUNTACTIVITY  
    

    Ciò garantisce che l'adapter esegua l'istruzione di polling solo quando la tabella ACCOUNTACTIVITY contiene alcuni record.

  • Eseguire una stored procedure, GET_ACTIVITYS, fornendo il messaggio di richiesta come parte della proprietà di associazione PollingInput . Questa stored procedure recupererà tutte le righe nella tabella ACCOUNTACTIVITY e si riceverà un messaggio di risposta dall'adapter.

  • ESEGUIRE un blocco PL/SQL come parte della proprietà di associazione PostPollStatement . Questa istruzione sposta tutti i dati dalla tabella ACCOUNTACTIVITY a un'altra tabella del database. In questo caso, la volta successiva che verrà eseguito PollingInput , non recupererà dati e quindi la stored procedure GET_ACTIVITYS restituirà un messaggio di risposta vuoto.

  • Finché non vengono aggiunti altri dati alla tabella ACCOUNTACTIVITY, si continueranno a ricevere messaggi di risposta vuoti. È quindi necessario ripopolare la tabella ACCOUNTACTIVITY con nuovi record. A tale scopo, eseguire lo script more_activity_data.sql fornito con gli esempi. Dopo aver eseguito questo script, l'operazione di polling successiva recupererà i nuovi record inseriti nella tabella.

Come ricevere messaggi di modifica dei dati da Oracle

L'esecuzione di un'operazione sul database Oracle tramite l'adattatore Oracle E-Business con BizTalk Server comporta le attività procedurali seguenti descritte in Blocchi predefiniti per creare applicazioni Oracle E-Business Suite. Per configurare l'adattatore per eseguire il polling del database Oracle usando una stored procedure, queste attività sono le seguenti:

  1. Creare un progetto BizTalk e generare lo schema per la stored procedure da usare per il polling.

  2. Creare un messaggio nel progetto BizTalk per la ricezione di messaggi dal database Oracle.

  3. Creare un'orchestrazione per ricevere messaggi dal database Oracle e salvarli in una cartella.

  4. Compilare e distribuire il progetto BizTalk.

  5. Configurare l'applicazione BizTalk creando porte di invio e ricezione fisiche.

    Importante

    Per gli scenari di polling in ingresso è sempre necessario configurare una porta di ricezione unidirezionale. Le porte di ricezione bidirezionali non sono supportate per le operazioni in ingresso.

  6. Avviare l'applicazione BizTalk.

    In questo argomento vengono fornite istruzioni per eseguire queste attività.

Esempio basato su questo argomento

Un esempio, PollingUsingStoredProc, basato su questo argomento viene fornito anche con BizTalk Adapter Pack. Per altre informazioni, vedere Esempi.

Generazione dello schema

È necessario generare lo schema per l'operazione di GET_ACTIVITYS. Eseguire le attività seguenti durante la generazione dello schema usando il componente aggiuntivo Consume Adapter Service .

Definizione di messaggi e tipi di messaggio

Lo schema generato in precedenza descrive i "tipi" necessari per i messaggi nell'orchestrazione. Un messaggio è in genere una variabile, il tipo per il quale è definito dallo schema corrispondente. Dopo aver generato lo schema, è necessario collegarlo ai messaggi dalla visualizzazione Orchestrazione del progetto BizTalk.

Per questo argomento, è necessario creare un messaggio per ricevere messaggi da Oracle.

Seguire questa procedura per creare messaggi e collegarli allo schema.

  1. Aggiungere un'orchestrazione al progetto BizTalk. Dal Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del progetto BizTalk, scegliere Aggiungi e quindi fare clic su Nuovo elemento. Digitare un nome per l'orchestrazione BizTalk e quindi fare clic su Aggiungi.

  2. Aprire la finestra di visualizzazione dell'orchestrazione del progetto BizTalk, se non è già aperta. Fare clic su Visualizza, scegliere Altre finestre e quindi fare clic su Visualizzazione orchestrazione.

  3. Nella visualizzazione orchestrazione fare clic con il pulsante destro del mouse su Messaggi e quindi scegliere Nuovo messaggio.

  4. Fare clic con il pulsante destro del mouse sul messaggio appena creato e quindi scegliere Finestra Proprietà.

  5. Nel riquadro Proprietà per Message_1 eseguire le operazioni seguenti:

    Usare Per
    Identificatore Digitare Ricezione.
    Tipo di messaggio Nell'elenco a discesa espandere Schemi e selezionare Polling.OracleEBSBindingSchema, dove Polling è il nome del progetto BizTalk. OracleEBSBindingSchema è lo schema di risposta generato per la stored procedure di GET_ACTIVITYS .

    Importante: Poiché il polling è un'operazione unidirezionale, lo schema generato dall'adapter non contiene un nodo di risposta e quindi esiste un solo nodo radice nello schema. Se si usano tali schemi per un tipo di messaggio, è necessario identificare lo schema dal nome del file dello schema generato.

    Ad esempio, se si crea lo schema per un'operazione bidirezionale, i nodi nel file dello schema con un nome OracleEBSBindingSchema possono essere "Request" e "Response". Se si vuole creare un messaggio nell'orchestrazione che esegue il mapping allo schema della richiesta, è possibile identificare lo schema nell'elenco cercando OracleEBSBindingSchema.Request. Tuttavia, nel caso dell'operazione di polling, poiché l'unico nodo è "Poll", non è facile identificare lo schema a cui si vuole eseguire il mapping perché gli schemi con singoli nodi non sono elencati come <nomefile> di schema.<rootnodename>. Tali schemi vengono invece elencati solo dal nome del file. In questo caso, l'unico modo per identificare lo schema è dal nome file dello schema, ad esempio OracleEBSBindingSchema.

    Il componente aggiuntivo Del servizio adapter di utilizzo genera lo schema per le operazioni in ingresso e in uscita per la stored procedure di GET_ACTIVITYS. È necessario usare lo schema per l'operazione in ingresso per:

    • Eseguire il mapping del messaggio creato come parte dell'orchestrazione.

    • Per recuperare l'azione è necessario specificare per la proprietà di associazione PollingAction in fase di esecuzione.

      È necessario usare lo schema per l'operazione in uscita per ottenere il messaggio di richiesta che è necessario specificare come parte della proprietà di associazione PollingInput .

Configurazione dell'orchestrazione

È necessario creare un'orchestrazione BizTalk per usare BizTalk Server per ricevere messaggi di modifica dei dati basati sul polling da Oracle. In questa orchestrazione, l'adapter riceve la risposta eseguendo la stored procedure per cui è stato specificato il messaggio di richiesta come parte della proprietà di associazione PollingInput . Il messaggio di risposta per la stored procedure viene salvato in un percorso FILE. Un'orchestrazione tipica per il polling del database Oracle contiene:

  • Ricevere e inviare forme per ricevere messaggi da Oracle e inviare rispettivamente a una porta FILE.

  • Porta di ricezione unidirezionale per ricevere messaggi dal database Oracle.

    Importante

    Per gli scenari di polling in ingresso è necessario configurare sempre una porta di ricezione unidirezionale. Le porte di ricezione bidirezionale non sono supportate per le operazioni in ingresso.

  • Porta di invio unidirezionale per inviare risposte di polling dal database Oracle.

    Un'orchestrazione di esempio è simile alla seguente.

    Orchestrazione per una query di polling per Oracle

Aggiunta di forme di messaggio

Assicurarsi di specificare le proprietà seguenti per ognuna delle forme del messaggio. I nomi elencati nella colonna Shape sono i nomi delle forme del messaggio visualizzate nell'orchestrazione appena menzionata.

Forma Tipo di forma Proprietà
ReceiveMessage Ricevere - Impostare nome su ReceiveMessage

- Impostare Attiva su True
SaveMessage Send - Impostare nome su SaveMessage

Aggiunta di porte

Assicurarsi di specificare le proprietà seguenti per ognuna delle porte logiche. I nomi elencati nella colonna Porta sono i nomi delle porte visualizzate nell'orchestrazione.

Porta Proprietà
OracleReceivePort - Impostare identificatore su OracleReceivePort

- Impostare tipo su OracleReceivePortType

- Impostare il modello di comunicazionesu unidirezionale

- Impostare la direzione di comunicazione su Ricezione
SaveMessagePort - Impostare identificatore su SaveMessagePort

- Impostare tipo su SaveMessagePortType

- Impostare il modello di comunicazionesu unidirezionale

- Impostare la direzione di comunicazione su Invia

Specificare i messaggi per le forme di azione e connettersi alle porte

La tabella seguente specifica le proprietà e i relativi valori che è necessario impostare per specificare i messaggi per le forme di azione e collegare i messaggi alle porte. I nomi elencati nella colonna Shape sono i nomi delle forme del messaggio visualizzate nella orchestrazione menzionata in precedenza.

Forma Proprietà
ReceiveMessage - Impostare il messaggio su Ricezione

- Impostare l'operazione su OracleReceivePort.Polling.Request
SaveMessage - Impostare il messaggio su Ricezione

- Impostare l'operazione su SaveMessagePort.Polling.Request

Dopo aver specificato queste proprietà, le forme e le porte del messaggio sono connesse e la orchestrazione è stata completata.

È ora necessario compilare la soluzione BizTalk e distribuirla in un BizTalk Server. Per altre informazioni, vedere Creazione e esecuzione di orchestrazioni.

Configurazione dell'applicazione BizTalk

Dopo aver distribuito il progetto BizTalk, l'orchestrazione creata in precedenza è elencata nel riquadro Orchestrazioni nella console di amministrazione di BizTalk Server. È necessario usare la console di amministrazione BizTalk Server per configurare l'applicazione. Per una procedura dettagliata, vedere Procedura dettagliata: Distribuzione di un'applicazione BizTalk di base.

La configurazione di un'applicazione comporta:

  • Selezione di un host per l'applicazione.

  • Mapping delle porte create nell'orchestrazione alle porte fisiche nella console di amministrazione di BizTalk Server. Per questa orchestrazione è necessario:

    • Definire un percorso sul disco rigido e una porta FILE corrispondente in cui l'orchestrazione BizTalk rilascia i messaggi da Oracle. Questi messaggi saranno in risposta all'istruzione di polling specificata per la porta di ricezione.

    • Definire un WCF-Custom fisico o WCF-OracleEBS porta di ricezione unidirezionale. Questa porta esegue il polling del database Oracle. Per informazioni su come creare porte di ricezione, vedere Configurare manualmente un'associazione di porte fisiche all'adapter Oracle E-Business. Assicurarsi di specificare le proprietà di associazione seguenti per la porta di ricezione.

      Binding, proprietà Valore
      InboundOperationType Impostare questa opzione su Polling.
      PolledDataAvailableStatement Per questo esempio, impostare questa proprietà di associazione su:

      SELECT COUNT (*) FROM ACCOUNTACTIVITY

      Ciò garantisce che l'adapter esegua l'istruzione di polling solo quando la tabella ACCOUNTACTIVITY contiene alcuni record.
      PollingAction Recuperare l'azione di polling dallo schema generato per il messaggio in ingresso per la procedura di GET_ACTIVITYS. Per questo esempio, impostare questa proprietà di associazione su PollingPackageApis/APPS/ACCOUNT_PKG/GET_ACTIVITYS.
      PollingInput Per questa proprietà di associazione, specificare il messaggio di richiesta per richiamare la stored procedure GET_ACTIVITYS. È possibile ottenere il messaggio di richiesta dallo schema per l'operazione in uscita generata dal componente aggiuntivo Del servizio adapter. È necessario specificare l'intero messaggio XML come input per questa proprietà di associazione. Per questo esempio, impostare questa proprietà di associazione su:

      <GET_ACTIVITYS xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/PackageApis/APPS/ACCOUNT_PKG"> <INRECS>OPEN ? FOR SELECT * FROM ACCOUNTACTIVITY</INRECS> </GET_ACTIVITYS>

      La stored procedure GET_ACTIVITYS accetta un CURSORe DI input REF come parametro.
      PostPollStatement Specificare l'istruzione post-poll per spostare tutti i dati dalla tabella ACCOUNTACTIVITY a un'altra tabella. Per questo esempio, impostare questa proprietà di associazione su:

      BEGIN ACCOUNT_PKG.PROCESS_ACTIVITY(); END;

      Per altre informazioni sulle diverse proprietà di associazione, vedere Informazioni sulle proprietà di associazione BizTalk per Oracle E-Business Suite Binding.

      Importante

      Se si esegue il polling di una tabella di interfaccia, è necessario impostare il contesto dell'applicazione specificando le proprietà di associazione necessarie. Per altre informazioni sull'impostazione del contesto dell'applicazione, vedere Impostare contesto applicazione.

      Nota

      È consigliabile configurare il livello di isolamento delle transazioni e il timeout delle transazioni durante l'esecuzione di operazioni in ingresso usando l'adapter Oracle E-Business. È possibile farlo aggiungendo il comportamento del servizio durante la configurazione della porta di ricezione WCF-Custom o WCF-OracleEBS. Per istruzioni su come aggiungere il comportamento del servizio, vedere Configurare il livello di isolamento delle transazioni e il timeout delle transazioni con Oracle E-Business Suite.

Avvio dell'applicazione

È necessario avviare l'applicazione BizTalk per il polling del database Oracle. Per istruzioni sull'avvio di un'applicazione BizTalk, vedere Come avviare un'orchestrazione.

In questa fase assicurarsi di:

  • Il WCF-Custom o WCF-OracleEBS porta di ricezione unidirezionale, che esegue il polling di Oracle usando la stored procedure specificata per la proprietà di associazione PollingInput , è in esecuzione.

  • La porta di invio FILE, che riceve messaggi dal database Oracle, è in esecuzione.

  • L'orchestrazione BizTalk per l'operazione è in esecuzione.

Esecuzione dell'operazione

Dopo aver eseguito l'applicazione, il set di azioni seguente viene eseguito nella stessa sequenza:

  • L'adapter esegue polledDataAvailableStatement che restituisce un valore positivo che indica l'adapter per eseguire l'istruzione specificata per la proprietà di associazione PollingInput .

  • L'adapter esegue la stored procedure GET_ACTIVITYS specificata per la proprietà di associazione PollingInput e restituisce tutte le righe nella tabella ACCOUNTACTIVITY. La risposta dal database Oracle è simile alla seguente:

    <?xml version="1.0" encoding="utf-8" ?>   
    <GET_ACTIVITYS xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/PollingPackageApis/APPS/ACCOUNT_PKG">  
      <OUTRECS>  
        <OUTRECSRecord xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/ReferencedRecordTypes/APPS/ACCOUNT_PKG/GET_ACTIVITYS/APPS/GET_ACTIVITYS">  
          <TID>1</TID>   
          <ACCOUNT>100001</ACCOUNT>   
          <AMOUNT>500</AMOUNT>   
          <DESCRIPTION />   
          <TRANSDATE>2008-06-21T15:52:19</TRANSDATE>   
          <PROCESSED>n</PROCESSED>   
        </OUTRECSRecord>  
        <OUTRECSRecord xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/ReferencedRecordTypes/APPS/ACCOUNT_PKG/GET_ACTIVITYS/APPS/GET_ACTIVITYS">  
          ......  
          ......   
        </OUTRECSRecord>  
        ......  
        ......  
      </OUTRECS>  
    </GET_ACTIVITYS>  
    
  • L'adapter esegue l'istruzione post-poll, che sposta tutti i dati dalla tabella ACCOUNTACTIVITY a un'altra tabella.

  • Dopo l'intervallo di polling, l'adapter esegue di nuovo PolledDataAvailableStatement. Poiché la tabella ACCOUNTACTIVITY non contiene record, PolledDataAvailableStatement non restituisce un valore positivo e quindi l'adapter non esegue l'istruzione specificata per la proprietà di associazione PollingInput . Di conseguenza, il client dell'adapter non riceve alcun messaggio di polling.

  • Il client dell'adapter non riceverà più messaggi di polling finché alcuni record non vengono inseriti in modo esplicito nella tabella ACCOUNTACTIVITY. Per inserire altri record, è possibile eseguire lo script more_activity_data.sql fornito con gli esempi. Dopo aver eseguito questo script, la prossima volta che PolledDataAvailableStatement viene eseguito, restituisce un valore positivo. Di conseguenza, l'adapter esegue di nuovo l'istruzione di polling e i client dell'adapter ricevono di nuovo un messaggio di polling.

Nota

L'adapter Oracle E-Business continuerà a eseguire il polling fino a disabilitare in modo esplicito la porta di ricezione dalla console di amministrazione di BizTalk Server.

Procedure consigliate

Dopo aver distribuito e configurato il progetto BizTalk, è possibile esportare le impostazioni di configurazione in un file XML denominato file binding. Dopo aver generato un file di associazioni, è possibile importare le impostazioni di configurazione dal file in modo che non sia necessario creare le porte di invio e le porte di ricezione per la stessa orchestrazione. Per altre informazioni sui file di associazione, vedere Riutilizzare le associazioni dell'adapter SQL.

Vedere anche

Eseguire il polling di Oracle E-Business Suite usando BizTalk Server