业务规则101:通用函数

业务规则101:通用函数

欢迎回到“业务规则101”,这里有一个新系列的博客帖子,旨在揭示你业务规则的书写以及理解过程。本周,我们为上一期中的IF函数添加了灵活性,并附加了两个附加条件语句:CONTAINS函数和SELECTCASE函数。

CONTAINS

CONTAINS函数允许你在属性中查找字符串。下面是一个例子:

CONTAINS(“Girl scout cookies”, “scout”)

此业务规则在短语“Girl scout cookies”中查找字符串“scout”,并返回true或false值。在这种情况下,结果将是真实的。

比较区分大小写,所以当上述规则为true时,这一个是false的:

CONTAINS(“Girl scout cookies”, “Scout”).

CONTAINS函数可用于从第一个博客写一个更一般形式的示例IF语句。作为提醒,使用的规则是:

IF($itembrand=”Acme Co.”, “Acme”, $itembrand)

你可能会发现你的Acme商品以三种不同的方式刊登品牌:“Acme Co.”,“Acme Inc”或“Acme Toys”。为了确保所有版本在给定电商平台上显示为“Acme”,可以使用此规则:

IF(CONTAINS ($itembrand, “Acme”), “Acme”, $itembrand)

只要在品牌属性中的某个位置找到“Acme”,那么发送到电商平台的值就会是“Acme”。

SELECTCASE

但是如果我们有多个条件要寻找呢? IF语句可以堆叠在一起处理这个问题,但它很快变得难以阅读和更难以支持下来的道路。

这是在可以使用SELECTCASE函数时。基本语法是:

SELECTCASE(Condition1, Value1, Condition2, Value2, Condition3, Value3, Condition4, Value4, Condition5, Value5, Default)

最多可以包括五个条件/值对。一旦找到第一个真实条件,将不会考虑额外的条件,因此应按从最多条件/值对到最少条件/值对的顺序输入SELECTCASE条件。为了具有更好的可读性,可以添加空格:

SELECTCASE(Condition1, Value1,

Condition2, Value2,

Default)

在SELECTCASE函数中使用CONTAINS函数可能如下所示:

SELECTCASE(CONTAINS($itembrand,”Acme”),”Acme”,

CONTAINS($itembrand, “Nike”), “Nike Footwear”,

$itembrand)

上述函数基本上表示:

如果在$ itembrand中找到“Acme”,请使用“Acme”。

如果没有找到“Acme”,但在$ itembrand中找到“Nike”,请使用“Nike Footwear”。

如果没有其他值为True,请使用$ itembrand中的值。

需要考虑的事情

我想鼓励你使你的规则变得可读。上面给出的示例将以下面所示的任一格式工作。

Format Comparisons within the ChannelAdvisor Business Rules Editor

随着业务规则变得越来越复杂,它们在将来变得更难以调整。如果规则的原始创建者没有进行编辑,这个问题就变得尤其明显。制定一个容易理解的规则将使业务规则在将来更容易维护。

业务规则编辑器里有一个工具来帮助实现这一目的。位于编辑器窗口右上角的铅笔图标可以重新格式化规则。使用规则“Test2”上的工具的结果如下所示:

请记住,这是一个正在进行的系列的第二个部分,将打破你可以使用业务规则来自定义和转换你的数据的各种方式。如果你错过了第一课,觉得有点失落,请务必阅读“业务规则101:业务规则简介”,以便赶上课程。如果你想了解更多内容,但又不想等两个星期后才能看到本系列的下一期内容,那么你可以查看我们的战略和支持中心