此代码非常适合创建员工,但未设置密码和giveAccess字段:
function CreateEmployee() {
nlapiLogExecution('DEBUG','running create employee',1);
var employeeRec = nlapiCreateRecord('employee');
employeeRec.setFieldValue('lastname', 'Aloe');
employeeRec.setFieldValue('firstname', 'Danny');
employeeRec.setFieldValue('email', 'test9475@test232.org');
employeeRec.setFieldValue('subsidiary', 3);
employeeRec.setFieldValue('giveAccess', true);
employeeRec.setFieldValue('role', 3);
employeeRec.setFieldValue('password', 'Somepassword1!');
employeeRec.setFieldValue('password2', 'Somepassword1!');
var id = nlapiSubmitRecord(employeeRec);
nlapiLogExecution('DEBUG','done: ' + id + ' employee',id);
var result = new Object();
result.id = id;
return result;
}
当我进入网络界面并提取员工记录时,"访问"选项卡没有选中giveAccess复选框。并尝试登录,因为新用户不起作用。除了employeeRec.setFieldValue之外还有一个技巧来设置这些值吗?
答案 0 :(得分:1)
不确定你是否找到了答案......我知道这是一篇旧帖子。
我能够以编程方式更新用户角色以下是我正在使用的批量更新脚本。它可以向您展示如何使用SuiteScript向用户添加角色。
function massUpdate(recType,recID){
var roleID=1234;
var empRec=nlapiLoadRecord(recType,recID);
var roleCount=empRec.getLineItemCount('roles');
var thiRole=empRec.setLineItemValue('roles','selectedrole',roleCount+1,roleID);
var submitRec=nlapiSubmitRecord(empRec);
}
您遇到的问题是您设置的是字段值,而不是子列表字段值。希望有所帮助。
答案 1 :(得分:0)
无论是通过用户界面还是脚本,自行选中复选框都不足以授予访问权限。您还需要指定用户使用的角色。
首先浏览一下可编写脚本的记录浏览器,除了搜索过滤器和搜索列之外,它似乎没有脚本化。
https://system.netsuite.com/help/helpcenter/en_US/RecordsBrowser/2013_2/Records/employee.html
答案 2 :(得分:0)
这是在suitescrpit 2.0中为员工添加角色的工作示例。
/**
* @NApiVersion 2.x
* @NScriptType UserEventScript
* @NModuleScope SameAccount
*/
define(['N/record'],
/**
* @param {record} record
*/
function(record) {
function beforeSubmit(scriptContext) {
log.debug('in the script');
scriptContext.newRecord.setSublistValue({
sublistId: 'roles',//'jobresources
fieldId: 'selectedrole',//'jobresource',
line: 3,
value: 4
});
}
return {
beforeSubmit: beforeSubmit,
};
});