Question

I havent worked with that Salesforce API before, so I am a bit stuck on how to connect to the salesforce service.

So far I understood that I have to generate a wsdl file for my account or rather the account of my customer (step 1). So far, so good.

But now the Quickstart (http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_quickstart_steps.htm) says something about "Import the WSDL File into your development platform" (step 2).

How do I import a wsdl file into Visual Studio 2008? I cant find the "Add Web Reference" option which is mentioned in the quickstart.

And if I only need to use the WSDL, what use has the Salesforce Dotnet API package which can be downloaded from the salesforce website (http://wiki.developerforce.com/index.php/Salesforce_Dotnet_API)?

Are there any gotchas I should watch out for when developing applications that use the salesforce API?

Was it helpful?

Solution

If you follow the directions in Binz' answer, you should be able to add a web service reference using Visual Studio.

The "Salesforce Dotnet API package" on the wiki site is not required to access the SalesForce API, it's just a library that tries to abstract it.

As far as gotchas and other things to know, I would recommend that you read chapter 6 of the Force.com Cookbook. You have to sign up for a force.com developer account (free). Most of the things you'll need to be aware of are covered in this chapter. Here are a few of them:

  • logging in / logging out - session management
  • query / queryMore pattern (needed if you're going to pull large sets of data from SalesForce)
  • how to construct a wrapper class - there is some sample vb.net code you can download as well

One other thing to note, if you're going to use SOQL to query your SalesForce data, and you need to filter on a SalesForce date field, you'll need to format the date string. Here's one way to do it:

public static string FormatDateForQuery(DateTime dateToFormat, bool includeTime)
{
    if (includeTime)
    {
        return dateToFormat.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss+00:00");
    }
    else
    {
        return dateToFormat.ToUniversalTime().ToString("yyyy-MM-dd");
    }
}

OTHER TIPS

For Visual Studio 2008 you need to select 'Add Service Reference', then click the 'Advanced' button on the bottom left of the dialogue. There should then be a button on the bottom of that dialogue that says 'Add Web Reference'. You should be able to then select your wsdl file and a service client proxy will be auto genned for you by VS.

To create the WSDL file, go to (your name, top right), set up, develop > api > generate enterprise wsdl > generate. In Chrome, click save page as and put that file in the c drive. In Visual Studio, go to add service reference > advanced > add web reference. Point to the file you downloaded: file:///c:/wsdl.jsp.xml

There is a parsing issue when using .NET 2.0 with date time fields in salesforce, accessing through web services.

It seems to be a bug in .NET but there's another way to address it by manually editing the wsdl.

More information here:

http://community.salesforce.com/t5/NET-Development/Can-t-update-date-datetime-from-c-webservice-through-enterprise/m-p/96046

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top