Submit your innovative use case or inspiring success story to the 2023 Dataiku Frontrunner Awards! LET'S GO

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
Level 5

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 5

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

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