Connettersi a sistemi SAP con App per la logica di AzureConnect to SAP systems from Azure Logic Apps

Questo articolo illustra come è possibile accedere alle risorse SAP all'interno di un'app per la logica mediante i connettori del server applicazioni SAP e del server di messaggistica SAP.This article shows how you can access your SAP resources from inside a logic app by using the SAP Application Server and SAP Message Server connectors. In questo modo, è possibile automatizzare le attività, i processi e i flussi di lavoro che gestiscono i dati e le risorse SAP mediante la creazione di app per la logica.That way, you can automate tasks, processes, and workflows that manage your SAP data and resources by creating logic apps.

In questo esempio viene usata un'app per la logica che è possibile attivare con una richiesta HTTP.This example uses a logic app that you can trigger with an HTTP request. L'app per la logica invia un documento intermedio (IDoc) a un server SAP e restituisce una risposta al richiedente che ha chiamato l'app per la logica.The logic app sends an Intermediate Document (IDoc) to an SAP server, and returns a response to the requestor that called the logic app. I connettori SAP correnti presentano azioni, ma non trigger, pertanto in questo esempio viene usato il trigger richiesta HTTP come primo passaggio nel flusso di lavoro dell'app per la logica.The current SAP connectors have actions, but not triggers, so this example uses the HTTP request trigger as the first step in the logic app's workflow. Per informazioni tecniche specifiche del connettore SAP, vedere gli articoli di riferimento:For SAP connector-specific technical information, see these reference articles:

Se non si dispone ancora di una sottoscrizione di Azure, registrarsi per creare un account Azure gratuito.If you don't have an Azure subscription yet, sign up for a free Azure account.

PrerequisitiPrerequisites

Per proseguire con questo articolo, sono necessari questi elementi:To follow along with this article, you need these items:

  • l'app per la logica da cui si desidera accedere al sistema SAP e un trigger che avvia il flusso di lavoro dell'app per la logica.The logic app from where you want to access your SAP system and a trigger that starts your logic app's workflow. I connettori SAP attualmente consentono solo di eseguire azioni.The SAP connectors currently provide only actions. Se non si ha familiarità con le app per la logica, leggere Informazioni su App per la logica di Azure e Guida introduttiva: Creare la prima app per la logica.If you're new to logic apps, review What is Azure Logic Apps and Quickstart: Create your first logic app.

  • Il server applicazioni SAP o il server di messaggistica SAPYour SAP Application Server or SAP Message Server

  • Scaricare e installare la versione più recente del gateway dati locale in qualsiasi computer locale.Download and install the latest on-premises data gateway on any on-premises computer. Prima di proseguire, assicurarsi di configurare il gateway nel portale di Azure.Make sure you set up your gateway in the Azure portal before you continue. Il gateway consente di accedere in modo sicuro ai dati e alle risorse locali.The gateway helps you securely access data and resources are on premises. Per altre informazioni, vedere Installare il gateway dati locale per le App per la logica di Azure.For more information, see Install on-premises data gateway for Azure Logic Apps.

  • Scaricare e installare la libreria client SAP più recente, che è attualmente Connettore SAP (NCo) 3.0.20.0 per Microsoft .NET Framework 4.0 e Windows a 64 bit (x64), nello stesso computer del gateway dati locale.Download and install the latest SAP client library, which is currently SAP Connector (NCo) 3.0.20.0 for Microsoft .NET Framework 4.0 and Windows 64bit (x64), on the same computer as the on-premises data gateway. Installare questa versione o versioni successive per i motivi seguenti:Install this version or later for these reasons:

    • Le versioni precedenti di NCo SAP possono diventare deadlock quando vengono inviati più messaggi IDoc contemporaneamente.Earlier SAP NCo versions can become deadlocked when more than one IDoc messages are sent at the same time. Questa condizione blocca tutti i messaggi successivi che vengono inviati alla destinazione SAP, causando il timeout dei messaggi.This condition blocks all later messages that are sent to the SAP destination, causing the messages to time out.

    • Il gateway dati locale viene eseguito solo su sistemi a 64 bit.The on-premises data gateway runs only on 64-bit systems. In caso contrario, viene visualizzato l'errore "immagine non valida" perché il servizio host del gateway dati non supporta gli assembly a 32 bit.Otherwise, you get a "bad image" error because the data gateway host service doesn't support 32-bit assemblies.

    • Il servizio host del gateway dati e l'adattatore SAP Microsoft usano .NET Framework 4.5.Both the data gateway host service and the Microsoft SAP Adapter use .NET Framework 4.5. SAP NCo per .NET Framework 4.0 funziona con processi che usano runtime .NET dalla versione 4.0 alla 4.7.1.The SAP NCo for .NET Framework 4.0 works with processes that use .NET runtime 4.0 to 4.7.1. NCo SAP per .NET Framework 2.0 funziona con processi che usano il runtime .NET da 2.0 a 3.5 e non funziona più con il gateway dati locale più recente.The SAP NCo for .NET Framework 2.0 works with processes that use .NET runtime 2.0 to 3.5 and no longer works with the latest on-premises data gateway.

  • Contenuto del messaggio che è possibile inviare al server SAP, ad esempio un file di esempio IDoc.Message content you can send to your SAP server, such as a sample IDoc file. Il contenuto deve essere in formato XML e includere lo spazio dei nomi per l'azione SAP che si desidera usare.This content must be in XML format and include the namespace for the SAP action you want to use.

Aggiungere un trigger della richiesta HTTPAdd HTTP request trigger

In App per la logica di Azure, ogni app per la logica deve essere avviata con un trigger, che viene attivato quando si verifica un determinato evento o quando viene soddisfatta una condizione specifica.In Azure Logic Apps, every logic app must start with a trigger, which fires when a specific event happens or when a specific condition is met. Ogni volta che il trigger viene attivato, il motore di App per la logica crea un'istanza dell'app per la logica e avvia l'esecuzione del flusso di lavoro dell'app.Each time the trigger fires, the Logic Apps engine creates a logic app instance and starts running your app's workflow.

In questo esempio, viene creata un'app per la logica con un endpoint in Azure in modo che sia possibile inviare richieste HTTP POST all'app per la logica.In this example, you create a logic app with an endpoint in Azure so that you can send HTTP POST requests to your logic app. Quando l'app per la logica riceve le richieste HTTP, il trigger viene attivato ed esegue il passaggio successivo nel flusso di lavoro.When your logic app receives these HTTP requests, the trigger fires and runs the next step in your workflow.

  1. Nel portale di Azure creare un'app per la logica vuota, che apre la Progettazione app per la logica.In the Azure portal, create a blank logic app, which opens the Logic App Designer.

  2. Nella casella di ricerca, digitare "richiesta http" come filtro.In the search box, enter "http request" as your filter. Nell'elenco di trigger, selezionare il trigger: Richiesta - Alla ricezione di una richiesta HTTPFrom the triggers list, select this trigger: Request - When a HTTP request is received

    Aggiungere un trigger della richiesta HTTP

  3. Salvare l'app per la logica per poter generare un URL endpoint per l'app per la logica.Now save your logic app so you can generate an endpoint URL for your logic app. Nella barra degli strumenti della finestra di progettazione scegliere Salva.On the designer toolbar, choose Save.

    L'URL endpoint verrà visualizzato nel trigger, ad esempio:The endpoint URL now appears in your trigger, for example:

    Generare l'URL per l'endpoint

Aggiungere l'azione SAPAdd SAP action

In App per la logica di Azure, un'azione è un passaggio del flusso di lavoro che segue un trigger o un'altra azione.In Azure Logic Apps, an action is a step in your workflow that follows a trigger or another action. Se non è ancora stato aggiunto un trigger all'app per la logica e si desidera seguire questo esempio, aggiungere il trigger descritto in questa sezione.If you haven't added a trigger to your logic app yet and want to follow this example, add the trigger described in this section.

  1. In Progettazione app per la logica, sotto il trigger, scegliere Nuovo passaggio > Aggiungi un'azione.In the Logic App Designer, under the trigger, choose New step > Add an action.

    Aggiungere un'azione

  2. Nella casella di ricerca immettere "server sap" come filtro.In the search box, enter "sap server" as your filter. Nell'elenco delle azioni scegliere l'azione per il server SAP:From the actions list, select the action for your SAP server:

    • Server applicazioni SAP - Send to SAP(Invia a SAP)SAP Application Server - Send to SAP
    • Server di messaggistica SAP - Send to SAP(Invia a SAP)SAP Message Server - Send to SAP

    In questo esempio viene usata questa azione: Server applicazioni SAP - trasmissione a SAPThis example uses this action: SAP Application Server - Send to SAP

    Selezionare il "Server applicazioni SAP" o "Server di messaggistica SAP"

  3. Se vengono richiesti i dettagli della connessione, creare ora la connessione SAP.If you're prompted for connection details, create your SAP connection now. In caso contrario, se la connessione esiste già, continuare con il passaggio successivo per impostare l'azione SAP.Otherwise, if your connection already exists, continue with the next step so you can set up your SAP action.

    Creare una connessione SAP localeCreate on-premises SAP connection

    1. In Gateway selezionare Connetti tramite gateway dati locale, in modo che vengano visualizzate le proprietà della connessione locale.For Gateways, select Connect via on-premises data gateway so that the on-premises connection properties appear.

    2. Specificare le informazioni di connessione per il server SAP.Provide the connection information for your SAP server. Per la proprietà gateway, selezionare il gateway dati creato nel portale di Azure per l'installazione del gateway, ad esempio:For the gateway property, select the data gateway you created in the Azure portal for your gateway installation, for example:

      Server applicazioni SAPSAP Application Server

      Creare una connessione al server applicazioni SAP

      Server di messaggistica SAPSAP Message Server

      Creare una connessione al server di messaggistica SAP

    3. Al termine dell'operazione, scegliere Crea.When you're done, choose Create.

      Le App per la logica configurano ed eseguono il test della connessione, assicurandosi che funzioni correttamente.Logic Apps sets up and tests your connection, making sure that the connection works properly.

  4. Ora individuare e selezionare un'azione dal server SAP.Now find and select an action from your SAP server.

    1. Nella casella Azione SAP, scegliere l'icona cartella.In the SAP action box, choose the folder icon. Dall'elenco delle cartelle, individuare e selezionare l'azione che si desidera usare.From the folder list, find and select the action you want to use.

      In q esempio viene selezionata la categoria IDOC per l'azione IDoc.This example selects the IDOC category for the IDoc action.

      Trovare e selezionare l'azione IDoc

      Se non è possibile trovare l'azione desiderata, è possibile immettere manualmente un percorso, ad esempio:If you can't find the action you want, you can manually enter a path, for example:

      Specificare manualmente il percorso all'azione IDoc

      Per altre informazioni sulle operazioni IDoc, vedere Schemi di messaggi per operazioni IDOCFor more information about IDoc operations, see Message schemas for IDOC operations

    2. Fare clic all'interno della casella Messaggio di input in modo che venga visualizzato l'elenco di contenuti dinamici.Click inside the Input Message box so that the dynamic content list appears. In tale elenco, sotto When a HTTP request is received (Alla ricezione di una richiesta HTTP), selezionare il campo Corpo.In that list, under When a HTTP request is received, select the Body field.

      Questo passaggio include il contenuto del corpo del trigger della richiesta HTTP e invia questo output al server SAP.This step includes the body content from your HTTP request trigger and sends that output to your SAP server.

      Selezionare il campo "Corpo"

      Al termine, l'azione SAP avrà un aspetto simile a quello in questo esempio:When you're done, your SAP action looks like this example:

      Completare l'operazione SAP

  5. Salvare l'app per la logica.Save your logic app. Nella barra degli strumenti della finestra di progettazione scegliere Salva.On the designer toolbar, choose Save.

Aggiungere l'azione di risposta HTTPAdd HTTP response action

Ora aggiungere un'azione di risposta al flusso di lavoro dell'app logica e includere l'output dall'azione SAP.Now add a response action to your logic app's workflow and include the output from the SAP action. In questo modo, l'app per la logica restituisce i risultati dal server SAP per il richiedente originale.That way, your logic app returns the results from your SAP server to the original requestor.

  1. In Progettazione app per la logica, sotto l'azione SAP, scegliere Nuovo passaggio > Aggiungi un'azione.In the Logic App Designer, under the SAP action, choose New step > Add an action.

  2. Nella casella di ricerca digitare "risposta" come filtro.In the search box, enter "response" as your filter. Nell'elenco di azioni, selezionare l'azione: Richiesta - RispostaFrom the actions list, select this action: Request - Response

  3. Fare clic all'interno della casella Corpo casella in modo che venga visualizzato l'elenco di contenuto dinamico.Click inside the Body box so that the dynamic content list appears. In tale elenco, sotto Send to SAP (Invia a SAP), selezionare il campo Corpo.From that list, under Send to SAP, select the Body field.

    Completare l'operazione SAP

  4. Salvare l'app per la logica.Save your logic app.

Testare l'app per la logicaTest your logic app

  1. Se l'app per la logica non è ancora abilitata, scegliere Panoramica nel menu dell'app per la logica.If your logic app isn't already enabled, on your logic app menu, choose Overview. Nella barra degli strumenti scegliere Abilita.On the toolbar, choose Enable.

  2. Nella barra degli strumenti di Progettazione app per la logica selezionare Esegui.On the Logic App Designer toolbar, choose Run. Questo passaggio avvia manualmente l'app per la logica.This step manually starts your logic app.

  3. Attivare l'app per la logica inviando una richiesta HTTP POST all'URL nel trigger della richiesta HTTP e includere il contenuto del messaggio nella richiesta.Trigger your logic app by sending an HTTP POST request to the URL in your HTTP request trigger, and include your message content with your request. Per inviare la richiesta, è possibile usare uno strumento, ad esempio Postman.To the send the request, you can use a tool such as Postman.

    In questo articolo, la richiesta invia un file IDoc, che deve essere in formato XML e includere lo spazio dei nomi per l'azione SAP che si sta usando, ad esempio:For this article, the request sends an IDoc file, which must be in XML format and include the namespace for the SAP action you're using, for example:

    <?xml version="1.0" encoding="UTF-8" ?>
    <Send xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//620/Send">
       <idocData>
          <...>
       </idocData>
    </Send>
    
  4. Dopo aver inviato la richiesta HTTP, attendere la risposta dall'app per la logica.After you send your HTTP request, wait for the response from your logic app.

Nota

L'app per la logica può andare in timeout se tutti i passaggi necessari per la risposta non terminano entro il limite di timeout della richiesta.Your logic app might time out if all the steps required for the response don't finish within the request timeout limit. Se si verifica questa condizione, le richieste potrebbero venire bloccate.If this condition happens, requests might get blocked. Per diagnosticare i problemi, vedere le informazioni su come controllare e monitorare le app per la logica.To help you diagnose problems, learn how you can check and monitor your logic apps.

Complimenti, è stata creata un'app per la logica che può comunicare con il server SAP.Congratulations, you've now created a logic app that can communicate with your SAP server. Dopo aver impostato una connessione a SAP per l'app per la logica, è possibile esplorare altre azioni SAP disponibili, ad esempio BAPI e RFC.Now that you've set up an SAP connection for your logic app, you can explore other available SAP actions, such as BAPI and RFC.

Informazioni di riferimento sui connettoriConnector reference

Per informazioni tecniche dettagliate sul connettore, come descritto dai file Swagger dei connettori, vedere gli articoli di riferimento:For technical details about the connector as described by the connectors' Swagger files, see these reference articles:

SupportoGet support

Passaggi successiviNext steps