Esercitazione: Elaborare fatture EDIFACT con Servizi BizTalk di AzureTutorial: Process EDIFACT invoices using Azure BizTalk Services

Importante

Servizi BizTalk di Microsoft Azure è in fase di ritiro e verrà sostituito da App per la logica di Azure.Microsoft Azure BizTalk Services (MABS) is being retired, and replaced with Azure Logic Apps. Se attualmente si usa Servizi BizTalk di Microsoft Azure, Move from BizTalk Services to Logic Apps (Passare da Servizi BizTalk ad App per la logica) fornisce alcune istruzioni sul trasferimento delle soluzioni di integrazione ad App per la logica.If you currently use MABS, then Move from BizTalk Services to Logic Apps provides some guidance on moving your integration solutions to Logic Apps.

Se non si ha familiarità con App per la logica, è consigliabile iniziare da qui:If you're brand new to Logic Apps, then we suggest getting started here:

È possibile utilizzare il portale Servizi BizTalk per configurare e distribuire accordi EDIFACT e X12.You can use the BizTalk Services Portal to configure and deploy X12 and EDIFACT agreements. In questa esercitazione viene illustrato come creare un accordo EDIFACT per lo scambio di fatture tra partner commerciali.In this tutorial, we look at how to create an EDIFACT agreement for exchanging invoices between trading partners. L'esercitazione è relativa a una soluzione aziendale end-to-end che coinvolge due partner commerciali, Northwind e Contoso, che si scambiano messaggi EDIFAC.This tutorial is written around an end-to-end business solution involving two trading partners, Northwind and Contoso that exchange EDIFACT messages.

Esempio basato su questa esercitazioneSample based on this tutorial

Questa esercitazione è stata scritta in base a un esempio, Sending EDIFACT Invoices Using BizTalk Services (Invio di fatture EDIFACT con Servizi BizTalk), disponibile per il download in MSDN Code Gallery.This tutorial is written around a sample, Sending EDIFACT Invoices Using BizTalk Services, which is available to download from the MSDN Code Gallery. È possibile usare l'esempio e scorrere questa esercitazione per comprendere come è stato creatoYou could use the sample and go through this tutorial to understand how the sample was built. oppure usare l'esercitazione per creare la propria soluzione.Or, you could use this tutorial to create your own solution ground-up. Questa esercitazione è mirata al secondo approccio, in modo che si possa comprendere come è stata creata questa soluzione.This tutorial is targeted towards the second approach so that you understand how this solution was built. Inoltre, per quanto possibile, l'esercitazione è coerente con l'esempio e usa gli stessi nomi per gli elementi (ad esempio schemi e trasformazioni).Also, as much as possible, the tutorial is consistent with the sample and uses the same names for artifacts (for example, schemas, transforms) as used in the sample.

Nota

Poiché questa soluzione prevede l'invio di un messaggio da un bridge EAI a un bridge EDI, riusa l' esempio di concatenamento di bridge di Servizi BizTalk .Because this solution involves sending a message from an EAI bridge to an EDI bridge, it reuses the BizTalk Services Bridge chaining sample sample.

Scopo della soluzioneWhat does the solution do?

In questa soluzione Northwind riceve da Contoso fatture EDIFACTIn this solution, Northwind receives EDIFACT invoices from Contoso. che non sono in un formato EDI standard.These invoices are not in a standard EDI format. Pertanto, prima dell'invio a Northwind, una fattura deve essere convertita in un documento fattura EDIFACT (nota anche come INVOIC).So, before sending the invoice to Northwind, it must be transformed to an EDIFACT invoice (also called INVOIC) document. Alla ricezione, Northwind deve elaborare la fattura EDIFACT e restituire a Contoso un messaggio di controllo (noto anche come CONTRL).On receipt, Northwind must process the EDIFACT invoice, and return a control message (also called CONTRL) to Contoso.

Per ottenere questo scenario aziendale, Contoso usa le funzionalità fornite con Servizi BizTalk di Microsoft Azure.To achieve this business scenario, Contoso uses the features provided with Microsoft Azure BizTalk Services.

  • Contoso usa bridge EAI per convertire la fattura originale in INVOIC EDIFACT.Contoso uses EAI bridges to transform the original invoice to EDIFACT INVOIC.
  • Il bridge EAI quindi invia il messaggio a un bridge di trasmissione EDI distribuito come parte di un accordo configurato nel portale Servizi BizTalk.The EAI bridge then sends the message to an EDI send bridge deployed as part of an agreement configured in the BizTalk Services Portal.
  • Il bridge di trasmissione EDI elabora la fattura INVOIC EDIFACT e la instrada a Northwind.The EDI send bridge processes the EDIFACT INVOIC and routes it to Northwind.
  • Dopo aver ricevuto la fattura, Northwind restituisce un messaggio CONTRL al bridge di ricezione EDI distribuito come parte dell'accordo.After receiving the invoice, Northwind returns a CONTRL message to the EDI receive bridge deployed as part of the agreement.

Nota

Facoltativamente, questa soluzione illustra anche come usare l'invio in batch per trasmettere le fatture in batch anziché singolarmente.Optionally, this solution also demonstrates how to use batching to send the invoices in batches, instead of sending each invoice separately.

Per completare lo scenario, vengono usate code di bus di servizio per inviare la fattura da Contoso a Northwind o ricevere un acknowledgement da Northwind.To complete the scenario, we use Service Bus queues to send invoice from Contoso to Northwind or receive acknowledgement from Northwind. Queste code possono essere create usando un'applicazione client, disponibile come download e inclusa nel pacchetto di esempio fornito come parte dell'esercitazione.These queues can be created using a client application, which is available as a download and is included in the sample package that is available as part of this tutorial.

PrerequisitiPrerequisites

Passaggio 1: creare le code del bus di servizioStep 1: Create the Service Bus queues

Questa soluzione usa code di bus di servizio per lo scambio di messaggi tra i partner commerciali.This solution uses Service Bus queues to exchange messages between trading partners. Contoso e Northwind inviano messaggi alle code, da dove vengono usati dai bridge EAI e/o EDI.Contoso and Northwind send messages to the queues from where the EAI and/or EDI bridges consume them. Per questa soluzione, sono necessarie tre code del bus di servizio:For this solution, you need three Service Bus queues:

  • northwindreceive : Northwind riceve la fattura da Contoso tramite questa coda.northwindreceive – Northwind receives the invoice from Contoso over this queue.
  • contosoreceive : Contoso riceve l'acknowledgement da Northwind tramite questa coda.contosoreceive – Contoso receives the acknowledgement from Northwind over this queue.
  • suspended – A questa coda vengono instradati tutti i messaggi sospesi.suspended – All suspended messages are routed to this queue. I messaggi vengono sospesi se presentano errori durante l'elaborazione.Messages are suspended if they fail during processing.

È possibile creare queste code di bus di servizio usando un'applicazione client inclusa nel pacchetto di esempio.You can create these Service Bus queues by using a client application included in the sample package.

  1. Dal percorso in cui è stato scaricato l'esempio, aprire Tutorial Sending Invoices Using BizTalk Services EDI Bridges.sln.From the location where you downloaded the sample, open Tutorial Sending Invoices Using BizTalk Services EDI Bridges.sln.
  2. Premere F5 per compilare e avviare l'applicazione Tutorial Client (Client esercitazione).Press F5 to build and start the Tutorial Client application.
  3. Nella schermata immettere lo spazio dei nomi, nonché il nome e la chiave dell'emittente ACS del bus di servizio.In the screen, enter the Service Bus ACS namespace, issuer name, and issuer key.

  4. Un messaggio informa che verranno create tre code nello spazio dei nomi del bus di servizio.A message box prompts that three queues will be created in your Service Bus namespace. Fare clic su OK.Click OK.
  5. Lasciare in esecuzione il client dell'esercitazione.Leave the Tutorial Client running. Aprire , fare clic su Bus di servizio > spazio dei nomi del bus di servizio > Code e verificare che le tre code siano state create.Open the , click Service Bus > your Service Bus namespace > Queues, and verify that the three queues are created.

Passaggio 2: creare e distribuire un contratto tra partner commercialiStep 2: Create and deploy trading partner agreement

Creare un accordo tra partner commerciali tra Contoso e Northwind.Create a trading partner agreement between Contoso and Northwind. Questo tipo di accordo definisce un contratto per gli scambi tra i due partner commerciali, ad esempio quale schema dei messaggi usare, quale protocollo di messaggistica applicare e così via. Un accordo tra partner commerciali include due bridge EDI, uno per inviare messaggi ai partner commerciali (denominato bridge di trasmissione EDI) e uno per ricevere messaggi dai partner commerciali (denominato bridge di ricezione EDI).A trading partner agreement defines a trade contract between the two business partners, such as which message schema to use, which messaging protocol to use, etc. A trading partner agreement includes two EDI bridges, one to send messages to trading partners (called the EDI Send bridge) and one to receive messages from trading partners (called the EDI Receive bridge).

Nel contesto di questa soluzione il bridge di trasmissione EDI corrisponde al lato invio dell'accordo e viene usato per inviare la fattura EDIFACT da Contoso a Northwind.In the context of this solution, the EDI send bridge corresponds to the send-side of the agreement and is used to send the EDIFACT invoice from Contoso to Northwind. Analogamente, il bridge di ricezione EDI corrisponde al lato ricezione dell'accordo e viene usato per ricevere gli acknowledgement da Northwind.Similarly, the EDI receive bridge corresponds to the receive-side of the agreement and is used to receive acknowledgements from Northwind.

Creare i partner commercialiCreate the trading partners

Per iniziare, creare i partner commerciali per Contoso e Northwind.To start with, create trading partners for Contoso and Northwind.

  1. Nel portale di Servizi BizTalk fare clic su Aggiungi nella scheda Partner.In the BizTalk Services Portal, on the Partners tab, click Add.
  2. Nella pagina Nuovo partner immettere Contoso come nome del partner, quindi fare clic su Salva.In the New partner page, enter Contoso as a partner name, and then click Save.
  3. Ripetere il passaggio per creare il secondo partner, Northwind.Repeat the step to create the second partner, Northwind.

Creare il contrattoCreate the agreement

Gli accordi tra partner commerciali vengono creati tra i profili di business dei partner coinvolti.Trading partner agreements are created between business profiles of trading partners. Questa soluzione usa i profili di partner predefiniti creati automaticamente quando sono stati creati i partner.This solution uses the default partner profiles that are automatically created when we created the partners.

  1. Nel portale di Servizi BizTalk fare clic su Contratti > Aggiungi.In the BizTalk Services Portal, click Agreements > Add.
  2. Nella pagina Impostazioni generali del nuovo accordo specificare i valori mostrati nell'immagine seguente, quindi fare clic su Continua.In the new agreement’s General Settings page, specify the values as shown in the image below, and then click Continue.

    Dopo avere fatto clic su Continua, diventano disponibili due schede, Impostazioni di ricezione e Impostazioni di invio.After you click Continue, two tabs, Receive Settings and Send Settings become available.

  3. Creare l'accordo di invio tra Contoso e Northwind.Create the send agreement between Contoso and Northwind. Questo accordo definisce le modalità con cui Contoso invia la fattura EDIFACT a Northwind.This agreement governs how Contoso sends the EDIFACT invoice to Northwind.

    1. Fare clic su Send Settings.Click Send Settings.
    2. Mantenere i valori predefiniti nelle schede Inbound URL (URL in ingresso), Trasforma e Batch.Retain the default values on the Inbound URL, Transform, and Batching tabs.
    3. Nella scheda Protocollo caricare lo schema EFACT_D93A_INVOIC.xsd nella sezione Schemi.On the Protocol tab, under the Schemas section, upload the EFACT_D93A_INVOIC.xsd schema. Questo schema è disponibile con il pacchetto di esempio.This schema is available with the sample package.

    4. Nella scheda Trasporto specificare i dettagli delle code del bus di servizio.On the Transport tab, specify the details for the Service Bus queues. Per l'accordo sul lato invio, viene usata la coda northwindreceive per inviare la fattura EDIFACT a Northwind, mentre la coda suspended viene usata per instradare gli eventuali messaggi che presentano problemi durante l'elaborazione e vengono sospesi.For the send-side agreement, we use the northwindreceive queue to send the EDIFACT invoice to Northwind, and the suspended queue to route any messages that fail during processing and are suspended. Queste code sono state create nel Passaggio 1: Creare le code del bus di servizio di questo argomento.You created these queues in Step 1: Create the Service Bus queues (in this topic).

      In Impostazioni trasporto > Tipo trasporto e in Message Suspension Settings (Impostazioni di sospensione messaggi) > Tipo trasporto selezionare Bus di servizio di Azure e specificare i valori mostrati nell'immagine.Under Transport Settings > Transport type and Message Suspension Settings > Transport type, select Azure Service Bus and provide the values as shown in the image.

  4. Creare l'accordo di ricezione tra Contoso e Northwind.Create the receive agreement between Contoso and Northwind. Questo accordo definisce le modalità con cui Contoso riceve l'acknowledgement da Northwind.This agreement governs how Contoso receives the acknowledgement from Northwind.

    1. Fare clic su Receive Settings.Click Receive Settings.
    2. Mantenere i valori predefiniti nelle schede Trasporto e Trasforma.Retain the default values on the Transport and Transform tabs.
    3. Nella scheda Protocollo caricare lo schema EFACT_4.1_CONTRL.xsd nella sezione Schemi.On the Protocol tab, under the Schemas section, upload the EFACT_4.1_CONTRL.xsd schema. Questo schema è disponibile con il pacchetto di esempio.This schema is available with the sample package.
    4. Nella scheda Route creare un filtro per assicurarsi che a Contoso vengano instradati solo gli acknowledgement di Northwind.On the Route tab, create a filter to ensure that only acknowledgements from Northwind are routed to Contoso. In Route Settings (Impostazioni route) fare clic su Aggiungi per creare il filtro di routing.Under Route Settings, click Add to create the routing filter.

      1. Nei campi Nome regola, Route rule (Regola route) e Route destination (Destinazione route) specificare i valori mostrati nell'immagine.Provide values for Rule Name, Route rule, and Route destination as shown in the image.
      2. Fare clic su Salva.Click Save.
    5. Sempre nella scheda Route , specificare dove devono essere instradati gli acknowledgement sospesi, ossia gli acknowledgement che presentano problemi durante l'elaborazione.On the Route tab again, specify where suspended acknowledgements (acknowledgements that fail during processing) are routed to. Impostare il tipo di trasporto su Bus di servizio di Azure, il tipo di destinazione route su Coda, il tipo di autenticazione su Firma di accesso condiviso, specificare la relativa stringa di connessione per lo spazio dei nomi di bus di servizio quindi immettere suspended come nome della coda.Set the transport type to Azure Service Bus, route destination type to Queue, authentication type to Shared Access Signature (SAS), provide the SAS connection string for the Service Bus namespace, and then enter the queue name as suspended.
  5. Fare infine clic su Distribuisci per distribuire l'accordo.Finally, click Deploy to deploy the agreement. Notare gli endpoint in cui vengono distribuiti gli accordi di invio e ricezione.Note the endpoints where the send and receive agreements get deployed.

    • Nella scheda Impostazioni di invio prendere nota dell'endpoint in Inbound URL (URL in ingresso).On the Send Settings tab, under Inbound URL, note the endpoint. Per inviare un messaggio da Contoso a Northwind usando il bridge di trasmissione EDI è necessario inviare un messaggio a questo endpoint.To send a message from Contoso to Northwind using the EDI send bridge, you must send a message to this endpoint.
    • Nella scheda Impostazioni di ricezione prendere nota dell'endpoint in Trasporto.On the Receive Settings tab, under Transport, note the endpoint. Per inviare un messaggio da Northwind a Contoso usando il bridge di ricezione EDI è necessario inviare un messaggio a questo endpoint.To send a message from Northwind to Contoso using the EDI receive bridge, you must send a message to this endpoint.

Passaggio 3: creare e distribuire il progetto di Servizi BizTalkStep 3: Create and deploy the BizTalk Services project

Nel passaggio precedente sono stati distribuiti gli accordi di invio e ricezione EDI per elaborare le fatture EDIFACT e gli acknowledgement.In the previous step, you deployed the EDI send and receive agreements to process EDIFACT invoices and acknowledgements. Questi accordi possono elaborare solo messaggi conformi allo schema EDIFACT standard.These agreements can only process messages that conform to the standard EDIFACT message schema. Tuttavia, in base allo scenario per questa soluzione, Contoso invia a Northwind una fattura in uno schema proprietario interno.However, per the scenario for this solution, Contoso sends an invoice to Northwind in an in-house proprietary schema. Pertanto, prima di essere inviato al bridge di trasmissione EDI, il messaggio deve essere convertito dallo schema interno allo schema di fattura EDIFACT standard.So, before the message is sent to the EDI send bridge, it must be transformed from the in-house schema to the standard EDIFACT invoice schema. Questa operazione viene eseguita dal progetto EAI di Servizi BizTalk.The BizTalk Services EAI project does that.

Anche il progetto di Servizi BizTalk, InvoiceProcessingBridge, che converte il messaggio, è incluso come parte dell'esempio scaricato.The BizTalk Services project, InvoiceProcessingBridge, that transforms the message is also included as part of the sample you downloaded. Il progetto contiene i seguenti elementi:The project includes the following artifacts:

  • INHOUSEINVOICE.XSD :schema della fattura interna che viene inviata a Northwind.INHOUSEINVOICE.XSD – Schema of the in-house invoice that is sent to Northwind.
  • EFACT_D93A_INVOIC.XSD: schema della fattura EDIFACT standard.EFACT_D93A_INVOIC.XSD – Schema of the standard EDIFACT invoice.
  • EFACT_4.1_CONTRL.XSD: schema dell'acknowledgement EDIFACT che Northwind invia a Contoso.EFACT_4.1_CONTRL.XSD – Schema of the EDIFACT acknowledgement that Northwind sends to Contoso.
  • INHOUSEINVOICE_to_D93AINVOIC.TRFM: trasformazione che esegue il mapping dello schema della fattura interna allo schema della fattura EDIFACT standard.INHOUSEINVOICE_to_D93AINVOIC.TRFM – The transform that maps the in-house invoice schema to the standard EDIFACT invoice schema.

Creare il progetto di Servizi BizTalkCreate the BizTalk Services project

  1. Nella soluzione di Visual Studio espandere il progetto InvoiceProcessingBridge, quindi aprire il file MessageFlowItinerary.bcs .In the Visual Studio solution, expand the InvoiceProcessingBridge project, and then open the MessageFlowItinerary.bcs file.
  2. Fare clic in qualsiasi punto del canvas e impostare BizTalk Service URL nella sezione delle proprietà in modo da specificare il nome della propria sottoscrizione a Servizi BizTalk.Click anywhere on the canvas and set the BizTalk Service URL in the property box to specify your BizTalk Services subscription name. Ad esempio: https://contosowabs.biztalk.windows.net.For example, https://contosowabs.biztalk.windows.net.

  3. Dalla casella degli strumenti trascinare uno strumento Bridge XML unidirezionale nel canvas.From the toolbox, drag an Xml One-Way Bridge to the canvas. Impostare le proprietà Nome entità e Indirizzo relativo del bridge su ProcessInvoiceBridge.Set the Entity Name and Relative Address properties of the bridge to ProcessInvoiceBridge. Fare doppio clic su ProcessInvoiceBridge per aprire l'area di configurazione del bridge.Double-click ProcessInvoiceBridge to open the bridge configuration surface.
  4. Nella casella Tipi di messaggio fare clic sul pulsante più (+) per specificare lo schema del messaggio in arrivo.Within the Message Types box, click the plus (+) button to specify the schema of the incoming message. Poiché il messaggio in arrivo per il bridge EAI è sempre la fattura interna, impostarlo su INHOUSEINVOICE.Because the incoming message for the EAI bridge is always the in-house invoice, set this to INHOUSEINVOICE.

  5. Fare clic sulla forma Trasformazione XML e nella sezione delle proprietà, per la proprietà Mappe, fare clic sul pulsante con i puntini di sospensione (...).Click the Xml Transform shape, and in the property box, for the Maps property, click the ellipsis (...) button. Nella finestra di dialogo Maps Selection (Selezione mappe) selezionare il file di trasformazione INHOUSEINVOICE_to_D93AINVOIC, quindi fare clic su OK.In the Maps Selection dialog box, select the INHOUSEINVOICE_to_D93AINVOIC transform file, and then click OK.

  6. Tornare a MessageFlowItinerary.bcs e dalla casella degli strumenti trascinare un endpoint di servizio esterno bidirezionale a destra di ProcessInvoiceBridge.Go back to MessageFlowItinerary.bcs, and from the toolbox, drag a Two-Way External Service Endpoint to the right of the ProcessInvoiceBridge. Impostare la proprietà Nome entità su EDIBridge.Set its Entity Name property to EDIBridge.
  7. In Esplora soluzioni espandere MessageFlowItinerary.bcs e fare doppio clic sul file EDIBridge.config file.In the Solution Explorer, expand the MessageFlowItinerary.bcs and double-click the EDIBridge.config file. Sostituire il contenuto di EDIBridge.config con quanto segue.Replace the content of the EDIBridge.config with the following.

    Nota

    Perché è necessario modificare il file con estensione config?Why do I need to edit the .config file? L'endpoint del servizio esterno aggiunto al canvas di progettazione del bridge rappresenta i bridge EDI distribuiti in precedenza.The external service endpoint that we added to the bridge designer canvas represents the EDI bridges that we deployed earlier. I bridge EDI sono bidirezionali, con un lato invio e un lato ricezione.EDI bridges are two-way bridges, with a send and receive side. Il bridge EAI aggiunto al canvas di progettazione è però un bridge unidirezionale.However, the EAI bridge that we added to the bridge designer is a one-way bridge. Pertanto, per gestire i diversi modelli di scambio dei messaggi dei due bridge, viene usato un comportamento di bridge personalizzato includendo la relativa configurazione nel file config.So, to handle the different message exchange patterns of the two bridges, we use a custom bridge behavior by including its configuration in the .config file. Il comportamento personalizzato gestisce anche l'autenticazione nell'endpoint del bridge di trasmissione EDI. Questo comportamento personalizzato è disponibile come esempio separato in BizTalk Services Bridge chaining sample - EAI to EDI (Esempio di concatenamento di bridge di Servizi BizTalk: da EAI a EDI).Additionally, the custom behavior also handles the authentication to the EDI send bridge endpoint.This custom behavior is available as a separate sample at BizTalk Services Bridge chaining sample - EAI to EDI. Questa soluzione riusa l'esempio.This solution reuses the sample.

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <system.serviceModel>
        <extensions>
          <behaviorExtensions>
            <add name="BridgeAuthentication" 
                  type="Microsoft.BizTalk.Bridge.Behaviour.BridgeBehaviorElement, Microsoft.BizTalk.Bridge.Behaviour, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ae58f69b69495c05" />
          </behaviorExtensions>
        </extensions>
        <behaviors>
          <endpointBehaviors>
            <behavior name="BridgeAuthenticationConfiguration">
              <!-- Enter the ACS namespace, issuer name and issuer secret of the BizTalk Services deployment -->
              <BridgeAuthentication acsnamespace="[YOUR ACS NAMESPACE]" 
                                    issuername="owner" 
                                    issuersecret="[YOUR ACS SECRET]" />
              <webHttp />
            </behavior>
          </endpointBehaviors>
        </behaviors>
        <bindings>
          <webHttpBinding>
            <binding name="BridgeBindingConfiguration">
              <security mode="Transport" />
            </binding>
          </webHttpBinding>
        </bindings>
        <client>
          <clear />
          <!--
            Go BizTalk Portal > Agreement > Send Settings > Inbound URL
            Copy the Endpoint URL and paste it in the below address field
          -->
          <endpoint name="TwoWayExternalServiceEndpointReference1" 
                    address="[YOUR EDI BRIDGE SEND URI]" 
                    behaviorConfiguration="BridgeAuthenticationConfiguration" 
                    binding="webHttpBinding" 
                    bindingConfiguration="BridgeBindingConfiguration" 
                    contract="System.ServiceModel.Routing.IRequestReplyRouter" />
        </client>
      </system.serviceModel>
    </configuration>
    
  8. Aggiornare il file EDIBridge.config in modo da includere i dettagli di configurazioneUpdate the EDIBridge.config file to include configuration details

    • In specificare lo spazio dei nomi del servizio contenitore di Azure e la chiave associati alla sottoscrizione a Servizi BizTalk.Under , provide the ACS namespace and key associated with the BizTalk Services subscription.
    • In specificare l'endpoint in cui è distribuito il contratto di invio EDI.Under , provide the endpoint where the EDI send agreement is deployed.

    Salvare le modifiche e chiudere il file di configurazione.Save changes and close the configuration file.

  9. Nella casella degli strumenti fare clic su Connettore e aggiungere i componenti ProcessInvoiceBridge ed EDIBridge.From the Toolbox, click the Connector and join the ProcessInvoiceBridge and EDIBridge components. Selezionare il connettore e nella casella delle proprietà impostare Condizione filtro su Match All (Corrispondenza con tutti).Select the connector, and in Properties box, set Filter Condition to Match All. In questo modo, tutti i messaggi elaborati dal bridge EAI vengono instradati al bridge EDI.This ensures that all messages processed by the EAI bridge are routed to the EDI bridge.

  10. Salvare le modifiche apportate alla soluzione.Save changes to the solution.

Distribuire il progettoDeploy the project

  1. Nel computer in cui è stato creato il progetto di Servizi BizTalk scaricare e installare il certificato SSL per la propria sottoscrizione a Servizi BizTalk.On the computer where you created the BizTalk Services project, download and install the SSL certificate for your BizTalk Services subscription. Da , in Servizi BizTalk fare clic su Dashboard, quindi su Scarica certificato SSL.From , under BizTalk Services, click Dashboard, and then click Download SSL Certificate. Fare doppio clic sul certificato e seguire i messaggi di richiesta per completare l'installazione.Double-click the certificate and follow the prompt to complete the installation. Assicurarsi di installare il certificato nell'archivio certificati Autorità di certificazione radice disponibile nell'elenco locale .Make sure you install the certificate under Trusted Root Certification Authorities certificate store.
  2. In Esplora soluzioni di Visual Studio fare clic con il pulsante destro del mouse sul progetto InvoiceProcessingBridge e scegliere Distribuisci.In Visual Studio Solution Explorer, right-click the InvoiceProcessingBridge project, and then click Deploy.
  3. Specificare i valori mostrati nell'immagine, quindi fare clic su Distribuisci.Provide the values as shown in the image, and then click Deploy. È possibile ottenere le credenziali ACS per i Servizi BizTalk facendo clic su Informazioni di connessione dal dashboard dei Servizi BizTalk.You can get the ACS credentials for BizTalk Services by clicking Connection Information from the BizTalk Services dashboard.

    Dal riquadro di output copiare l'endpoint in cui è distribuito il bridge EAI, ad esempio https://contosowabs.biztalk.windows.net/default/ProcessInvoiceBridge.From the output pane, copy the endpoint where the EAI bridge is deployed, for example, https://contosowabs.biztalk.windows.net/default/ProcessInvoiceBridge. L'URL di questo endpoint sarà necessario più avanti.You will need this endpoint URL later.

Passaggio 4: testare la soluzioneStep 4: Test the solution

In questo argomento viene illustrato come testare la soluzione utilizzando l'applicazione client dell'esercitazione fornita come parte dell'esempio.In this topic, we look at how to test the solution by using the Tutorial Client application provided as part of the sample.

  1. In Visual Studio premere F5 per avviare l'applicazione client dell'esercitazione.In Visual Studio, press F5 to start the Tutorial Client.
  2. Nella schermata devono già essere inseriti i valori specificati nel passaggio in cui sono state create le code del bus di servizio.The screen must have the values prepopulated from the step where we created the Service Bus queues. Fare clic su Avanti.Click Next.
  3. Nella finestra successiva specificare le credenziali ACS per la sottoscrizione a Servizi BizTalk e gli endpoint in cui sono distribuiti i bridge EAI ed EDI (ricezione).In the next window, provide ACS credentials for BizTalk Services subscription, and the endpoints where EAI and EDI (receive) bridges are deployed.

    L'endpoint del bridge EAI è stato copiato nel passaggio precedente.You had copied the EAI bridge endpoint in the previous step. Per l'endpoint del bridge di ricezione EDI, nel portale di Servizi BizTalk passare all'accordo > Receive Settings > Trasporto > Endpoint.For EDI receive bridge endpoint, in the BizTalk Services Portal, go to the agreement > Receive Settings > Transport > Endpoint.

  4. Nella finestra successiva, in Contoso, fare clic sul pulsante Send In-house Invoice .In the next window, under Contoso, click the Send In-house Invoice button. Nella finestra di dialogo Apri file aprire il file INHOUSEINVOICE.txt.In the File open dialog box, open the INHOUSEINVOICE.txt file. Esaminare il contenuto del file, quindi fare clic su OK per inviare la fattura.Examine the content of the file and then click OK to send the invoice.

  5. Dopo pochi secondi Northwind riceve la fattura.In a few seconds the invoice is received at Northwind. Fare clic sul collegamento Visualizza messaggio per visualizzare la fattura ricevuta da Northwind.Click the View Message link to see the invoice received by Northwind. Si noti che la fattura ricevuta da Northwind è nello schema EDIFACT standard, mentre quella inviata da Contoso era in uno schema interno.Notice how the invoice received by Northwind is in standard EDIFACT schema while the one sent by Contoso was an in-house schema.

  6. Selezionare la fattura, quindi fare clic su Send Acknowledgement.Select the invoice and then click Send Acknowledgement. Nella finestra di dialogo che viene visualizzata si noti che l'ID dell'interscambio è uguale nella fattura ricevuta e nell'acknowledgement inviato.In the dialog box that pops up, notice that the interchange ID is same in the received invoice and the acknowledgement being sent. Fare clic su OK nella finestra di dialogo Invia conferma .Click OK in the Send Acknowledgement dialog box.

  7. Dopo pochi secondi Contoso riceve correttamente l'acknowledgement.In a few seconds, the acknowledgement is successfully received at Contoso.

Passaggio 5 (facoltativo): inviare le fatture EDIFACT in batchStep 5 (optional): Send EDIFACT invoice in batches

I bridge EDI di Servizi BizTalk supportano anche l'invio in batch dei messaggi in uscita.BizTalk Services EDI bridges also supports batching of outgoing messages. Questa funzionalità è utile per i partner destinatari che preferiscono ricevere un batch di messaggi (che soddisfano un determinato criterio) anziché messaggi singoli.This feature is useful for receiving partners that prefer to receive a batch of messages (meeting certain criterion) instead of individual messages.

Quando si usano i batch, l'aspetto più importante da considerare è l'effettivo rilascio del batch o, in altre parole, i criteri di rilascio.The most important aspect when working with batches is the actual release of the batch, also called the release criteria. I criteri di rilascio possono essere basati sulla modalità con cui il partner destinatario desidera ricevere i messaggi.The release criteria can be based on how the receiving partner wants to receive messages. Se l'invio in batch è abilitato, il bridge EDI non invia il messaggio in uscita al partner destinatario finché i criteri di rilascio non sono soddisfatti.If batching is enabled, the EDI bridge does not send the outgoing message to the receiving partner until the release criteria is fulfilled. Ad esempio, se si impostano criteri di invio in batch basati sul numero di messaggi, viene inviato un batch solo quando vengono raggruppati 'n' messaggi.For example, a batching criteria based on message size dispatches a batch only when ‘n’ messages are batched. I criteri di batch possono anche essere basati sul tempo e in questo caso un batch può ad esempio essere inviato ogni giorno a una determinata ora.A batch criteria can also be time-based, such that a batch is sent at a fixed time every day. In questa soluzione si tenta di usare criteri basati sulla dimensione del messaggio.In this solution, we try the message-size based criteria.

  1. Nel portale di Servizi BizTalk fare clic sull'accordo creato in precedenza.In the BizTalk Services Portal, click the agreement you created earlier. Fare clic su Send Settings > Batch > Add Batch.Click Send Settings > Batching > Add Batch.
  2. Come nome del batch immettere InvoiceBatch, specificare una descrizione, quindi fare clic su Avanti.For batch name, enter InvoiceBatch, provide a description, and then click Next.
  3. Specificare criteri di batch che definiscano quali messaggi devono essere raggruppati.Specify a batch criteria, that defines which messages must be batched. In questa soluzione vengono raggruppati tutti i messaggi.In this solution, we batch all messages. Selezionare pertanto l'opzione Use advanced definitions e immettere 1 = 1.So, select the Use advanced definitions option, and enter 1 = 1. Questa è una condizione che sarà sempre vera, quindi tutti i messaggi verranno raggruppati in un batch.This is a condition which will always be true, and hence all messages will be batched. Fare clic su Avanti.Click Next.

  4. Specificare criteri di rilascio del batch.Specify a batch release criteria. Dalla casella di riepilogo a discesa selezionare MessageCountBased e per Conteggio specificare 3.From the drop-box, select MessageCountBased, and for Count, specify 3. Questo significa che a Northwind verrà inviato un batch di tre messaggi.This means that a batch of three messages will be sent to Northwind. Fare clic su Avanti.Click Next.

  5. Controllare il riepilogo, quindi fare clic su Salva.Review the summary and then click Save. Fare clic su Distribuisci per ridistribuire l'accordo.Click Deploy to redeploy the agreement.
  6. Tornare all'applicazione Tutorial Client (Client esercitazione), fare clic su Send In-house Invoice (Invia fattura interna) e seguire i prompt per inviare la fattura.Go back to the Tutorial Client, click Send In-house Invoice, and follow the prompts to send the invoice. Si noterà che Northwind non riceve alcuna fattura perché i criteri relativi al numero di messaggi per il batch non sono soddisfatti.You will notice that no invoice is received at Northwind because the batch size is not met. Ripetere questo passaggio altre due volte, in modo da avere tre messaggi di fatture da inviare a Northwind.Repeat this step two more times, so that you have three invoice messages sent to Northwind. In questo caso, i criteri di rilascio, che prevedono un batch di 3 messaggi, vengono soddisfatti, pertanto ora dovrebbe risultare una fattura presso Northwind.This satisfies the batch release criteria of 3 messages and you should now see an invoice at Northwind.