Submit your use case or success story to the 2023 edition of the Dataiku Frontrunner Awards ENTER YOUR SUBMISSION

Continue custom python scenario script if error is encountered

Solved!
sylvyr3
Level 3
Continue custom python scenario script if error is encountered

Hi,

When building a scenario using the sequence of steps option, it's possible to select ignore failure for 'Run another scenario' step.  Is there a way to ignore failure in the custom python scenario script?  

In the below example, "scenario.run_scenario('Test_Tables_Databases')" will run a scenario that will fail because it is executing scenario.execute_sql() on a table that doesn't exist (for test purposes).  Once that scenario fails then the current scenario will stop.  Is there a way to run my custom python scenario script without stopping if a failure is encountered?

import dataiku
from dataikuapi.dss.scenario import DSSScenario
from dataiku.scenario import Scenario

client = dataiku.api_client()
scenario = Scenario()

# Run the scenario that checks each table for database locks
scenario.run_scenario('Test_Tables_Databases')

dss_scenario_test = DSSScenario(client, dataiku.default_project_key(), "Test_Tables_Databases")

# Check if 'test' scenario succeeded or failed
outcome = dss_scenario_test.get_last_runs()[0].get_info()['result']['outcome']

if outcome == 'SUCCESS':

scenario.run_scenario('Build_Final_Dataset')

#elif outcome == 'FAILED':

 

1 Solution
Alex_Combessie
Dataiker Alumni

Hi,

You should be able to achieve such behavior using the Public API:

https://doc.dataiku.com/dss/latest/python-api/rest-api-client/scenarios.html#dataikuapi.dss.scenario...

Hope it helps,

Alex

View solution in original post

2 Replies
Alex_Combessie
Dataiker Alumni

Hi,

You should be able to achieve such behavior using the Public API:

https://doc.dataiku.com/dss/latest/python-api/rest-api-client/scenarios.html#dataikuapi.dss.scenario...

Hope it helps,

Alex

sylvyr3
Level 3
Author

Thanks, got it to work.

removed run_scenario() and added dss_scenario_test.run_and_wait(no_fail=True).

0 Kudos