Netsuite Suitetalk API – Getting started with c#
2014, Nov 28
Not finding a great number of c# examples using the Netsuite Suitetalk API i thought i’d post a basic example of using the web service.
This simply just authenticates, gets a list of all the users and outputs their names and email addresses to the console.
Snippet
class Program
{
static bool _isAuthenticated;
static NetSuiteService _service;
static void Main(string[] args)
{
_service = new NetSuiteService();
Login();
GetEmployees();
_service.logout();
Console.Read();
}
private static void Login()
{
//_service.Url = "https://webservices.netsuite.com/services/NetSuitePort_2014_2";
//_service.Url = "https://webservices.na1.netsuite.com/dcrf.nl?k=58baee60ac4e3c16a1765edcb0b3a51e8c6d4b154b13db1f603dd219435cc15d&dcrdt=%2Fservices";
//_service.Url = "https://webservices.na1.netsuite.com/services";
_service.Url = "https://webservices.na1.netsuite.com/services/NetSuitePort_2014_2";
_service.CookieContainer = new CookieContainer();
//invoke the login operation
Passport passport = new Passport();
passport.account = "1234567"; //Get value from here : https://system.na1.netsuite.com/app/webservices/setup.nl?whence=
passport.email = "me@company.com";
passport.password = "myPassword";
//only need this if your default role does not have web service access
//RecordRef role = new RecordRef();
//role.internalId = "15";
////role.id = "3";
//passport.role = role;
try
{
SessionResponse response = _service.login(passport);
Status status = response.status;
_isAuthenticated = status.isSuccess;
Console.WriteLine(status.statusDetail);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
private static void GetEmployees()
{
EmployeeSearchBasic esb = new EmployeeSearchBasic();
esb.isInactive = new SearchBooleanField();
esb.isInactive.searchValue = false;
esb.isInactive.searchValueSpecified = true;
SearchResult res = _service.search(esb);
res.pageSize = 500;
res.pageSizeSpecified = true;
if (res.status.isSuccess)
{
Record[] searchRecords = res.recordList;
if (searchRecords != null && searchRecords.Length >= 1)
{
//Do something with the results... just to the console for the time being.
List<Employee> employees = searchRecords.Select(e => (Employee)e).ToList();
foreach (Employee e in employees)
{
Console.WriteLine(string.Format("{0} {1} : {2}", e.firstName, e.lastName, e.email));
}
}
else
{
Console.WriteLine("No search results returned");
}
}
else
{
Console.WriteLine("Search was not successful");
}
}
}