Operation


Operation 节点根据所选的消息类型,解析输入 msg 中的测点或属性,进行低代码逻辑、数学运算配置,输出到下游节点。

节点类型

Transformation。

输入和输出能力

该节点具有多个入口点和 1 个出口点。输入和输出均为 JSON 格式。

节点属性

../../../_images/operation.png


名称

该节点的名称。


消息类型

执行操作的消息类型,上报测点上报属性


模型

消息类型的模型,只可选择 1 个。


输入点

基于所选的 消息类型,所选模型里的测点或属性(in),与 运算符 构建 表达式 计算结果(out),可选择多个输入点。


输出点

基于所选的 消息类型,所选模型里的测点或属性,用于存储 表达式 的计算结果,而结果将覆盖其现有值。只可选择 1 个输出点。


表达式

输出点的计算表达式。点击 运算符输入点 以构建表达式。

  • out 指存储到 输出点 的计算结果。

  • in 指输入点。

运算符

运算符

公式

示例

备注

Abs

out = abs(in1)

in1 = -9

out = 9

返回数字的绝对值。

  • in1 = Numeric

  • out = Numeric

Avg

out = (in1 + in2) / 2

in1 = 7, in2 = 8.7

out = 7.85

返回 2 个数字的平均值。

  • in1 and in2 = Numeric

  • out = Numeric

Max

out = max(in1, in2)

in1 = 3, in2 = 6

out = 6

返回两者中较大的值。

  • in1 and in2 = Numeric

  • out = Numeric

Min

out = min(in1, in2)

in1 = 3, in2 = 6

out = 3

返回两者中的较小值。

  • in1 and in2 = Numeric

  • out = Numeric

Exp

out = exp(in1)

in1 = 6

out = 403.4287934927351

返回以 e 为底数的指数函数。

  • in1 = Numeric

  • out = Numeric

Modulus

out = (in1 % in2)

in1 = 22, in2 = 3

out = 1

返回除法后的余数。

  • in1 and in2 = Numeric

  • out = Numeric

Power

out = pow(in1, in2)

in1 = 3, in2 = 5

out = 243

返回数字 (in1) 的幂函数 (in2)。

  • in1 and in2 = Numeric

  • out = Numeric

SquareRoot

out = sqrt(in1)

in1 = 64

out = 8

返回数字的平方根。

  • in1 = Numeric

  • out = Numeric

And

out = (in1 && in2)

  • in1 = 0, in2 = 0

    out = 0

  • in1 = 0, in2 = 1

    out = 0

  • in1 = 1, in2 = 1

    out = 1

  • in1 = 1, in2 = 0

    out = 0

仅当两个值都为 true 时才返回 true。

  • in1 and in2 = Boolean

  • out = Boolean

Or

out = (in1 || in2)

  • in1 = 0, in2 = 0

    out = 0

  • in1 = 0, in2 = 1

    out = 1

  • in1 = 1, in2 = 1

    out = 1

  • in1 = 1, in2 = 0

    out = 1

只要有一个值为 true,则返回 true。

  • in1 and in2 = Boolean

  • out = Boolean

Not

out = (!in1)

  • in1 = 0

    out = 1

  • in1 = 1

    out = 0

返回反向值。

  • in1 = Boolean

  • out = Boolean

Equal

out = (in1 == in2)

  • in1 = 0, in2 = 0

    out = 1

  • in1 = 0, in2 = 1.1

    out = 0

  • in1 = 1.1, in2 = 1.1000008

    out = 0

如果两个值相同,返回 true。

  • in1 and in2 = Numeric

  • out = Boolean

Greater Than

out = (in1 > in2)

  • in1 = 1, in2 = 0

    out = 1

  • in1 = 1, in2 = 1

    out = 0

  • in1 = 0, in2 = 1

    out = 0

如果 in1 大于 in2,返回 true。

  • in1 and in2 = Numeric

  • out = Boolean

Greater Than Equal

out = (in1 >= in2)

  • in1 = 1, in2 = 0

    out = 1

  • in1 = 1, in2 = 1

    out = 1

  • in1 = 0, in2 = 1

    out = 0

如果 in1 大于或等于 in2,返回 true。

  • in1 and in2 = Numeric

  • out = Boolean

Less Than

out = (in1 < in2)

  • in1 = 0, in2 = 1

    out = 1

  • in1 = 1, in2 = 0

    out = 0

  • in1 = 1, in2 = 1

    out = 0

如果 in1 小于 in2,返回 true。

  • in1 and in2 = Numeric

  • out = Boolean

Less Than Equal

out = (in1 <= in2)

  • in1 = 0, in2 = 1

    out = 1

  • in1 = 1, in2 = 0

    out = 0

  • in1 = 1, in2 = 1

    out = 1

如果 in1 小于或等于 in2,返回 true。

  • in1 and in2 = Numeric

  • out = Boolean

Log10

out = lg(in1)

in1 = 35

out = 1.5440680443502757

返回数字的以 10 为底的对数。

  • in1 = Numeric

  • out = Numeric

LogE

out = ln(in1)

in1 = 22

out = 3.091042453358316

返回数字的自然对数。

  • in1 = Numeric

  • out = Numeric


点击 测试 按钮,通过输入表达式,测试是否能按设计意图操作。


描述

该节点的描述。

使用限制

仅支持 numeric 和 boolean。

示例

下面的示例基于以下数据。

  • 输入点attribute1, attribute2

  • 输出点attr_int

  • 表达式pow(msg.attribute1, msg.attribute2)

输入示例

{
  "MetaData": {
    "messageType": "PostAttribute",
    "assetId": "assetId",
    "deviceKey": "deviceKey",
    "productKey": "productKey",
    "orgId": "yourOrgId"
  },
  "Body": {
    "attribute1": 3,
    "attribute2": 5,
    "attr_int": 3
  }
}

输出示例

{
  "MetaData": {
    "messageType": "PostAttribute",
    "assetId": "assetId",
    "deviceKey": "deviceKey",
    "productKey": "productKey",
    "orgId": "yourOrgId"
  },
  "Body": {
    "attribute1": 3,
    "attribute2": 5,
    "attr_int": 243
  }
}