Condividi tramite


Passaggio 7 (locale): Creare un'orchestrazione

In base allo scenario aziendale, dopo BizTalk Server riceve il messaggio dell'ordine di vendita dalla coda del bus di servizio, deve verificare se la quantità ordinata nel messaggio è maggiore di 100. Se la quantità è maggiore di 100, il messaggio viene inserito nella tabella SalesOrder . In caso contrario, il messaggio viene inviato a un percorso di file condiviso. Per ottenere questa logica di business, Northwind crea un'orchestrazione. In questo argomento vengono fornite informazioni dettagliate su come creare l'orchestrazione.

Per aggiungere un'orchestrazione al progetto di BizTalk Server

  1. Nella BizTalk Server già creata fare clic con il pulsante destro del mouse sul progetto, scegliere Aggiungi e quindi fare clic su Nuovo elemento.

  2. Nella finestra di dialogo Nuovo elemento selezionare BizTalk Orchestration, immettere il nome della mappa come OrderProcessing.odxe quindi fare clic su Aggiungi.

Creare messaggi per l'orchestrazione

Lo schema generato in precedenza descrive i "tipi" necessari per i messaggi nell'orchestrazione. Un messaggio in genere è una variabile, il cui tipo è definito dallo schema corrispondente. È quindi necessario creare i messaggi per l'orchestrazione e collegarli agli schemi generati in precedenza. I messaggi da creare sono tre:

Nome messaggio Schema corrispondente
Message1_SO_Inbound Questo messaggio è un'istanza dello schema ECommerceSalesOrder.xsd .
Message2_SO_Inbound Questo messaggio è una copia del Message1_SO_Inbound. La procedura consigliata prevede di creare una copia del messaggio e quindi di modificare il nuovo messaggio, lasciando inalterato l'originale. Per altre informazioni, vedere Messaggio di BizTalk Server.
Message1_SO_Outbound Questo messaggio è un'istanza dello schema TableOperations.dbo.SalesOrder (Insert).

Per creare i messaggi

  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 selezionare Finestra proprietà.

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

    Nome proprietà Azione da eseguire
    Identificatore Immettere Message1_SO_Inbound
    Tipo di messaggio Nell'elenco a discesa espandere Schemi e quindi Selezionare OrderProcessingDemo.ECommerceSalesOrder, dove OrderProcessingDemo è il nome del progetto BizTalk. ECommerceSalesOrder è lo schema per il messaggio dell'ordine di vendita ricevuto dalla coda del bus di servizio.
  5. Ripetere i passaggi per creare i messaggi utilizzando i seguenti dettagli:

    Nome messaggio Eseguire l'azione
    Message2_SO_Inbound - Impostare identificatore su Message2_SO_Inbound
    - Impostare tipo di messaggio su OrderProcessingDemo.ECommerceSalesOrder
    Message1_SO_Outbound - Impostare identificatore su Message1_SO_Outound
    - Impostare tipo di messaggiosu OrderProcessingDemo.TableOperation_dbo_SalesOrder.Insert

Aggiungere forme all'orchestrazione

Le forme di orchestrazione definiscono il flusso di un'applicazione BizTalk Server. In questa sezione vengono aggiunte le forme necessarie all'orchestrazione.

Per aggiungere forme all'orchestrazione

  1. Per iniziare, è necessario aggiungere una forma Di ricezione . Questa forma riceve il messaggio in arrivo relativo all'ordine cliente dalla coda di Service Bus. Impostare le proprietà elencate di seguito per la forma di ricezione.

    1. Impostare Attiva su True.

    2. Impostare Messaggio su Message1_SO_Inbound.

    3. Impostare Nome su ReceiveOrder.

  2. Come indicato in precedenza, è necessario creare una copia del messaggio originale relativo all'ordine cliente ricevuto nell'orchestrazione.

    1. Trascinare una forma Costrutto Messaggio sotto la forma ReceiveOrder . Poiché si usa questa forma per costruire un messaggio di tipo Message2_SO_Inbound, impostare la proprietà Message Constructed su Message2_SO_Inbound.

    2. Aggiungere una forma Assegnazione messaggi all'interno della forma Costrutto messaggio . Fare doppio clic sulla forma per aprire l'Editor espressioni e aggiungere quanto segue:

      Message2_SO_Inbound = Message1_SO_Inbound; //copy the message  
      Message2_SO_Inbound(*) = Message1_SO_Inbound(*); //copy the context properties on the message  
      

      Fare clic su OK.

  3. Secondo lo scenario di business, il messaggio deve essere inviato a diverse destinazioni in base alla quantità di articoli ordinati. È pertanto necessario estrarre il valore della quantità dal messaggio in arrivo relativo all'ordine cliente.

    1. L'elemento Quantity nel messaggio in ingresso (ECommerceSalesOrder.xsd) contiene il valore della quantità ordinata. È necessario alzare di livello tale proprietà affinché l'elemento possa essere utilizzato all'interno di espressioni dell'orchestrazione. Per promuovere la proprietà, aprire lo schema ECommerceSalesOrder.xsd , fare clic con il pulsante destro del mouse su Quantity, scegliere Promuovere e quindi fare clic su Promozioni rapide.

    2. Creare una variabile in cui archiviare il valore della quantità. Per creare una variabile, dalla visualizzazione orchestrazione fare clic con il pulsante destro del mouse su Variabili e quindi scegliere Nuova variabile. Impostare le seguenti proprietà per la variabile:

      Nome proprietà Valore
      Identificatore Immettere quantityOrdered
      Tipo Selezionare Int32.
    3. È ora necessario assegnare il valore nell'elemento Quantity alla variabile quantityOrdered . Trascinare un editor di espressioni dopo la forma Costrutto messaggio . Aprire l'editor e immettere la seguente espressione:

      quantityOrdered = Message2_SO_Inbound.Quantity;  
      

      Fare clic su OK.

  4. Dopo aver estratto la quantità dell'ordine, è necessario creare un blocco decisionale in cui definire due percorsi separati per il flusso messaggi. Si crea il blocco decisionale in un'orchestrazione aggiungendo una forma Decide .

    1. Trascinare e rilasciare una forma Decide dopo la forma Dell'editor di espressioni .

    2. Selezionare la forma Rule_1 e nella finestra Proprietà specificare quanto segue:

      Nome proprietà Valore
      Identificatore Immettere Yes. Nota: L'altra route è per impostazione predefinita denominata Else.
      Expression Immettere quantityOrdered > 100.

      Saranno quindi disponibili due route. Se il valore nella variabile quantityOrdered è maggiore di 100, il messaggio accetta la route . In caso contrario, accetta la route Else . È quindi necessario definire le azioni da eseguire in ciascuna route.

  5. Secondo lo scenario di business, se la quantità dell'ordine è maggiore di 100, il messaggio deve essere inserito nella tabella SalesOrder. Quindi, nella route , è necessario trasformare lo schema ECommerceSalesOrder.xsd nello schema TableOperations.SalesOrder.Insert. È stato creato lo schema Inserisci nell'argomento Passaggio 5 (locale): generare lo schema per l'inserimento di un messaggio inito SalesOrder Table. Dopo aver trasformato lo schema, è necessario inviare il messaggio alla tabella di database SQL Server.

    1. All'interno della route trascinare e rilasciare una forma Costrutto messaggio . Impostare la proprietà Messages Constructed per la forma su Message1_SO_Outbound.

    2. All'interno della forma Construct Message aggiungere una forma Transform . Fare doppio clic sulla forma per aprire la finestra di dialogo Configurazione trasformazione . Eseguire le operazioni seguenti:

      1. Selezionare l'opzione Mappa esistente .

      2. Nell'elenco a discesa Nome mappa completo selezionare OrderProcessingDemo.SalesOrder_SQL.

      3. In Origine selezionare Message2_SO_Inbound.

      4. In Destinazione selezionare Message1_SO_Outound.

    3. Dopo la forma Costrutto messaggio trascinare e rilasciare una forma Send e impostare la proprietà Message per la forma su Message1_SO_Outbound.

  6. Secondo lo scenario di business, se la quantità dell'ordine è minore di 100, il messaggio deve essere inviato a un percorso di file condiviso. Quindi, nella route Else è necessario aggiungere una forma di invio.

    1. All'interno della route Else trascinare e rilasciare una forma Send e impostare la proprietà Message per la forma su Message2_SO_Inbound.

      Nota

      La proprietà Messaggio deve essere impostata su Message2_SO_Inbound perché il messaggio ricevuto dalla coda di Service Bus viene inviato al percorso di file senza elaborazioni. Message2_SO_Inbound rappresenta il messaggio ricevuto dalla coda di Service Bus.

Aggiungere porte all'orchestrazione

Le porte rappresentano i supporti di input e di output del messaggio in relazione a un'orchestrazione. I messaggi vengono utilizzati da un'orchestrazione attraverso una porta di ricezione e vengono inviati attraverso una porta di trasmissione. Nello scenario di business un messaggio viene ricevuto da un supporto (coda di Service Bus) e successivamente inviato a due diverse posizioni (database SQL Server o percorso di una condivisione file) in base all'elaborazione del messaggio stesso. È pertanto necessario creare una porta di ricezione e due porte di trasmissione nell'ambito dell'orchestrazione.

Per aggiungere porte

  1. Trascinare e rilasciare una forma Porta nel riquadro Superficie portadell'Designer orchestrazione per avviare la Configurazione guidata porta. Nella pagina Benvenuti fare clic su Avanti.

  2. Nella pagina Proprietà porta assegnare alla porta ReceiveSO il nome e quindi fare clic su Avanti.

  3. Nella pagina Seleziona un tipo di porta selezionare l'opzione Crea un nuovo tipo di porta , selezionare il modello di comunicazione unidirezionale , lasciare il valore predefinito per le restrizioni di accesso e quindi fare clic su Avanti.

  4. Nella pagina Associazione porta, per la direzione della porta, selezionare I'll always be receiving messages on this port port, leave the port biding to the default value, and then click Next.

  5. Nell'ultima pagina fare clic su Fine.

  6. Ripetere i passaggi per creare le due porte di trasmissione. Specificare i valori indicati di seguito durante la creazione delle porte.

    Nome della porta Proprietà
    SendToSQL - Impostare il nome su SendToSQL
    - Selezionare Crea un nuovo tipo di porta
    - Impostare il modello di comunicazione su unidirezionale
    - Impostare la direzione della porta su I'll always sending messages on this port
    SendToFile - Impostare il nome su SendToFile
    - Selezionare Crea un nuovo tipo di porta
    - Impostare il modello di comunicazione su unidirezionale
    - Impostare la direzione della porta su I'll always sending messages on this port

Connettere porte e forme di messaggio

Per completare l'orchestrazione, è quindi necessario connettere le porte e le forme di messaggio. L'orchestrazione inizia quando il messaggio viene ricevuto dalla forma ReceiveOrder e l'orchestrazione viene chiusa quando il messaggio viene inviato dalle due forme Send. Seguire questo criterio per connettere le porte e le forme di messaggio.

Per connettere le porte alle forme di messaggio

  1. Connettere la porta di ricezione ReceiveSO alla forma ReceiveOrder .

  2. Connettere la forma Invia sotto la route alla porta di trasmissione SendToSQL . Questo indica che se un messaggio immette questa route (quantityOrdered> 100), verrà inviato alla tabella SalesOrder nel database SQL Server.

  3. Connettere la forma Send sotto la route Else alla porta di trasmissione SendToFile . Ciò indica che se un messaggio entra in questa route (quantityOrdered<= 100), verrà inviato a un percorso di file specificato.

    L'orchestrazione deve essere simile alla seguente:

    BTS2010R2_Tut1_Orch di orchestrazione

Vedere anche

Esercitazione 4: Creazione di un'applicazione ibrida con BizTalk Server 2013