Netsuite:如何通过SuiteScript为员工添加角色,访问权限和密码?

时间:2014-04-29 16:46:59

标签: netsuite

此代码非常适合创建员工,但未设置密码和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之外还有一个技巧来设置这些值吗?

3 个答案:

答案 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,
    };

});