Netsuite 获取所有记录的字段的最大值

Netsuite 获取所有记录的字段的最大值,netsuite,Netsuite,对于NetSuite中的员工记录,我们有一个名为“员工编号”的自定义字段,其ID为cusentity1。我已经创建了一个工作流,它将自动创建一个新的员工记录并填充各个字段,但我遇到的困难是员工编号字段。我所要做的就是从所有员工记录中获取最大的员工编号,并为新员工记录添加一个编号 Employee Number字段是一个自由格式的文本字段,因此我知道我必须使用来指定编号,但每当我尝试引用{cusentity1}时,我总是会收到一个错误,说找不到该字段 更新:我已经为我们的员工记录创建了一个名为“员

对于NetSuite中的员工记录,我们有一个名为“员工编号”的自定义字段,其ID为
cusentity1
。我已经创建了一个工作流,它将自动创建一个新的员工记录并填充各个字段,但我遇到的困难是员工编号字段。我所要做的就是从所有员工记录中获取最大的员工编号,并为新员工记录添加一个编号

Employee Number字段是一个自由格式的文本字段,因此我知道我必须使用
来指定编号
,但每当我尝试引用
{cusentity1}
时,我总是会收到一个错误,说找不到该字段

更新:我已经为我们的员工记录创建了一个名为“员工编号”的新自定义字段,ID为custentity_employeenumber。我还创建了一个javascript文件,其中包含以下内容:

function getMaxEmployeeNumber(){
   var empNumber = nlobjSearchColumn('custentity_employeenumber', null, 'max');
   return empNumber;
}

但是我如何才能让它与我的记录一起工作呢?

您如何在工作流中查找最后一名员工

我知道这可以在js中完成:

  • 搜索员工-最多返回1000人

  • 对于员工数量,请提供最后一个字段的custentity1-nlapiLookupfield('employee',employees[employees.length],'custentity1')

  • 添加+1并保存到新记录上


NetSuite在其本机功能中内置了自动编号机制,我们的大多数客户都使用该机制来实现这一目的。没有利用此功能是否有特殊原因?此功能可在“设置>公司>自动生成号码”中访问

我不经常使用工作流,因此我不知道是否可以使用相同的功能,但以下是我在SuiteScript中解决此问题的方法:

  • 在提交客户记录的创建事件之前,创建在上执行的用户事件脚本
  • 创建一个客户搜索,其中包含一个摘要类型为
    max

    新的nlobjSearchColumn('cusentity1',null,'max')

  • 运行此搜索将为您提供1个结果,即最大客户编号。然后,只需向其添加1即可

  • 您可以在UI中创建类似的已保存搜索,以查看结果集的外观


    只有当字段是数字而不是文本时,这才真正起作用。我建议将字段更改为整数字段,如果您知道它始终是一个数字。这可能会清除现有数据,因此首先可以将所有客户及其编号导出到Excel,然后在更改字段后进行CSV导入。

    如果使用此搜索列

    nlobjSearchColumn('cusentity1',null,'max')

    您还可以按递减值对其进行排序,以便第一个结果始终是最大值


    nlobjSearchColumn('cusentity1',null,'max')。setSort(true)

    我喜欢你的方法…不幸的是,我们确实将该字段创建为自由格式文本(我不知道为什么这样做)-我必须权衡导出/导入用户是正确的做法,还是简单地创建一个设置正确的新字段。决定:创建一个新字段,该字段是正确的整数类型字段,把员工编号复制到这个新的领域,然后用你的帖子来看看我需要做什么。好吧……我不知道如何让这些都发挥作用。我创建了一个包含以下内容的javascript文件: