Netsuite脚本 - 通过工作流脚本实现在工作流中使用审批人组

function checkUserIfMember(){
 var user = nlapiGetUser();
  filters = new Array(),
        columns = new Array(),
        searchresults = new Array();
    filters[0] = new nlobjSearchFilter('internalid', null, 'is', 14703); //internal id of the static Group
    filters[1] = new nlobjSearchFilter('internalid', 'groupmember', 'is', user);
    columns[0] = new nlobjSearchColumn('internalid', 'groupmember' ); // Member Id

 try {
        // Check for user
        searchresults = nlapiSearchRecord('entitygroup', null, filters, columns);
        // Return true if we have results
        if (searchresults){
            return 'T';
        }
    } catch (e) {
        nlapiLogExecution('DEBUG', e.name, e.message);
        return 'F';
    }
    return 'F';
}
 

函数 checkUserIfMember 用于检查当前登录的用户是否是某个特定组(通过其 internalid 识别)中的成员。下面是代码逐步的中文解释:

  1. 获取当前用户的ID

    var user = nlapiGetUser();

    这一行通过 nlapiGetUser() 获取当前登录用户的内部ID。

  2. 初始化搜索条件和列

    filters = new Array(), columns = new Array(), searchresults = new Array();

    这几行初始化了存储搜索过滤条件、列和搜索结果的数组。

  3. 设置搜索条件

    • 第一个过滤器检查的是 internalid14703 的组。
    • 第二个过滤器检查用户是否为该组的成员,'groupmember' 表示用户是该组的成员,'is' 表示匹配当前用户。
  4. 设置要返回的列

    columns[0] = new nlobjSearchColumn('internalid', 'groupmember'); //成员ID列

    设置返回搜索结果时,显示成员的 internalid(即成员ID)。

  5. 执行搜索并处理结果

    try { searchresults = nlapiSearchRecord('entitygroup', null, filters, columns); if (searchresults){ return 'T'; } } catch (e) { nlapiLogExecution('DEBUG', e.name, e.message); return 'F'; } return 'F';

    • 使用 nlapiSearchRecord 执行实体组的搜索,返回符合条件的记录(即当前用户是否是组内成员)。
    • 如果有结果,返回 'T',表示用户是该组的成员。
    • 如果没有结果,或者出现错误,捕获异常并返回 'F',表示用户不是该组的成员。

总结:
这个函数检查当前用户是否属于ID为 14703 的组,返回 'T'(是成员)或 'F'(不是成员)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值