对于NetSuite中的员工记录,我们有一个名为“员工编号”的自定义字段,其ID为custentity1
。我已经创建了一个工作流程,它将自动创建一个新的员工记录并填充各个字段,但我遇到困难的是Employee Number字段。我想要做的就是从所有员工记录中获取最大的员工编号,并为新员工记录添加一个。
“员工编号”字段是一个自由格式的文本字段,因此我知道我必须使用TO_NUMBER
,但无论何时我尝试引用{custentity1}
我都会收到错误消息,说明该字段不是找到。
更新:我为员工记录创建了一个名为“员工编号”的新自定义字段ID为custentity_employeenumber。我还创建了一个包含以下内容的javascript文件:
function getMaxEmployeeNumber(){
var empNumber = nlobjSearchColumn('custentity_employeenumber', null, 'max');
return empNumber;
}
但是我怎么做才能使用我的记录?
答案 0 :(得分:1)
NetSuite确实有一个内置于其原生功能的自动编号机制,我们的大多数客户都是为了这个目的而使用的。这个功能没有被利用的特殊原因吗?可以通过设置>访问此功能。 公司> 自动生成的号码。
我对工作流程的工作量不大,所以我不知道是否可以使用相同的功能,但这是我在SuiteScript中解决这个问题的方法:
创建一个客户搜索,其中custentity1
的搜索列的摘要类型为max
new nlobjSearchColumn('custentity1', null, 'max');
运行此搜索应该会给出1个结果,即最大客户编号。然后你可以只添加1。
您可以在用户界面中创建类似的已保存搜索,以查看结果集的外观。
只有当字段是数字而不是文本时,这才会真正起作用。如果您知道它将始终是一个数字,我建议将该字段更改为Integer字段。这可能会清除现有数据,因此首先您可以将所有客户及其编号导出到Excel,然后在更改字段后执行CSV导入。
答案 1 :(得分:0)
您是如何在工作流程中寻找最后一名员工的?
我知道这可以在js中完成:
搜索员工 - 返回最多1000
因为员工人数给了我最后一个的custentity1 - nlapiLookupfield('员工'员工[employees.length],' custentity1')
添加+1并保存在新记录中
答案 2 :(得分:0)
如果您使用此搜索列
nlobjSearchColumn(' custentity1',null,' max');
您还可以按递减值对其进行排序,以便第一个结果始终为最大值。像
这样的东西nlobjSearchColumn(' custentity1',null,' max')。setSort(true);