【问题标题】:CASE WHEN Formula - NetSuiteCASE WHEN 公式 - NetSuite
【发布时间】:2019-07-30 15:01:19
【问题描述】:

我正在尝试使用公式(文本)获取字段的结果。 想法是 - 如果子公司 = A,则显示字段 1。如果子公司 = B,则显示字段 B。(请参见下面的公式)。 由于某种原因,我没有得到任何结果。这两个字段都是交易列字段。当我只测试字段(没有公式 - 只是字段的名称)时,它们会起作用。

已保存搜索的类型为:交易 主线是:假

{subsidiary}='A' THEN {field1} 的情况 当 {subsidiary}='B' THEN {field2} END

对于属于子公司 A 的记录,字段 2 为空,对于子公司 B - 字段 1 相应地为空。因此,我想如果 子公司是 A 填充字段 1,如果是 B 填充字段 2。 您能告诉我如何实现这一目标吗?

提前谢谢你。

【问题讨论】:

  • 我不认为 ELSE 子句是可选的。

标签: case field formula netsuite case-when


【解决方案1】:

{subsidiary} 字段期望匹配整个父子层次结构,因此 'Honeycomb Holding Inc. : Honeycomb Mfg.'。您可以使用 `{subsidiarynohierarchy} 来匹配交易所在的基本子公司名称(即 Honeycomb Mfg.)。这个公式应该有效:

case 
    when {subsidiarynohierarchy} = 'Honeycomb Mfg.' then {field1}  
    when {subsidiarynohierarchy} = 'test sub' then {field2}  
end

如果没有提供ELSE 子句并且没有找到匹配项,它将返回一个空结果。

对于属于子公司 A 的记录,字段 2 为空,对于子公司 B - 字段 1 相应地为空。

如您所述,如果这些字段仅为给定子公司填充,那么您可以将公式简化为:

coalesce({field1}, {field2})

这将返回第一个非空值,因此如果子公司 A 填充了 field1,它将返回 field1。如果子公司 B 的 field1 为空且 field2 已填充,则它将返回 field2

【讨论】:

  • 亲爱的迈克,非常感谢。它现在完美无缺。再次感谢!热烈的问候,拉多斯拉夫。
【解决方案2】:

另一种更准确的方法是使用 {subsidiary.id}。 ID 是子公司的内部 ID。我讨厌处理文本,所以我通常在需要时使用内部 id,特别是在保存搜索的情况下。

如果有人更改子公司的名称或任何其他列表字段,则保存的搜索将中断。

【讨论】:

  • 谢谢,文森特,这也是个好建议,我会遵循的。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多