Here is a flow I threw together that should find the link out
nodes that don't have a connecting link. Export your flow in compact format
.
- Enter the flow file name in the inject node at the start
- Enter the path to the flow file in the change node that comes next.
In my case I'm using a Mac and the flow file is in my "Downloads" folder.
- press the
Inject
node button
What it does is read the flow file and change each occurance of },{
to },qaz{
.
It then split the flow on ,qaz
.
Next it searches each line for the text link out
and ignores any line without that match.
Next it searches each line for the text "links":[]
and ignores any line without that match
And finaly dumps the remaining lines to a debug output.
You can then grab the value of the id
- in ths case it is d5f694c2.cae2e
- and in the hamburger menu select Search Flows
insert the id
and it will bring you to that node.
Hope it helps you.
[{"id":"46a18e0e.b62268","type":"tab","label":"Find 'link out' node with no links","disabled":false,"info":""},{"id":"50156b53.96d05c","type":"inject","z":"46a18e0e.b62268","name":"Enter file name to search","topic":"","payload":"flows-18.json","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":170,"y":80,"wires":[["293249d2.9a819e"]]},{"id":"2fbde711.56fd3","type":"file in","z":"46a18e0e.b62268","name":"","filename":"","format":"utf8","chunk":false,"sendError":false,"encoding":"none","x":110,"y":200,"wires":[["b065103f.e48b4"]]},{"id":"a9d13b86.766518","type":"split","z":"46a18e0e.b62268","name":"","splt":",qaz","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":110,"y":320,"wires":[["cf783107.6f1b6"]]},{"id":"b065103f.e48b4","type":"change","z":"46a18e0e.b62268","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"},{","fromt":"str","to":"},qaz{","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":160,"y":260,"wires":[["a9d13b86.766518"]]},{"id":"b0ad2721.5992f","type":"debug","z":"46a18e0e.b62268","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":130,"y":620,"wires":[]},{"id":"293249d2.9a819e","type":"change","z":"46a18e0e.b62268","name":"set file path and add file name","rules":[{"t":"set","p":"path","pt":"msg","to":"/Users/Paul/Downloads/","tot":"str"},{"t":"set","p":"filename","pt":"msg","to":"path&payload","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":190,"y":140,"wires":[["2fbde711.56fd3"]]},{"id":"cf783107.6f1b6","type":"switch","z":"46a18e0e.b62268","name":"look for 'link out'","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"link out","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":150,"y":380,"wires":[["4e33606e.d56f6"]]},{"id":"4e33606e.d56f6","type":"switch","z":"46a18e0e.b62268","name":"look for no links","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"\"links\":[]","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":140,"y":440,"wires":[["d8639871.4ab578"]]},{"id":"693e8372.c48884","type":"json","z":"46a18e0e.b62268","name":"","property":"payload","action":"","pretty":false,"x":110,"y":560,"wires":[["b0ad2721.5992f"]]},{"id":"d8639871.4ab578","type":"change","z":"46a18e0e.b62268","name":"Fix case where link out is last node in flow","rules":[{"t":"change","p":"payload","pt":"msg","from":"}]","fromt":"str","to":"}","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":220,"y":500,"wires":[["693e8372.c48884"]]}]```