Forum Discussion
How to run multiple code files from a Folder in a Notebook
- 1 year ago
Hi nilendraFabric ,
Thanks for reaching out to the Microsoft fabric community forum.
If that is the requirement then the possible solution you could use is to use runmultiple() using DAG
NotebookUtils (former MSSparkUtils) for Fabric - Microsoft Fabric | Microsoft Learn
It may be painful to hardcode notebook paths for all the existing notebooks but this will get what you want i.e to run all the notebooks existing in one folder
Example taken from the mentioned document:# run multiple notebooks with parameters DAG = { "activities": [ { "name": "NotebookSimple", # activity name, must be unique "path": "NotebookSimple", # notebook path "timeoutPerCellInSeconds": 90, # max timeout for each cell, default to 90 seconds "args": {"p1": "changed value", "p2": 100}, # notebook parameters }, { "name": "NotebookSimple2", "path": "NotebookSimple2", "timeoutPerCellInSeconds": 120, "args": {"p1": "changed value 2", "p2": 200} }, { "name": "NotebookSimple2.2", "path": "NotebookSimple2", "timeoutPerCellInSeconds": 120, "args": {"p1": "changed value 3", "p2": 300}, "retry": 1, "retryIntervalInSeconds": 10, "dependencies": ["NotebookSimple"] # list of activity names that this activity depends on } ], "timeoutInSeconds": 43200, # max timeout for the entire DAG, default to 12 hours "concurrency": 50 # max number of notebooks to run concurrently, default to 50 } notebookutils.notebook.runMultiple(DAG, {"displayDAGViaGraphviz": False})
If you find this post helpful, please mark it as an "Accept as Solution" and consider giving a KUDOS.
Thanks and Regards
If my understanding is correct, currently folders are just a way of organising items in the front end. They certainly aren't saved in source control (and cause merry hell when you deploy to a new workspace)
You could manually build a Directed Acyclic Graph using .runmultiple.
If I was set on doing things automatically from a notebook, I think what I might consider doing is;
- using a notebook naming convention and prefix my function notebooks "Funct 01 - " (increasing the number each time
- use sempy with FabricRESTClient and the API to list all notebooks in the workspace, filter on the prefix, sort, and stick the names into a list
- run a for loop over the list using notebookutils.notebook.run() to execute them one after the other.