Can this be done in an `inject` node?

Slightly complicated story.

Originally I have an inject node that injects into a function node that does a bit of stuff.

function node:

let channels = {
    "nine": { "number": 100 },
    "foxone": { "number": 101 },
    "abc": { "number": 102 },
    "sbs": { "number": 104 },
    "uktv": { "number": 105 },
    "seven": { "number": 107 },
    "foxeight": { "number": 108 },
    "ten": { "number": 110 },
    "showcase": { "number": 112 },
    "foxcrime":{"number":113},
    "sifi": { "number": 116 },
    "foxclassic": { "number": 117 },
    "foxsleuth": { "number": 118 },
    "bbcfirst": { "number": 119 },
    "universal": { "number": 120 },
    "history": { "number": 130 },
    "discovery": { "number": 133 },
    "natgeo": { "number": 139 },
    "boxsets": { "number": 150 },
    "abcfamily": { "number":152},
    "abckids": { "number": 152 },
    "abccomedy": { "number": 153 },
    "seventwo": { "number": 156 },
    "sevenmate": { "number": 157 },
    "sevenflix": { "number": 158 },
    "ninego": { "number": 162 },
    "ninegem": { "number": 164 },
    "go:": { "number": 162 },
    "gem": { "number": 164 },
    "bold": { "number": 166 },
    "peach": { "number": 167 },
    "foxone+2": { "number": 201 },
    "abcHD": { "number": 202 },
    "sbsHD": { "number": 204 },
    "sevenHD": { "number": 207},
    "foxeight+2": { "number": 208 },
    "nineDH": { "number": 209},
    "showcase+2": { "number": 212 },
    "sifi+2": { "number": 216 },
    "foxclassic+2": { "number": 217 },
    "discovery+2": { "number": 233 },
    "natgeo+2": { "number": 239 },
    "sevenmateHD": { "number": 257 },
    "ninegenHD": { "number": 264 },
    "sbsviceland": { "number": 270 },
    "sbsvicelandHD": { "number": 270 },
    "movie-premier": { "number": 401 },
    "aussie-leading-ladies": { "number":402 },
    "movie-family": { "number": 403 },
    "movie-kids": { "number": 404 },
    "movie-action": { "number": 405 },
    "movie-comedy": { "number": 406 },
    "movie-thriller": { "number": 407 },
    "movie-romance": { "number": 408 },
    "movie-drama": { "number": 409 },
    "movie-greats": { "number": 410 },
    "movie-premiere": { "number": 421 },
    "worldmoviesHD": { "nimber": 432 },
    "70shits": { "number": 831 },
    "80shits": { "number": 832 },
    "90shits": { "number": 833 },
    "RetroParty": { "number": 840 },
    "classichits": { "number": 841 },
    "lovesongs": { "number": 842 },
    "softhits": { "number": 843 },
    "relax": { "number": 844 },
    "chill": { "number": 845 }
}

msg.payload = channels;

var path = global.get("event_paths");
msg.filename = path + "channel_names.db";

return msg;

So I get msg.filename which is built of two parts.

I worked out how to do the first (big) part in the inject node, but building the msg.filename is stumping me.

WHY?

Well, if I edit the node, I have to then remember after deploying the flow to press the inject node.

If I can out the bit which is edited in the inject node, I have it to inject once after deploy.

Thought:
I could put the basic output from the inject node through a function node that does the last part.

But.... If it can be done in one node, all the better - and I may learn something from it.
:slight_smile:

So your question is: can I do msg.filename = global.get("event_paths") + "channel_names.db" in a change node?

If yes, then yes, using JSONata.

Ok, but not how I think it is done.

I tried:

J:
$globalContext("event_paths") + "channel_names.db"

It doesn't like it.

JSONata uses & for string concatenation

REF: Other Operators · JSONata

1 Like

Thanks.

I never did learn all those qualifiers.

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