使用suitecript访问netsuite html表单的当前用户信息

时间:2013-05-16 19:30:33

标签: netsuite

我一直试图将自己完成的一些值从netsuite自动完成到我们的自定义html表单中。

经过一番研究,我找到了这个宝石:nlapiGetContext(http://www.netsuite.com/portal/developers/resources/APIs/Dynamic%20HTML/SuiteScriptAPI/MS_SuiteScriptAPI_WebWorks.1.1.html

应该完全按照它所说的做,

但是,在执行nlapigetcontext()

的console.log转储时

显示以下信息,而不是我当前登录的用户信息

enter image description here

这是我目前的测试脚本:

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());
}

感谢任何帮助或指导!

谢谢!

2 个答案:

答案 0 :(得分:3)

此表单位于何处?只有在您登录系统时才能使用上下文,因此这不适用于在线客户表单,这些表单被认为是“在系统之外”。

如果您只是检索值,可以编写一个Suitelet来从外部表单中检索数据。

我使用此功能在外部着陆页上获取广告系列信息。

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);
}}

你要求这样的东西:

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

并返回这样的内容:

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

此外,您可以从外部站点向NetSuite客户在线表单进行服务器端发布,它将捕获并验证数据,只要它具有在NS中设置的输入字段,这是避免使用这些数据的好方法。可怕的iframe。

答案 1 :(得分:2)

使用这些功能

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

nlapiGetUser()
nlapiGetDepartment()

有关详情,请查看http://suitecoder.appspot.com/static/api.html