Seperating messages from array

hello all , im having input of array , in which displayname is different from one function node i want to seperates the message or elements into two outputs.

i want complete object to be seperated.

Hello ..

you can loop throught the array and if the DisplayName startsWith either MM2 or MM3 push the array element to newly defined arrays and then output them to the seperate outputs.

let mm2 = []
let mm3 = []

msg.payload.forEach(el => {

    if (el.DisplayName.startsWith("MM2.")) {
        mm2.push(el)
    }

    else if (el.DisplayName.startsWith("MM3.")) {
        mm3.push(el)
    }
})

return [{ payload: mm2 }, { payload: mm3 }]

Test Flow :

[{"id":"4d3938590c6cf87d","type":"inject","z":"54efb553244c241f","name":"data","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"nodeID\":1,\"applicationUri\":\"aaaa\",\"DisplayName\":\"MM2.D0058\",\"Value\":\"aaaaaa\"},{\"nodeID\":2,\"applicationUri\":\"bbb\",\"DisplayName\":\"MM2.D0058\",\"Value\":\"aaaaaa\"},{\"nodeID\":3,\"applicationUri\":\"ccc\",\"DisplayName\":\"MM3.D0058\",\"Value\":\"aaaaaa\"},{\"nodeID\":4,\"applicationUri\":\"ddd\",\"DisplayName\":\"MM2.D0058\",\"Value\":\"aaaaaa\"},{\"nodeID\":5,\"applicationUri\":\"eee\",\"DisplayName\":\"MM3.D0058\",\"Value\":\"aaaaaa\"},{\"nodeID\":6,\"applicationUri\":\"fff\",\"DisplayName\":\"MM2.D0058\",\"Value\":\"aaaaaa\"}]","payloadType":"json","x":330,"y":1860,"wires":[["7a5436554cf3129e","496dfc1050b6b95e"]]},{"id":"e6ef0f9ea7d918ec","type":"debug","z":"54efb553244c241f","name":"mm2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":690,"y":1800,"wires":[]},{"id":"7a5436554cf3129e","type":"function","z":"54efb553244c241f","name":"","func":"let mm2 = []\nlet mm3 = []\n\nmsg.payload.forEach(el => {\n\n    if (el.DisplayName.startsWith(\"MM2.\")) {\n        mm2.push(el)\n    }\n\n    else if (el.DisplayName.startsWith(\"MM3.\")) {\n        mm3.push(el)\n    }\n\n})\n\nreturn [{ payload: mm2 }, { payload: mm3 }]","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":1860,"wires":[["e6ef0f9ea7d918ec"],["7b1be89f672a7ce4"]]},{"id":"7b1be89f672a7ce4","type":"debug","z":"54efb553244c241f","name":"mm3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":690,"y":1920,"wires":[]},{"id":"496dfc1050b6b95e","type":"debug","z":"54efb553244c241f","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":440,"y":1760,"wires":[]}]

Or a Split node to split the array into discrete messages, and a Switch node to route each message depending on the message property.

Thank you for your help , just wanted a small correction to handle when in a packet sometimes there may not be mm2 or sometimes may not be mm3

(post deleted by author)

  {
    "NodeId": "nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0055",
    "ApplicationUri": "urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server",
    "DisplayName": "MM2.D0055",
    "Value": {
      "Value": 256.33554,
      "SourceTimestamp": "2022-04-19T12:53:19.551Z"
    }
  },
  {
    "NodeId": "nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0056",
    "ApplicationUri": "urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server",
    "DisplayName": "MM2.D0056",
    "Value": {
      "Value": 52.6,
      "SourceTimestamp": "2022-04-19T12:52:40.558Z"
    }
  },
  {
    "NodeId": "nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0058",
    "ApplicationUri": "urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server",
    "DisplayName": "MM2.D0058",
    "Value": {
      "Value": -0.061722744,
      "SourceTimestamp": "2022-04-19T12:53:19.551Z"
    }
  },
  {
    "NodeId": "nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0289",
    "ApplicationUri": "urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server",
    "DisplayName": "MM2.D0289",
    "Value": {
      "Value": 256.33554,
      "SourceTimestamp": "2022-04-19T12:53:19.549Z"
    }
  },
  {
    "NodeId": "nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0290",
    "ApplicationUri": "urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server",
    "DisplayName": "MM2.D0290",
    "Value": {
      "Value": 79.8,
      "SourceTimestamp": "2022-04-19T12:53:01.561Z"
    }
  },
  {
    "NodeId": "nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0302",
    "ApplicationUri": "urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server",
    "DisplayName": "MM2.D0302",
    "Value": {
      "Value": 256.72006,
      "SourceTimestamp": "2022-04-19T12:53:16.565Z"
    }
  },
  {
    "NodeId": "nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0133",
    "ApplicationUri": "urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server",
    "DisplayName": "MM2.D0133",
    "Value": {
      "Value": true,
      "SourceTimestamp": "2022-04-19T12:53:46.552Z"
    }
  }
]```

Test flow to handle case when some values are missing ( array length is 0 )

[{"id":"4d3938590c6cf87d","type":"inject","z":"54efb553244c241f","name":"data without mm3","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"NodeId\":\"nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0055\",\"ApplicationUri\":\"urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server\",\"DisplayName\":\"MM2.D0055\",\"Value\":{\"Value\":256.33554,\"SourceTimestamp\":\"2022-04-19T12:53:19.551Z\"}},{\"NodeId\":\"nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0056\",\"ApplicationUri\":\"urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server\",\"DisplayName\":\"MM2.D0056\",\"Value\":{\"Value\":52.6,\"SourceTimestamp\":\"2022-04-19T12:52:40.558Z\"}},{\"NodeId\":\"nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0058\",\"ApplicationUri\":\"urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server\",\"DisplayName\":\"MM2.D0058\",\"Value\":{\"Value\":-0.061722744,\"SourceTimestamp\":\"2022-04-19T12:53:19.551Z\"}},{\"NodeId\":\"nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0289\",\"ApplicationUri\":\"urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server\",\"DisplayName\":\"MM2.D0289\",\"Value\":{\"Value\":256.33554,\"SourceTimestamp\":\"2022-04-19T12:53:19.549Z\"}},{\"NodeId\":\"nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0290\",\"ApplicationUri\":\"urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server\",\"DisplayName\":\"MM2.D0290\",\"Value\":{\"Value\":79.8,\"SourceTimestamp\":\"2022-04-19T12:53:01.561Z\"}},{\"NodeId\":\"nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0302\",\"ApplicationUri\":\"urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server\",\"DisplayName\":\"MM2.D0302\",\"Value\":{\"Value\":256.72006,\"SourceTimestamp\":\"2022-04-19T12:53:16.565Z\"}},{\"NodeId\":\"nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0133\",\"ApplicationUri\":\"urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server\",\"DisplayName\":\"MM2.D0133\",\"Value\":{\"Value\":true,\"SourceTimestamp\":\"2022-04-19T12:53:46.552Z\"}}]","payloadType":"json","x":260,"y":1840,"wires":[["7a5436554cf3129e"]]},{"id":"e6ef0f9ea7d918ec","type":"debug","z":"54efb553244c241f","name":"mm2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":650,"y":1840,"wires":[]},{"id":"7a5436554cf3129e","type":"function","z":"54efb553244c241f","name":"","func":"let mm2 = { topic: \"mm2\", payload: [] }\nlet mm3 = { topic: \"mm3\", payload: [] }\n\nmsg.payload.forEach(el => {\n\n    if (el.DisplayName.startsWith(\"MM2.\")) {\n        mm2.payload.push(el)\n    }\n\n    else if (el.DisplayName.startsWith(\"MM3.\")) {\n        mm3.payload.push(el)\n    }\n\n})\n\nif (mm2.payload.length == 0) mm2 = null\nif (mm3.payload.length == 0) mm3 = null\n\nreturn [mm2, mm3]","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":1880,"wires":[["e6ef0f9ea7d918ec"],["7b1be89f672a7ce4"]]},{"id":"7b1be89f672a7ce4","type":"debug","z":"54efb553244c241f","name":"mm3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":650,"y":1920,"wires":[]},{"id":"deeef12456b127cf","type":"inject","z":"54efb553244c241f","name":"data with both","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"NodeId\":\"nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0055\",\"ApplicationUri\":\"urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server\",\"DisplayName\":\"MM2.D0055\",\"Value\":{\"Value\":256.33554,\"SourceTimestamp\":\"2022-04-19T12:53:19.551Z\"}},{\"NodeId\":\"nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0056\",\"ApplicationUri\":\"urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server\",\"DisplayName\":\"MM2.D0056\",\"Value\":{\"Value\":52.6,\"SourceTimestamp\":\"2022-04-19T12:52:40.558Z\"}},{\"NodeId\":\"nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0058\",\"ApplicationUri\":\"urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server\",\"DisplayName\":\"MM3.D0058\",\"Value\":{\"Value\":-0.061722744,\"SourceTimestamp\":\"2022-04-19T12:53:19.551Z\"}},{\"NodeId\":\"nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0289\",\"ApplicationUri\":\"urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server\",\"DisplayName\":\"MM2.D0289\",\"Value\":{\"Value\":256.33554,\"SourceTimestamp\":\"2022-04-19T12:53:19.549Z\"}},{\"NodeId\":\"nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0290\",\"ApplicationUri\":\"urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server\",\"DisplayName\":\"MM3.D0290\",\"Value\":{\"Value\":79.8,\"SourceTimestamp\":\"2022-04-19T12:53:01.561Z\"}},{\"NodeId\":\"nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0302\",\"ApplicationUri\":\"urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server\",\"DisplayName\":\"MM2.D0302\",\"Value\":{\"Value\":256.72006,\"SourceTimestamp\":\"2022-04-19T12:53:16.565Z\"}},{\"NodeId\":\"nsu=KEPServerEX;s=INPI_P1_H1_MM2.PH1_MM2.MM.D0133\",\"ApplicationUri\":\"urn:ABCDEFGHIJKL.XYZ.COMM:Kepware.KEPServerEX.V6:UA%20Server\",\"DisplayName\":\"MM2.D0133\",\"Value\":{\"Value\":true,\"SourceTimestamp\":\"2022-04-19T12:53:46.552Z\"}}]","payloadType":"json","x":270,"y":1920,"wires":[["7a5436554cf3129e"]]}]

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