Hi,
I was trying to import some of my 'components' to another project. I don't know if it is even technically possible but it would be nice to export and import these 'component' flows and keep all the underlying connections. For example: I now have made a tab with some general 'functions' to use. Some of these flows use other 'use comp' nodes within them. It would be nice if I could import these into other projects in order to use them without having to set all the connections again.
Example:

After inserting:

example flow:
[ { "id": "1172981daf1840f2", "type": "group", "z": "77160189ed03316a", "name": "Convert string to date", "style": { "fill": "#FDD0A2", "label": true }, "nodes": [ "6255b331b23dc415", "f32efb99fc1821f8", "ec4dbc2a6e2a9f01", "bb6cde2ac7adbfd7", "d11f72bee48d3cba" ], "env": [], "x": 54, "y": 359, "w": 1192, "h": 82 }, { "id": "6255b331b23dc415", "type": "component_in", "z": "77160189ed03316a", "g": "1172981daf1840f2", "name": "Convert string to dateTime", "api": [ { "name": "date", "type": "string", "required": true, "contextOption": true }, { "name": "format", "type": "string", "required": true, "contextOption": true }, { "name": "outputPath", "type": "string", "required": true, "contextOption": true } ], "usecontext": true, "x": 190, "y": 400, "wires": [ [ "ec4dbc2a6e2a9f01" ] ] }, { "id": "f32efb99fc1821f8", "type": "component_out", "z": "77160189ed03316a", "g": "1172981daf1840f2", "name": "", "mode": "default", "component_definitions_are_NOT_allowed_inside_subflows": false, "x": 1150, "y": 400, "wires": [] }, { "id": "ec4dbc2a6e2a9f01", "type": "function", "z": "77160189ed03316a", "g": "1172981daf1840f2", "name": "format date", "func": "msg.component.date = moment(msg.component.date, msg.component.format).toDate();\nreturn msg;\n", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [ { "var": "moment", "module": "moment" } ], "x": 430, "y": 400, "wires": [ [ "d11f72bee48d3cba" ] ] }, { "id": "bb6cde2ac7adbfd7", "type": "change", "z": "77160189ed03316a", "g": "1172981daf1840f2", "name": "Cleanup", "rules": [ { "t": "delete", "p": "component", "pt": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 980, "y": 400, "wires": [ [ "f32efb99fc1821f8" ] ] }, { "id": "d11f72bee48d3cba", "type": "component", "z": "77160189ed03316a", "g": "1172981daf1840f2", "name": "", "targetComponent": null, "targetComponentId": "879de6570d806d91", "paramSources": { "path": { "name": "path", "source": "component.outputPath", "sourceType": "msg" }, "data": { "name": "data", "source": "component.date", "sourceType": "msg" } }, "statuz": "", "statuzType": "str", "outputs": 1, "outLabels": [ "default" ], "x": 730, "y": 400, "wires": [ [ "bb6cde2ac7adbfd7" ] ] }, { "id": "424c0c14e337c5e6", "type": "group", "z": "77160189ed03316a", "name": "Set dynamic msg path", "style": { "fill": "#FDD0A2", "label": true }, "nodes": [ "879de6570d806d91", "106233761c73575b", "dce3c93b9bae2c67", "1eaa2e5a4b6f4f8a" ], "env": [], "x": 54, "y": 459, "w": 812, "h": 82 }, { "id": "879de6570d806d91", "type": "component_in", "z": "77160189ed03316a", "g": "424c0c14e337c5e6", "name": "Set dynamic msg path", "api": [ { "name": "path", "type": "string", "required": true, "contextOption": true }, { "name": "data", "type": "any", "required": true, "contextOption": true } ], "usecontext": true, "x": 180, "y": 500, "wires": [ [ "dce3c93b9bae2c67" ] ] }, { "id": "106233761c73575b", "type": "component_out", "z": "77160189ed03316a", "g": "424c0c14e337c5e6", "name": "", "mode": "default", "component_definitions_are_NOT_allowed_inside_subflows": false, "x": 770, "y": 500, "wires": [] }, { "id": "dce3c93b9bae2c67", "type": "function", "z": "77160189ed03316a", "g": "424c0c14e337c5e6", "name": "Set dynamic path", "func": "let path = msg.component.path;\nlet data = _.cloneDeep(msg.component.data);\n\n_.set(msg, path, data)\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [ { "var": "_", "module": "lodash" } ], "x": 410, "y": 500, "wires": [ [ "1eaa2e5a4b6f4f8a" ] ] }, { "id": "1eaa2e5a4b6f4f8a", "type": "change", "z": "77160189ed03316a", "g": "424c0c14e337c5e6", "name": "Cleanup", "rules": [ { "t": "delete", "p": "component", "pt": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 600, "y": 500, "wires": [ [ "106233761c73575b" ] ] } ]
Hi,
I was trying to import some of my 'components' to another project. I don't know if it is even technically possible but it would be nice to export and import these 'component' flows and keep all the underlying connections. For example: I now have made a tab with some general 'functions' to use. Some of these flows use other 'use comp' nodes within them. It would be nice if I could import these into other projects in order to use them without having to set all the connections again.
Example:

After inserting:

example flow:
[ { "id": "1172981daf1840f2", "type": "group", "z": "77160189ed03316a", "name": "Convert string to date", "style": { "fill": "#FDD0A2", "label": true }, "nodes": [ "6255b331b23dc415", "f32efb99fc1821f8", "ec4dbc2a6e2a9f01", "bb6cde2ac7adbfd7", "d11f72bee48d3cba" ], "env": [], "x": 54, "y": 359, "w": 1192, "h": 82 }, { "id": "6255b331b23dc415", "type": "component_in", "z": "77160189ed03316a", "g": "1172981daf1840f2", "name": "Convert string to dateTime", "api": [ { "name": "date", "type": "string", "required": true, "contextOption": true }, { "name": "format", "type": "string", "required": true, "contextOption": true }, { "name": "outputPath", "type": "string", "required": true, "contextOption": true } ], "usecontext": true, "x": 190, "y": 400, "wires": [ [ "ec4dbc2a6e2a9f01" ] ] }, { "id": "f32efb99fc1821f8", "type": "component_out", "z": "77160189ed03316a", "g": "1172981daf1840f2", "name": "", "mode": "default", "component_definitions_are_NOT_allowed_inside_subflows": false, "x": 1150, "y": 400, "wires": [] }, { "id": "ec4dbc2a6e2a9f01", "type": "function", "z": "77160189ed03316a", "g": "1172981daf1840f2", "name": "format date", "func": "msg.component.date = moment(msg.component.date, msg.component.format).toDate();\nreturn msg;\n", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [ { "var": "moment", "module": "moment" } ], "x": 430, "y": 400, "wires": [ [ "d11f72bee48d3cba" ] ] }, { "id": "bb6cde2ac7adbfd7", "type": "change", "z": "77160189ed03316a", "g": "1172981daf1840f2", "name": "Cleanup", "rules": [ { "t": "delete", "p": "component", "pt": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 980, "y": 400, "wires": [ [ "f32efb99fc1821f8" ] ] }, { "id": "d11f72bee48d3cba", "type": "component", "z": "77160189ed03316a", "g": "1172981daf1840f2", "name": "", "targetComponent": null, "targetComponentId": "879de6570d806d91", "paramSources": { "path": { "name": "path", "source": "component.outputPath", "sourceType": "msg" }, "data": { "name": "data", "source": "component.date", "sourceType": "msg" } }, "statuz": "", "statuzType": "str", "outputs": 1, "outLabels": [ "default" ], "x": 730, "y": 400, "wires": [ [ "bb6cde2ac7adbfd7" ] ] }, { "id": "424c0c14e337c5e6", "type": "group", "z": "77160189ed03316a", "name": "Set dynamic msg path", "style": { "fill": "#FDD0A2", "label": true }, "nodes": [ "879de6570d806d91", "106233761c73575b", "dce3c93b9bae2c67", "1eaa2e5a4b6f4f8a" ], "env": [], "x": 54, "y": 459, "w": 812, "h": 82 }, { "id": "879de6570d806d91", "type": "component_in", "z": "77160189ed03316a", "g": "424c0c14e337c5e6", "name": "Set dynamic msg path", "api": [ { "name": "path", "type": "string", "required": true, "contextOption": true }, { "name": "data", "type": "any", "required": true, "contextOption": true } ], "usecontext": true, "x": 180, "y": 500, "wires": [ [ "dce3c93b9bae2c67" ] ] }, { "id": "106233761c73575b", "type": "component_out", "z": "77160189ed03316a", "g": "424c0c14e337c5e6", "name": "", "mode": "default", "component_definitions_are_NOT_allowed_inside_subflows": false, "x": 770, "y": 500, "wires": [] }, { "id": "dce3c93b9bae2c67", "type": "function", "z": "77160189ed03316a", "g": "424c0c14e337c5e6", "name": "Set dynamic path", "func": "let path = msg.component.path;\nlet data = _.cloneDeep(msg.component.data);\n\n_.set(msg, path, data)\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [ { "var": "_", "module": "lodash" } ], "x": 410, "y": 500, "wires": [ [ "1eaa2e5a4b6f4f8a" ] ] }, { "id": "1eaa2e5a4b6f4f8a", "type": "change", "z": "77160189ed03316a", "g": "424c0c14e337c5e6", "name": "Cleanup", "rules": [ { "t": "delete", "p": "component", "pt": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 600, "y": 500, "wires": [ [ "106233761c73575b" ] ] } ]