Connettersi a SAP dai flussi di lavoro in App per la logica di Azure

Si applica a: App per la logica di Azure (a consumo e standard)

Questa guida pratica su più parti illustra come accedere al server SAP da un flusso di lavoro in App per la logica di Azure usando il connettore SAP. È possibile usare le operazioni del connettore SAP per creare flussi di lavoro automatizzati eseguiti quando vengono attivati da eventi nel server SAP o in altri sistemi ed eseguire azioni per gestire le risorse nel server SAP.

I flussi di lavoro delle app per la logica Standard e A consumo offrono il connettore gestito SAP che è ospitato ed eseguito in Azure multi-tenant. I flussi di lavoro Standard offrono anche il connettore predefinito SAP, ospitato ed eseguito in App per la logica di Azure a tenant singolo. Per altre informazioni, vedere Informazioni tecniche sul connettore.

Compatibilità SAP

Il connettore SAP è compatibile con i tipi di sistemi SAP seguenti:

  • Sistemi SAP basati su HANA locali e basati sul cloud, ad esempio S/4 HANA.

  • Sistemi SAP locali classici, ad esempio R/3 ed ECC.

SAP deve supportare la versione del sistema SAP che si vuole connettere. In caso contrario, eventuali problemi che potrebbero verificarsi potrebbero non essere risolvibili. Per altre informazioni sulle versioni di sistema SAP e sulle informazioni di manutenzione, vedere SAP Product Availability Matrix (PAM).

Il connettore SAP supporta i tipi di integrazione di messaggi e dati seguenti dai sistemi basati su SAP NetWeaver:

  • Documento intermedio (IDoc)

  • Business Application Programming Interface (BAPI)

  • Remote Function Call (RFC) e RFC transazionale (tRFC)

Il connettore SAP usa la libreria dei connettori .NET (NCo) SAP.

Per usare le operazioni del connettore SAP, è necessario prima autenticare la connessione e avere le opzioni seguenti:

È possibile usare SNC per SAP NetWeaver Single Sign-On (SSO) o per le funzionalità di sicurezza di prodotti esterni. Se si sceglie di usare SNC, esaminare i prerequisitiSNC.

Informazioni tecniche sul connettore

Il connettore SAP ha versioni diverse, in base al tipo di app per la logica e all'ambiente host.

App per la logica Ambiente Versione del connettore
Consumo App per la logica di Azure multi-tenant Connettore gestito, visualizzato nella raccolta di connettori in Runtime>Condiviso. Per altre informazioni, vedere la documentazione seguente:

- Informazioni di riferimento sui connettori gestiti SAP
- Connettori gestiti in App per la logica di Azure
Standard App per la logica di Azure a tenant singolo e ambiente del servizio app v3 (solo piani di Windows) Connettore gestito, visualizzato nella raccolta dei connettori in Runtime>Condiviso e connettore predefinito, visualizzato nella raccolta dei connettori in Runtime>in-App ed è basato sul provider di servizi. Il connettore predefinito può accedere direttamente alle reti virtuali di Azure con una stringa di connessione senza un gateway dati locale. Per altre informazioni, vedere la documentazione seguente:

- Informazioni di riferimento sui connettori gestiti SAP
- Informazioni di riferimento sul connettore predefinito SAP

- Connettori gestiti in App per la logica di Azure
- Connettori predefiniti in App per la logica di Azure

Differenze tra i connettori

Il connettore predefinito SAP differisce in modo significativo dal connettore gestito SAP nei modi seguenti:

  • Le connessioni locali non richiedono il gateway dati locale.

    Al contrario, il connettore predefinito SAP comunica direttamente con il server SAP nella rete virtuale integrata, evitando hop, latenza e punti di errore per un gateway di rete. Assicurarsi di caricare o distribuire le librerie client SAP non ridistribuibili con l'applicazione flusso di lavoro dell'app per la logica. Per ulteriori informazioni, vedere Prerequisiti in questa guida.

  • Le dimensioni del payload fino a 100 MB sono supportate, pertanto non è necessario usare un URI BLOB per le richieste di grandi dimensioni.

  • Sono disponibili azioni specifiche per Chiamare BAPI, Chiamare RFCe Inviare IDoc. Queste azioni dedicate offrono un'esperienza migliore per BAPI con stato, transazioni RFC e deduplicazione IDoc e non usare il modello di messaggistica SOAP Windows Communication Foundation (WCF) meno recente.

    L'azione Chiamare BAPI include fino a due risposte con il codice JSON restituito, la risposta XML dalla chiamata BAPI e la risposta di rollback BAPI o BAPI e se si usa il commit automatico. Questa funzionalità risolve il problema con il connettore gestito SAP in cui il risultato del commit automatico è invisibile all'utente e osservabile solo tramite i log.

  • Timeout più lungo a 5 minuti rispetto al connettore gestito.

    Il connettore predefinito SAP non usa l'infrastruttura del connettore condivisa o globale, il che significa che i timeout sono più lunghi di 5 minuti rispetto al connettore gestito SAP (due minuti). Le richieste con esecuzione prolungata funzionano senza dover implementare il modello di azione di richiesta basato su webhook a esecuzione prolungata.

  • Per impostazione predefinita, le operazioni del connettore predefinito SAP sono senza stato. Tuttavia, è possibile abilitare la modalità con stato (affinità) per queste operazioni.

    In modalità con stato, il connettore predefinito SAP supporta la disponibilità elevata e le configurazioni scale-out. Per confronto, il connettore gestito SAP ha restrizioni relative al gateway dati locale limitato a una singola istanza per i trigger e ai cluster solo in modalità di failover per le azioni. Per altre informazioni, vedere Connettore gestito SAP - Problemi noti e limitazioni.

  • I flussi di lavoro delle app per la logica Standard richiedono e usano la libreria client SAP NCo 3.1, non la versione di SAP NCo 3.0. Per altre informazioni, consulta Prerequisiti.

  • I flussi di lavoro delle app per la logica Standard forniscono impostazioni dell'applicazione in cui è possibile specificare una password PSE (Personal Security Environment) e PSE.

    Questa modifica impedisce il caricamento di più file PSE, che non sono supportati e genera errori di connessione SAP. Nei flussi di lavoro dell'app per la logica A consumo, il connettore gestito SAP consente di specificare questi valori tramite parametri di connessione, che consentono di caricare più file PSE e non è supportato, causando errori di connessione SAP.

  • Azione Genera schema

    • È possibile scegliere tra più tipi di operazione, ad esempio BAPI, IDoc, RFC e tRFC, rispetto alla stessa azione nel connettore gestito SAP, che usa il parametro SapActionUris e un'esperienza di selezione del file system.

    • È possibile specificare direttamente un nome di parametro come valore personalizzato. Ad esempio, è possibile specificare il parametro Nome RFC dall'azione Chiamare RFC. In confronto, nel connettore gestito SAP è stato necessario specificare un nome di parametro URI azione complesso.

    • Per impostazione predefinita, questa azione non supporta la generazione di più schemi per RFC, BAPI o IDocs in un'esecuzione a singola azione, supportata dal connettore gestito da SAP. Questa modifica della funzionalità impedisce ora di inviare grandi quantità di contenuto in una singola chiamata.

Parametri del connettore

Oltre a semplici input di stringa e numeri, il connettore SAP accetta i parametri di tabella seguenti (Type=ITAB input):

  • Parametri di direzione della tabella, sia di input che di output, per le versioni SAP meno recenti.
  • Modifiche ai parametri, che sostituiscono i parametri di direzione della tabella per le versioni SAP più recenti.
  • Parametri di tabella gerarchici.

Problemi noti e limitazioni

Connettore gestito SAP

  • Il connettore SAP attualmente non supporta le stringhe di route SAP. Il gateway dati locale deve essere presente in una rete virtuale in cui il gateway può raggiungere direttamente il sistema SAP che si vuole connettere.

  • In generale, il trigger SAP non supporta i cluster di gateway dati. In alcuni casi di failover, il nodo del gateway dati che comunica con il sistema SAP potrebbe essere diverso dal nodo attivo, causando un comportamento imprevisto.

    • Per gli scenari di invio di messaggi, sono supportati i cluster del gateway dati in modalità di failover.

    • Le azioni SAP con stato non supportano i cluster gateway dati in modalità di bilanciamento del carico. Le comunicazioni con stato devono rimanere nello stesso nodo del cluster del gateway dati. Usare il gateway dati in modalità non cluster o in un cluster configurato solo per il failover. Ad esempio, queste azioni includono quanto segue:

      • Tutte le azioni che specificano un valore ID sessione
      • [BAPI] Eseguire il commit della transazione
      • Transazione di ripristino dello stato precedente [BAPI]
      • [BAPI - RFC] Chiudere una sessione con stato
      • [BAPI - RFC] Creare una sessione con stato
  • Nell'azione denominata [BAPI] Chiamare metodo in SAP, la funzionalità di commit automatico non eseguirà il commit delle modifiche BAPI se nell'oggetto CallBapiResponse restituito dall'azione è presente almeno un avviso. Per eseguire il commit delle modifiche BAPI nonostante gli avvisi, seguire questa procedura:

    1. Creare una sessione in modo esplicito usando l'azione denominata [BAPI - RFC] Creare una sessione con stato.
    2. Nell'azione denominata [BAPI] Chiamare metodo in SAPdisabilitare la funzionalità di commit automatico.
    3. Chiamare invece l'azione denominata [BAPI] Eseguire il commit della transazione.

Connessioni basate su IP a SAP Message Server (configurazione con carico bilanciato)

Se si specifica un indirizzo IP per connettersi a un server messaggi SAP, ad esempio un servizio di bilanciamento del carico, la connessione potrebbe comunque non riuscire con un messaggio di errore simile a "nome host SAPDBSERVER01.example.com sconosciuto". Il server messaggi indica al connettore SAP di usare un nome host per la connessione al server applicazioni SAP back-end o al server dietro il servizio di bilanciamento del carico. Se DNS non riesce a risolvere il nome host, la connessione non riesce.

Per questo problema, sono disponibili le soluzioni seguenti:

  • Assicurarsi che il client che effettua la connessione, ad esempio il computer con il gateway dati locale per il connettore SAP, possa risolvere i nomi host restituiti dal server messaggi.

  • Nella transazione denominata RZ11modificare o aggiungere l'impostazione SAP denominata ms/lg_with_hostname=0.

Contesto del problema o sfondo

SAP ha aggiornato il connettore .NET (NCo) alla versione 3.1, che ha modificato il modo in cui il connettore richiede connessioni ai server back-end dai server messaggi. Il connettore usa ora una nuova API per la risoluzione del server applicazioni dal server messaggi, a meno che il connettore non usi l'API precedente tramite l'impostazione denominata ms/lg_with_hostname=0'. Per altre informazioni, vedere l'articolo della Knowledge Base di SAP 3305039 - Impostazione dell'indirizzo IP SMLG non considerata durante il login al gruppo di accesso.

Prerequisiti

  • Account e sottoscrizione di Azure. Se non si dispone ancora di una sottoscrizione di Azure, registrarsi per creare un account Azure gratuito.

  • Server applicazioni SAP o server messaggi SAP a cui si vuole accedere da App per la logica di Azure.

    • Configurare il server SAP e l'account utente per consentire l'uso di RFC.

      Per altre informazioni, che include i tipi di account utente supportati e l'autorizzazione minima necessaria per ogni tipo di azione (RFC, BAPI, IDoc), vedere la nota SAP seguente: 460089 - Profili di autorizzazione minimi per i programmi RFC esterni.

    • L'account utente SAP deve accedere al gruppo di funzioni RFC_METADATA e ai rispettivi moduli di funzione per le operazioni seguenti:

      Operazioni Accesso ai moduli funzionali
      Azioni per RFC RFC_GROUP_SEARCH e DD_LANGU_TO_ISOLA
      Azioni BAPI BAPI_TRANSACTION_COMMIT, BAPI_TRANSACTION_ROLLBACK, RPY_BOR_TREE_INIT, SWO_QUERY_METHODS e SWO_QUERY_API_METHODS
      Azioni IDoc IDOCTYPES_LIST_WITH_MESSAGES, IDOCTYPES_FOR_MESTYPE_READ, INBOUND_IDOCS_FOR_TID, OUTBOUND_IDOCS_FOR_TID, GET_STATUS_FROM_IDOCNR e IDOC_RECORD_READ
      Azione Leggi tabella SAP Il valore può essere RFC BBP_RFC_READ_TABLE o RFC_READ_TABLE
      Concedi un accesso minimo rigoroso al server SAP per la tua connessione SAP RFC_METADATA_GET e RFC_METADATA_GET_TIMESTAMP
  • Flusso di lavoro dell'app per la logica da cui si vuole accedere al server SAP.

  • Per impostazione predefinita, le operazioni del connettore predefinito SAP sono senza stato. Per eseguire queste operazioni in modalità con stato, vedere Abilitare la modalità con stato per i connettori predefiniti senza stato.

  • Per usare il trigger del connettore gestito o predefinito SAP denominato Quando si riceve un messaggio, completare le attività seguenti:

    • Configurare le autorizzazioni di sicurezza del gateway SAP o l'elenco di controllo di accesso (ACL). Nella finestra di dialogo Monitoraggio gateway (T-Code SMGW) che mostra i file secinfo e reginfo, aprire il menu Goto e selezionare Funzioni esperte>Sicurezza esterna>Manutenzione dei file ACL.

      È necessaria l'impostazione di autorizzazione seguente:

      P TP=LOGICAPP HOST=<on-premises-gateway-server-IP-address> ACCESS=*

      Questa riga ha il formato seguente:

      P TP=<trading-partner-identifier-(program-name)-or-*-for-all-partners> HOST=<comma-separated-list-with-external-host-IP-or-network-names-that-can-register-the-program> ACCESS=<*-for-all-permissions-or-a-comma-separated-list-of-permissions>

      Se non si configurano le autorizzazioni di sicurezza del gateway SAP, è possibile che venga visualizzato l'errore seguente:

      Registrazione di tp Microsoft.PowerBI.EnterpriseGateway dall'host<nome host> non consentita

      Per altre informazioni, vedere la Nota SAP 1850230 - GW: "Registrazione di tp < ID programma> non consentita".

    • Configurare la registrazione della sicurezza del gateway SAP per individuare i problemi relativi all'elenco di controllo di accesso (ACL). Per altre informazioni, vedere l'argomento della Guida SAP per configurare la registrazione del gateway.

    • Nella finestra di dialogo Configurazione delle connessioni RFC (T-Code SM59) creare una connessione RFC con il tipo TCP/IP. Assicurarsi che Tipo di attivazione sia impostato su Programma server registrato. Impostare il valore Tipo di comunicazione con il sistema di destinazione della connessione RFC su Unicode.

    • Se si usa questo trigger SAP con il parametro Formato IDOC impostato su FlatFile insieme all'azione Decodifica file flat, è necessario usare la proprietà early_terminate_optional_fields nello schema del file flat impostando il valore su true.

      Questo requisito è necessario perché il record di dati IDoc del file flat inviato da SAP nella chiamata tRFC IDOC_INBOUND_ASYNCHRONOUS non viene riempito con la lunghezza completa del campo SDATA. App per la logica di Azure fornisce i dati originali IDoc del file flat senza riempimento, così come ricevuti da SAP. Inoltre, quando si combina questo trigger SAP con l'azione Decodifica file flat, lo schema fornito all'azione deve corrispondere.

    • Nei flussi di lavoro A consumo e Standard, il trigger gestito SAP denominato Quando si riceve un messaggio usa la stessa posizione URI per rinnovare e annullare la sottoscrizione a una sottoscrizione webhook. L'operazione di rinnovo usa il metodo HTTP PATCH, mentre l'operazione di annullamento della sottoscrizione usa il metodo HTTP DELETE. Questo comportamento potrebbe rendere visualizzata un'operazione di rinnovo come operazione di annullamento della sottoscrizione nella cronologia del trigger, ma l'operazione è ancora un rinnovo perché il trigger usa PATCH come metodo HTTP, non DELETE.

      Nei flussi di lavoro Standard, il trigger predefinito SAP denominato Quando si riceve un messaggio usa invece il trigger di Funzioni di Azure e mostra solo i callback effettivi da SAP.

    • Per il trigger del connettore predefinito SAP denominato Quando si riceve un messaggio, è necessario abilitare l'integrazione della rete virtuale e le porte private seguendo l'articolo Abilitazione del Bus di servizio e dei connettori predefiniti SAP per App per la logica con stato in Standard. È anche possibile eseguire il flusso di lavoro in Visual Studio Code per attivare il trigger in locale. Per i requisiti di configurazione di Visual Studio Code e altre informazioni, vedere Creare un flusso di lavoro di app per la logica Standard in App per la logica di Azure a tenant singolo con Visual Studio Code. È anche necessario configurare le variabili di ambiente seguenti nel computer in cui si installa Visual Studio Code:

    • WEBSITE_PRIVATE_IP: impostare questo valore della variabile di ambiente su 127.0.0.1 come indirizzo localhost.
    • WEBSITE_PRIVATE_PORTS: impostare questo valore della variabile di ambiente su due porte libere e utilizzabili nel computer locale, separando i valori con una virgola (,), ad esempio 8080.8088.
  • Il contenuto del messaggio da inviare al server SAP, ad esempio un file di esempio IDoc. Il contenuto deve essere in formato XML e includere lo spazio dei nomi dell'azione SAP che si desidera usare. È possibile inviare IDocs con uno schema di file flat sottoponendoli a wrapping in una busta XML.

  • Per gli scenari in cui si vuole inviare IDocs dal flusso di lavoro dell'app per la logica a SAP, modificare la modalità di elaborazione SAP dall'impostazione predefinita Trigger immediatamente su Trigger by background program in modo che il flusso di lavoro non venga timeout.

    Se il sistema SAP è in fase di caricamento, ad esempio quando il flusso di lavoro invia un batch di IDocs contemporaneamente a SAP, il IDoc in coda chiama il timeout. La modalità di elaborazione predefinita fa sì che il sistema SAP blocchi la chiamata in ingresso per la trasmissione IDoc fino al termine dell'elaborazione di un IDoc. In App per la logica di Azure, per impostazione predefinita, le azioni del flusso di lavoro hanno un timeout di 2 minuti.

    Per modificare la modalità di elaborazione del sistema SAP, seguire questa procedura:

    1. In SAP trovare il profilo partner SAP e aprire le impostazioni dei profili partner. È possibile usare il codice di transazione we20 (T-Code) con il prefisso /n.

    2. Nella scheda Opzioni in ingresso , in Elaborazione per modulo funzione, modificare l'impostazione su Attiva per programma in background da Trigger immediatamente.

      L'impostazione trigger per programma in background consente al TRFC IDOC_INBOUND_ASYNCHRONOUS di trasporto IDoc sottostante di completare immediatamente, anziché bloccare la connessione fino al termine dell'elaborazione di IDoc. Tuttavia, questa impostazione funziona solo se IDoc non include il segmento di sovrascrittura del comportamento express, per nota di supporto SAP 1777090 - IDocs vengono elaborati immediatamente nonostante l'opzione "Trigger by background program" selezionata in WE20 - SAP for Me.

    Per ulteriori informazioni, vedi le seguenti risorse:

Prerequisiti di connettività di rete

Il sistema SAP richiede la connettività di rete dall'host della libreria SAP .NET Connector (NCo):

  • Per i flussi di lavoro delle app per la logica A consumo in App per la logica di Azure multi-tenant, il gateway dati locale ospita la libreria NCo (SAP .NET Connector). Se si usa un cluster gateway dati locale, tutti i nodi del cluster richiedono la connettività di rete al sistema SAP.

  • Per i flussi di lavoro delle app per la logica Standard in App per la logica di Azure a tenant singolo, la risorsa dell'app per la logica ospita la libreria NCo (SAP .NET Connector). La risorsa dell'app per la logica deve quindi abilitare l'integrazione della rete virtuale e tale rete virtuale deve avere connettività di rete al sistema SAP.

La connettività di rete richiesta dal sistema SAP include i server e i servizi seguenti:

  • Server applicazioni SAP, servizio Dispatcher (per tutti i tipi di accesso)

    Il sistema SAP può includere più server applicazioni SAP. L'host della libreria SAP .NET Connector (NCo) richiede l'accesso a ogni server e ai relativi servizi.

  • SAP Message Server, Servizio messaggi (per tipo di accesso Gruppo)

    Il server messaggi e il servizio reindirizzeranno a uno o più servizi Dispatcher del server applicazioni. L'host della libreria SAP .NET Connector (NCo) richiede l'accesso a ogni server e ai relativi servizi.

  • Server gateway SAP, servizio gateway

  • Server gateway SAP, servizio protetto gateway

    La connettività di rete richiesta dal sistema SAP include anche questo server e il servizio da usare con Secure Network Communications (SNC).

Il reindirizzamento delle richieste dal server applicazioni, dal servizio Dispatcher al server gateway, il servizio gateway viene eseguito automaticamente all'interno della libreria NCo (SAP .NET Connector). Questo reindirizzamento si verifica anche se nei parametri di connessione vengono fornite solo le informazioni sul servizio Dispatcher.

Se si usa un servizio di bilanciamento del carico davanti al sistema SAP, è necessario reindirizzare tutti i servizi ai rispettivi server. Per altre informazioni su servizi e porte SAP, vedere Porte TCP/IP di tutti i prodotti SAP.

Nota

Assicurarsi di abilitare la connettività di rete dall'host della libreria NCo (SAP .NET Connector) e che le porte necessarie siano aperte nei firewall e nei gruppi di sicurezza di rete. In caso contrario, vengono visualizzati errori come partner non raggiunto dal componente NI (interfaccia di rete) e testo di errore come WSAECONNREFUSED: Connessione rifiutata.

Prerequisiti della libreria client SAP NCo

Per usare il connettore SAP, è necessario installare la libreria client NCo di SAP Connector per Microsoft .NET 3.1. L'elenco seguente descrive i prerequisiti per la libreria client SAP NCo, in base al flusso di lavoro in cui si usa il connettore SAP:

  • Versione:

    • Per i flussi di lavoro delle app per la logica A consumo che usano il gateway dati locale, assicurarsi di installare la versione più recente a 64 bit, Connettore SAP per Microsoft .NET 3.1.3.0 per Windows 64bit (x64).. Il gateway dati viene eseguito solo in sistemi a 64 bit. L'installazione della versione a 32 bit non supportata genera un errore "immagine non valida".

    • Per i flussi di lavoro delle app per la logica Standard, è possibile installare la versione più recente a 64 bit o a 32 bit per Connettore SAP (NCo 3.1) per Microsoft .NET 3.1.3.0 compilato con .NET Framework 4.6.2. Assicurarsi tuttavia di installare la versione corrispondente alla configurazione nella risorsa dell'app per la logica Standard. Per controllare la versione usata dall'app per la logica, seguire questa procedura:

      1. Nel portale di Azure, aprire la risorsa dell’app per la logica Standard.

      2. Nel menu della risorsa App per la logica, in Impostazioni selezionare Configurazione.

      3. Nella pagina Configurazione selezionare la scheda Impostazioni generali. In Impostazioni piattaforma verificare se il valore Piattaforma è impostato su 64 bit o 32 bit.

      4. Assicurarsi di installare la versione di Connettore SAP (NCo 3.1) per Microsoft .NET 3.1.3.0 compilato con .NET Framework 4.6.2 corrispondente alla configurazione della piattaforma.

  • Dalla cartella di installazione predefinita della libreria client copiare i file dell'assembly (.dll) in un altro percorso, in base allo scenario indicato di seguito. In alternativa, se si usa solo il connettore gestito SAP, quando si installa la libreria client SAP NCo, selezionare Registrazione di Global Assembly Cache. Il connettore predefinito SAP attualmente non supporta la registrazione GAC.

    • Per un flusso di lavoro A consumo eseguito in App per la logica di Azure multi-tenant e usa il gateway dati locale, copiare i file di assembly (.dll) seguenti nella cartella di installazione del gateway dati locale, ad esempio C:\Programmi\Gateway dati locale. La libreria client SAP NCo 3.0 contiene gli assembly seguenti:

      • libicudecnumber.dll
      • rscp4n.dll
      • sapnco.dll
      • sapnco_utils.dll

      Assicurarsi di copiare i file di assembly nella cartella di installazione del gateway dati. In caso contrario, la connessione SAP potrebbe non riuscire con il messaggio di errore. Controllare le informazioni sull'account e/o le autorizzazioni e riprovare. È possibile risolvere altri problemi usando il visualizzatore del log di associazione di assembly .NET. Questo strumento consente di verificare che i file di assembly si trovino nel percorso corretto.

    • Per i flussi di lavoro Standard, copiare i file di assembly (.dll) seguenti in un percorso da cui è possibile caricarli rispettivamente nella risorsa o nel progetto dell'app per la logica in cui si compila il flusso di lavoro, nel portale di Azure o in locale in Visual Studio Code. La libreria client SAP NCo 3.1 include gli assembly seguenti:

      • rscp4n.dll
      • sapnco.dll
      • sapnco_utils.dll

Esistono le relazioni seguenti tra la libreria client SAP NCo, .NET Framework, il runtime .NET e il gateway dati:

  • L'adapter Microsoft SAP e il servizio host del gateway usano entrambi .NET Framework 4.7.2.

  • SAP NCo per .NET Framework 4.0 funziona con processi che usano runtime .NET dalla versione 4.0 alla 4.8.

  • NCo SAP per .NET Framework 2.0 funziona con processi che usano il runtime .NET da 2.0 a 3.5, ma non funziona più con il gateway più recente.

Prerequisiti SNC

Per i flussi di lavoro A consumo in App per la logica di Azure multi-tenant che usano il gateway dati locale e, facoltativamente, SNC, è necessario configurare anche le impostazioni seguenti.

  • Assicurarsi che la versione della libreria SNC e le relative dipendenze siano compatibili con l'ambiente SAP. Per risolvere eventuali problemi di compatibilità delle librerie, è possibile usare il gateway dati locale e i log del gateway dati.

  • Assicurarsi di aver copiato i file di assembly seguenti (.dll) della libreria client SAP NCo 3.0 nella cartella di installazione del gateway dati locale, ad esempio C :\Programmi\Gateway dati locale.

    • libicudecnumber.dll
    • rscp4n.dll
    • sapnco.dll
    • sapnco_utils.dll
  • Per l'utilità SAPGENPSE, è necessario usare in modo specifico sapgenpse.exe.

  • Se si fornisce un ambiente di sicurezza personale con la connessione, non è necessario copiare e configurare PSE e SECUDIR per il gateway dati locale.

  • Se si abilita SNC tramite un prodotto di sicurezza esterno, ad esempio sapseculib, Kerberos o NTLM, assicurarsi che la libreria SNC sia presente nello stesso computer dell'installazione del gateway dati. Per questa attività, copiare i file binari della libreria SNC nella stessa cartella dell'installazione del gateway dati nel computer locale, ad esempio C:\Programmi\Gateway dati locale.

    Nota

    Nel computer con l'installazione del gateway dati e la libreria SNC non impostare le variabili di ambiente per SNC_LIB e SNC_LIB_64. In caso contrario, queste variabili hanno la precedenza sul valore della libreria SNC passato attraverso il connettore.

  • Per usare SNC con Single Sign-On (SSO), assicurarsi che il servizio gateway dati sia in esecuzione come utente mappato a un utente SAP. Per modificare l'account predefinito per l'account del servizio gateway, selezionare Cambia account e immettere le credenziali utente.

    Screenshot che mostra il programma di installazione del gateway dati locale e la pagina Impostazioni servizio con il pulsante per modificare l'account del servizio gateway selezionato.

Per altre informazioni sull'abilitazione di SNC, vedere Abilitare Secure Network Communications (SNC).

Prerequisiti dell'ambiente di App per la logica di Azure

Per un flusso di lavoro A consumo in App per la logica di Azure multi-tenant, il connettore gestito SAP si integra con i sistemi SAP tramite un gateway dati locale. Ad esempio, negli scenari in cui il flusso di lavoro invia un messaggio al sistema SAP, il gateway dati funge da client RFC e inoltra le richieste ricevute dal flusso di lavoro a SAP. Analogamente, negli scenari in cui il flusso di lavoro riceve un messaggio da SAP, il gateway dati funge da server RFC che riceve le richieste da SAP e le inoltra al flusso di lavoro.

  1. In un computer host o in una macchina virtuale presente nella stessa rete virtuale del sistema SAP a cui ci si connette, scaricare e installare il gateway dati locale.

    Il gateway dati consente di accedere in modo sicuro ai dati e alle risorse locali. Assicurarsi di usare una versione supportata del gateway. Se si verifica un problema con il gateway, provare ad eseguire l'aggiornamento alla versione più recente, che potrebbe includere aggiornamenti per risolvere il problema.

  2. Nel portale di Azure creare una risorsa gateway di Azure per l'installazione del gateway dati locale.

  3. Nello stesso computer locale dell'installazione del gateway dati locale scaricare e installare la libreria client SAP NCo più recente.

  4. Per il computer host con l'installazione del gateway dati locale, configurare i nomi host di rete e la risoluzione dei nomi dei servizi.

    • Per usare i nomi host o i nomi dei servizi per le connessioni da App per la logica di Azure, è necessario configurare la risoluzione dei nomi per ogni applicazione SAP, messaggio e server gateway insieme ai relativi servizi:

      • Nel file %windir%\System32\drivers\etc\hosts o nel server DNS disponibile per il computer host per l'installazione del gateway dati locale, configurare la risoluzione dei nomi host di rete.

      • Nel file %windir%\System32\drivers\etc\services configurare la risoluzione dei nomi del servizio.

    • Se non si intende usare nomi host di rete o nomi di servizio per la connessione, è possibile usare invece indirizzi IP host e numeri di porta del servizio.

    • Se non si dispone di una voce DNS per il sistema SAP, l'esempio seguente mostra una voce di esempio per il file hosts:

      10.0.1.9           sapserver                   # SAP single-instance system host IP by simple computer name
      10.0.1.9           sapserver.contoso.com       # SAP single-instance system host IP by fully qualified DNS name
      

      L'elenco seguente mostra un set di voci di esempio per i file di servizi:

      sapdp00            3200/tcp              # SAP system instance 00 dialog (application) service port
      sapgw00            3300/tcp              # SAP system instance 00 gateway service port
      sapmsDV6           3601/tcp              # SAP system ID DV6 message service port
      

Abilitare Secure Network Communications (SNC)

Per un flusso di lavoro A consumo eseguito in App per la logica di Azure multi-tenant, è possibile abilitare SNC per l'autenticazione, che si applica solo quando si usa il gateway dati. Prima di iniziare, assicurarsi di soddisfare tutti i prerequisiti e i prerequisiti SNC necessari.

  1. Nel portale di Azure, aprire l'app per la logica e il flusso di lavoro A consumo nella finestra di progettazione.

  2. Aggiungere o modificare un'operazione del connettore gestito SAP.

  3. Nella casella Informazioni di connessione SAP specificare le informazioni necessarie seguenti. Il tipo di autenticazione selezionato modifica le opzioni disponibili.

    Screenshot che mostra le impostazioni di connessione SAP per A consumo.

    Nota

    I campi Nome utente SAP e Password SAP sono facoltativi. Se non si specifica un nome utente e una password, il connettore usa il certificato client fornito in un passaggio successivo per l'autenticazione.

  4. Per abilitare SNC, nella casella informazioni di connessione SAP specificare invece le informazioni necessarie seguenti:

    Screenshot che mostra le impostazioni di connessione SAP per SNC abilitate per A consumo.

    Parametro Descrizione
    Usare SNC Selezionare la casella di controllo .
    Libreria SNC Immettere uno dei valori seguenti:

    - Nome della libreria SNC, ad esempio, sapsnc.dll
    - Percorso relativo del percorso di installazione NCo, ad esempio .\security\sapsnc.dll
    - Percorso assoluto del percorso di installazione NCo, ad esempio c:\security\sapsnc.dll
    SNC SSO Selezionare Accedere usando l'identità SNC o Accedere con il nome utente/la password specificati a livello RFC.

    In genere, l'identità SNC viene usata per autenticare il chiamante. È possibile scegliere di eseguire l'autenticazione con un nome utente e una password, ma questo valore di parametro è ancora crittografato.
    Nome SNC Nella maggior parte dei casi, è possibile omettere questo valore. La soluzione SNC installata di solito conosce il proprio nome SNC. Nel caso in cui la soluzione supporti più identità, potrebbe essere necessario specificare l'identità da usare per questa destinazione o server specifico.
    Nome partner SNC Immettere il nome per il backend SNC, ad esempio p:CN=DV3, OU=LA, O=MS, C=US.
    Qualità protezione SNC Selezionare la qualità del servizio da utilizzare per la comunicazione SNC con questo particolare server o destinazione. Il valore predefinito è definito dal sistema back-end. Il valore massimo è definito dal prodotto di sicurezza utilizzato per SNC.
    Certificato SNC Immettere la chiave pubblica con codifica base64 per il certificato da usare per identificare il client in SAP.

    Nota: non includere l'intestazione o il piè di pagina PEM.

    - Non immettere la chiave privata per il certificato client qui. L'ambiente di sicurezza personale (PSE) deve contenere la chiave privata corrispondente per questo certificato e potrebbe contenere altri certificati privati. Per altre informazioni, vedere il parametro successivo.
    PSE Immettere SNC Personal Security Environment (PSE) come file binario con codifica base64.

    - Il PSE deve contenere la chiave privata per il certificato client in cui l'identificazione personale corrisponde alla chiave pubblica per il certificato client nel parametro Certificato SNC.

    - Anche se il PSE potrebbe contenere diversi certificati client, per usare certificati client differenti, creare flussi di lavoro separati.

    - Se si usa più di un certificato client SNC per la risorsa dell'app per la logica Standard, è necessario fornire lo stesso PSE per tutte le connessioni. Il PSE deve contenere la chiave privata corrispondente per il certificato client per ognuna e tutte le connessioni. È necessario impostare il parametro Certificato SNC in modo che corrisponda al certificato privato specifico per ogni connessione.
  5. Per completare la creazione della connessione, selezionare Crea.

    Se i parametri sono corretti, viene creata la connessione. Se si verifica un problema con i parametri, nella finestra di dialogo di creazione della connessione viene visualizzato un messaggio di errore. Per risolvere i problemi relativi ai parametri di connessione, è possibile usare l'installazione del gateway dati locale e i log locali del gateway.

Convertire un file PSE binario in formato con codifica base64

  1. Usare uno script di PowerShell, ad esempio:

    Param ([Parameter(Mandatory=$true)][string]$psePath, [string]$base64OutputPath)
    $base64String = [convert]::ToBase64String((Get-Content -path $psePath -Encoding byte))
    if ($base64OutputPath -eq $null)
    {
        Write-Output $base64String
    }
    else
    {
        Set-Content -Path $base64OutputPath -Value $base64String
        Write-Output "Output written to $base64OutputPath"
    } 
    
  2. Salvare lo script come file pseConvert.ps1, quindi richiamare lo script, ad esempio:

    .\pseConvert.ps1 -psePath "C:\Temp\SECUDIR\request.pse" -base64OutputPath "connectionInput.txt"
    Output written to connectionInput.txt 
    

    Se non si specifica il parametro del percorso di output, l'output dello script nella console contiene interruzioni di riga. Rimuovere le interruzioni di riga nella stringa con codifica base 64 per il parametro di input della connessione.

Configurare e testare l'invio di IDocs da SAP al flusso di lavoro

Per inviare IDocs da SAP al flusso di lavoro dell'app per la logica, seguire questa procedura per configurare e testare la configurazione SAP con il flusso di lavoro dell'app per la logica. Questi passaggi si applicano solo ai test perché gli ambienti di produzione richiedono una configurazione aggiuntiva.

Per inviare IDocs da SAP al flusso di lavoro, è necessaria la configurazione minima seguente:

  1. Creare una destinazione RFC.
  2. Creare una connessione ABAP.
  3. Creare una porta destinatario.
  4. Creare una porta mittente.
  5. Creare un partner di sistema logico.
  6. Creare un profilo partner.
  7. Testare l'invio di messaggi.

Creare una destinazione RFC

Questa destinazione identifica il flusso di lavoro dell'app per la logica come porta ricevente.

  1. In SAP aprire le impostazioni Configurazione delle connessioni RFC. È possibile usare il codice transazione sm59 (T-Code) con il prefisso /n.

  2. Selezionare Connessioni TCP/IP>Crea.

  3. Creare una nuova destinazione RFC con le impostazioni seguenti:

    1. Per Destinazione RFC immettere un nome.

    2. Nella scheda Impostazioni tecniche, per Tipo di attivazione, selezionare Programma server registrato.

    3. Per ID programma immettere un valore. Nel server SAP il trigger del flusso di lavoro viene registrato usando questo identificatore.

      Importante

      L'ID programma SAP fa distinzione tra maiuscole e minuscole. Assicurarsi di usare in modo coerente lo stesso formato di maiuscole e minuscole per il valore ID programma quando si configura il flusso di lavoro e il server SAP. In caso contrario, è possibile che vengano visualizzati gli errori seguenti nel monitoraggio tRFC (T-Code SM58) quando si tenta di inviare un IDoc a SAP:

      • Impossibile trovare la funzione IDOC_INBOUND_ASYNCHRONOUS
      • Client RFC non ABAP (tipo di partner) non supportato

      Per altre informazioni da SAP, vedere le note seguenti (account di accesso obbligatorio):

    4. Nella scheda Unicode selezionare Unicode per Tipo di comunicazione con sistema di destinazione.

      Nota

      Le librerie client SAP .NET supportano solo la codifica dei caratteri Unicode. Se viene visualizzato l'errore Client RFC Non-ABAP (tipo di partner) non supportato quando si invia un IDoc da SAP ad App per la logica di Azure, verificare che il valore Tipo di comunicazione con sistema di destinazione sia impostato su Unicode.

  4. Salva le modifiche.

  5. Registrare il nuovo ID programma con App per la logica di Azure creando un flusso di lavoro dell'app per la logica che inizia con il trigger gestito SAP denominato Quando si riceve un messaggio.

    In questo modo, quando si salva il flusso di lavoro, App per la logica di Azure registra l'ID programma nel gateway SAP.

  6. Nella cronologia dei trigger del flusso di lavoro, i log dell'adapter SAP del gateway dati locale, se applicabile, e i log di traccia del gateway SAP, controllano lo stato di registrazione.

    Nella casella Monitoraggio gateway SAP (T-Code SMGW), in Client connessi, la nuova registrazione viene visualizzata come Server registrato.

  7. Per testare la connessione, nella nuova Destinazione RFC selezionare Test di connessione.

Creare una connessione ABAP

Questa destinazione identifica il sistema SAP come porta del mittente.

  1. In SAP aprire le impostazioni Configurazione delle connessioni RFC. È possibile usare il codice transazione sm59 (T-Code) con il prefisso /n.

  2. Selezionare Connessioni ABAP>Crea.

  3. Per Destinazione RFC immettere l'identificatore per il sistema SAP di test.

  4. In Impostazioni tecniche lasciare vuoto l'host di destinazione per creare una connessione locale al sistema SAP.

  5. Salva le modifiche.

  6. Per testare la connessione, selezionare Test di connessione.

Creare la porta del mittente

  1. In SAP aprire le impostazioni Porte nell'elaborazione IDOC. È possibile usare il codice transazione we21 (T-Code) con il prefisso /n.

  2. Selezionare Porte>RFC transazionale>Crea.

  3. Nella casella delle impostazioni visualizzata selezionare il nome della porta.

  4. Per la porta di test immettere un nome che inizia con SAP. Salva le modifiche.

    Tutti i nomi delle porte del mittente devono iniziare con le lettere SAP, ad esempio SAPTEST.

  5. Nelle impostazioni per la nuova porta mittente immettere l'identificatore per la connessione ABAP per la destinazione RFC.

  6. Salva le modifiche.

Creare una porta destinatario

  1. In SAP aprire le impostazioni Porte nell'elaborazione IDOC. È possibile usare il codice transazione we21 (T-Code) con il prefisso /n.

  2. Selezionare Porte>RFC transazionale>Crea.

  3. Nella casella delle impostazioni visualizzata selezionare il nome della porta. Per la porta di test immettere un nome. Salva le modifiche.

  4. Nelle impostazioni per la nuova porta destinatario, per la destinazione RFC, immettere l'identificatore per la destinazione RFC di test.

  5. Salva le modifiche.

Creare un partner di sistema logico

  1. In SAP aprire le impostazioni Cambia visualizzazione "Sistemi logici": panoramica. È possibile usare il codice di transazione bd54 (T-Code).

  2. Accettare il messaggio di avviso seguente visualizzato: Attenzione: la tabella è cross-client

  3. Sopra l'elenco che mostra i sistemi logici esistenti, selezionare Nuove voci.

  4. Per il nuovo sistema logico immettere un identificatore Log.System e una breve descrizione del nome. Salva le modifiche.

  5. Quando viene visualizzato Prompt for Workbench, creare una nuova richiesta specificando una descrizione o se è già stata creata una richiesta, ignorare questo passaggio.

  6. Dopo aver creato la richiesta workbench, collegare la richiesta alla richiesta di aggiornamento della tabella. Per verificare che la tabella sia stata aggiornata, salvare le modifiche.

Creazione dei profili dei partner

Per gli ambienti di produzione, è necessario creare i due profili partner seguenti:

  • Un profilo per il mittente, ovvero l'organizzazione e il sistema SAP.
  • Un profilo per il ricevitore, ovvero la risorsa e il flusso di lavoro dell'app per la logica.
  1. In SAP aprire le impostazioni di Profili partner. È possibile usare il codice di transazione we20 (T-Code) con il prefisso /n.

  2. In Profili partner selezionare Tipo partner>Crea.

  3. Creare un nuovo profilo partner con le impostazioni seguenti:

    Impostazione Descrizione
    Partner N. Immettere l'identificatore del partner di sistema logico.
    Partn. Type Immettere LS.
    Agente Immettere l'identificatore per l'account utente SAP da usare quando si registrano gli identificatori di programma per App per la logica di Azure o altri sistemi non SAP.
  4. Salva le modifiche.

    Se non è stato creato il partner di sistema logico, viene visualizzato l'errore Immettere un numero di partner valido.

  5. Nelle impostazioni del profilo partner, in Outbound parmtrs selezionare Crea parametro in uscita.

  6. Creare un nuovo parametro in uscita con le impostazioni seguenti:

  7. Salva le modifiche.

Testare l'invio di messaggi

  1. In SAP aprire le impostazioni Strumento di test per l'elaborazione IDoc. È possibile usare il codice di transazione we19 (T-Code) con il prefisso /n.

  2. In Modello per il testselezionare Tramite tipo di messaggio. Immettere il tipo di messaggio, ad esempio CREMAS. Seleziona Crea.

  3. Confermare il messaggio Quale tipo di IDoc? selezionando Continua.

  4. Selezionare il nodo EDIDC. Immettere i valori appropriati per le porte destinatario e mittente. Selezionare Continua.

  5. Selezionare Elaborazione in uscita Standard.

  6. Per avviare l'elaborazione IDoc in uscita, selezionare Continua.

    Al termine dell'elaborazione dello strumento, viene visualizzato il messaggio IDoc inviato al sistema SAP o al programma esterno.

  7. Per verificare la presenza di errori di elaborazione, usare il codice di transazione sm58 (T-Code) con il prefisso /n.

Creare flussi di lavoro per scenari SAP comuni

Per la guida pratica alla creazione di flussi di lavoro per carichi di lavoro di integrazione SAP comuni, vedere la procedura seguente:

Creare flussi di lavoro per scenari SAP avanzati

Trovare i log degli errori estesi (solo connettore gestito)

Se si usa il connettore gestito SAP, è possibile trovare messaggi di errore completi controllando i log estesi dell'adapter SAP. È anche possibile abilitare un file di log esteso per il connettore SAP.

  • Per le versioni locali del gateway dati da aprile 2020 e versioni precedenti, i log sono disabilitati per impostazione predefinita.

  • Per le versioni del gateway dati locale a partire da giugno 2020 e versioni successive, è possibile abilitare i log del gateway nelle impostazioni dell'app.

    • Il livello di registrazione predefinito è Avviso.

    • Se si abilita Registrazione aggiuntiva nelle impostazioni di diagnostica dell'app gateway dati locale, il livello di registrazione passa a Informational.

    • Per aumentare il livello di registrazione a Dettagliato, aggiornare l'impostazione seguente nel file di configurazione. In genere, il file di configurazione si trova in C:\Program Files\On-premises data gateway\Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config.

      <setting name="SapTraceLevel" serializeAs="String">
         <value>Verbose</value>
      </setting>
      

Configurare la registrazione SAP estesa nel gateway dati locale (solo connettore gestito)

Se si usa un gateway dati locale per App per la logica di Azure, è possibile configurare un file di log esteso per il connettore SAP. È possibile usare il gateway dati locale per reindirizzare gli eventi ETW (Event Tracing for Windows) in file di log rotanti inclusi nei file di registrazione del gateway .zip.

È possibile esportare tutti i log di configurazione e servizio del gateway in un file .zip in dalle impostazioni dell'app gateway.

Nota

La registrazione estesa potrebbe influire sulle prestazioni del flusso di lavoro quando è sempre abilitata. Come procedura consigliata, disattivare i file di log estesi dopo aver completato l'analisi e la risoluzione di un problema.

Acquisire eventi ETW

Come attività di registrazione avanzata facoltativa, è possibile acquisire direttamente gli eventi ETW e quindi usare i dati in Diagnostica di Azure in Hub eventi o raccogliere i dati nei log di Monitoraggio di Azure. Per altre informazioni, vedere le procedure consigliate per la raccolta e l'archiviazione dei dati.

Per lavorare con i file ETL risultanti, è possibile usare PerfViewoppure scrivere il proprio programma. La procedura dettagliata seguente usa PerfView:

  1. Nel menu PerfView selezionare Raccogli>Raccogli per acquisire gli eventi.

  2. Nel parametro Provider aggiuntivo immettere *Microsoft-LobAdapter per specificare il provider SAP per acquisire gli eventi dell'adapter SAP. Se non si specificano queste informazioni, la traccia include solo eventi ETW generali.

  3. Mantenere le altre impostazioni predefinite. Se si desidera, è possibile modificare il nome o il percorso del file nel parametro File di dati.

  4. Selezionare Avvia raccolta per iniziare la traccia.

  5. Dopo aver riprodotto il problema o aver raccolto dati di analisi sufficienti, selezionare Arresta raccolta.

  6. Per condividere i dati con un'altra parte, ad esempio i tecnici del supporto tecnico di Azure, comprimere il file ETL.

  7. Per visualizzare il contenuto della traccia:

    1. In PerfView selezionare File>Apri e selezionare il file ETL appena generato.

    2. Nella barra laterale PerfView la sezione Eventi nel file ETL.

    3. In Filtrofiltrare in base a Microsoft-LobAdapter per visualizzare solo gli eventi e i processi del gateway pertinenti.

Testare il flusso di lavoro

In base al fatto che si abbia un flusso di lavoro A consumo in App per la logica di Azure multi-tenant o un flusso di lavoro Standard in App per la logica di Azure a tenant singolo, seguire i passaggi corrispondenti:

  1. Se la risorsa dell'app per la logica a consumo non è già abilitata, nel menu dell'app per la logica selezionare Informazioni generali. Sulla barra degli strumenti selezionare Abilita.

  2. Per avviare manualmente il flusso di lavoro, nella barra degli strumenti della finestra di progettazione selezionare Esegui trigger>Esegui.

  3. Per attivare il flusso di lavoro, inviare un messaggio dal sistema SAP.

  4. Tornare al riquadro Panoramica dell'app per la logica. In Cronologia di esecuzione trovare le nuove esecuzioni per il flusso di lavoro.

  5. Aprire l'esecuzione più recente, che mostra un'esecuzione manuale. Trovare ed esaminare la sezione di output del trigger.

Abilitare la registrazione e la traccia della libreria client SAP (NCo) (solo connettore predefinito)

Quando è necessario analizzare eventuali problemi con questo componente, è possibile configurare la traccia NCo personalizzata basata su file di testo, che SAP o il supporto Microsoft potrebbe richiedere. Per impostazione predefinita, questa funzionalità è disabilitata perché l'abilitazione di questa traccia potrebbe influire negativamente sulle prestazioni ed esaurire rapidamente lo spazio di archiviazione dell'host dell'applicazione.

È possibile controllare questa funzionalità di traccia a livello di applicazione aggiungendo le impostazioni seguenti:

  1. Nel portale di Azure, aprire la risorsa dell’app per la logica Standard.

  2. Nel menu dell'app per la logica, in Impostazioniselezionare Variabili di ambiente per esaminare le impostazioni dell'applicazione.

  3. Nella scheda Impostazioni app della pagina Variabili di ambiente aggiungere le impostazioni dell'applicazione seguenti:

    • SAP_RFC_TRACE_DIRECTORY: directory in cui archiviare i file di traccia NCo, ad esempio C:\home\LogFiles\NCo.

    • SAP_RFC_TRACE_LEVEL: livello di traccia NCo con Level4 come valore suggerito per la registrazione dettagliata tipica. Il supporto SAP o Microsoft potrebbe richiedere di impostare un livello di traccia differente.

      Nota

      Per i flussi di lavoro dell'app per la logica Standard che usano la versione di runtime 1.69.0 o successiva, è possibile abilitare la registrazione per più livelli di traccia separando ogni livello di traccia con una virgola (,).

      Per trovare la versione di runtime del flusso di lavoro, seguire questa procedura:

      1. Nel menu del flusso di lavoro del portale di Azure selezionare Panoramica.
      2. Nella sezione Essentials individuare la proprietà Versione di runtime.
    • SAP_CPIC_TRACE_LEVEL: livello di traccia Common Programming Interface for Communication (CPI-C) con Dettagliato come valore suggerito per la registrazione dettagliata tipica. Il supporto SAP o Microsoft potrebbe richiedere di impostare un livello di traccia differente.

    Per altre informazioni sull'aggiunta delle impostazioni dell'applicazione, vedere Modificare le impostazioni dell'host e dell'app per i flussi di lavoro dell'app per la logica Standard.

  4. Salva le modifiche. Questo passaggio riavvia l'applicazione.

Livelli di traccia disponibili

Livelli di traccia NCo

valore Descrizione
Level1 Livello per la traccia delle chiamate di funzione remota.
Level2 Livello per la traccia delle chiamate di funzioni remote e delle chiamate al metodo API pubblico.
Level3 Livello per tracciare chiamate di funzioni remote, chiamate al metodo API pubblico e chiamate di metodo API interne.
Level4 Livello per la traccia delle chiamate di funzioni remote, chiamate al metodo API pubblico, chiamate di metodo API interne, dump esadecimale per il protocollo RFC e informazioni correlate alla rete.
Blocco Scrive i dati nei file di traccia che mostrano quando i thread richiedono, acquisiscono e rilasciano blocchi sugli oggetti.
Metadati UFX Analizza i metadati coinvolti in una chiamata di funzione remota per ogni chiamata.
None Livello per l'eliminazione di tutti gli output di traccia.
ParameterData Analizza i dati del contenitore inviati e ricevuti durante ogni chiamata di funzione remota.
Prestazioni Scrive i dati nei file di traccia che consentono di analizzare i problemi di prestazioni.
PublicAPI Traccia la maggior parte dei metodi dell'API pubblica, ad eccezione dei getter, dei setter o dei metodi correlati.
InternalAPI Traccia la maggior parte dei metodi dell'API interna, ad eccezione dei getter, dei setter o dei metodi correlati.
RemoteFunctionCall Traccia le chiamate di funzione remota.
RfcData Analizza i byte inviati e ricevuti durante ogni chiamata di funzione remota.
SessionProvider Traccia tutti i metodi dell'implementazione attualmente usata di ISessionProvider.
SetValue Scrive informazioni nei file di traccia relativi ai valori impostati per i parametri di funzioni o campi di strutture o tabelle.

Livelli di traccia CPIC

valore Descrizione
Non visualizzare Nessuna registrazione
Di base Registrazione di base
Verbose Registrazione dettagliata
VerboseWithData Registrazione dettagliata con tutti i dump delle risposte del server

Visualizzare la traccia

  1. Nel menu delle risorse dell'app per la logica Standard, in Strumenti di sviluppo selezionare Strumenti avanzati>Vai.

  2. Nella barra degli strumenti Kudu selezionare Console di debug>CMD.

  3. Passare alla cartella per l'impostazione dell'applicazione denominata $SAP_RFC_TRACE_DIRECTORY.

    Viene visualizzata una nuova cartella denominata NCoo qualsiasi nome di cartella usato per il valore dell'impostazione dell'applicazione, C:\home\LogFiles\NCo, impostata in precedenza.

  4. Aprire la cartella $SAP_RFC_TRACE_DIRECTORY , che contiene i file seguenti:

    • Log di traccia NCo: un file denominato dev_nco_rfc.log, uno o più file denominati nco_rfc_NNNN.loge uno o più file denominati nco_rfc_NNNN.trc in cui NNNN è un identificatore di thread.

    • Log di traccia CPIC: uno o più file denominati nco_cpic_NNNN.trc in cui NNNN è l'identificatore di thread.

  5. Per visualizzare il contenuto in un file di log o di traccia, selezionare il pulsante Modifica accanto a un file.

    Nota

    Se si scarica un file di log o di traccia aperto dal flusso di lavoro dell'app per la logica e attualmente in uso, il download potrebbe comportare un file vuoto.

Abilitare la traccia Common Crypto Library (CCL) SAP (solo connettore predefinito)

Se è necessario analizzare eventuali problemi con la libreria di crittografia durante l'uso dell'autenticazione SNC, è possibile configurare la traccia CCL personalizzata basata su file di testo. È possibile usare questi log CCL per risolvere i problemi di autenticazione SNC o condividerli con il supporto Microsoft o SAP, se richiesto. Per impostazione predefinita, questa funzionalità è disabilitata perché l'abilitazione di questa traccia potrebbe influire negativamente sulle prestazioni ed esaurire rapidamente lo spazio di archiviazione dell'host dell'applicazione.

È possibile controllare questa funzionalità di traccia a livello di applicazione aggiungendo le impostazioni seguenti:

  1. Nel portale di Azure, aprire la risorsa dell’app per la logica Standard.

  2. Nel menu delle risorse dell'app per la logica Standard, in Strumenti di sviluppo selezionare Strumenti avanzati>Vai.

  3. Nella barra degli strumenti Kudu selezionare Console di debug>CMD.

  4. Passare a un percorso in C:\home\site\wwwroote creare un file di testo, ad esempio: CCLPROFILE.txt.

    Per altre informazioni sui parametri di registrazione, vedere Traccia> NOTA SAP 2338952. L'esempio seguente fornisce una configurazione di traccia di esempio:

    ccl/trace/directory=C:\home\LogFiles\CCLLOGS
    ccl/trace/level=4
    ccl/trace/rotatefilesize=10000000
    ccl/trace/rotatefilenumber=10
    
  5. Nel menu dell'app per la logica, in Impostazioniselezionare Variabili di ambiente per esaminare le impostazioni dell'applicazione.

  6. Nella pagina Variabili di ambiente aggiungere l'impostazione dell'applicazione seguente nella scheda Impostazioni app:

    CCL_PROFILE: directory in cui è stato creato CCLPROFILE.txt, ad esempio C:\home\site\wwwroot\CCLPROFILE.txt.

  7. Salva le modifiche. Questo passaggio riavvia l'applicazione.

Visualizzare la traccia

  1. Nel menu delle risorse dell'app per la logica Standard, in Strumenti di sviluppo selezionare Strumenti avanzati>Vai.

  2. Nella barra degli strumenti Kudu selezionare Console di debug>CMD.

  3. Passare alla cartella per il parametro $ccl/trace/directory, che proviene dal file CCLPROFILE.txt.

    In genere, i file di traccia sono denominati sec-Microsoft.Azure.Work-$processId.trc e sec-sapgenpse.exe-$processId.trc.

    Il flusso di lavoro dell'app per la logica esegue l'autenticazione SNC come processo in due passaggi:

    1. Il flusso di lavoro dell'app per la logica richiama sapgenpse.exe per generare un file cred_v2 dal file PSE.

      È possibile trovare le tracce correlate a questo passaggio in un file denominato sec-sapgenpse.exe-$processId.trc.

    2. Il flusso di lavoro dell'app per la logica autentica l'accesso al server SAP usando il file cred_v2 generato, con la libreria client SAP che richiama la libreria di crittografia comune.

      È possibile trovare le tracce correlate a questo passaggio in un file denominato sec-Microsoft.Azure.Work-$processId.trc.

Inviare dati di telemetria SAP per il gateway dati locale ad Azure Application Insights

Con l'aggiornamento di agosto 2021 per il gateway dati locale, le operazioni del connettore SAP possono inviare dati di telemetria dalla libreria client SAP NCo e le tracce dall'adapter SAP Microsoft a Application Insights, che è una funzionalità in Monitoraggio di Azure. Questi dati di telemetria includono principalmente i dati seguenti:

  • Metriche e tracce basate su metriche e monitoraggi SAP NCo.

  • Tracce da Microsoft SAP Adapter.

Metriche e tracce dalla libreria client SAP NCo

Le metriche basate su SAP NCo sono valori numerici che potrebbero o meno variare in un periodo di tempo, in base all'utilizzo e alla disponibilità delle risorse nel gateway dati locale. È possibile usare queste metriche per comprendere meglio l'integrità del sistema e per creare avvisi sulle attività seguenti:

  • Declino dell'integrità del sistema.
  • Eventi insoliti.
  • Carico di sistema elevato.

Queste informazioni vengono inviate alla tabella di Application Insights denominata customMetrics. Per impostazione predefinita, le metriche vengono inviate a intervalli di 30 secondi.

Le tracce basate su SAP NCo includono informazioni di testo usate con le metriche. Queste informazioni vengono inviate alla tabella di Application Insights denominata traces. Per impostazione predefinita, le tracce vengono inviate a intervalli di 10 minuti.

Le metriche e le tracce NCo di SAP si basano sulle metriche NCo di SAP, in particolare sulle classi NCo seguenti:

  • RfcDestinationMonitor.
  • RfcConnectionMonitor.
  • RfcServerMonitor.
  • RfcRepositoryMonitor.

Per altre informazioni sulle metriche fornite da ogni classe, vedere la documentazione di SAP NCo (è necessario l'accesso).

Configurare i dati di telemetria SAP per Application Insights

Prima di poter inviare dati di telemetria SAP per l'installazione del gateway ad Application Insights, è necessario aver creato e configurato la risorsa di Application Insights. Per altre informazioni, vedere la documentazione seguente:

Per abilitare l'invio di dati di telemetria SAP ad Application Insights, seguire questa procedura:

  1. Scaricare il pacchetto NuGet per Microsoft.ApplicationInsights.EventSourceListener.dll da questo percorso: https://www.nuget.org/packages/Microsoft.ApplicationInsights.EventSourceListener/2.14.0.

  2. Aggiungere il file scaricato alla directory di installazione del gateway dati locale, ad esempio C:\Programmi\Gateway dati locale.

  3. Nella directory di installazione del gateway dati locale verificare che il file Microsoft.ApplicationInsights.dll abbia lo stesso numero di versione del file Microsoft.ApplicationInsights.EventSourceListener.dll aggiunto. Il gateway attualmente usa la versione 2.14.0.

  4. Nel file ApplicationInsights.config aggiungere la chiave di strumentazione di Application Insights rimuovendo il commento dalla riga con l'elemento <InstrumentationKey></InstrumentationKey>. Sostituire il segnaposto, your-Application-Insights-instrumentation-key, con la chiave, ad esempio:

    <?xml version="1.0" encoding="utf-8"?>
    <ApplicationInsights schemaVersion="2014-05-30" xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
       <!-- Uncomment this element and insert your Application Insights key to receive ETW telemetry about your gateway <InstrumentationKey>*your-instrumentation-key-placeholder*</InstrumentationKey> -->
       <TelemetryModules>
          <Add Type="Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule, Microsoft.ApplicationInsights">
             <IsHeartbeatEnabled>false</IsHeartbeatEnabled>
          </Add>
          <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
             <Sources>
                <Add Name="Microsoft-LobAdapter" Level="Verbose" />
             </Sources>
          </Add>
       </TelemetryModules>
    </ApplicationInsights>
    
  5. Nel file ApplicationInsights.config è possibile modificare il valore Level delle tracce necessarie per le operazioni del connettore SAP, in base ai requisiti, ad esempio:

    <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
       <Sources>
          <Add Name="Microsoft-LobAdapter" Level="Verbose" />
       </Sources>
    </Add>
    

    Per altre informazioni, vedere la documentazione seguente:

  6. Dopo aver applicato le modifiche, riavviare il servizio gateway dati locale.

Esaminare le metriche in Application Insights

Dopo l'esecuzione delle operazioni SAP nel flusso di lavoro dell'app per la logica, è possibile esaminare i dati di telemetria inviati ad Application Insights.

  1. Nel portale di Azure apri la tua Application Insights risorsa.

  2. Nel menu delle risorse, in Monitoraggio, selezionare Log.

    Lo screenshot seguente mostra il portale di Azure con Application Insights, aperto al riquadro Log:

    Screenshot che mostra il portale di Azure con Application Insights aperto al riquadro

  3. Nel riquadro Log è possibile creare una query usando il linguaggio di query Kusto (KQL) basato sui requisiti specifici.

    È possibile usare un modello di query simile alla query di esempio seguente:

    customMetrics
    | extend DestinationName = tostring(customDimensions["DestinationName"])
    | extend MetricType = tostring(customDimensions["MetricType"])
    | where customDimensions contains "RfcDestinationMonitor"
    | where name contains "MaxUsedCount"
    
  4. Dopo aver eseguito la query, esaminare i risultati.

    Lo screenshot seguente mostra la tabella dei risultati delle metriche della query di esempio:

    Screenshot che mostra Application Insights con la tabella dei risultati delle metriche.

    • MaxUsedCount è "Numero massimo di connessioni client usate contemporaneamente dalla destinazione monitorata", come descritto nella documentazione di SAP NCo (è necessario l'accesso). È possibile usare questo valore per comprendere il numero di connessioni aperte contemporaneamente.

    • La colonna valueCount mostra 2 per ogni lettura perché le metriche vengono generate a intervalli di 30 secondi. Application Insights aggrega queste metriche in base al minuto.

    • La colonna DestinationName contiene una stringa di caratteri che è un nome interno dell'adapter SAP Microsoft.

      Per comprendere meglio questa destinazione Remote Function Call (RFC), usare questo valore con traces, ad esempio:

      customMetrics
      | extend DestinationName = tostring(customDimensions["DestinationName"])
      | join kind=inner (traces
         | extend DestinationName = tostring(customDimensions["DestinationName"]),
         AppServerHost = tostring(customDimensions["AppServerHost"]),
         SncMode = tostring(customDimensions["SncMode"]),
         SapClient = tostring(customDimensions["Client"])
         | where customDimensions contains "RfcDestinationMonitor"
         )
         on DestinationName , $left.DestinationName == $right.DestinationName
      | where customDimensions contains "RfcDestinationMonitor"
      | where name contains "MaxUsedCount"
      | project AppServerHost, SncMode, SapClient, name, valueCount, valueSum, valueMin, valueMax
      

È anche possibile creare grafici delle metriche o avvisi usando tali funzionalità in Application Insights, ad esempio:

Screenshot che mostra Application Insights con i risultati in formato grafico.

Tracce da Microsoft SAP Adapter

È possibile usare le tracce inviate da Microsoft SAP Adapter per la post-analisi dei problemi e per individuare eventuali errori interni esistenti che potrebbero o meno emergere dalle operazioni del connettore SAP. Queste tracce hanno message impostato su "n\a" perché provengono da un framework di origine eventi precedente che precede Application Insights, ad esempio:

traces
| where message == "n/a"
| where severityLevel > 0
| extend ActivityId = tostring(customDimensions["ActivityId"])
| extend fullMessage = tostring(customDimensions["fullMessage"])
| extend shortMessage = tostring(customDimensions["shortMessage"])
| where ActivityId contains "8ad5952b-371e-4d80-b355-34e28df9b5d1"

Lo screenshot seguente mostra la tabella dei risultati delle tracce della query di esempio:

Screenshot che mostra Application Insights con la tabella dei risultati delle tracce.

Passaggi successivi