Condividi tramite


Richiamare rfc e BAPI usando il comando EXEC in SAP

Il provider di dati .NET Framework per mySAP Business Suite espone il sistema SAP come origine dati ADO.NET. Usando il provider di dati .NET Framework per mySAP Business Suite, è possibile richiamare rfc e BAPI nel sistema SAP tramite un comando EXEC.

Come richiamare rfc e BAPI nel sistema SAP

Per richiamare un RFC o BAPI usando il provider di dati per SAP, seguire questa procedura:

Per richiamare un RFC o BAPI

  1. Includere un riferimento (e un'istruzione using nel codice) a Microsoft.Data.SAPClient.

  2. Creare un oggetto SAPConnection usando un provider di dati per SAP stringa di connessione. Per altre informazioni sulla stringa di connessione, vedere Informazioni sui tipi di provider di dati per la stringa di connessione SAP.

  3. Aprire una connessione al sistema SAP richiamando Apri in SAPConnection.

  4. Creare un oggetto SAPCommand da SAPConnection.

  5. Specificare la chiamata BAPI o RFC nella proprietà CommandText di SAPCommand. Se necessario, è possibile specificare i parametri usando gli oggetti SAPParameter . Per altre informazioni su come specificare una chiamata BAPI o RFC usando un'istruzione EXEC, vedere Sintassi per un'istruzione EXEC in SAP. Per esempi di come specificare un'istruzione BAPI o RFC, vedere Esempi per l'istruzione EXEC.

  6. Eseguire il comando per richiamare RFC o BAPI e ottenere i risultati in sapDataReader.

  7. Leggere i risultati da SAPDataReader.

  8. Al termine dell'uso, chiudere (o eliminare) SAPConnection e SAPDataReader.

    Il provider di dati per SAP espone anche una classe SAPClientFactory , che è possibile usare per creare oggetti SAPConnection, SAPCommand e SAPConnection . Per altre informazioni sulle classi ADO.NET estese dal provider di dati per SAP, vedere Estendere le interfacce ADO.NET con l'adattatore SAP.

Esempio

Nell'esempio seguente viene richiamato SD_RFC_CUSTOMER_GET per recuperare le informazioni sui clienti per tutti i clienti i cui nomi iniziano con "AB". Scrive quindi i record del cliente nella console.

using System;  
using System.Collections.Generic;  
using System.Text;  
  
using Microsoft.Data.SAPClient;  
  
namespace SapAdoExec  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            string connstr = "TYPE=A; ASHOST=YourSAPHost; SYSNR=00; CLIENT=800; LANG=EN; USER=YourUserName; PASSWD=YourPassword;";  
  
            using (SAPConnection conn = new SAPConnection(connstr))  
            {  
                conn.Open();  
  
                using (SAPCommand cmd = conn.CreateCommand())  
                {  
                    cmd.CommandText = "exec sd_rfc_customer_get @name1='AB*' ";  
                    using (SAPDataReader dr = cmd.ExecuteReader())  
                    {  
                        do  
                        {  
                            int rows = 0;  
                            while (dr.Read())  
                            {  
                                rows++;  
                                StringBuilder b = new StringBuilder();  
                                for (int i = 0; i < dr.FieldCount; i++)  
                                {  
                                    b.Append(dr[i].ToString() + " ");  
                                }  
                                Console.WriteLine("row {0}: {1} ", rows, b.ToString());  
                            }  
                            Console.WriteLine("Number of rows:{0}", rows);  
                        } while (dr.NextResult());  
  
                    }  
                }  
            }  
  
        }  
    }  
}  

Vedere anche

Usare il provider di dati .NET Framework per mySAP Business Suite
Esempi