After .NET Connector is installed, there will be a new item type available when adding a new item to a project in Visual Studio: SAP Connector Proxy. You'll need to add one of these to your project. Now you need to find the bapi that you want to call. Go to the Server Explorer, and you should see a node named SAP. (if you don't see it, try refreshing the Server Explorer. If you still don't see it, you might have to restart Visual Studio, or even perhaps your computer. Also, make sure you are using Visual Studio 2003, because it's not compatible with 2005). Expand the SAP node, and you'll see the Application Servers node. Right click on it, and select Add Application Server. At this point, if you have the SAPGUI installed on your machine, then all you have to do is select the server you want to connect to under DestinationName (it will read the connection properties from your SAPLOGON.INI file), set the Client (This can be determined by starting your SAPGUI, and on the login screen, you'll see the Client number), and set the SAP username and password to connect with (most likely, your SAP logon). Now expand the new server node that has been added. At this point, you can either try and find the bapi in the BOR, or an easier thing to do is to right click Functions, and then select Add Function Filter. If you happen to know the bapi you are looking for starts with "Z_BAPI", then you can enter "Z_BAPI*" for the name filter, and give this filter a name like "Z_BAPI". Or just enter the entire name, whatever you want to do. Once you are done creating the function filter, expand it, and find the bapi. Now you can drag the bapi from the SAP node in the Server Explorer onto the opened SAP connector Proxy file. Once you have the proxy component (populated with all the necessary SAP stuff the bapi needs) in your project, you can instantiate one, set it's connection, and then call the method that represents the bapi, passing in all the required parameters. The following example assumes there is a bapi named "Z_Bapi_Get_Prod_Ord_Data_Gen", and an appSetting named "SAPConnectionString" in my app's config file, which looks something like this... Here's some code that retrieves production order details from SAP... string sapConnectionString = ConfigurationSettings.AppSettings["SAPConnectionString"]; // create variables used by bapi BAPIRETURN bapiReturn = new BAPIRETURN(); string plant; ZBAPI_PROD_STATUSTable statusTable = new ZBAPI_PROD_STATUSTable(); // make the bapi call try { SAPProxy proxy = new SAPProxy(sapConnectionString); proxy.Z_Bapi_Get_Prod_Ord_Data_Gen(orderNumber, out bapiReturn, out plant, ref statusTable); proxy.Connection.Close(); } catch (RfcCommunicationException ex) { // do something here for when SAP communication is down } catch (RfcLogonException ex) { // do something here, for when the login to SAP fails using the credential supplied } ...now I can access the various objects that were passed to the bapi, and get the returned data (like in this example, bapiReturn and statusTable).