Since upgrade to 2.2.0, the "action in"-process isn't triggered anymore.
Log-Entry
RED.settings.functionGlobalContext.get is not a function
/app/node_modules/node-red-contrib-actionflows/actionflows/actionflows.js:270:51
Since upgrade to 2.2.0, the "action in"-process isn't triggered anymore.
Log-Entry
RED.settings.functionGlobalContext.get is not a function
/app/node_modules/node-red-contrib-actionflows/actionflows/actionflows.js:270:51
What version are you using because GitHub shows line 270 to be blank:
Also RED.settings.functionGlobalContext.get
ISN'T a function I don't believe?
To add to that - that line of code ...
... was present in the previous version: node-red-contrib-actionflows/actionflows/actionflows.js at 9034544b4e069fe31d0ffc36abaccebf2c5bbe89 ยท Steveorevo/node-red-contrib-actionflows ยท GitHub from Jan 2021.
@Roland You need to update node-red-contrib-actionflows
domotics@1.0.0 /home/domotics/app
โโโ agentkeepalive@4.2.0
โโโ ansicolors@0.3.2
โโโ node-red-contrib-actionflows@2.0.4
โโโ node-red-contrib-advanced-ping@1.2.0
โโโ node-red-contrib-ccu@3.4.2
โโโ node-red-contrib-config@1.2.1
โโโ node-red-contrib-cron-plus@1.5.6
โโโ node-red-contrib-fritz@1.4.5
โโโ node-red-contrib-fs-ops@1.6.0
โโโ node-red-contrib-fs@1.4.1
โโโ node-red-contrib-google-oauth-calendar@0.1.1
โโโ node-red-contrib-influxdb@0.6.1
โโโ node-red-contrib-moment@4.0.0
โโโ node-red-contrib-mongodb4@1.2.3
โโโ node-red-contrib-pjlink@1.0.4
โโโ node-red-contrib-timerswitch@1.4.0
โโโ node-red-contrib-twitter@1.1.3
โโโ node-red-contrib-ui_list@0.1.5
โโโ node-red-contrib-ui-contextmenu@2.0.1
โโโ node-red-contrib-ui-multistate-switch@1.2.2
โโโ node-red-contrib-ui-svg@2.3.1
โโโ node-red-contrib-vacation-timer@2.2.8
โโโ node-red-contrib-web-worldmap@2.26.1
โโโ node-red-dashboard@3.1.5
โโโ node-red-node-email@1.14.0
โโโ node-red-node-feedparser@0.2.2
โโโ node-red-node-markdown@0.1.4
โโโ node-red-node-mysql@1.0.0
โโโ node-red-node-openweathermap@0.5.1
โโโ node-red-node-prowl@0.0.10
โโโ node-red-node-tail@0.3.2
โโโ node-red-node-ui-iframe@0.2.1
โโโ node-red-node-ui-table@0.3.11
โโโ node-red@2.1.6
โโโ pm2@5.1.2
โโโ uuid@8.3.2
As you can see - I'am using "node-red-contrib-actionflows@2.0.4".
I send you some code-lines from my actionflow.js
// Init mapping variables right away
function map() {
//var af = node.context().global.get('actionflows');
var af = RED.settings.functionGlobalContext.get("actionflows");
if (typeof af == "undefined") {
af = new Object();
Thx for your help Regards Roland
At the moment, I don't understand. I clean npm cache and install it again but I get the old version. I copy the js-source from git and will test it.
2.0.4 does not work.
Latest version is 2.1.1
You are possibly installing in wrong place. Ensure you are in the correct .node-red directory. Look at your node-red startup log - what does User directory
say?
Then do something like...
cd c:\users\stephen\.node-red
npm i node-red-contrib-actionflows@2.1.1
Then restart node-red.
again thx for your help Steve, pleas help me. When I search in flows "node-red-contrib-actionflows (node) - Node-RED" I get 2.0.4 as current version.
When i try to install 2.1.1 I get
npm i node-red-contrib-actionflows@2.1.1
npm ERR! code ETARGET
npm ERR! notarget No matching version found for node-red-contrib-actionflows@2.1.1.
What went wrong, from where can I get your specified version. Do i use a wrong repository ?
Unfortunately, the author of this node hasn't published v2.1.1 - you will need to raise an issue on GitHub.
I you want to, you can manually install this version:
cd ~/.node-red
npm install Steveorevo/node-red-contrib-actionflows
That will install the version from GitHub. Couldn't say whether it will work though.
I try this version without success. I switch (many) nodes from actionflows to "link call". I think this is the best way for the future. Again thx.
ps now all is fine with 2.2.0
As soon as I updated to 2.2.0 another package started to throw the same error
30 Jan 17:29:00 - [error] [chatbot-telegram-node:2cc35ee2a852bc9f] TypeError: RED.settings.functionGlobalContext.get is not a function
Have you raised an issue with the author of that node?
There appear to be several chatbot nodes so it isn't clear from the error msg which one you are using:
Not yet, this is the first result for searchig such error and I want to contrib specifying that it isn't related just to actionflows
It looks like someone already opened Chatbot broken with node-red 2.2.0? ยท Issue #520 ยท guidone/node-red-contrib-chatbot ยท GitHub
We made some internal changes in Node-RED with how global context is managed - and this error is a side-effect of that.
Using RED.settings.functionGlobalContext
as way to access global context was never documented as a suitable way of doing it. The fact these nodes are broken because they took that approach, isn't ideal, but nor have we changed a published API.
We need to think about what to do here - should we revert our change to keep things working, or encourage these nodes to use proper APIs.
Is it only the action node and chatbot node we know of Nick?
Is there an equivalent/usable published API we can request the Devs to use instead?
Also, we have the link call & other telegram nodes, is it not a case of pointing users to the alternatives?
I really don't think you should revert because someone has used undocumented calls.
They've taken a risk- it hasn't worked #Life
I agree donโt revert. and if we do โfixโ it do we then have to add it to the api and maintain it ? Or immediately deprecate it again. Messy
I think what we need is insight as to why this API was being used in this way.
Nodes have full access to global context - they have no need to use this API. Code outside of a node doesn't have a way to access context - so this would be one way to get around that.
Need to do some digging into those nodes to see how/why they use that API.
My flows are broken as well . We are using node-red-contrib-actionflows extensively.
The provide an excellent mechanism to have a dynamically pluggable/extensible flows.
We have upgraded only 1 environment to 2.2 for test. But its starting to raise concerns if we need to change now all our flows (close to 70-80 flows) to something not as dynamic.
The main challenge would be to be able to find something as dynamic and useful.
Appreciate if this change can be made in some way backward compatible.
Looking at the code in actionflows, there are just 2 references and it appears to me as though it is just an odd way of calling get/set.
I can see that nobody has yet raised an issue against that repo which is the first step. It looks like the fix is a very simple change of just 2 lines so it wouldn't be hard to fix it and issue a PR.