Error In Dashboard creation

Hello, I created a dashboard where i can change the values of the variables in the function node. However I am getting an error when i deploy it stating that the variables are not defined. And also there is no change even when i change values in the dashboard. Can someone please help me out with it? I have shared the flow below.

[{"id":"7149cb47.db2534","type":"function","z":"869769d1.0b9f98","name":"Calculate average","func":"data=flow.get("data") || {};\nif (data.FIELD_WIDTH===undefined)\n var FIELD_WIDTH=100;\nelse\n var FIELD_WIDTH=parseInt(data.FIELD_WIDTH);\n\n\nif (data.FIELD_HEIGHT ===undefined)\n var FIELD_HEIGHT =100;\nelse\n var FIELD_HEIGHT =parseInt(data.FIELD_HEIGHT);\n \nif (data.FIELD_HORIZONTAL ===undefined)\n var FIELD_HORIZONTAL = 6;\nelse\n var FIELD_HORIZONTAL =parseInt(data.FIELD_HORIZONTAL); \n \nif (data.FIELD_VERTICAL ===undefined)\n var FIELD_VERTICAL = 20;\nelse\n var FIELD_VERTICAL =parseInt(data.FIELD_VERTICAL); \n \nmsg.payload ="FIELD_WIDTH ="+FIELD_WIDTH +" FIELD_HEIGHT ="+FIELD_HEIGHT+"FIELD_HORIZONTAL ="+FIELD_HORIZONTAL+"FIELD_VERTICAL ="+FIELD_VERTICAL;\nnode.log(msg.payload);\n//////////////////////////////\n\n\n\n\nconst inputArray = new Array (msg.payload.length);\n for (var n = 0 ; n < inputArray.length ; n++) {\n inputArray[n] = Object.values(msg.payload[n]);\n }\n\n // width and height of heating fields in pixels\n // dependant on distance between camera and object\n\n //const FIELD_WIDTH = 100;// 100;\n //const FIELD_HEIGTH = 100;// 100;\n \n\n // Width resolution of Images\n\n const RES_WIDTH = 100;// 100;\n\n // # of heating fields to calculate\n\n //const FIELDS_HORIZONTAL = 6;// 6;\n\n // because of zig-zag recording of camera 1 to generate same layouts.\n\n //const FIELDS_VERTICAL = 20;// 20;\n\n // first field starts half the field amount in length from middle of the image.\n\n // const HEATING_FIELD_START_HORIZONTAL = RES_WIDTH/2 - FIELDS_HORIZONTAL/2 * FIELD_WIDTH;\n const HEATING_FIELD_START_HORIZONTAL = 0;\n\n // Detect start of Fields// emperic values maybe?\n\n var HEATING_FIELD_START_DETECTION = detectStartHeating(inputArray);\n var HEATING_FIELD_END_DETECTION = detectEndHeating(inputArray);\n // var HEATING_FIELD_START_VERTICAL = (HEATING_FIELD_END_DETECTION - HEATING_FIELD_START_DETECTION )/ 2 + HEATING_FIELD_START_DETECTION - FIELDS_VERTICAL/2 * FIELD_HEIGTH;\n var HEATING_FIELD_START_VERTICAL = 0;\n\n // Creating an empty output Array with the set no fields\n\n var outputArray = new Array (FIELDS_VERTICAL);\n for (var k = 0 ; k< outputArray.length ; k++) {\n outputArray[k] = new Array (FIELDS_HORIZONTAL);\n for ( var l = 0; l< outputArray[k].length; l++) {\n outputArray[k][l] = 0;\n }\n }\n\n var tmp2 = 0;\n\n // loop through the fields\n\n for (var v = 0 ; v < FIELDS_VERTICAL ; v++) {\n for ( var h = 0; h < FIELDS_HORIZONTAL ; h++) {\n \n //calculate median of each field\n var tmp = 0 ;\n for ( var y = HEATING_FIELD_START_VERTICAL + v * FIELD_HEIGTH ; y < HEATING_FIELD_START_VERTICAL + v * FIELD_HEIGTH + FIELD_HEIGTH; y++) {\n for (var x = HEATING_FIELD_START_HORIZONTAL + h * FIELD_WIDTH; x < HEATING_FIELD_START_HORIZONTAL + h * FIELD_WIDTH + FIELD_WIDTH; x++) {\n tmp += parseFloat(inputArray[y]);\n }\n }\n \n // round to 2 decimals\n tmp = tmp / (FIELD_WIDTH * FIELD_HEIGTH)\n \n // no of decimal digits\n \n tmp = Math.round(tmp);\n outputArray[v][h] = tmp;\n\t\t}\n }\n \n // Create an empty array to insert the data\n // The desired output has 7 rows\n var newOutput = new Array (7);\n for (var k = 0 ; k< newOutput.length ; k++) {\n // Every row contains as much elements as the total number of fields\n newOutput[k] = new Array (FIELDS_HORIZONTAL * FIELDS_VERTICAL);\n for ( var l = 0; l< newOutput[k].length; l++) {\n newOutput[k][l] = 0;\n }\n }\n\n // Map the current result to the format desired\n // 7 rows were\n // row0 PixelName\n // row1 Width\n // row2 Height\n // row3 X\n // row4 Y\n // row5 Average\n // row6 Consecutive pixel name\n let firstRowIndex = 0;\n for (let rowIndex = 0; rowIndex < outputArray.length; rowIndex++) {\n const row = outputArray[rowIndex];\n for (let colIndex = 0; colIndex < row.length; colIndex++) {\n const col = row[colIndex];\n // Determine the name\n const pixelName = ${getLettherForRowNumber(rowIndex)}${colIndex};\n newOutput[0][firstRowIndex] = pixelName;\n newOutput[1][firstRowIndex] = FIELD_WIDTH ; // Width\n newOutput[2][firstRowIndex] = FIELD_HEIGTH; // Height\n newOutput[3][firstRowIndex] = colIndex * FIELD_WIDTH; // X\n newOutput[4][firstRowIndex] = rowIndex * FIELD_HEIGTH; // Y\n newOutput[5][firstRowIndex] = col; // Average\n // Determine the name 2\n const pixelName2 = a${firstRowIndex};\n newOutput[6][firstRowIndex] = pixelName2;\n firstRowIndex++;\n }\n }\n\t\n\tmsg.payload = newOutput;\n\t\n return msg;\n\n\t\nfunction detectStartHeating(inputArray) {\n\t \n\t// Haet difference from cool row to first heated row, how much hotter does the first heated row to be ?\n \n const THRESHOLD = 5;\n\n var hotRow = 0 ;\n var currentRowAverage = calcRowAverage(inputArray, hotRow);\n hotRow++;\n \n var nextRowAverage = calcRowAverage(inputArray,hotRow);\n while( currentRowAverage + THRESHOLD > nextRowAverage && currentRowAverage > -1 && nextRowAverage > -1) {\n\n currentRowAverage = nextRowAverage;\n hotRow++;\n nextRowAverage = calcRowAverage(inputArray,hotRow);\n }\n if (nextRowAverage == -1 || currentRowAverage == -1) {\n return 0;\n } else {\n return hotRow;\n }\n }\n\nfunction detectEndHeating(inputArray) {\n // heat difference from cool row to first heated row , how much hotter does the first heated row have to on average?\n \n const THRESHOLD = 40;\n var hotRow = inputArray.length - 1;\n var currentRowAverage = calcRowAverage(inputArray, hotRow);\n hotRow--;\n\n var prevRowAverage = calcRowAverage(inputArray,hotRow);\n\n while ( currentRowAverage + THRESHOLD > prevRowAverage && currentRowAverage > -1 && prevRowAverage > -1 && hotRow>0) {\n currentRowAverage = prevRowAverage;\n hotRow--;\n prevRowAverage = calcRowAverage(inputArray,hotRow);\n \n }\n if( prevRowAverage == -2 || currentRowAverage == -1) {\n return 0 ;\n }\n\n else\n {\n return hotRow;\n }\n }\n \nfunction calcRowAverage(inputArray,row) {\n var res = 0;\n if (inputArray.length < row) {\n return -1;\n }\n\n\n for (var g = 0; g< inputArray[row].length; g++) {\n res += inputArray[row][g];\n }\n return res/inputArray[row].length;\n}\t \n\nfunction getLettherForRowNumber(rowNumber) {\n // ASCII code for 'a' is 97, 122 for 'z'\n if (rowNumber < 26) {\n return String.fromCharCode(97 + rowNumber);\n } else {\n const asciiFirstLetter = Math.round(rowNumber / 25) - 1;\n const mod = rowNumber % 25 - 1;\n const firstLetter = String.fromCharCode(97 + asciiFirstLetter);\n const secondLetter = String.fromCharCode(97 + mod);\n return ${firstLetter}${secondLetter};\n }\n}\n","outputs":1,"noerr":0,"x":730,"y":260,"wires":[["261a99d3.e937d6"]]}]

Please export your flow again, read this post and edit your post with correct formatting.

[{"id":"77c167c.525f118","type":"csv","z":"869769d1.0b9f98","name":"ReadCSV","sep":";","hdrin":"","hdrout":"","multi":"mult","ret":"\\n","temp":"","skip":"0","x":540,"y":240,"wires":[["7149cb47.db2534"]]},{"id":"ab353a21.7322c8","type":"file in","z":"869769d1.0b9f98","name":"","filename":"C:\\Users\\Public\\Varun\\PreHeating_2019-09-13_19-23-41.csv","format":"utf8","chunk":false,"sendError":false,"x":470,"y":160,"wires":[["77c167c.525f118"]]},{"id":"e32aed0c.07adc8","type":"function","z":"869769d1.0b9f98","name":"Selecting the file","func":"\nmsg.filename = \"\\\\\\\\C:\\\\Users\\\\Public\\\\Varun\\\\PreHeating_2019-09-13_19-23-41.csv\";\nreturn msg;\n","outputs":1,"noerr":0,"x":510,"y":60,"wires":[[]]},{"id":"261a99d3.e937d6","type":"debug","z":"869769d1.0b9f98","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":930,"y":260,"wires":[]},{"id":"ad0062d2.b30398","type":"inject","z":"869769d1.0b9f98","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":200,"y":60,"wires":[["ab353a21.7322c8"]]},{"id":"408bd299.6ad834","type":"ui_text_input","z":"869769d1.0b9f98","name":"FIELD WIDTH","label":"FIELD WIDTH","tooltip":"","group":"ff81e701.9afc9","order":1,"width":0,"height":0,"passthru":true,"mode":"text","delay":"0","topic":"field_width","x":240,"y":440,"wires":[["731e03a2.371194"]]},{"id":"a9963b5a.93ba3","type":"ui_text_input","z":"869769d1.0b9f98","name":"FIELD HEIGHT","label":"FIELD HEIGHT","tooltip":"","group":"ff81e701.9afc9","order":2,"width":0,"height":0,"passthru":true,"mode":"text","delay":"0","topic":"field_height","x":220,"y":500,"wires":[["2fb6a081.8c592"]]},{"id":"9bbcc520.a80ea8","type":"ui_text_input","z":"869769d1.0b9f98","name":"FIELD HORIZONTAL","label":"FIELD HORIZONTAL","tooltip":"","group":"ff81e701.9afc9","order":3,"width":0,"height":0,"passthru":true,"mode":"text","delay":"0","topic":"field_horizontal","x":240,"y":560,"wires":[["8bcdf72d.226fc"]]},{"id":"a097e777.c6f9e8","type":"ui_text_input","z":"869769d1.0b9f98","name":"FIELD VERTICAL","label":"FIELD VERTICAL","tooltip":"","group":"ff81e701.9afc9","order":4,"width":0,"height":0,"passthru":true,"mode":"text","delay":"0","topic":"field_vertical","x":250,"y":620,"wires":[["19baa446.20880c"]]},{"id":"731e03a2.371194","type":"change","z":"869769d1.0b9f98","name":"","rules":[{"t":"set","p":"data[\"FIELD_WIDTH\"]","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":440,"wires":[[]]},{"id":"2fb6a081.8c592","type":"change","z":"869769d1.0b9f98","name":"","rules":[{"t":"set","p":"data[\"FIELD_HEIGHT\"]","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":520,"wires":[[]]},{"id":"8bcdf72d.226fc","type":"change","z":"869769d1.0b9f98","name":"","rules":[{"t":"set","p":"data[\"FIELD_HORIZONTAL\"]","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":534,"y":574,"wires":[[]]},{"id":"19baa446.20880c","type":"change","z":"869769d1.0b9f98","name":"","rules":[{"t":"set","p":"data[\"FIELD_VERTICAL\"]","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":530,"y":627,"wires":[[]]},{"id":"e609671f.6c7938","type":"function","z":"869769d1.0b9f98","name":"test","func":"data=flow.get(\"data\") || {};\nif (data.FIELD_WIDTH===undefined)\n    var FIELD_WIDTH=100;\nelse\n    var FIELD_WIDTH=parseInt(data.FIELD_WIDTH);\n\n\nif (data.FIELD_HEIGHT ===undefined)\n    var FIELD_HEIGHT =100;\nelse\n    var FIELD_HEIGHT =parseInt(data.FIELD_HEIGHT);\n    \nif (data.FIELD_HORIZONTAL ===undefined)\n    var FIELD_HORIZONTAL = 6;\nelse\n    var FIELD_HORIZONTAL =parseInt(data.FIELD_HORIZONTAL);    \n    \nif (data.FIELD_VERTICAL ===undefined)\n    var FIELD_VERTICAL =20;\nelse\n    var FIELD_VERTICAL =parseInt(data.FIELD_VERTICAL);        \n    \nmsg.payload =\"FIELD_WIDTH =\"+FIELD_WIDTH +\" FIELD_HEIGHT =\"+FIELD_HEIGHT+\"FIELD_HORIZONTAL =\"+FIELD_HORIZONTAL+\"FIELD_VERTICAL =\"+FIELD_VERTICAL;\nnode.log(msg.payload);\nreturn msg;\n","outputs":1,"noerr":0,"x":350,"y":700,"wires":[["f6de2708.0ac998"]]},{"id":"f6de2708.0ac998","type":"debug","z":"869769d1.0b9f98","name":"debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":490,"y":740,"wires":[]},{"id":"a0a834d9.e4d5f","type":"inject","z":"869769d1.0b9f98","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":180,"y":720,"wires":[["e609671f.6c7938"]]},{"id":"260b965c.fa64c2","type":"ui_button","z":"869769d1.0b9f98","name":"CALCULATE","group":"ff81e701.9afc9","order":5,"width":0,"height":0,"passthru":false,"label":"CALCULATE","tooltip":"","color":"white","bgcolor":"red","icon":"","payload":"1","payloadType":"str","topic":"","x":210,"y":360,"wires":[["ab353a21.7322c8"]]},{"id":"7149cb47.db2534","type":"function","z":"869769d1.0b9f98","name":"Calculate average","func":"data=flow.get(\"data\") || {};\nif (data.FIELD_WIDTH===undefined)\n    var FIELD_WIDTH=100;\nelse\n    var FIELD_WIDTH=parseInt(data.FIELD_WIDTH);\n\n\nif (data.FIELD_HEIGHT ===undefined)\n    var FIELD_HEIGHT =100;\nelse\n    var FIELD_HEIGHT =parseInt(data.FIELD_HEIGHT);\n    \nif (data.FIELD_HORIZONTAL ===undefined)\n    var FIELD_HORIZONTAL = 6;\nelse\n    var FIELD_HORIZONTAL =parseInt(data.FIELD_HORIZONTAL);    \n    \nif (data.FIELD_VERTICAL ===undefined)\n    var FIELD_VERTICAL = 20;\nelse\n    var FIELD_VERTICAL =parseInt(data.FIELD_VERTICAL);        \n    \nmsg.payload =\"FIELD_WIDTH =\"+FIELD_WIDTH +\" FIELD_HEIGHT =\"+FIELD_HEIGHT+\"FIELD_HORIZONTAL =\"+FIELD_HORIZONTAL+\"FIELD_VERTICAL =\"+FIELD_VERTICAL;\nnode.log(msg.payload);\n//////////////////////////////\n\n\n\n\nconst inputArray = new Array (msg.payload.length);\n  for (var n = 0 ; n < inputArray.length ; n++) {\n    inputArray[n] = Object.values(msg.payload[n]);\n  }\n\n  // width and height of heating fields in pixels\n  // dependant on distance between camera and object\n\n  //const FIELD_WIDTH = 100;// 100;\n  //const FIELD_HEIGTH = 100;// 100;\n  \n\n  // Width resolution of Images\n\n  const RES_WIDTH = 100;// 100;\n\n  // # of heating fields to calculate\n\n  //const FIELDS_HORIZONTAL = 6;// 6;\n\n  // because of zig-zag recording of camera 1 to generate same layouts.\n\n  //const FIELDS_VERTICAL = 20;// 20;\n\n  // first field starts half the field amount in length from middle of the image.\n\n  // const HEATING_FIELD_START_HORIZONTAL = RES_WIDTH/2 - FIELDS_HORIZONTAL/2 * FIELD_WIDTH;\n  const HEATING_FIELD_START_HORIZONTAL = 0;\n\n  // Detect start of Fields// emperic values maybe?\n\n  var HEATING_FIELD_START_DETECTION = detectStartHeating(inputArray);\n  var HEATING_FIELD_END_DETECTION = detectEndHeating(inputArray);\n  // var HEATING_FIELD_START_VERTICAL = (HEATING_FIELD_END_DETECTION - HEATING_FIELD_START_DETECTION )/ 2 + HEATING_FIELD_START_DETECTION - FIELDS_VERTICAL/2 * FIELD_HEIGTH;\n  var HEATING_FIELD_START_VERTICAL = 0;\n\n  // Creating an empty output Array with the set no fields\n\n  var outputArray = new Array (FIELDS_VERTICAL);\n  for (var k = 0 ; k< outputArray.length ; k++) {\n    outputArray[k] = new Array (FIELDS_HORIZONTAL);\n    for ( var l = 0; l< outputArray[k].length; l++) {\n      outputArray[k][l] = 0;\n    }\n  }\n\n  var tmp2 = 0;\n\n  // loop through the fields\n\n  for (var v = 0 ; v < FIELDS_VERTICAL ; v++) {\n    for ( var h = 0; h < FIELDS_HORIZONTAL ; h++) {\n   \n      //calculate median of each field\n      var tmp = 0 ;\n      for ( var y = HEATING_FIELD_START_VERTICAL + v * FIELD_HEIGTH ; y < HEATING_FIELD_START_VERTICAL + v * FIELD_HEIGTH + FIELD_HEIGTH; y++) {\n        for (var  x = HEATING_FIELD_START_HORIZONTAL + h * FIELD_WIDTH; x < HEATING_FIELD_START_HORIZONTAL + h * FIELD_WIDTH + FIELD_WIDTH; x++) {\n          tmp += parseFloat(inputArray[y][x]);\n        }\n      }\n          \n      // round to 2 decimals\n      tmp = tmp / (FIELD_WIDTH * FIELD_HEIGTH)\n        \n      // no of decimal digits\n      \n      tmp = Math.round(tmp);\n      outputArray[v][h] = tmp;\n\t\t}\n  }\n  \n  // Create an empty array to insert the data\n  // The desired output has 7 rows\n  var newOutput = new Array (7);\n  for (var k = 0 ; k< newOutput.length ; k++) {\n    // Every row contains as much elements as the total number of fields\n    newOutput[k] = new Array (FIELDS_HORIZONTAL * FIELDS_VERTICAL);\n    for ( var l = 0; l< newOutput[k].length; l++) {\n      newOutput[k][l] = 0;\n    }\n  }\n\n  // Map the current result to the format desired\n  // 7 rows were\n  // row0 PixelName\n  // row1 Width\n  // row2 Height\n  // row3 X\n  // row4 Y\n  // row5 Average\n  // row6 Consecutive pixel name\n  let firstRowIndex = 0;\n  for (let rowIndex = 0; rowIndex < outputArray.length; rowIndex++) {\n    const row = outputArray[rowIndex];\n    for (let colIndex = 0; colIndex < row.length; colIndex++) {\n      const col = row[colIndex];\n      // Determine the name\n      const pixelName = `${getLettherForRowNumber(rowIndex)}${colIndex}`;\n      newOutput[0][firstRowIndex] = pixelName;\n      newOutput[1][firstRowIndex] =  FIELD_WIDTH ; // Width\n      newOutput[2][firstRowIndex] = FIELD_HEIGTH; // Height\n      newOutput[3][firstRowIndex] = colIndex * FIELD_WIDTH; // X\n      newOutput[4][firstRowIndex] = rowIndex * FIELD_HEIGTH; // Y\n      newOutput[5][firstRowIndex] = col; // Average\n      // Determine the name 2\n      const pixelName2 = `a${firstRowIndex}`;\n      newOutput[6][firstRowIndex] = pixelName2;\n      firstRowIndex++;\n    }\n  }\n\t\n\tmsg.payload = newOutput;\n\t\n return msg;\n\n\t\nfunction detectStartHeating(inputArray) {\n\t \n\t// Haet difference from cool row to first heated row, how much hotter does the first heated row to be ?\n    \n  const THRESHOLD = 5;\n\n  var hotRow =  0 ;\n  var currentRowAverage = calcRowAverage(inputArray, hotRow);\n  hotRow++;\n      \n  var nextRowAverage = calcRowAverage(inputArray,hotRow);\n  while( currentRowAverage + THRESHOLD > nextRowAverage && currentRowAverage > -1 && nextRowAverage > -1) {\n\n    currentRowAverage = nextRowAverage;\n    hotRow++;\n    nextRowAverage =  calcRowAverage(inputArray,hotRow);\n  }\n    if (nextRowAverage == -1 || currentRowAverage == -1) {\n      return 0;\n    } else {\n      return hotRow;\n    }\n  }\n\nfunction  detectEndHeating(inputArray) {\n // heat difference from cool row to first heated row , how much hotter does the first heated row have to on average?\n \n   const THRESHOLD =  40;\n   var hotRow = inputArray.length - 1;\n   var currentRowAverage = calcRowAverage(inputArray, hotRow);\n   hotRow--;\n\n    var prevRowAverage =  calcRowAverage(inputArray,hotRow);\n\n    while ( currentRowAverage + THRESHOLD > prevRowAverage && currentRowAverage > -1 && prevRowAverage > -1 && hotRow>0) {\n         currentRowAverage = prevRowAverage;\n         hotRow--;\n         prevRowAverage = calcRowAverage(inputArray,hotRow);\n \n         }\n         if( prevRowAverage == -2 || currentRowAverage == -1) {\n             return 0 ;\n         }\n\n          else\n         {\n           return hotRow;\n       }\n   }\n   \nfunction calcRowAverage(inputArray,row) {\n     var res = 0;\n     if (inputArray.length < row) {\n         return -1;\n     }\n\n\n     for (var g = 0; g< inputArray[row].length; g++) {\n         res += inputArray[row][g];\n       }\n      return res/inputArray[row].length;\n}\t  \n\nfunction getLettherForRowNumber(rowNumber) {\n  // ASCII code for 'a' is 97, 122 for 'z'\n  if (rowNumber < 26) {\n    return String.fromCharCode(97 + rowNumber);\n  } else {\n    const asciiFirstLetter = Math.round(rowNumber / 25) - 1;\n    const mod = rowNumber % 25 - 1;\n    const firstLetter = String.fromCharCode(97 + asciiFirstLetter);\n    const secondLetter = String.fromCharCode(97 + mod);\n    return `${firstLetter}${secondLetter}`;\n  }\n}\n","outputs":1,"noerr":0,"x":730,"y":260,"wires":[["261a99d3.e937d6"]]},{"id":"ff81e701.9afc9","type":"ui_group","z":"","name":"control","tab":"891ab146.796e78","order":1,"disp":true,"width":"6","collapse":false},{"id":"891ab146.796e78","type":"ui_tab","z":"","name":"Home","icon":"dashboard","disabled":false,"hidden":false}]

Can you check it now?

Please re-read the post I linked to and edit your post, don't post new replies.

Okay, I have edited as suggested.

Well I don't see it, select the nodes, export the code and post your flow as follows:

```
your code
```

Is it fine now.I did as suggested.

Do the flow variables show up in the context data window ?

32

How do i access this? The variables are seen in the UI and dashboard layout.

Click this arrow: context data.

I am sorry I am very new to node red. I am not getting that arrow button nor do i see that context tab anywhere. Can you tell me how to see the context tab?

Please watch this playlist - video 7 is about the sidebar.

My side bar has only info and debug tab. No arrow mark is to be seen. I have attached the screen shot.

That is strange, on which OS, what version of node-red, nodejs, npm are you running ? And which browser are you using ?

1 Like

It is running on the company server. Windows server 2016. The node red version is 0.18.4 and npm is 6.11.3 and node js is 12.12.0.I am using mozilla browser.

0.18.4

I am not sure when context variables were introduced, but 0.18.4 is from Jan 2018. The context browser was introduced in 0.19 in Aug 2018.

I need admin rights to update it, which i dont have as of now. Any other way to solve the problem?

Go to your boss and/or the IT guys and say "In order to do my job, I need node-red updated. What is running is an old release that will not work for what we are trying to do".