NetSuite Saved Search双字段匹配的Criteria文本筛选公式写法咨询
NetSuite Saved Search 双字段匹配筛选配置方案
现有配置错误原因
- 公式硬编码了
'SERIALCODE'固定值,没有对接用户输入的动态参数,无法匹配用户手动输入的不同序列号 - 字段引用错误:未使用自定义字段的实际ID,
{custom_field}是无效引用,会导致公式计算失败返回空 - 判断条件设置错误:公式返回值为
'1'或'0',设置为IS = 空格完全无法匹配返回结果 - 未做空值处理:非日记账类事务的行自定义字段为空,未处理空值会导致OR判断逻辑失效
推荐配置方案(支持用户手动输入筛选)
优先使用拼接字段方案,配置更简单,性能更优:
- 新建事务类型的保存搜索,在「标准」标签页的Criteria区域新增行,类型选择「公式(文本)」
- 公式输入框填写如下内容,注意将
custcol_serial_code_related替换为你自定义字段的实际ID:
NVL({custcol_serial_code_related}, '') || NVL({item}, '')
- 判断条件选择包含,值留空
- 切换到「可用筛选」标签页,找到刚才添加的公式(文本)筛选项,勾选「可显示」添加到筛选区,保存后用户打开搜索即可手动输入序列号查询
如果你需要精确匹配而非包含匹配,将判断条件改为等于即可
CASE WHEN方案(适配复杂逻辑扩展)
如果后续需要扩展更复杂的判断逻辑,可以使用CASE WHEN方案:
- Criteria区域新增「公式(文本)」行,输入如下内容:
CASE WHEN NVL({custcol_serial_code_related}, '') = {?SERIAL_CODE} OR NVL({item}, '') = {?SERIAL_CODE} THEN '1' ELSE '0' END
如需包含匹配,将等于判断替换为
INSTR(NVL({custcol_serial_code_related}, ''), {?SERIAL_CODE}) > 0即可
- 判断条件选择等于,值填写
1 - 切换到「可用筛选」标签页,找到自动生成的
SERIAL_CODE参数项,勾选「可显示」添加到筛选区即可
额外注意事项
- 所有字段引用必须使用NetSuite后台的字段ID,不可用显示名直接引用
- 如果搜索需要返回事务维度的结果而非行维度结果,可在「结果」标签页勾选「分组」,按事务内部ID等头字段分组去重
- 事务类型选择全部时,可额外添加筛选条件「行:主行 = 否」,排除事务头行的无效数据,提升查询效率
内容的提问来源于stack exchange,提问作者Pablo
相关产品推荐
相关产品推荐

