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

Trigger and Create Scenario using External API's

sj0071992
Trigger and Create Scenario using External API's

Hi Team,

 

I just want to confirm like, can we trigger or Create a Dataiku Scenario using External Python rest API's?

 

Thanks in Advance

0 Kudos
4 Replies
VitaliyD
Dataiker

Hi @sj0071992,

Yes, you can trigger the scenario programmatically using external Dataiku API. Please find the code sample below:

import dataikuapi

host = "DSS_host"
global_api_key = "your_api_key"
project_key = 'new_model'

​scenario_name = 'scenario_name'
client = dataikuapi.DSSClient(host, global_api_key)
project = client.get_project(project_key)
scenario = project.get_scenario(scenario_name)

​scenario.run_and_wait()

To create a scenario, you will need to use the Projects API create_scenario() function:
https://doc.dataiku.com/dss/latest/python-api/projects.html#dataikuapi.dss.project.DSSProject.create...

For a complete list of available Scenario API functions, please refer to our documentation here:
https://doc.dataiku.com/dss/latest/python-api/scenarios.html
https://doc.dataiku.com/dss/latest/python-api/scenarios-inside.html

Best,
Vitaliy

0 Kudos
tanguy
Level 4

Why does dataiku allow to create a scenario using dataiku's API but does not allow to modify the created scenario (I am trying to do this : create a scenario from a plugin and then define its content but dataiku only allows to modify a scenario inside it, not outside it)?

0 Kudos
VitaliyD
Dataiker

Hi, you probably mean modifying the scenario's settings. You can do it by following examples from our docs https://doc.dataiku.com/dss/latest/python-api/scenarios.html#enable-scenarios-from-a-list-of-ids.

For example, you can do something like below:

import dataiku
client = dataiku.api_client()
project = client.get_default_project()
scenario = project.get_scenario("scenario_id")
settings = scenario.get_settings()
raw_setttings = settings.get_raw()
#modify raw settings:
raw_setttings["name"] = "new_name"
#and save the settings:
settings.save()

 

If the above is not what you mean, please elaborate on what you want to modify and provide an example. 

0 Kudos
tanguy
Level 4

Thanks for the reply @VitaliyD. I have tried to do that, however my objectif si to change the content of a scenario (e.g. adding and specifying a new step or changing python code inside a scenario). I have not managed to do this with a step-based scenario, but it seems it is possible to change the code of a custom code scenario.

0 Kudos