Invocación de RFC y BAPIs mediante el comando EXEC en SAP
El proveedor de datos de .NET Framework para mySAP Business Suite expone el sistema SAP como origen de datos ADO.NET. Mediante el uso del proveedor de datos de .NET Framework para mySAP Business Suite, puede invocar RFC y BAPIs en el sistema SAP mediante un comando EXEC.
Cómo invocar RFC y BAPIs en el sistema SAP
Para invocar un RFC o BAPI mediante el proveedor de datos para SAP, realice los pasos siguientes:
Para invocar un RFC o BAPI
Incluya una referencia (y una instrucción using en el código) a Microsoft.Data.SAPClient.
Cree un objeto SAPConnection mediante un proveedor de datos para SAP cadena de conexión. Para obtener más información sobre el cadena de conexión, vea Leer sobre los tipos de proveedor de datos para la cadena de conexión de SAP.
Abra una conexión al sistema SAP invocando Open en SAPConnection.
Cree un objeto SAPCommand desde SAPConnection.
Especifique la llamada BAPI o RFC en la propiedad CommandText de SAPCommand. Si es necesario, puede especificar parámetros mediante objetos SAPParameter . Para obtener más información sobre cómo especificar una llamada a BAPI o RFC mediante una instrucción EXEC, vea Sintaxis para una instrucción EXEC en SAP. Para obtener ejemplos de cómo especificar un BAPI o RFC, vea Ejemplos de la instrucción EXEC.
Ejecute el comando para invocar rfC o BAPI y obtener los resultados en sapDataReader.
Lea los resultados de SAPDataReader.
Cuando haya terminado de usarlos, cierre (o elimine) SAPConnection y SAPDataReader.
El proveedor de datos para SAP también expone una clase SAPClientFactory , que puede usar para crear objetos SAPConnection, SAPCommand y SAPConnection . Para obtener más información sobre las clases de ADO.NET extendidas por el proveedor de datos para SAP, consulte Extensión de interfaces de ADO.NET con el adaptador de SAP.
Ejemplo
En el ejemplo siguiente se invoca SD_RFC_CUSTOMER_GET para recuperar la información del cliente de todos los clientes cuyos nombres comienzan por "AB". A continuación, escribe los registros de cliente en la consola.
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());
}
}
}
}
}
}
Consulte también
Uso del proveedor de datos de .NET Framework para mySAP Business Suite
Muestras