Condividi tramite


Uso di tabelle con tipi di dati di grandi dimensioni in Oracle E-Business Suite

L'adapter Oracle E-Business consente ai client adapter di eseguire operazioni su tabelle e viste di interfaccia con tipi di dati di grandi dimensioni, ad esempio BLOB, CLOB, NCLOB e BFILE.

  • Per le colonne di tipo BLOB, CLOB e NCLOB, l'adapter consente ai client di leggere e aggiornare i dati. L'adapter espone Read_<LOBColName> e le operazioni Update_<LOBColName> rispettivamente per leggere e aggiornare i dati, dove <LOBColName> è il nome della colonna con tipo di dati di grandi dimensioni. Se in una singola tabella di interfaccia sono presenti più colonne con tipo di dati di grandi dimensioni, l'adattatore espone tutte le operazioni di lettura e aggiornamento per tale tabella di interfaccia.

  • Per le colonne di tipo BFILE, i client dell'adapter possono leggere solo i dati. L'adattatore espone l'operazione Read_<LOBColName> per leggere i dati dalle colonne di tipo BFILE. Se in una singola tabella di interfaccia sono presenti più colonne con tipo di dati di grandi dimensioni, l'adattatore espone tutte le operazioni di lettura per la tabella dell'interfaccia.

    Per altre informazioni su queste operazioni, vedere Operazioni su tabelle di interfaccia, viste di interfaccia, tabelle e viste che contengono dati LOB. Per informazioni sugli schemi dei messaggi per l'esecuzione di queste operazioni, vedere Schemi messaggio per operazioni LOB speciali.

Come eseguire operazioni sulle colonne con tipi di dati di grandi dimensioni

L'esecuzione di un'operazione su Oracle E-Business Suite tramite l'adapter Oracle E-Business con BizTalk Server prevede attività procedurali descritte in Blocchi predefiniti per creare applicazioni Oracle E-Business Suite. Per eseguire operazioni su tabelle di interfaccia e viste dell'interfaccia in Oracle E-Business Suite che contengono tipi di dati di grandi dimensioni, queste attività sono:

  1. Creare un progetto BizTalk e generare lo schema per l'operazione (Read_<LOBColName> o Update_<LOBColName>) da richiamare su una tabella o una vista.

  2. Creare messaggi nel progetto BizTalk per l'invio e la ricezione di messaggi da Oracle E-Business Suite.

  3. Creare un'orchestrazione per richiamare l'operazione nella tabella o nella vista dell'interfaccia.

  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à.

Come questo argomento illustra la lettura e la scrittura di dati in colonne di tipi di dati di grandi dimensioni

Per illustrare la lettura e la scrittura di dati in colonne di tipi di dati di grandi dimensioni, in questo argomento vengono fornite istruzioni per creare un'orchestrazione che esegue le operazioni seguenti:

  • Aggiornare la colonna PHOTO (di tipo di dati BLOB) della tabella CUSTOMER.

  • Leggere il valore della colonna PHOTO per il record aggiornato.

    L'orchestrazione è progettata in modo tale che, durante l'esecuzione, tu debba fornire solo il messaggio di richiesta per l'operazione di aggiornamento. Il messaggio per l'operazione di lettura verrà costruito all'interno dell'operazione.

Annotazioni

L'orchestrazione in questo argomento legge e aggiorna i dati dalla tabella CUSTOMER, ovvero una tabella di database di base creata eseguendo gli script forniti con gli esempi. È necessario eseguire procedure simili come descritto in questo argomento per eseguire operazioni di lettura o aggiornamento su qualsiasi tabella di interfaccia o vista interfaccia.

Generazione dello schema

In questo argomento viene illustrato come eseguire operazioni di lettura e aggiornamento di base su una colonna PHOTO (di tipo di dati BLOB) in una tabella CUSTOMER. Questa tabella viene creata eseguendo gli script forniti con gli esempi.

Per illustrare come leggere e scrivere dati in una colonna di tipo di dati di grandi dimensioni, lo schema viene generato per le operazioni di Update_PHOTO e Read_PHOTO per la tabella CUSTOMER. È necessario creare un progetto BizTalk e usare il componente aggiuntivo Consume Adapter Service per generare lo schema. Per altre informazioni su come generare schemi, vedere Recupero di metadati per Oracle E-Business Suite Operations 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. È ora necessario creare messaggi per l'orchestrazione e collegarli agli schemi generati nel passaggio precedente.

In questa orchestrazione è necessario creare quattro messaggi: un set di ricezione-risposta per l'operazione Update_PHOTO e l'altro set di ricezione-risposta per l'operazione Read_PHOTO.

  1. Aggiungere un'orchestrazione al progetto BizTalk. In 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 Visualizzazione dell'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.

  3. In 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 il Message_1 eseguire le operazioni seguenti:

    Usare questo Per farlo
    Identificatore Tipo UpdateMessage
    Tipo di messaggio Nell'elenco a discesa espandere Schemi e quindi selezionare LOBOperations.OracleEBSBinding.Update_PHOTO, dove LOBOperations è il nome del progetto BizTalk. OracleEBSBindingSchema è lo schema generato per richiamare l'operazione di Update_PHOTO nella tabella CUSTOMER.
  6. Ripetere il passaggio 3 per creare tre nuovi messaggi. Nel riquadro Proprietà per il nuovo messaggio eseguire le operazioni seguenti:

    Impostare l'identificatore su Impostare Tipo di messaggio su
    UpdateResponse LOBOperations.OracleEBSBinding.Update_PHOTOResponse
    LeggiMessaggio LOBOperations.OracleEBSBinding1.Read_PHOTO
    ReadResponse LOBOperations.OracleEBSBinding1.Read_PHOTOResponse

Configurazione dell'orchestrazione

In questa orchestrazione, l'adapter riceve un messaggio di richiesta per eseguire un'operazione di Update_PHOTO in una tabella CUSTOMER. Il messaggio di notifica viene ricevuto in un percorso FILE. L'adapter utilizza questo messaggio e lo passa al database Oracle. La risposta dal database Oracle viene salvata in un'altra posizione. Una volta ricevuta la risposta, l'orchestrazione costruisce un messaggio per richiamare l'operazione di Read_PHOTO, che legge il valore della colonna PHOTO aggiornato dall'operazione di Update_PHOTO. La risposta per questo messaggio viene ricevuta anche nella stessa posizione FILE.

L'orchestrazione deve quindi contenere quanto segue:

  • Porta di ricezione FILE per inserire un messaggio di richiesta per l'operazione Update_PHOTO.

  • Un WCF-Custom o WCF-OracleEBS porta di trasmissione bidirezionale per inviare messaggi per eseguire l'operazione Update_PHOTO.

  • Un porta di trasmissione bidirezionale WCF-Custom o WCF-OracleEBS per inviare messaggi per eseguire l'operazione Read_PHOTO. È anche possibile eseguire sia Read_PHOTO che Update_PHOTO usando la stessa WCF-Custom o WCF-OracleEBS porta di trasmissione. In questo argomento si userà una singola porta di trasmissione per entrambe le operazioni.

  • Forma Costruisci messaggio per costruire messaggi all'interno dell'orchestrazione.

  • Porta di trasmissione FILE per salvare i messaggi di risposta per le operazioni di Update_PHOTO e Read_PHOTO .

  • Ricevere e inviare forme.

    Un'orchestrazione di esempio è simile alla seguente.

    Orchestrazione per operare su una colonna di tipo di dati di grandi dimensioni

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à
RiceviMessaggioDiAggiornamento Ricevere - Impostare Nome su ReceiveUpdateMessage
- Impostare Attiva su Vero
InviaMessaggioDiAggiornamento Invia - Impostare Nome su SendUpdateMessage
RispostaRiceviAggiornamento Ricevere - Impostare Name su ReceiveUpdateResponse
InviaRispostaAggiornamento Ricevere - Imposta Name su SendUpdateResponse
SendReadMessage Invia - Impostare Nome su SendReadMessage
RiceviRispostaLettura Ricevere - Imposta Nome su ReceiveReadResponse
SaveReadResponse Invia - Imposta Name su SaveReadResponse

Aggiunta della forma del messaggio costrutto

È possibile utilizzare la forma Costruisci messaggio per generare un messaggio di richiesta all'interno dell'orchestrazione per eseguire l'operazione di Read_PHOTO . A tale scopo, è necessario aggiungere una forma Costruisci messaggio e al suo interno, una forma Assegnazione messaggio all'orchestrazione. Per questo esempio, la forma Assegnazione messaggi richiama il codice che genera un messaggio inviato a Oracle E-Business Suite per eseguire l'operazione di Read_PHOTO . La forma Assegnazione messaggi imposta anche l'azione per l'invio del messaggio a Oracle E-Business Suite.

Per la forma del messaggio di costruzione, impostare la proprietà Message Construct su ReadMessage.

Il codice per generare la risposta potrebbe far parte della stessa soluzione di Visual Studio del progetto BizTalk. Un codice di esempio per la generazione di un messaggio di risposta è simile al seguente.

namespace MessageCreator  
{  
    public class MessageCreator  
    {  
        private static XmlDocument Message;  
        private static string XmlFileLocation;  
        private static string ResponseDoc;  
  
        public static XmlDocument XMLMessageCreator()  
        {  
            XmlFileLocation = "C:\\TestLocation\\MessageIn";  
            try  
            {  
                ResponseDoc = (Directory.GetFiles(XmlFileLocation, "*.xml", SearchOption.TopDirectoryOnly))[0];  
            }  
            catch (Exception ex)  
            {  
                Console.WriteLine("Trying to get XML from: " + XmlFileLocation);  
                Console.WriteLine("EXCEPTION: " + ex.ToString());  
                throw ex;  
            }  
            //Create Message From XML  
            Message = new XmlDocument();  
            Message.PreserveWhitespace = true;  
            Message.Load(ResponseDoc);  
            return Message;  
        }   
    }  
}  

Affinché l'estratto di codice precedente possa generare un messaggio di richiesta, è necessario disporre di un messaggio di richiesta XML (per l'operazione di Read_PHOTO ) nel percorso specificato per la XmlFileLocation variabile.

Annotazioni

Dopo aver compilato il progetto, MessageCreator.dll verrà creato nella directory del progetto. È necessario aggiungere questa DLL alla Global Assembly Cache (GAC). Inoltre, è necessario aggiungere il MessageCreator.dll come riferimento nel progetto BizTalk.

Aggiungere l'espressione seguente per richiamare questo codice dalla forma Assegnazione messaggio e impostare l'azione per il messaggio. Per aggiungere un'espressione, fare doppio clic sulla forma Assegnazione messaggi per aprire l'editor di espressioni.

ReadMessage = MessageCreator.MessageCreator.XMLMessageCreator();  
ReadMessage(WCF.Action) = "Tables/ReadLOB/SCOTT/CUSTOMER/PHOTO ";  

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.

Porto Proprietà
MessageIn - Imposta Identifier su MessageIn
- Imposta Tipo su MessageInType
- Impostare il modello di comunicazione su unidirezionale
- Impostare la direzione di comunicazione su Ricevi
LOBPort - Impostare l'identificatore su LOBPort
- Impostare il tipo su LOBPortType
- Impostare il modello di comunicazione su Request-Response
- Impostare la direzione di comunicazione su Send-Receive
- Creare un'operazione Read_LOB. Questa operazione viene utilizzata per i messaggi per leggere i valori dalle colonne di tipo di dati di grandi dimensioni.
- Creare un'operazione Update_LOB. Questa operazione viene utilizzata per i messaggi per aggiornare i valori nelle colonne di tipo di dati di grandi dimensioni.
ResponseOut - Impostare l'identificatore su ResponseOut
- Impostare il tipo su ResponseOutType
- Impostare il modello di comunicazione su unidirezionale
- Impostare la direzione di comunicazione su Send
- Creare un'operazione Read_LOB. Questa operazione viene utilizzata per i messaggi per leggere i valori dalle colonne di tipo di dati di grandi dimensioni.
- Creare un'operazione Update_LOB. Questa operazione viene utilizzata per i messaggi per aggiornare i valori nelle colonne di tipo di dati di grandi dimensioni.

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 messaggio visualizzate nell'orchestrazione indicata in precedenza.

Forma Proprietà
RiceviMessaggioDiAggiornamento - Imposta messaggio su UpdateMessage
- Impostare l'operazione su MessageIn.Update_LOB.Richiesta
InviaMessaggioDiAggiornamento - Imposta messaggio su UpdateMessage
- Impostare Operation su LOBPort.Update_LOB.Request
RispostaRiceviAggiornamento - Imposta messaggio su UpdateResponse
- Impostare l'operazione su LOBPort.Update_LOB.Risposta
InviaRispostaAggiornamento - Imposta messaggio su UpdateResponse
- Impostare l'operazione su ResponseOut.Update_LOB.Request
SendReadMessage - Imposta messaggio su ReadMessage
- Impostare Operazione su LOBPort.Read_LOB.Richiesta
RiceviRispostaLettura - Imposta messaggio su ReadResponse
- Impostare Operazione su LOBPort.Read_LOB.Response
SendReadResponse - Imposta messaggio su ReadResponse
- Impostare l'operazione su ResponseOut.Read_LOB.Request

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

È ora necessario compilare la soluzione BizTalk e distribuirla in bizTalk Server. Per altre informazioni, vedere Compilazione ed 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. Per configurare l'applicazione, è necessario usare la console di amministrazione di BizTalk Server. 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.

  • Mappatura 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 si rilascia 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-OracleEBS porta di trasmissione per inviare messaggi al database Oracle. È inoltre necessario specificare l'azione nella porta di trasmissione. Per informazioni su come creare porte, vedere Configurazione manuale di un'associazione di porte fisiche all'adapter Oracle E-Business. È necessario prendere in considerazione le considerazioni seguenti durante la configurazione della porta di trasmissione WCF-Custom o WCF-OracleEBS.

      • Un'operazione Update_<LOBColName> deve essere eseguita come parte della transazione. Per garantire questo, la proprietà di associazione UseAmbientTransaction deve essere impostata su True.

      • Poiché la porta di trasmissione WCF-Custom o WCF-OracleEBS invia e riceve messaggi conformi a più schemi ed esegue due operazioni, è necessario impostare un'azione dinamica per entrambe le operazioni. Per altre informazioni sulle azioni, vedere Configurare l'azione SOAP per Oracle E-Business Suite. Per questa orchestrazione, l'azione deve essere impostata come segue:

        <BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">  
          <Operation Name="Update_LOB" Action="Tables/UpdateBlob/SCOTT/CUSTOMER/PHOTO" />  
          <Operation Name="Read_LOB" Action="Tables/ReadLOB/SCOTT/CUSTOMER/PHOTO" />  
        </BtsActionMapping>  
        

        Importante

        Si noti che il nome dell'operazione in un'azione dinamica deve corrispondere al nome dell'operazione specificato nelle porte logiche durante la creazione dell'orchestrazione BizTalk.

      Annotazioni

      Per eseguire operazioni su tabelle di interfaccia o viste dell'interfaccia, è necessario impostare anche il contesto dell'applicazione. Per altre informazioni su come l'adapter supporta l'impostazione del contesto dell'applicazione, vedere Impostare il contesto dell'applicazione. È possibile impostare il contesto dell'applicazione specificando le proprietà di associazione o impostando le proprietà del contesto del messaggio esposte dall'adapter Oracle E-Business. Per istruzioni su come impostare le proprietà di associazione, vedere Configurare le proprietà di associazione per Oracle E-Business Suite. Per istruzioni su come impostare il contesto dell'applicazione usando le proprietà del contesto del messaggio, vedere Configurare il contesto dell'applicazione usando le proprietà del contesto del messaggio in Oracle E-Business Suite.

      Annotazioni

      La generazione dello schema tramite il componente aggiuntivo Consume Adapter Service BizTalk Project crea anche un file di associazione che contiene informazioni sulle porte e le azioni da impostare per tali porte. È possibile importare questo file di associazione dalla console di amministrazione di BizTalk Server per creare porte di trasmissione (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 E-Business Suite.

Avvio dell'applicazione

Prima di avviare l'orchestrazione BizTalk, assicurarsi che il codice XML della richiesta per invocare l'operazione Read_PHOTO sia disponibile in C:\TestLocation\MessageIn. Il codice XML della richiesta deve essere simile al seguente:

<Read_PHOTO xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/Tables/SCOTT/CUSTOMER">  
  <FILTER>WHERE NAME='Mindy Martin'</FILTER>  
</Read_PHOTO>  

Annotazioni

Il messaggio di richiesta ha un filtro sul nome specifico perché nel messaggio di richiesta per Update_PHOTO operazione, il valore per la colonna PHOTO viene aggiornato per lo stesso nome. L'operazione di lettura leggerà quindi lo stesso valore inserito usando l'operazione di aggiornamento.

È ora necessario avviare l'applicazione BizTalk per leggere e scrivere valori di tipi di dati di grandi dimensioni da un 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 è attiva.

  • La porta di invio FILE per la ricezione dei messaggi di risposta dall'orchestrazione è attiva.

  • La porta di trasmissione WCF-Custom o WCF-OracleEBS che invia messaggi al database Oracle è in esecuzione.

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

Esecuzione dell'operazione

Dopo aver avviato l'applicazione, è necessario inoltrare un messaggio di richiesta alla posizione di ricezione FILE. Lo schema per il messaggio di richiesta deve essere conforme allo schema per l'operazione di Update_PHOTO generata in precedenza. Ad esempio, un messaggio di richiesta che aggiorna la colonna PHOTO della tabella CUSTOMER è simile al seguente:

<Update_PHOTO xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/Tables/SCOTT/CUSTOMER">  
  <FILTER>WHERE Name='Mindy Martin'</FILTER>  
  <DATA>U2FtcGxlIERhdGE=</DATA>  
</Update_PHOTO>  

Annotazioni

Durante l'aggiornamento delle colonne BLOB, l'elemento DATA deve contenere sempre un valore con codifica Base64. Per CLOB e NCLOB, l'elemento DATA può avere valori stringa.

Il messaggio di richiesta precedente aggiorna il valore nella colonna PHOTO per il record corrispondente alla clausola WHERE. Per altre informazioni sullo schema dei messaggi per l'esecuzione di operazioni su tipi di dati di grandi dimensioni tramite l'adapter Oracle E-Business, vedere Schemi messaggio per operazioni su tipi di dati di grandi dimensioni.

L'orchestrazione utilizza il messaggio e lo invia al database Oracle. La risposta del database Oracle viene salvata nell'altro percorso FILE definito come parte dell'orchestrazione. Ad esempio, la risposta del database Oracle per il messaggio di richiesta precedente è simile alla seguente:

<?xml version="1.0" encoding="utf-8"?>  
<Update_PHOTOResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/Tables/SCOTT/CUSTOMER" />  

L'orchestrazione crea ora un messaggio di richiesta per l'operazione di Read_PHOTO usando il messaggio di richiesta disponibile in C:\TestLocation\MessageIn. Il messaggio di richiesta viene inviato al database Oracle e la risposta viene salvata nello stesso percorso FILE. La risposta per l'operazione di lettura nella colonna PHOTO è simile alla seguente:

<?xml version="1.0" encoding="utf-8"?>  
<Read_PHOTOResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/Tables/SCOTT/CUSTOMER">  
  <Read_PHOTOResult>U2FtcGxlIERhdGE=</Read_PHOTOResult>  
</Read_PHOTOResponse>  

Annotazioni

Si noti che la risposta contiene lo stesso valore per la colonna PHOTO passata nell'operazione di Update_PHOTO .

Migliori pratiche

Dopo aver distribuito e configurato il progetto BizTalk, è possibile esportare le impostazioni di configurazione in un file XML denominato file di associazione. Dopo aver generato un file di associazione, è possibile importare le impostazioni di configurazione dal file, in modo che non sia necessario creare elementi come le porte di trasmissione e le porte di ricezione per la stessa orchestrazione. Per altre informazioni sui file di associazione, vedere Riutilizzare le associazioni di adattatori con Oracle E-Business Suite.

Vedere anche

Sviluppare applicazioni BizTalk usando l'adapter Oracle E-Business Suite