# Set change-node Payloadpath to msg.payload.+global

**URL:** <https://discourse.nodered.org/t/set-change-node-payloadpath-to-msg-payload-global/37440>\
**Category:** Developing Nodes\
**Created:** [13 December 2020 07:40 UTC](https://discourse.nodered.org/t/set-change-node-payloadpath-to-msg-payload-global/37440 "2020-12-13T07:40:56Z")\
**Posts on this page:** 9\
**Page:** 2

<div class="post-metadata">

**Author:** ![Dom19882](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dom19882/32/33576_2.png) [@Dom19882](https://discourse.nodered.org/u/Dom19882)\
**Post date:** [13 December 2020 11:42 UTC](https://discourse.nodered.org/t/set-change-node-payloadpath-to-msg-payload-global/37440/21 "2020-12-13T11:42:15Z")

</div>

Thanks. I will read about it

---

<div class="post-metadata">

**Author:** ![Dom19882](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dom19882/32/33576_2.png) [@Dom19882](https://discourse.nodered.org/u/Dom19882)\
**Post date:** [13 December 2020 12:10 UTC](https://discourse.nodered.org/t/set-change-node-payloadpath-to-msg-payload-global/37440/22 "2020-12-13T12:10:06Z")

</div>

I have read about the hasownproperty thing, but my knowledge was not deep enough to understand it complety.

I tried your modified version and even added after getting error messages nevertheless my part to:  
const key = global.get("ZBB\_BMotion");  
if (msg.payload.ZbReceived.hasOwnProperty(key) !== null && msg.payload !== '') {  
msg.payload = msg.payload.ZbReceived[key];  
return msg;  
}

But that doesnt solved the error messages also.

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [13 December 2020 12:12 UTC](https://discourse.nodered.org/t/set-change-node-payloadpath-to-msg-payload-global/37440/23 "2020-12-13T12:12:07Z")

</div>

If you want it the other way try

```auto
  $lookup(payload.ZbReceived, $globalContext("test"))

```

---

<div class="post-metadata">

**Author:** ![JGKK](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jgkk/32/18515_2.png) [@JGKK](https://discourse.nodered.org/u/JGKK)\
**Post date:** [13 December 2020 12:22 UTC](https://discourse.nodered.org/t/set-change-node-payloadpath-to-msg-payload-global/37440/24 "2020-12-13T12:22:35Z")

</div>

If you take the exact function i posted it should never get to the part that creates the error at least if your input messages always have the msg.payload.ZBreceived object.

---

<div class="post-metadata">

**Author:** ![JGKK](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jgkk/32/18515_2.png) [@JGKK](https://discourse.nodered.org/u/JGKK)\
**Post date:** [13 December 2020 12:25 UTC](https://discourse.nodered.org/t/set-change-node-payloadpath-to-msg-payload-global/37440/25 "2020-12-13T12:25:51Z")

</div>

> [@E1cid](#):
>
> `$lookup(payload.ZbReceived, $globalContext("test"))`

Thats the one, nice 👍 now on to add the other tests as below 🙈

---

<div class="post-metadata">

**Author:** ![Dom19882](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dom19882/32/33576_2.png) [@Dom19882](https://discourse.nodered.org/u/Dom19882)\
**Post date:** [13 December 2020 12:26 UTC](https://discourse.nodered.org/t/set-change-node-payloadpath-to-msg-payload-global/37440/26 "2020-12-13T12:26:59Z")

</div>

Yes, i understand. i found out there are more messages send like ...ZbBind, ZBStatus. Is there a way to filter that out?

---

<div class="post-metadata">

**Author:** ![JGKK](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jgkk/32/18515_2.png) [@JGKK](https://discourse.nodered.org/u/JGKK)\
**Post date:** [13 December 2020 12:32 UTC](https://discourse.nodered.org/t/set-change-node-payloadpath-to-msg-payload-global/37440/27 "2020-12-13T12:32:18Z")

</div>

Yes add the other conditions to the if statement:

```javascript
const key = global.get("BathroomMotion");
if (typeof msg.payload === "object" && msg.payload.hasOwnProperty("ZbReceived") && msg.payload.ZbReceived.hasOwnProperty(key)) {
    msg.payload = msg.payload.ZbReceived[key];
    return msg;
} else {
    return null;
}

```

This checks if the payload is an object, has the `ZbReceived` property and the right key

---

<div class="post-metadata">

**Author:** ![Dom19882](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dom19882/32/33576_2.png) [@Dom19882](https://discourse.nodered.org/u/Dom19882)\
**Post date:** [13 December 2020 12:42 UTC](https://discourse.nodered.org/t/set-change-node-payloadpath-to-msg-payload-global/37440/28 "2020-12-13T12:42:05Z")

</div>

Awesome. Thaks for offering me your time and knowledge. Now its working flawless. Great Community.

---

<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:** [27 December 2020 12:42 UTC](https://discourse.nodered.org/t/set-change-node-payloadpath-to-msg-payload-global/37440/29 "2020-12-27T12:42:12Z")

</div>

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

[Previous page](https://discourse.nodered.org/t/set-change-node-payloadpath-to-msg-payload-global/37440.md?page=1)
