Condividi tramite


Richiamare funzioni e procedure nel database Oracle usando BizTalk Server

I client adapter possono richiamare funzioni e procedure in un database Oracle usando l'adapter Oracle Database con BizTalk Server. L'adattatore Oracle Database presenta procedure, funzioni e pacchetti come operazioni. L'adapter Oracle Database consente anche ai client dell'adapter di richiamare:

Come richiamare funzioni in un database Oracle?

L'esecuzione di un'operazione su un database Oracle tramite l'adapter Oracle Database con BizTalk Server comporta attività procedurali descritte in Blocchi predefiniti per sviluppare applicazioni BizTalk con Oracle Database. Per richiamare una funzione in un database Oracle, queste attività sono:

  1. Creare un progetto BizTalk e generare lo schema per la funzione che si vuole richiamare in un database Oracle.

  2. Creare messaggi nel progetto BizTalk per l'invio e la ricezione di messaggi dal database Oracle.

  3. Creare un'orchestrazione per richiamare la funzione nel database Oracle.

  4. Compilare e distribuire il progetto BizTalk.

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

  6. Avviare l'applicazione BizTalk.

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

Esempio basato su questo argomento

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

Generazione dello schema

In questo argomento, per illustrare come richiamare una funzione, verrà richiamata la funzione CREATE_ACCOUNT nello schema SCOTT\Package\ACCOUNT_PKG. Questo pacchetto viene creato nello schema SCOTT eseguendo gli script SQL forniti con gli esempi. La funzione CREATE_ACCOUNT tiene conto e indirizza le informazioni come input e crea record nelle tabelle ACCOUNT e CUSTOMER. SE il record esiste già, la funzione restituisce zero; in caso contrario, la funzione restituisce l'ID account. Per altre informazioni sugli esempi e sugli script SQL, vedere Esempi di schemi.

Per richiamare la funzione CREATE_ACCOUNT, è necessario generare lo schema per la stessa funzione nello schema SCOTT\Package\ACCOUNT_PKG. Per altre informazioni su come generare lo schema, vedere Recuperare i metadati per le operazioni di Oracle Database in Visual Studio .

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. È necessario collegare lo schema generato nel primo passaggio ai messaggi dalla finestra Visualizzazione orchestrazione del progetto BizTalk.

Per questo argomento, è necessario creare due messaggi, uno per inviare una richiesta al database Oracle e l'altra per ricevere una risposta.

Seguire questa procedura per creare messaggi e collegarli allo schema:

  1. Aprire la finestra Visualizzazione orchestrazione del progetto BizTalk, se non è già aperta. A tale scopo, fare clic su Visualizza, scegliere Altre finestre e quindi fare clic su Visualizzazione orchestrazione.

  2. In Visualizzazione orchestrazione fare clic con il pulsante destro del mouse su Messaggi e quindi scegliere Nuovo messaggio.

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

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

    Usare Per
    Identificatore Digitare Request.Type Request.
    Tipo di messaggio Nell'elenco a discesa espandere Schemi e quindi selezionare InvokeFunction.OracleDBBindingSchema.CREATE_ACCOUNT, dove InvokeFunction è il nome del progetto BizTalk. OracleDBBindingSchema è lo schema generato per la funzione CREATE_ACCOUNT.
  5. Ripetere il passaggio precedente per creare un nuovo messaggio. Nel riquadro Proprietà per il nuovo messaggio eseguire le operazioni seguenti:

    Usare Per
    Identificatore Tipo Risposta.
    Tipo di messaggio Nell'elenco a discesa espandere Schemi e quindi selezionare InvokeFunction.OracleDBBindingSchema.CREATE_ACCOUNTResponse.

Configurazione dell'orchestrazione

È necessario creare un'orchestrazione BizTalk per usare BizTalk Server per richiamare le funzioni in un database Oracle. In questa orchestrazione si rilascia un messaggio di richiesta in una posizione di ricezione definita. L'adapter Oracle Database utilizza questo messaggio e lo passa al database Oracle tramite ODP. La risposta dal database Oracle viene salvata in un'altra posizione. Un'orchestrazione tipica per richiamare funzioni e procedure in un database Oracle contiene:

  • Inviare e ricevere forme per inviare messaggi al database Oracle e ricevere risposte.

  • Porta di ricezione unidirezionale per ricevere messaggi di richiesta da inviare al database Oracle.

  • Porta di trasmissione bidirezionale per inviare messaggi di richiesta al database Oracle e ricevere risposte.

  • Porta di trasmissione unidirezionale per inviare le risposte dal database Oracle a una cartella.

    Un'orchestrazione di esempio è simile alla seguente:

    Orchestrazione per richiamare una funzione in Oracle

Aggiunta di forme messaggio

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

Forma Tipo di forma Proprietà
ReceiveMessage Ricevere - Impostare Il nome su ReceiveMessage
- Impostare Attiva su True
SendMessage Send - Impostare Il nome su SendMessage
ReceiveResponse Ricevere - Impostare il nome su ReceiveResponse
- Impostare Attiva su False
SendResponse Send - Impostare il nome su SendResponse

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à
FileIn - Impostare identificatore su FileIn
- Impostare tipo su FileInType
- Impostare il modello di comunicazionesu unidirezionale
- Impostare la direzione di comunicazione su Ricezione
LOBPort - Impostare identificatore su LOBPort
- Impostare tipo su LOBPortType
- Impostare il modello di comunicazione su Request-Response
- Impostare la direzione di comunicazione su Send-Receive
SaveResponse - Impostare identificatore su SaveResponse
- Impostare tipo su SaveResponseType
- Impostare il modello di comunicazionesu unidirezionale
- Impostare la direzione di comunicazione su Invia

Specificare i messaggi per le forme di azione e connetterli 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 messaggio su richiesta
- Impostare l'operazione su FileIn.Function.Request
SendMessage - Impostare messaggio su richiesta
- Impostare l'operazione su LOBPort.Function.Request
ReceiveResponse - Impostare messaggio su risposta
- Impostare l'operazione su LOBPort.Function.Response
SendResponse - Impostare messaggio su risposta
- Impostare l'operazione su SaveResponse.Function.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 verrà visualizzato un messaggio di richiesta. L'orchestrazione BizTalk utilizzerà il messaggio di richiesta e lo invierà al database Oracle.

    • Definire un percorso sul disco rigido e una porta file corrispondente in cui l'orchestrazione BizTalk rilascia il messaggio di risposta contenente la risposta dal database Oracle.

    • Definire un WCF-Custom fisico o WCF-OracleDB porta di invio per inviare messaggi al database Oracle. È anche necessario specificare l'azione nella porta di invio. Per informazioni su come creare WCF-Custom o WCF-OracleDB porte, vedere Configurare manualmente un'associazione di porte fisiche all'adapter di database Oracle.

      Nota

      La generazione dello schema usando il componente aggiuntivo Del progetto BizTalk del servizio adapter crea anche un file di associazione contenente informazioni sulle porte e sulle azioni da impostare per tali porte. È possibile importare questo file di associazione dalla console di amministrazione di BizTalk Server per creare porte di invio (per le chiamate in uscita) o le porte di ricezione (per le chiamate in ingresso). Per altre informazioni, vedere Configurare un'associazione di porte fisiche usando un file di associazione di porte a Oracle Database.

Avvio dell'applicazione

È necessario avviare l'applicazione BizTalk per richiamare una funzione in una tabella di database Oracle. Per istruzioni sull'avvio di un'applicazione BizTalk, vedere Come avviare un'orchestrazione.

In questa fase assicurarsi di:

  • La porta di ricezione FILE per ricevere messaggi di richiesta per l'orchestrazione è in esecuzione.

  • La porta di invio FILE per ricevere i messaggi di risposta dall'orchestrazione è in esecuzione.

  • Il WCF-Custom o WCF-OracleDB porta di invio per inviare messaggi al database Oracle è in esecuzione.

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

Esecuzione dell'operazione

Dopo aver eseguito l'applicazione, è necessario eliminare un messaggio di richiesta nel percorso di ricezione FILE. Lo schema per il messaggio di richiesta deve essere conforme allo schema per la funzione generata in precedenza. Per altre informazioni sullo schema dei messaggi per richiamare le funzioni tramite l'adattatore Oracle Database, vedere Schemi di messaggi per funzioni e procedure di richiesta.

Ad esempio, il messaggio di richiesta per richiamare la funzione di CREATE_ACCOUNT è:

<CREATE_ACCOUNT xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">  
  <ACCT>  
    <ACCTID xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT"></ACCTID>  
    <NAME xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">John Smith</NAME>  
    <BALANCE xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">10000</BALANCE>  
  </ACCT>  
  <ADDR>  
    <STREET xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">BelRed Road</STREET>  
    <CITY xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">Redmond</CITY>  
    <STATE xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">WA</STATE>  
  </ADDR>  
</CREATE_ACCOUNT>  

L'orchestrazione usa il messaggio e lo invia al database Oracle. La risposta dal database Oracle viene salvata nell'altra posizione FILE definita come parte dell'orchestrazione. Ad esempio, la risposta dal database Oracle per il messaggio di richiesta precedente è:

\<?xml version="1.0" encoding="utf-8"?>  
<CREATE_ACCOUNTResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">  
<CREATE_ACCOUNTResult>[ID]</CREATE_ACCOUNTResult>  
</CREATE_ACCOUNTResponse>  

Dove, [ID] è l'ID dell'account creato dalla funzione.

Possibili eccezioni

Per informazioni sulle eccezioni che potrebbero verificarsi richiamando funzioni e procedure usando BizTalk Server, vedere Eccezioni e gestione degli errori.

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, le porte di ricezione e così via per la stessa orchestrazione. Per altre informazioni sui file di associazione, vedere Riutilizzare le associazioni dell'adapter di database Oracle.

Vedere anche

Blocchi predefiniti per sviluppare applicazioni BizTalk con Oracle Database