# SubFlow OPCUA brackets around string

**URL:** <https://discourse.nodered.org/t/subflow-opcua-brackets-around-string/58188>\
**Category:** General\
**Created:** [12 February 2022 05:10 UTC](https://discourse.nodered.org/t/subflow-opcua-brackets-around-string/58188 "2022-02-12T05:10:14Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Billy2021](https://avatars.discourse-cdn.com/v4/letter/b/7ea924/32.png) [@Billy2021](https://discourse.nodered.org/u/Billy2021)\
**Post date:** [12 February 2022 05:10 UTC](https://discourse.nodered.org/t/subflow-opcua-brackets-around-string/58188/1 "2022-02-12T05:10:14Z")

</div>

Hi, we are trying to make a SubFlow and we need help.  
_This is the desired outcome below;_

```auto
ns=3;s="DB_HMI"."Rooms"[0]."Cmd"."ModuleStop"

```

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/1/717cf4a1d2de7a044cd636a86d4c6ab414d4be01.png)

_But whatever we do in our subflow, we cannot get the brackets to work._

```auto
ns=3;s=DB_HMI.Rooms[0].Cmd.ModuleStop

```

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/0/a0e8278ad1373471686320735a9833370fb53147.png)

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/d/9/d9601d7f21d923a519aa288f148ad6bb4e770b2c.png)

```auto
var n = env.get("Room_Nr")

var ns = "ns=3;s="
var db1 = "DB_HMI";
var db2 = ".Rooms[";
var db3 = "].Cmd.";

var var1 = "ModuleStop";

node.send({"topic": ns + db1 + db2 + n + db3 + var1,"BrowseName":var1, "Room":n})

// desired = "topic":ns=3;s="DB_HMI"."Rooms"[0]."Cmd"."ModuleStop"

```

Any ideas to get us started?

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [12 February 2022 06:46 UTC](https://discourse.nodered.org/t/subflow-opcua-brackets-around-string/58188/2 "2022-02-12T06:46:31Z")

</div>

Does this work? I didn't make an effort to wrap t_opic_ in quotes, don't think that's needed in Json?

```auto
var n = env.get("Room_Nr")

var ns = "ns=3;s="
var db1 = "DB_HMI";
var db2 = "Rooms";
var db3 = "Cmd";
var var1 = "ModuleStop";

const q = '"';
const qdotq = '"."';

node.send({ "topic": ns + q + db1 + qdotq + db2 + q + '[' + n + '].' + q + db3 + qdotq + var1 + q, "BrowseName": var1, "Room": `n` })

// desired = "topic":ns=3;s="DB_HMI"."Rooms"[0]."Cmd"."ModuleStop"
// gives ns=3;s="DB_HMI"."Rooms"[4]."Cmd"."ModuleStop"
return;

```

I think I've seen backticks used to construct this kind of output too but I don't know the syntax.

---

<div class="post-metadata">

**Author:** ![Billy2021](https://avatars.discourse-cdn.com/v4/letter/b/7ea924/32.png) [@Billy2021](https://discourse.nodered.org/u/Billy2021)\
**Post date:** [12 February 2022 09:02 UTC](https://discourse.nodered.org/t/subflow-opcua-brackets-around-string/58188/4 "2022-02-12T09:02:26Z")

</div>

Wow, you are the best. 😘

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [12 February 2022 11:17 UTC](https://discourse.nodered.org/t/subflow-opcua-brackets-around-string/58188/5 "2022-02-12T11:17:20Z")

</div>

> [@jbudd](#):
>
> I think I've seen backticks used to construct this kind of output too but I don't know the syntax

That method maybe isn't particularly helpful in this case, as it gets a bit conjested. It can be very useful in many other circustances, particularly where quotes and so are required.

```auto
node.send({ 
  "topic": `${ns}${q}${db1}${qdotq}${db2}${q}[${n}].${q}${db3}${qdotq}${var1}${}`,
  BrowseName: var1, 
  Room: `n` 
})

```

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [12 February 2022 11:31 UTC](https://discourse.nodered.org/t/subflow-opcua-brackets-around-string/58188/6 "2022-02-12T11:31:33Z")

</div>

> [@Colin](#):
>
> That method maybe isn't particularly helpful in this case, as it gets a bit conjested.

It's not so bad (much better!) if you get rid of my var q and qdotq though, thanks for the example 🙂

```auto
node.send({topic: `${ns}"${db1}"."${db2}"[${n}]."${db3}"."${var1}"`, "BrowseName": var1, "Room": `n` })

```

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [12 February 2022 11:47 UTC](https://discourse.nodered.org/t/subflow-opcua-brackets-around-string/58188/7 "2022-02-12T11:47:39Z")

</div>

I hadn't looked at the code to see what they are. Yes it is better I think. It is just a pity that `${}` is fiddly to type.

---

<div class="post-metadata">

**Author:** ![Billy2021](https://avatars.discourse-cdn.com/v4/letter/b/7ea924/32.png) [@Billy2021](https://discourse.nodered.org/u/Billy2021)\
**Post date:** [12 February 2022 23:43 UTC](https://discourse.nodered.org/t/subflow-opcua-brackets-around-string/58188/8 "2022-02-12T23:43:08Z")

</div>

Works like a charm. I am going to use this from now on.  
I am using excel for the bulk of code, so i dont mind the fiddly bit. Thanks you both!

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [26 February 2022 23:43 UTC](https://discourse.nodered.org/t/subflow-opcua-brackets-around-string/58188/9 "2022-02-26T23:43:26Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
