Survey banner
Share your feedback on the Dataiku documentation with this 5 min survey. Thanks! TAKE THE SURVEY

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
6 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

tanguy

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

Thanks for the reply @VitaliyD. I have tried to do that, however my objectif is 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
lightnessofbein
Level 2

Hey @tanguy , have you found a way to change the code of a custom scenario? I only found a way to change the code of step with custom Python code in step-based scenarios, no clue how to do it for custom code scenarios.

0 Kudos

Hi @lightnessofbein, I am interested in your solution to modify custom python code in a step based scenario 🙂.

Regarding custom scenarios, maybe you can change it by using the payload methods (there is `get_payload` method and a `set_payload` method)?

modify_scenarios.JPG

 

0 Kudos