Thursday 7 February 2013

Getting Intellisense support for netsuite suitescript in visual studio



Well if you are using visual studio for writing suitescripts, you must be wondering about how to get intellisense support for netsuite. Well it is very simple.

           Copy the suitescript file in your project solution. Suppose its name is ‘SuiteScriptIntellisense.js’.

You can get this file by clicking here.



       Just write this line into your javascript file.

///<reference path=SuiteScriptIntellisense.js/>


       Press ‘CTRL’ + ‘SHIFT’ + ’J’ keys.

       At the bottom of your IDE, you will see something like this. 

       All done. You will now be getting the intellisense.


 
To check, press ‘CTRL’ + ‘SPACEBAR’.




Login and Logout a session in suitetalk



In order to login and create a session , you need to do something like this

//create an object of Netsuite service   
NetSuiteService session = new NetSuiteService();
//add a cookie container to it
session.CookieContainer = new System.Net.CookieContainer();
//adding login credentials
Passport passport = new Passport();
passport.account = your account id
passport.email = your email id
RecordRef role = new RecordRef();                   
role.internalId = your role(write 3 if administrator account)
passport.role = role;                   
passport.password = your password
//logging in
Status status = session.login(passport).status;
//returning status
return status.isSuccess;


In order to logout of the session, run the following code.

Status status = session.logout().status;
return status.isSuccess;

Creating Assistant in netsuite using suitescript


Here is a sample code of a web assistant made in a suitelet.

function DemoAssistant(request, response) {
    try {
        //create an object (nlobjassistant) and store that in ‘assistant’ variable
        var assistant = nlapiCreateAssistant("Employee Registration Form");

        //set title of the assistant
        assistant.setTitle('Employee Details');

        // indicate that all steps must be completed sequentially
        assistant.setOrdered(true);

        //adding steps
        assistant.addStep('PersonalDetails', 'Set Personal Details').setHelpText("Enter your personal details");
        assistant.addStep('ContactDetails', 'Enter Contacts Details').setHelpText("Enter your contact details");
        assistant.addStep('EmployementDetails', 'Enter Employement Details').setHelpText("Enter your employement details");
        assistant.addStep('Finished', 'Registration Completed');

        //setting actions
        if (request.getMethod() == 'GET') {

            if (!assistant.isFinished()) {

                if (assistant.getCurrentStep() == null) {

                    assistant.setCurrentStep(assistant.getStep("PersonalDetails"));

                    //add splash screen
                    assistant.setSplash("Welcome!", "Enter your details");

                }

                var step = assistant.getCurrentStep();

                //display part
                if (step.getName() == 'PersonalDetails') {

                    assistant.addField("custpage_firstname", "text", "First Name");
                    assistant.addField("custpage_lastname", "text", "Last Name");

                }

                else if (step.getName() == 'ContactDetails') {

                    assistant.addField("custpage_phone", "phone", "Phone");
                    assistant.addField("custpage_email", "email", "E-mail");
                    assistant.addField("custpage_address", "textarea", "Address");

                }

                else if (step.getName() == 'EmployementDetails') {

                    assistant.addField("custpage_empid", "text", "Employee ID");
                    assistant.addField("custpage_companyname", "text", "Company Name");

                }

                else if (step.getName() == 'Finished') {

                    var personalDetails = assistant.getStep('PersonalDetails');
                    var contactDetails = assistant.getStep('ContactDetails');
                    var employementDetails = assistant.getStep('EmployementDetails');                   

                    //fetching values from previous steps
                    var firstName = personalDetails.getFieldValue('custpage_firstname');
                    var lastName = personalDetails.getFieldValue('custpage_lastname');

                    var phone = contactDetails.getFieldValue('custpage_phone');
                    var email = contactDetails.getFieldValue('custpage_email');
                    var address = contactDetails.getFieldValue('custpage_address');

                    var empId = employementDetails.getFieldValue('custpage_empid');
                    var companyName = employementDetails.getFieldValue('custpage_companyname');

                    //displaying
                    assistant.addField('custpage_displayfirstname', 'Label', "First Name : " + firstName);
                    assistant.addField('custpage_displaylastname', 'Label', "Last Name : " + lastName);
                    assistant.addField('custpage_displayphone', 'Label', "Phone : " + phone);
                    assistant.addField('custpage_displayemail', 'Label', "Email : " + email);
                    assistant.addField('custpage_displayaddress', 'Label', "Address : " + address);
                    assistant.addField('custpage_displayempid', 'Label', "Employee ID : " + empId);
                    assistant.addField('custpage_displaycompanyname', 'Label', "Company Name : " + companyName);

                    assistant.addField('custpage_displaymessage', 'Label', "Click Finish to submit");

                }

            }

            //writing to page
            response.writePage(assistant);

        }

        else {

            if (assistant.getLastAction() == "finish") {
                assistant.setFinished("You have completed");
                assistant.sendRedirect(response);
            }

            else {
                assistant.setCurrentStep(assistant.getNextStep());
                assistant.sendRedirect(response);
            }

        }

        //writing to page
        response.writePage(assistant);

    }
   
    catch (er) {

        nlapiLogExecution('DEBUG','Error',er.message);

    }

}

Hope that this helps you.