我一直在尝试将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());
}任何帮助或指导,我们将不胜感激!
谢谢!
发布于 2013-05-17 14:40:54
此表单位于何处?上下文仅在您登录到系统时才有效,因此这不适用于在线客户表单,这些表单被认为是“系统之外的”。
如果只检索值,则可以编写一个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",“促销码”:“CAM999”,“电话”:“1800 111 222",”家庭“:”12“}
你也可以在服务器端从外部站点发布到NetSuite客户在线表单,它将捕获并验证在NS中设置的输入字段的数据,这是避免使用那些可怕的iframes的好方法。
发布于 2013-05-17 17:57:03
使用以下函数
nlapiGetContext().getName()
nlapiGetContext().getUser()
nlapiGetContext().getRole()
nlapiGetContext().getRoleId()
nlapiGetContext().getRoleCenter()
nlapiGetContext().getEmail()
nlapiGetContext().getContact()
nlapiGetContext().getCompany()
nlapiGetContext().getContact()
nlapiGetUser()
nlapiGetDepartment()https://stackoverflow.com/questions/16595887
复制相似问题