Condividi tramite


Operazioni sui TRFC in SAP

Le RFC (TRFC) transazionali sono RFC richiamate come parte di un'unità logica di lavoro (LUW). In un sistema SAP, un LUW contiene tutti i passaggi necessari per completare un'attività aziendale o di programmazione. Un TRFC rappresenta un modo per richiamare un RFC; non è un artefatto SAP univoco.

È possibile usare l'adapter Microsoft BizTalk per mySAP Business Suite sia come client tRFC che come server tRFC.

  • Come client tRFC, l'adattatore consente all'applicazione di richiamare un singolo RFC in un LUW nel sistema SAP. In questo modo si garantisce l'esecuzione una tantum della RFC. Non implica il comportamento transazionale.

  • Come server tRFC, l'adattatore consente di ricevere più RFC all'interno di un LUW. L'adapter supporta le chiamate tRFC in ingresso in un contesto transazionale; è supportato il comportamento di commit e rollback.

Operazioni tRFC

Una TRFC implica un modo per richiamare un RFC; non è un artefatto SAP separato. Di conseguenza, ogni RFC nel sistema SAP (per il quale l'adattatore può recuperare i metadati) viene anche visualizzato come tRFC dall'adattatore SAP. I TRFC vengono visualizzati dal nome RFC come operazioni nel nodo della categoria di metadati TRFC. È possibile esplorare o cercare i TRFC nel nodo TRFC quando si usa il plug-in Aggiungi riferimento al servizio adapter o il componente aggiuntivo Consume Adapter Service.)

L'adattatore SAP supporta quanto segue nei TRFC:

  • Parametri IMPORT

  • PARAMETRI CHANGING (è supportato solo il lato di input del parametro CHANGING)

Nota

I TRFC vengono eseguiti in modo asincrono, quindi non vengono restituiti valori di output (parametri EXPORT o CHANGING) per tali valori.

Un parametro GUID viene visualizzato dall'adattatore per le operazioni tRFC. Questo GUID viene mappato dall'adattatore all'ID transazione SAP (TID) associato a tRFC. È possibile usare questo parametro GUID per:

  • Verificare la classe tRFC nel sistema SAP nelle chiamate client tRFC. A tale scopo, richiamare l'operazione RfcConfirmTransId. Si tratta di un'operazione speciale visualizzata dall'adattatore per confermare un TID nel sistema SAP.

  • Ottenere il TID SAP effettivo usato per un TRFC dalla scheda in entrambi gli scenari di server tRFC e tRFC. A tale scopo, richiamare il metodo dell'utilità SAP ConvertGuidToTid.

    Per altre informazioni su queste operazioni, vedere Operazioni speciali. Per altre informazioni sulle strutture dei messaggi e sulle azioni SOAP usate per tRFCs dall'adapter, vedere Message Schemas for tRFC Operations.For more information about the message structures and SOAP actions used for tRFCs by the adapter, see Message Schemas for tRFC Operations.

Richiamo di RFC transazionali in un sistema SAP

In genere, i TRFC vengono usati per eseguire una o più chiamate RFC all'interno di un singolo LUW; Tuttavia, a causa delle limitazioni in SAP RFC SDK, l'adattatore SAP supporta solo un singolo TRFC per LUW. Per questo motivo, l'adattatore crea un LUW (SAP TID) per ogni TRFC. Per tali client, SAP definisce un LUW come meccanismo per garantire l'esecuzione "una tantum" della RFC e non implica transazioni basate sul commit e sul rollback.

I passaggi seguenti riepilogano le attività eseguite in una chiamata client RFC usando l'adapter SAP. Alcuni di questi passaggi vengono eseguiti dal client dell'adattatore e alcuni vengono eseguiti dall'adapter.

  1. Il client dell'adapter invia un messaggio di richiesta per l'operazione tRFC. Il client dell'adapter può facoltativamente specificare un GUID in questo messaggio.

  2. L'adapter SAP riceve il messaggio di richiesta e usa RFC SDK per ottenere un ID transazione (TID) dal sistema SAP. Se il messaggio di richiesta contiene un GUID, l'adattatore esegue il mapping del GUID a SAP TID; in caso contrario, l'adattatore crea un nuovo GUID e lo esegue il mapping a SAP TID

  3. L'adattatore usa il TID per effettuare la chiamata tRFC al server SAP. Lo stato del TID è contrassegnato come FINISHED nel sistema SAP.

  4. L'adattatore restituisce il GUID (mappato al TID) al client dell'adattatore nel messaggio di risposta.

  5. Il client dell'adapter richiama l'operazione RfcConfirmTransID sull'adattatore con il GUID restituito nel passaggio precedente.

  6. L'adapter usa il GUID nel messaggio di richiesta RfcConfirmTransID per identificare il TID SAP e conferma la chiamata tRFC nel sistema SAP. In questo modo il server SAP elimina la voce TID dal relativo database.

Nota

Le chiamate client tRFC non restituiscono parametri EXPORT o CHANGING.

Per altre informazioni:

Ricezione di chiamate RFC transazionali in ingresso da un sistema SAP

È possibile usare l'adattatore come server tRFC per ricevere tRFC da SAP. Come server tRFC, quando l'adattatore riceve una TRFC, richiama l'operazione tRFC corrispondente nell'applicazione. L'adattatore supporta le funzionalità seguenti quando funge da server tRFC:

  • Un LUW (identificato da un TID SAP) può contenere più TRFC (chiamate RFC).

  • L'adapter crea una transazione di cui è possibile eseguire il commit per ogni TID SAP. Il codice dell'applicazione può essere inserito in questa transazione.

  • Il commit e il rollback sono supportati.

    Nella parte restante di questa sezione vengono fornite informazioni generali sull'uso dell'adattatore come server tRFC. Per informazioni più specifiche su:

  • Ricezione di chiamate tRFC in ingresso tramite BizTalk Server, vedere Ricevere chiamate tRFC in ingresso da SAP tramite BizTalk Server.

  • Ricezione di chiamate tRFC in ingresso tramite il modello di servizio WCF, vedere Ricevere chiamate tRFC in ingresso in SAP usando il modello di servizio WCF.

The TID Database

Quando funge da server tRFC, l'adattatore usa un database SQL Server, ovvero il database TID, per gestire gli ID transazione ricevuti dal sistema SAP. Ad esempio, usa il database TID per gestire le chiamate dal sistema SAP per eseguire il commit, il rollback e confermare il TID. L'adattatore archivia anche il GUID creato e associato a ogni TID SAP nel database TID.

Prerequisiti

Affinché l'adattatore venga eseguito come server tRFC, è necessario assicurarsi che siano soddisfatte le condizioni seguenti:

  • La RFC deve essere dichiarata nel sistema SAP. In questo modo, l'adattatore può recuperare i metadati che descrivono la RFC dal sistema SAP. L'RFC viene effettivamente implementato nell'applicazione.

  • L'adattatore deve registrarsi con una destinazione RFC in un gateway SAP. La registrazione è basata su un nome logico denominato ID programma. Specificare i parametri nell'URI di connessione per specificare l'ID programma, il gateway SAP e il server SAP per questa registrazione.

  • Il database TID deve essere creato in SQL Server. A tale scopo, è necessario eseguire uno script SQL installato dal programma di installazione. Lo script SQL viene in genere installato nell'unità <>di installazione:\Programmi\Microsoft BizTalk Adapter Pack. Per altre informazioni, vedere Installazione di BizTalk Adapter Pack.

  • La proprietà di associazione TidDatabaseConnectionString deve essere impostata sul database SQL stringa di connessione per il database TID. Per altre informazioni sulla proprietà di associazione TidDatabaseConnectionString , vedere Informazioni sulle proprietà di associazione di BizTalk Adapter per mySAP Business Suite.

Nota

L'impostazione della proprietà di associazione TidDatabaseConnectionString configura l'adattatore in modo che funga da server tRFC anziché come server RFC. Se la proprietà di associazione TidDatabaseConnectionString è impostata e si specifica una destinazione RFC nell'URI di connessione, la scheda funge da server tRFC per le chiamate in ingresso dalla destinazione RFC. Se questa proprietà di associazione non è impostata, l'adattatore funge da server RFC.

Modalità di elaborazione dei TRFC in ingresso da parte dell'adapter

I passaggi seguenti riepilogano le attività eseguite dalla chiamata client RFC usando l'adapter SAP. Alcuni di questi passaggi vengono eseguiti dal client dell'adattatore e alcuni vengono eseguiti dall'adapter.

  1. Il sistema SAP chiama l'adapter per verificare se è già stato usato un TID. L'adattatore restituisce la risposta appropriata al sistema SAP. Se il TID è nuovo, l'adapter crea una transazione di cui è possibile eseguire il commit. Questa transazione viene usata per rendere persistente il TID nel database TID in modo transazionale quando il programma SAP esegue un commit (COMMIT WORK). Viene inoltre esposto al codice dell'applicazione che gestisce i TRFC in ingresso. Inoltre, l'adattatore crea un GUID associato a SAP TID.

  2. Il sistema SAP invia uno o più RFC transazionali alla scheda. Per ogni TRFC, l'adapter richiama l'operazione tRFC appropriata nell'applicazione. L'adattatore scorre la transazione creata nel passaggio 1 all'applicazione per ogni operazione. L'adapter passa il GUID creato nel passaggio 1 nel messaggio di richiesta per l'operazione.

  3. Il sistema SAP esegue il commit di LUW (COMMIT WORK). L'adapter tenta di eseguire il commit della transazione associata a SAP TID (creata nel passaggio 1).

    1. Se la transazione è stata interrotta (dall'applicazione) durante una qualsiasi delle chiamate nel passaggio 2, si verifica un errore quando l'adapter tenta di eseguire il commit della transazione. L'errore viene restituito a SAP. Andare al passaggio 4.

    2. Se il commit ha esito positivo, il TID si trova ora nel database TID. Andare al passaggio 5.

  4. Se si è verificato un errore nel passaggio 3 o se SAP esegue il rollback dell'LUW (RESTART_OF_BACKGROUNDTASK) anziché eseguirne il commit, l'adattatore esegue il rollback della transazione. In questo caso il TID non viene mai salvato in modo permanente nel database TID.

  5. Il sistema SAP conferma il TID. L'adattatore rimuove il TID dal database TID (presupponendo che il passaggio 3 sia stato completato correttamente e che il TID esista nel database TID.

Nota

Se si verifica un errore durante un'operazione del server tRFC che tenta di connettersi al database TID, viene restituito un codice di errore che indica che la chiamata in ingresso da SAP non è stata elaborata dall'adattatore SAP.

Ricezione di IDOC come server tRFC

Usare l'adattatore SAP come server RFC o come server tRFC per ricevere i IDOC dal sistema SAP. In entrambi i casi, è necessario impostare la proprietà di associazione ReceiveIdocFormat per specificare il formato in cui l'adattatore deve generare i dati IDOC all'applicazione. Per altre informazioni sulla ricezione di IDOC con l'adattatore, vedere Operazioni sui IDOC in SAP. Per altre informazioni sulle proprietà di associazione dell'adapter SAP, vedere Informazioni sulle proprietà di associazione di BizTalk Adapter per mySAP Business Suite.

Operazioni tRFC speciali

L'adattatore SAP può anche eseguire determinate operazioni tRFC speciali nel sistema SAP. Un'operazione di questo tipo è RfcConfirmTransID.

  • RfcConfirmTransID. Richiamare questa operazione sull'adattatore SAP per confermare le chiamate tRFC effettuate al server SAP. RfcConfirmTransID potrebbe essere necessario negli scenari in cui l'adattatore viene usato per inviare IDOC al server SAP come TRFC. L'operazione è disponibile nel nodo TRFC quando si usa il plug-in Add Adapter Service Reference e Consume Adapter Service Add.

    Per altre informazioni sulla struttura dei messaggi e sull'azione SOAP per l'operazione RfcConfirmTransID, vedere Schemi messaggio per le operazioni tRFC.

Vedere anche

Connettersi a un sistema SAP usando l'adattatore