2

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

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

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

但是,在执行 nlapigetcontext() 的 console.log 转储时

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

在此处输入图像描述

这是我当前的测试脚本:

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

任何帮助或指导表示赞赏!

谢谢!

4

2 回答 2

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 的好方法。

于 2013-05-17T06:40:54.493 回答
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

于 2013-05-17T09:57:02.940 回答