Accessing current user information for a netsuite html form using suitescript

 ̄綄美尐妖づ 提交于 2019-12-11 03:41:17

问题


I've been trying to figure auto-complete some values from netsuite onto our custom html form.

After a bit of researching, I found this gem: nlapiGetContext (http://www.netsuite.com/portal/developers/resources/APIs/Dynamic%20HTML/SuiteScriptAPI/MS_SuiteScriptAPI_WebWorks.1.1.html)

which should do exactly what it says,

However, when doing a console.log dump of nlapigetcontext()

the following information is displayed, not my current logged in user information

Here is my current test script:

if (window.addEventListener) { // Mozilla, Netscape, Firefox
    window.addEventListener('load', WindowLoad, false);
} else if (window.attachEvent) { // IE
    window.attachEvent('onload', WindowLoad);
}

function WindowLoad(event) {
   alert(nlapiGetContext().getCompany());
   console.log(nlapiGetContext());
}

Any help or guidance is appreciated!

Thank you!


回答1:


Where is this form located? Context will only work if you are logged into the system, so this won't apply for online customer forms, those are considered to be "outside the system".

You can write a Suitelet to retrieve data from an external form if you are only retrieving values.

I use this to get campaign information on an external landing page.

function getCamData(request, response){
if ( request.getMethod() == 'GET' ){
    response.setHeader('Custom-Header-CamID', 'CamID');
    var camid = request.getParameter('camid');
    var rec = nlapiLoadRecord('campaign', camid);
    var o = new Object();
        o.thisid = camid; 
        o.promocode = rec.getFieldValue('campaignid'); 
        o.phone = rec.getFieldValue('custevent_cam_1300num');
        o.family = rec.getFieldValue('family');
        var myString = JSON.stringify(o);       
        response.write (myString);
}}

You request something like this:

https://forms.netsuite.com/app/site/hosting/scriptlet.nl?script=188&deploy=1&compid=xxxxxx&h=fb8224b74b24907a79e6&camid=8020

And returns something like this:

{"thisid":"8020","promocode":"CAM999","phone":"1800 111 222","family":"12"}

Also you can do server-side posting from an external site to a NetSuite customer online form, it will capture and validate the data as far as it has the entry fields set in NS, this is a great way to avoid using those horrible iframes.




回答2:


Use these functions

nlapiGetContext().getName()
nlapiGetContext().getUser()
nlapiGetContext().getRole()
nlapiGetContext().getRoleId()
nlapiGetContext().getRoleCenter()
nlapiGetContext().getEmail()
nlapiGetContext().getContact()
nlapiGetContext().getCompany()
nlapiGetContext().getContact()

nlapiGetUser()
nlapiGetDepartment()

For details check http://suitecoder.appspot.com/static/api.html



来源:https://stackoverflow.com/questions/16595887/accessing-current-user-information-for-a-netsuite-html-form-using-suitescript

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!