In this fourth post in the SalesLogix SData series, I will introduce how to write queries for SalesLogix SData and will point to a useful resource as you get started, or more comfortable with SData.
SData Query Language
Be sure to first take a look at my last post which covers how to retrieve data via the SData API. The ability to read data from SalesLogix via the SData API is only useful if you know how to control it. Reading all records from a table isn’t exactly useful. Knowing how to control which records you’re retrieving is a must. Fortunately, that is easy, but it does take some knowledge of the SData Query Language.
SData uses a language refered to as SData Query Lanaguage. So, what does this mean to you, another thing to learn? Not really. The syntax for the language is simple and easily guessable. If you know how to write NHibernate queries then this won’t look much different. As a matter of fact, if you know how to write SQL queries, this won’t really look much different.
Example Query Conditions
Before we get too deep into things, let’s take a look at some sample query conditions using SData. As I showed in the previous post (Retrieving Data via SData), you can use these conditions by adding them to the QueryValues collection of the SDataResourceCollectionRequest for the “where” part of the query.
- Retrieve all records created since 5/1/2011
“CreateDate ge @2011-01-05@”
- Retrieve all account records whose Name starts with the letter A through L
“left(AccountName,1) between ‘A’ and ‘L'”
- Retrieve all SalesOrders whose State on it’s associated BillingAddress is ‘AZ’
“BillingAddress.State eq ‘AZ'”
- Retrieve all Accounts whose name contains the word Bank
“AccountName like ‘%bank%'”
You’ll see something that looks familiar and understandable with all of those.
Query Conditions, Functions, & Operators
So what are all the possible things you can use in an SData query? Rather than list them all here, I will point to the official SData specification where it outlines the available functions and operators for SData.