我一直试图将自己完成的一些值从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());
}
感谢任何帮助或指导!
谢谢!
答案 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);
}}
你要求这样的东西:
并返回这样的内容:
{“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()