Operazioni su BAPIs in SAP
Un'interfaccia bapi (Business Application Programming Interface) è un metodo di un oggetto business SAP che può essere chiamato da un processo esterno. I BAPI sono transazionali nel sistema SAP.
L'adapter Microsoft BizTalk per mySAP Business Suite supporta le chiamate BAPI nella direzione in uscita. Vengono superfici bapi in due modi:
Come RFC. È possibile richiamare un BAPI direttamente richiamando il RFC appropriato.
Come metodi di oggetti business. L'adattatore visualizza BAPI come metodi di oggetti business per facilitare il recupero dei metadati quando si usa il componente aggiuntivo del progetto BizTalk del servizio adapter o il plug-in Di Visual Studio Add Adapter Service Reference.
Importante
È possibile richiamare un BAPI nell'adattatore come RFC o come metodo di un oggetto business; ma indipendentemente dal modo in cui si richiama il BAPI nell'adattatore, viene sempre richiamato il BAPI in SAP tramite l'interfaccia RFC.
L'adapter supporta le transazioni BAPI. Il modello di transazione BAPI in SAP consente agli utenti di combinare diversi BAPI in un'unità logica di lavoro (LUW). Sap LUW è costituito da tutti i passaggi coinvolti in una transazione, incluso l'aggiornamento del database.
Gli argomenti di questa sezione illustrano in che modo i BAPI vengono visualizzati come oggetti business e il modo in cui le transazioni BAPI (LUWs) sono supportate dall'adapter.
BAPI Operations (come metodi di oggetto business)
L'adattatore superfici BAPIs come metodi di oggetti business come praticità per recuperare i metadati quando si usa il componente aggiuntivo Del progetto BizTalk del servizio adapter o il plug-in Aggiungi riferimento al servizio adapter Visual Studio. L'adattatore richiama sempre BAPIs nel sistema SAP usando l'interfaccia RFC.
L'adattatore presenta BAPIs in base al nome come operazioni nell'oggetto business appropriato per le operazioni in uscita. Gli oggetti business vengono raccolti dal gruppo funzionale nel nodo della categoria BAPI dall'adapter. È possibile esplorare o cercare oggetti business e BAPI nel nodo BAPI quando si usa il plug-in Add Adapter Service Reference o il componente aggiuntivo Del servizio adapter.
L'adattatore SAP supporta quanto segue in BAPIs:
Parametri IMPORT
Parametri EXPORT
PARAMETRI DI MODIFICA
Parametri di tabella
Per altre informazioni sulle strutture dei messaggi e sulle azioni SOAP usate per BAPIs come metodi di oggetto business, vedere Schemi di messaggi per le operazioni BAPI.
Transazioni BAPI
Quando si richiama un BAPI, fa sempre parte di un LUW nel sistema SAP. Questo vale se si richiama bapi come RFC o come metodo di un oggetto business. RFC SDK tratta tutti i BAPI inviati sulla stessa connessione SAP come parte della stessa LUW. Dopo una chiamata al commit o al rollback della transazione in una connessione, il successivo BAPI inviato sulla connessione inizia un nuovo LUW.
Si chiama BAPI_TRANSACTION_COMMIT o BAPI_TRANSACTION_ROLLBACK per eseguire il commit o il rollback della transazione. L'adattatore visualizza questi due BAPI:
Nel nodo Base come operazioni RFC.
In ogni oggetto business.
Si controllano i BAPI in una transazione assicurandosi che vengano inviati tutti tramite la stessa connessione SAP (inclusa la chiamata al commit o al rollback della transazione). È possibile eseguire questa operazione in:
Soluzioni BizTalk usando la proprietà contesto del messaggio ConnectionState per assicurarsi che i BAPI in una transazione vengano inviati usando la stessa connessione. Questa proprietà viene visualizzata dall'adapter e fornisce un controllo esplicito sulla connessione usata per inviare un messaggio in un'orchestrazione BizTalk.
Per eseguire transazioni BAPI usando BizTalk Server, l'adapter SAP supporta le proprietà del contesto del messaggio seguenti.
Campo Descrizione OPEN Apre un nuovo canale per la transazione. RIUTILIZZARE Riutilizzare il canale esistente per la transazione. CLOSE Eseguire il commit della transazione e chiudere il canale esistente. ABORT Interrompere la transazione e chiudere il canale esistente. Per altre informazioni, vedere Eseguire transazioni BAPI in SAP usando BizTalk Server.
Nota
Assicurarsi di impostare la proprietà di associazione EnableBizTalkCompatibilityModedurante l'esecuzione di transazioni usando BizTalk Server.
Soluzioni del modello di servizio WCF assicurandosi che i BAPI in una transazione vengano inviati usando lo stesso client WCF. Per altre informazioni, vedere Richiamare bapi in SAP usando il modello di servizio WCF.
Soluzioni del modello di canale WCF assicurandosi che i BAPI in una transazione vengano inviati sullo stesso canale WCF. Per altre informazioni, vedere Sviluppare applicazioni usando il modello di canale WCF.
Limitazioni per le transazioni BAPI
Le restrizioni seguenti si applicano alle transazioni BAPI:
Non è possibile effettuare due accessi in scrittura nella stessa istanza all'interno di un'istanza LUW. Ad esempio, non è possibile creare un ordine e aggiornarlo nella stessa transazione.
Quando si esegue una transazione bapi usando BizTalk Server, tutti i messaggi devono essere inviati su un'unica istanza host della porta di invio.
Se un'istanza viene creata, aggiornata o eliminata usando un BAPI di scrittura, un BAPI di lettura non può visualizzare i dati più recenti finché non viene eseguito il commit di BAPI di scrittura.
Un client esterno che richiama un LUW deve chiamare tutti i BAPI che l'LUW contiene nella stessa connessione SAP.
Importante
BAPIs appartenente alla versione 3.1 chiama COMMIT WORK come parte dell'implementazione. Ciò significa che questi BAPI non possono essere inclusi con altri BAPI in un LUW (perché eseguiranno il commit della transazione). Per altre informazioni, vedere la documentazione di SAP.